summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChloe Brown <chloe.brown.00@outlook.com>2022-01-05 19:03:09 +0000
committerChloe Brown <chloe.brown.00@outlook.com>2022-01-05 19:03:09 +0000
commit8f22ef8cccdbd2da07e889a4e53fc8b7c1ec6fdc (patch)
tree3fab034a6f393e055b0be314a238e51073a2e306
parent6a6ce34aae3027a637abae567eede799806319d9 (diff)
I: 4: e: show retracts are not unique for Setoids
-rw-r--r--src/CatTheory/Category/Instance/Properties/Setoids/Contradiction.agda44
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})