Chapter 3: Exercises
Prove the following identities, replacing the "sorry" placeholders with actual proofs.
variable (pp: Propqq: Propr :r: PropProp) -- commutativity of ∧ and ∨Prop: Type:p ∧p: Propq ↔q: Propq ∧q: Propp :=p: Propsorrysorry: p ∧ q ↔ q ∧ p:p ∨p: Propq ↔q: Propq ∨q: Propp :=p: Propsorry -- associativity of ∧ and ∨sorry: p ∨ q ↔ q ∨ p: (p ∧p: Propq) ∧q: Propr ↔r: Propp ∧ (p: Propq ∧q: Propr) :=r: Propsorrysorry: (p ∧ q) ∧ r ↔ p ∧ q ∧ r: (p ∨p: Propq) ∨q: Propr ↔r: Propp ∨ (p: Propq ∨q: Propr) :=r: Propsorry -- distributivitysorry: (p ∨ q) ∨ r ↔ p ∨ q ∨ r:p ∧ (p: Propq ∨q: Propr) ↔ (r: Propp ∧p: Propq) ∨ (q: Propp ∧p: Propr) :=r: Propsorrysorry: p ∧ (q ∨ r) ↔ p ∧ q ∨ p ∧ r:p ∨ (p: Propq ∧q: Propr) ↔ (r: Propp ∨p: Propq) ∧ (q: Propp ∨p: Propr) :=r: Propsorry -- other propertiessorry: p ∨ q ∧ r ↔ (p ∨ q) ∧ (p ∨ r): (p → (p: Propq →q: Propr)) ↔ (r: Propp ∧p: Propq →q: Propr) :=r: Propsorrysorry: p → q → r ↔ p ∧ q → r: ((p ∨p: Propq) →q: Propr) ↔ (r: Propp →p: Propr) ∧ (r: Propq →q: Propr) :=r: Propsorrysorry: p ∨ q → r ↔ (p → r) ∧ (q → r): ¬(p ∨p: Propq) ↔ ¬q: Propp ∧ ¬p: Propq :=q: Propsorrysorry: ¬(p ∨ q) ↔ ¬p ∧ ¬q: ¬p ∨ ¬p: Propq → ¬(q: Propp ∧p: Propq) :=q: Propsorrysorry: ¬p ∨ ¬q → ¬(p ∧ q): ¬(p ∧ ¬p: Propp) :=p: Propsorrysorry: ¬(p ∧ ¬p):p ∧ ¬p: Propq → ¬(q: Propp →p: Propq) :=q: Propsorrysorry: p ∧ ¬q → ¬(p → q): ¬p → (p: Propp →p: Propq) :=q: Propsorrysorry: ¬p → p → q: (¬p ∨p: Propq) → (q: Propp →p: Propq) :=q: Propsorrysorry: ¬p ∨ q → p → q:p ∨p: PropFalse ↔False: Propp :=p: Propsorrysorry: p ∨ False ↔ p:p ∧p: PropFalse ↔False: PropFalse :=False: Propsorrysorry: p ∧ False ↔ False: (p →p: Propq) → (¬q: Propq → ¬q: Propp) :=p: Propsorrysorry: (p → q) → ¬q → ¬p
Prove the following identities, replacing the "sorry" placeholders with actual proofs. These require classical reasoning.
variable (pp: Propqq: Propr :r: PropProp)Prop: Type: (p →p: Propq ∨q: Propr) → ((r: Propp →p: Propq) ∨ (q: Propp →p: Propr)) :=r: Propsorrysorry: (p → q ∨ r) → (p → q) ∨ (p → r): ¬(p ∧p: Propq) → ¬q: Propp ∨ ¬p: Propq :=q: Propsorrysorry: ¬(p ∧ q) → ¬p ∨ ¬q: ¬(p →p: Propq) →q: Propp ∧ ¬p: Propq :=q: Propsorrysorry: ¬(p → q) → p ∧ ¬q: (p →p: Propq) → (¬q: Propp ∨p: Propq) :=q: Propsorrysorry: (p → q) → ¬p ∨ q: (¬q → ¬q: Propp) → (p: Propp →p: Propq) :=q: Propsorrysorry: (¬q → ¬p) → p → q:p ∨ ¬p: Propp :=p: Propsorrysorry: p ∨ ¬p: (((p →p: Propq) →q: Propp) →p: Propp) :=p: Propsorrysorry: ((p → q) → p) → p
Prove ¬(p ↔ ¬p)
without using classical logic.