Documentation

Bookshelf.Avigad.Chapter_3

Avigad.Chapter3 #

Propositions and Proofs

Exercise 1 #

Prove the following identities.

theorem Avigad.Chapter3.ex1.or_comm' (p : Prop) (q : Prop) :
p q q p
theorem Avigad.Chapter3.ex1.and_assoc (p : Prop) (q : Prop) (r : Prop) :
(p q) r p q r
theorem Avigad.Chapter3.ex1.or_assoc' (p : Prop) (q : Prop) (r : Prop) :
(p q) r p q r
theorem Avigad.Chapter3.ex1.and_or_left (p : Prop) (q : Prop) (r : Prop) :
p (q r) p q p r
theorem Avigad.Chapter3.ex1.or_and_left (p : Prop) (q : Prop) (r : Prop) :
p q r (p q) (p r)
theorem Avigad.Chapter3.ex1.imp_imp_iff_and_imp (p : Prop) (q : Prop) (r : Prop) :
pqr p qr
theorem Avigad.Chapter3.ex1.or_imp (p : Prop) (q : Prop) (r : Prop) :
p qr (pr) (qr)
theorem Avigad.Chapter3.ex1.not_imp_o_and_not (p : Prop) (q : Prop) :
p ¬q¬(pq)
theorem Avigad.Chapter3.ex1.false_elim_self (p : Prop) (q : Prop) :
¬ppq
theorem Avigad.Chapter3.ex1.not_or_imp_imp (p : Prop) (q : Prop) :
¬p qpq
theorem Avigad.Chapter3.ex1.imp_imp_not_imp_not (p : Prop) (q : Prop) :
(pq)¬q¬p

Exercise 2 #

Prove the following identities. These require classical reasoning.

theorem Avigad.Chapter3.ex2.imp_or_mp (p : Prop) (r : Prop) (s : Prop) (hp : p) :
(pr s)(pr) (ps)
theorem Avigad.Chapter3.ex2.not_imp_mp (p : Prop) (q : Prop) :
¬(pq)p ¬q
theorem Avigad.Chapter3.ex2.not_or_of_imp (p : Prop) (q : Prop) :
(pq)¬p q
theorem Avigad.Chapter3.ex2.not_imp_not_imp_imp (p : Prop) (q : Prop) :
(¬q¬p)pq
theorem Avigad.Chapter3.ex2.imp_imp_imp (p : Prop) (q : Prop) :
((pq)p)p

Exercise 3 #

Prove ¬(p ↔ ¬p) without using classical logic.