Interface:Axioms of intuitionistic propositional logic

The axioms here are essentially identical to those in the Stanford Encyclopedia of Philosophy.

Well-formed formulas
We first introduce the kind of well-formed formulas and a few variables for this kind.  kind (formula) var (formula p q r s) 

Connectives
Although it is possible to define intuitionistic logic with a single (complicated) connective, or with as few as three of the usual connectives, here we take implication, disjunction, conjunction, and negation as primitive:

 term (formula (¬ formula)) # Negation term (formula (→ formula formula)) # Implication term (formula (∨ formula formula)) # Disjunction term (formula (∧ formula formula)) # Conjunction 

Inference rule
The one rule is modus ponens:  stmt (applyModusPonens (p (p → q)) q) 

Implication
The first two of the Interface:Standard axioms of propositional logic serve as our axioms governing implication:

 stmt (Simp  (p → (q → p))) stmt (Frege  ((p → (q → r)) → ((p → q) → (p → r)))) 

Disjunction
For disjunction, we assume the ability to introduce a left hand or right hand side to any proposition:  stmt (DisjunctionLeftIntroduction  (p → (q ∨ p))) stmt (DisjunctionRightIntroduction  (p → (p ∨ q))) 

and the following form of disjunction composition:  stmt (DisjunctionCompositionAxiom  ((p → r) → ((q → r) → ((p ∨ q) → r)))) 

Conjunction
A conjunction implies either of its propositions:  stmt (ConjunctionLeftElimination  ((p ∧ q) → q)) stmt (ConjunctionRightElimination  ((p ∧ q) → p)) 

and can be derived from its propositions:  stmt (ConjunctionRightIntroduction  (p → (q → (p ∧ q)))) 

Negation
If an antecedent implies both a consequent and its negation, we can infer the negation of the original statement.  stmt (ProofByContradiction  ((p → q) → ((p → (¬ q)) → (¬ p)))) # *2.65 in Principia </jh>

From a contradiction, anything follows. This is also known as the principle of explosion. The presence of this axiom distinguishes intuitionistic logic from minimal logic.  stmt (Explosion  (p → ((¬ p) → q))) # *2.24 in Principia </jh>