連言
- and.left : ?M_1 ∧ ?M_2 → ?M_1 (A∧B ⇒ A)
- and.right : ?M_1 ∧ ?M_2 → ?M_2 (A∧B ⇒ B)
- and.intro : ?M_1 → ?M_2 → ?M_1 ∧ ?M_2 (A B ⇒ A∧B)
含意
- 空白〈right-eval〉 : ((?M_1 → ?M_2) → ?M1) → ?M_2 ((A → B) A ⇒ B)
- assume 変数 : 型, 式 ≡ λ 変数 : 型, 式
assume h : A ∧ ¬ B, and.intro (and.right h) (and.left h)
選言
- or.inl : ?M_1 → ?M_1 ∨ ?M_2 (A ⇒ A∨B)
- or.inr : ?M_2 → ?M_1 ∨ ?M_2 (B ⇒ A∨B)
- or.elim : ?M_1 ∨ ?M_2 → (?M_1 → ?M_3) → (?M_2 → ?M_3) → ?M_3 (A∨B A→C B→C ⇒ C)
section variable h : A ∨ B variables (ha : A → C) (hb : B → C) example : C := or.elim h (assume h1 : A, show C, from ha h1) (assume h1 : B, show C, from hb h1) end
否定(矛盾)
- true, false : Prop
- false.elim : false → ?M_1 (⊥ → A)
- trivial : true
- by_contradiction : (¬?M_1 → false) → ?M_1 (¬¬A → A)