4 ms·
You could also argue that any({}) is really not defined because first order logic generally excludes empty sets. The reason for said exclusion is because weird
by slaymaker1907 3y ago
You could also argue that any({}) is really not defined because first order logic generally excludes empty sets. The reason for said exclusion is because weird stuff starts to happen when you allow an empty domain when talking about if a formula is true in all domains. For example, "exists x, P(x) or !P(x)" is true for every domain unless you allow an empty domain since "exists x ..." is always false. The same is true of all({}) because you have an equivalent weirdness in the form of "!(forall x, P(x) and !P(x))". These seem innocuous, but there are many rules of inference that are excluded once you allow the empty domain.
- deleted 3y ago[deleted]
- schoen 3y agoMaybe I'm too used to Coq's higher-order theory now, but I think it's not really that bad to say that we have to be careful about whether statements have existential import. https://en.wikipedia.org/wiki/Syllogism#Existential_import https://en.wikipedia.org/wiki/Syllogism#Existential_import
- Nevermark 3y agoIf we are defining ANY as an n-element LIST operator, in a programming language, which recursively applies the 2-operand AND taking literal Boolean values, there are no ambiguities. Note that this is inherently a constructible relation, which avoids many pratfalls of more general mathematics. But if ANY & ALL are being defined as general mathematical relations over all EXISTING members of a class (whose members’ construction, consistency or completeness, may be unknown or even unattainable), then there are other issues.