diff options
author | Chloe Brown <chloe.brown.00@outlook.com> | 2022-01-05 19:03:09 +0000 |
---|---|---|
committer | Chloe Brown <chloe.brown.00@outlook.com> | 2022-01-05 19:03:09 +0000 |
commit | 8f22ef8cccdbd2da07e889a4e53fc8b7c1ec6fdc (patch) | |
tree | 3fab034a6f393e055b0be314a238e51073a2e306 | |
parent | 6a6ce34aae3027a637abae567eede799806319d9 (diff) |
I: 4: e: show retracts are not unique for Setoids
-rw-r--r-- | src/CatTheory/Category/Instance/Properties/Setoids/Contradiction.agda | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/CatTheory/Category/Instance/Properties/Setoids/Contradiction.agda b/src/CatTheory/Category/Instance/Properties/Setoids/Contradiction.agda new file mode 100644 index 0000000..1a553d3 --- /dev/null +++ b/src/CatTheory/Category/Instance/Properties/Setoids/Contradiction.agda @@ -0,0 +1,44 @@ +{-# OPTIONS --without-K --safe #-} + +module CatTheory.Category.Instance.Properties.Setoids.Contradiction where + +open import Categories.Category using (Category) +open import Categories.Category.Instance.Setoids +import Categories.Morphism as M +open import Data.Bool using (Bool; true; false) +open import Data.Nat using (ℕ; suc) +open import Function.Equality using (_⟨$⟩_) +open import Function.Structures using (IsInjection) +open import Level using (0ℓ) +open import Relation.Binary.PropositionalEquality +open import Relation.Nullary using (¬_) +open import Relation.Nullary.Negation using (contradiction) + +module Monomorphisms where + open Category (Setoids 0ℓ 0ℓ) + open M (Setoids 0ℓ 0ℓ) + + f : setoid Bool ⇒ setoid ℕ + f = record { _⟨$⟩_ = λ { true → 0 ; false → 1 } ; cong = cong _ } + + g₁ : setoid ℕ ⇒ setoid Bool + g₁ = record { _⟨$⟩_ = λ { 0 → true ; 1 → false ; (suc (suc _)) → true } ; cong = cong _ } + + g₂ : setoid ℕ ⇒ setoid Bool + g₂ = record { _⟨$⟩_ = λ { 0 → true ; 1 → false ; (suc (suc _)) → false } ; cong = cong _ } + + g₁∘f≈id : g₁ RetractOf f + g₁∘f≈id {false} refl = refl + g₁∘f≈id {true} refl = refl + + g₂∘f≈id : g₂ RetractOf f + g₂∘f≈id {false} refl = refl + g₂∘f≈id {true} refl = refl + + g₁≉g₂ : ¬ g₁ ≈ g₂ + g₁≉g₂ g₁≈g₂ = contradiction true≡false (λ ()) + where + open ≡-Reasoning + + true≡false : true ≡ false + true≡false = g₁≈g₂ (refl {x = 3}) |