|
8 | 8 |
|
9 | 9 | module Relation.Unary.Properties where |
10 | 10 |
|
11 | | -open import Data.Product.Base as Product using (_×_; _,_; swap; proj₁; zip′) |
| 11 | +open import Data.Product.Base as Product using (_×_; _,_; -,_; swap; proj₁; zip′; curry) |
12 | 12 | open import Data.Sum.Base using (inj₁; inj₂) |
13 | 13 | open import Data.Unit.Base using (tt) |
14 | 14 | open import Function.Base using (id; _$_; _∘_; _∘₂_) |
@@ -52,6 +52,27 @@ U-Universal = λ _ → _ |
52 | 52 | ∁U-Empty : Empty {A = A} (∁ U) |
53 | 53 | ∁U-Empty = λ x x∈∁U → x∈∁U _ |
54 | 54 |
|
| 55 | +------------------------------------------------------------------------ |
| 56 | +-- De Morgan's laws |
| 57 | + |
| 58 | +¬∃⟨P⟩⇒Π[∁P] : ∀ {P : Pred A ℓ} → ¬ ∃⟨ P ⟩ → Π[ ∁ P ] |
| 59 | +¬∃⟨P⟩⇒Π[∁P] ¬sat = curry ¬sat |
| 60 | + |
| 61 | +¬∃⟨P⟩⇒∀[∁P] : ∀ {P : Pred A ℓ} → ¬ ∃⟨ P ⟩ → ∀[ ∁ P ] |
| 62 | +¬∃⟨P⟩⇒∀[∁P] ¬sat = curry ¬sat _ |
| 63 | + |
| 64 | +∃⟨∁P⟩⇒¬Π[P] : ∀ {P : Pred A ℓ} → ∃⟨ ∁ P ⟩ → ¬ Π[ P ] |
| 65 | +∃⟨∁P⟩⇒¬Π[P] (x , ¬Px) ΠP = ¬Px (ΠP x) |
| 66 | + |
| 67 | +∃⟨∁P⟩⇒¬∀[P] : ∀ {P : Pred A ℓ} → ∃⟨ ∁ P ⟩ → ¬ ∀[ P ] |
| 68 | +∃⟨∁P⟩⇒¬∀[P] (_ , ¬Px) ∀P = ¬Px ∀P |
| 69 | + |
| 70 | +Π[∁P]⇒¬∃[P] : ∀ {P : Pred A ℓ} → Π[ ∁ P ] → ¬ ∃⟨ P ⟩ |
| 71 | +Π[∁P]⇒¬∃[P] Π∁P (x , Px) = Π∁P x Px |
| 72 | + |
| 73 | +∀[∁P]⇒¬∃[P] : ∀ {P : Pred A ℓ} → ∀[ ∁ P ] → ¬ ∃⟨ P ⟩ |
| 74 | +∀[∁P]⇒¬∃[P] ∀∁P (_ , Px) = ∀∁P Px |
| 75 | + |
55 | 76 | ------------------------------------------------------------------------ |
56 | 77 | -- Subset properties |
57 | 78 |
|
|
0 commit comments