@@ -30,23 +30,6 @@ private
30
30
A B : Set a
31
31
T S : Setoid a ℓ
32
32
33
- ------------------------------------------------------------------------
34
- -- Conversion functions
35
-
36
- Bijection⇒Inverse : Bijection S T → Inverse S T
37
- Bijection⇒Inverse bij = record
38
- { to = to
39
- ; from = section
40
- ; to-cong = cong
41
- ; from-cong = Symmetry.section-cong bijective Eq₁.refl Eq₂.sym Eq₂.trans
42
- ; inverse = section-inverseˡ
43
- , λ y≈to[x] → injective (Eq₂.trans (section-strictInverseˡ _) y≈to[x])
44
- }
45
- where open Bijection bij
46
-
47
- Bijection⇒Equivalence : Bijection T S → Equivalence T S
48
- Bijection⇒Equivalence = Inverse⇒Equivalence ∘ Bijection⇒Inverse
49
-
50
33
------------------------------------------------------------------------
51
34
-- Setoid properties
52
35
@@ -56,11 +39,28 @@ refl = Identity.bijection _
56
39
-- Now we *can* prove full symmetry as we now have a proof that
57
40
-- the witness produced by the surjection proof preserves equality
58
41
sym : Bijection S T → Bijection T S
59
- sym = Inverse⇒Bijection ∘ Symmetry.inverse ∘ Bijection⇒Inverse
42
+ sym = Symmetry.bijectionWithoutCongruence
60
43
61
44
trans : Trans (Bijection {a} {ℓ₁} {b} {ℓ₂}) (Bijection {b} {ℓ₂} {c} {ℓ₃}) Bijection
62
45
trans = Composition.bijection
63
46
47
+ ------------------------------------------------------------------------
48
+ -- Conversion functions
49
+
50
+ Bijection⇒Inverse : Bijection S T → Inverse S T
51
+ Bijection⇒Inverse bij = record
52
+ { to = to
53
+ ; from = Bijection.to (sym bij)
54
+ ; to-cong = cong
55
+ ; from-cong = Bijection.cong (sym bij)
56
+ ; inverse = inverseˡ , inverseʳ
57
+
58
+ }
59
+ where open Bijection bij
60
+
61
+ Bijection⇒Equivalence : Bijection T S → Equivalence T S
62
+ Bijection⇒Equivalence = Inverse⇒Equivalence ∘ Bijection⇒Inverse
63
+
64
64
------------------------------------------------------------------------
65
65
-- Propositional properties
66
66
0 commit comments