@@ -116,6 +116,42 @@ module _
116
116
preserves-point-comp-pointed-map
117
117
( pointed-map-pointed-equiv f)
118
118
( pointed-map-pointed-equiv e)
119
+
120
+ _∘e∗_ : (B ≃∗ C) → (A ≃∗ B) → (A ≃∗ C)
121
+ _∘e∗_ = comp-pointed-equiv
122
+ ```
123
+
124
+ #### Pointed Equivalence Reasoning
125
+
126
+ The above allows use to use equaltional reasoning to construct pointed
127
+ equivalences
128
+
129
+ Equivalences can be constructed by equational reasoning in the following way:
130
+
131
+ ``` text
132
+ equivalence-reasoning
133
+ X ≃∗ Y by pointed-equiv-1
134
+ ≃∗ Z by pointed-equiv-2
135
+ ≃∗ V by pointed-equiv-3
136
+ ```
137
+
138
+ The equivalence constructed in this way is ` equiv-1 ∘e (equiv-2 ∘e equiv-3) ` ,
139
+ i.e., the equivivalence is associated fully to the right.
140
+
141
+ ``` agda
142
+ infixl 1 pointed-equivalence-reasoning_
143
+ infixl 0 step-pointed-equivalence-reasoning
144
+
145
+ pointed-equivalence-reasoning_ :
146
+ {l1 : Level} (X : Pointed-Type l1) → X ≃∗ X
147
+ pointed-equivalence-reasoning X = id-pointed-equiv
148
+
149
+ step-pointed-equivalence-reasoning :
150
+ {l1 l2 l3 : Level} {X : Pointed-Type l1} {Y : Pointed-Type l2} →
151
+ (X ≃∗ Y) → (Z : Pointed-Type l3) → (Y ≃∗ Z) → (X ≃∗ Z)
152
+ step-pointed-equivalence-reasoning e Z f = f ∘e∗ e
153
+
154
+ syntax step-pointed-equivalence-reasoning e Z f = e ≃∗ Z by f
119
155
```
120
156
121
157
### Pointed isomorphisms
0 commit comments