連言
- 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)