You can open the namespaces

This commit is contained in:
pingu 2025-01-30 20:04:53 +01:00
parent e9a3863eaf
commit 309f12da6f

View File

@ -1,3 +1,5 @@
open Or
open False renaming elim → negelim
variable (p q r : Prop) variable (p q r : Prop)
-- commutativity of ∧ and -- commutativity of ∧ and
@ -6,11 +8,11 @@ example : p ∧ q ↔ q ∧ p :=
example : p q ↔ q p := example : p q ↔ q p :=
⟨λ ⟨λ
| Or.inl p => Or.inr p | inl p => inr p
| Or.inr q => Or.inl q, | inr q => inl q,
λ λ
| Or.inl q => Or.inr q | inl q => inr q
| Or.inr p => Or.inl p⟩ | inr p => inl p⟩
-- associativity of ∧ and -- associativity of ∧ and
example : (p ∧ q) ∧ r ↔ p ∧ (q ∧ r) := example : (p ∧ q) ∧ r ↔ p ∧ (q ∧ r) :=
@ -18,31 +20,31 @@ example : (p ∧ q) ∧ r ↔ p ∧ (q ∧ r) :=
example : (p q) r ↔ p (q r) := example : (p q) r ↔ p (q r) :=
⟨λ ⟨λ
| Or.inr r => Or.inr (Or.inr r) | inr r => inr (inr r)
| Or.inl (Or.inr q) => Or.inr (Or.inl q) | inl (inr q) => inr (inl q)
| Or.inl (Or.inl p) => Or.inl p, | inl (inl p) => inl p,
λ λ
| Or.inl p => Or.inl (Or.inl p) | inl p => inl (inl p)
| Or.inr (Or.inl q) => Or.inl (Or.inr q) | inr (inl q) => inl (inr q)
| Or.inr (Or.inr r) => Or.inr r⟩ | inr (inr r) => inr r⟩
-- distributivity -- distributivity
example : p ∧ (q r) ↔ (p ∧ q) (p ∧ r) := example : p ∧ (q r) ↔ (p ∧ q) (p ∧ r) :=
⟨λ ⟨λ
| ⟨p, Or.inl q⟩ => Or.inl ⟨p,q⟩ | ⟨p, inl q⟩ => inl ⟨p,q⟩
| ⟨p, Or.inr r⟩ => Or.inr ⟨p,r⟩, | ⟨p, inr r⟩ => inr ⟨p,r⟩,
λ λ
| Or.inl ⟨p,q⟩ => ⟨p,Or.inl q⟩ | inl ⟨p,q⟩ => ⟨p,inl q⟩
| Or.inr ⟨p,r⟩ => ⟨p,Or.inr r⟩⟩ | inr ⟨p,r⟩ => ⟨p,inr r⟩⟩
example : p (q ∧ r) ↔ (p q) ∧ (p r) := example : p (q ∧ r) ↔ (p q) ∧ (p r) :=
⟨λ ⟨λ
| Or.inl p => ⟨Or.inl p, Or.inl p⟩ | inl p => ⟨inl p, inl p⟩
| Or.inr ⟨q,r⟩ => ⟨Or.inr q, Or.inr r⟩, | inr ⟨q,r⟩ => ⟨inr q, inr r⟩,
λ λ
| ⟨Or.inr q, Or.inr r⟩ => Or.inr ⟨q,r⟩ | ⟨inr q, inr r⟩ => inr ⟨q,r⟩
| ⟨Or.inl p, _⟩ => Or.inl p | ⟨inl p, _⟩ => inl p
| ⟨ _, Or.inl p⟩ => Or.inl p⟩ | ⟨ _, inl p⟩ => inl p⟩
-- other properties -- other properties
example : (p → (q → r)) ↔ (p ∧ q → r) := example : (p → (q → r)) ↔ (p ∧ q → r) :=
@ -50,20 +52,20 @@ example : (p → (q → r)) ↔ (p ∧ q → r) :=
example : ((p q) → r) ↔ (p → r) ∧ (q → r) := example : ((p q) → r) ↔ (p → r) ∧ (q → r) :=
λ f => ⟨λ p => f (Or.inl p), λ q => f (Or.inr q)⟩, λ f => ⟨λ p => f (inl p), λ q => f (inr q)⟩,
λ λ
|⟨f, _⟩, Or.inl p => f p |⟨f, _⟩, inl p => f p
|⟨_, g⟩, Or.inr q => g q⟩ |⟨_, g⟩, inr q => g q⟩
example : ¬(p q) ↔ ¬p ∧ ¬q := example : ¬(p q) ↔ ¬p ∧ ¬q :=
⟨λ f => ⟨λ p => f (Or.inl p), λ q => f (Or.inr q)⟩, ⟨λ f => ⟨λ p => f (inl p), λ q => f (inr q)⟩,
λ λ
| ⟨np, _⟩, Or.inl p => np p | ⟨np, _⟩, inl p => np p
| ⟨_ ,nq⟩, Or.inr q => nq q⟩ | ⟨_ ,nq⟩, inr q => nq q⟩
example : ¬p ¬q → ¬(p ∧ q) example : ¬p ¬q → ¬(p ∧ q)
| Or.inl np, ⟨p,_⟩ => np p | inl np, ⟨p,_⟩ => np p
| Or.inr nq, ⟨_,q⟩ => nq q | inr nq, ⟨_,q⟩ => nq q
example : ¬(p ∧ ¬p) := example : ¬(p ∧ ¬p) :=
λ ⟨p,np⟩ => np p λ ⟨p,np⟩ => np p
@ -75,14 +77,14 @@ example : ¬p → (p → q) :=
λ np p => absurd p np λ np p => absurd p np
example : (¬p q) → (p → q) example : (¬p q) → (p → q)
| (Or.inl np), p => absurd p np | (inl np), p => absurd p np
| (Or.inr q), _ => q | (inr q), _ => q
example : p False ↔ p := example : p False ↔ p :=
⟨λ h => Or.elim h id False.elim, λ p => Or.inl p⟩ ⟨λ h => elim h id negelim, λ p => inl p⟩
example : p ∧ False ↔ False := example : p ∧ False ↔ False :=
⟨λ ⟨_,f⟩ => f, λ f => False.elim f⟩ ⟨λ ⟨_,f⟩ => f, λ f => negelim f⟩
example : (p → q) → (¬q → ¬p) := example : (p → q) → (¬q → ¬p) :=
λ f nq p => absurd (f p) nq λ f nq p => absurd (f p) nq