quality:corruption, structural:summarization, stylistic:style_transfer, linguistic:voice_change
Intuitionistic logic

When used as a foundation, certain types are interpreted to be propositions (statements that can be proven), and terms inhabiting the type are interpreted to be proofs of that proposition. When some types are interpreted as propositions, there is a set of common types that can be used to connect them to make a Boolean algebra out of types. However, the logic is not classical logic but intuitionistic logic, which is to say it does not have the law of excluded middle nor double negation.

Under this intuitionistic interpretation, there are common types that act as the logical operators:

Because the law of excluded middle does not hold, there is no term of type Π a. A + (A → ⊥) {\displaystyle \Pi a.A+(A\to \bot)}. Likewise, double negation does not hold, so there is no term of type Π A. ((A → ⊥) → ⊥) → A {\displaystyle \Pi A.((A\to \bot)\to \bot)\to A}.

It is possible to include the law of excluded middle and double negation into a type theory, by rule or assumption. However, terms may not compute down to canonical terms and it will interfere with the ability to determine if two terms are judgementally equal to each other.