In episode 6 of the Philosophize This! podcast Stephen talks about Aristotle’s development of the first formal system of logic, one part of which is the syllogism. A common example of a syllogism is "Socrates is a man, all men are mortal, therefore Socrates is mortal".
Stephen points out that Aristotle would not have put it like that1. Aristotle preferred to use variables to abstract away the details, rather than concrete examples whose details can obscure the meaning.
Without abstraction I guess we could try and argue details (Socrates’ ideas have been immortalised; does that affect the conclusion?), but abstraction makes the logical inference clear: "
A is a
A is a
C". The conclusion follows from the premises for all values of
C, irrespective of other concrete details.
To me this echoes the idea we explored last post, where we introduced type variables in place of concrete types to help us infer information about a function.
Which makes me think that if we were to go back two and a bit millennia and chat to Aristotle he’d be quite comfortable with the idea of parametricity2. :)