natural deduction metalanguage, practical foundations
type theory (dependent, intensional, observational type theory, homotopy type theory)
computational trinitarianism = propositions as types +programs as proofs +relation type theory/category theory
In logic, the negation of a statement is a statement which is true if and only if is false.
In classical logic, we have the double negation law:
In intuitionistic logic, we only have
while in paraconsistent logic, we instead have
You can interpret intuitionistic negation as ‘denial’ and paraconsistent negation as ‘doubt’. So when one says that one doesn't deny , that's weaker than actually asserting ; while when one says that one doesn't doubt , that's stronger than merely asserting . Paraconsistent logic has even been applied to the theory of law: if is a judgment that normally requires only the preponderance of evidence, then is a judgment of beyond reasonable doubt.
Linear logic features (at least) three different forms of negation, one for each of the above. (The default meaning of the term ‘negation’ in linear logic, , is the one that satisfies the classical double-negation law.)
Accordingly, negation mediates de Morgan duality in classical and linear logic but not in intuitionistic or paraconsistent logic.
In usual type theory syntax negation is obtained as the function type into the empty type: .
The categorical semantics of negation is the internal hom into the initial object: .
In a topos, the negation of an object (a proposition under the propositions as types-interpretation) is the internal hom object , where denotes the initial object.
This matches the intuitionistic notion of negation in that there is a natural morphism but not the other way around.