@@ -20,6 +20,7 @@ open import Function.Properties.Injection using (mkInjection)
20
20
open import Function.Properties.Surjection using (mkSurjection; ↠⇒⇔)
21
21
open import Function.Properties.Equivalence using (mkEquivalence; ⇔⇒⟶; ⇔⇒⟵)
22
22
open import Function.Properties.RightInverse using (mkRightInverse)
23
+ import Function.Construct.Symmetry as Sym
23
24
open import Relation.Binary.Core using (_=[_]⇒_)
24
25
open import Relation.Binary.Bundles as B
25
26
open import Relation.Binary.Indexed.Heterogeneous
@@ -179,17 +180,17 @@ module _ where
179
180
surj = strictlySurjective⇒surjective (I ×ₛ A) (J ×ₛ B) (Func.cong func) strictlySurj
180
181
181
182
------------------------------------------------------------------------
182
- -- LeftInverse
183
+ -- RightInverse
183
184
184
185
module _ where
185
186
open RightInverse
186
187
open Setoid
187
188
188
- left-inverse :
189
+ rightInverse :
189
190
(I↪J : I ↪ J) →
190
191
(∀ {j} → RightInverse (A atₛ (from I↪J j)) (B atₛ j)) →
191
192
RightInverse (I ×ₛ A) (J ×ₛ B)
192
- left-inverse {I = I} {J = J} {A = A} {B = B} I↪J A↪B =
193
+ rightInverse {I = I} {J = J} {A = A} {B = B} I↪J A↪B =
193
194
mkRightInverse equiv invʳ
194
195
where
195
196
equiv : Equivalence (I ×ₛ A) (J ×ₛ B)
@@ -201,6 +202,19 @@ module _ where
201
202
invʳ : Inverseʳ (_≈_ (I ×ₛ A)) (_≈_ (J ×ₛ B)) (Equivalence.to equiv) (Equivalence.from equiv)
202
203
invʳ = strictlyInverseʳ⇒inverseʳ (I ×ₛ A) (J ×ₛ B) (Equivalence.from-cong equiv) strictlyInvʳ
203
204
205
+ ------------------------------------------------------------------------
206
+ -- LeftInverse
207
+
208
+ module _ where
209
+ open LeftInverse
210
+ open Setoid
211
+
212
+ leftInverse :
213
+ (I↩J : I ↩ J) →
214
+ (∀ {i} → LeftInverse (A atₛ i) (B atₛ (to I↩J i))) →
215
+ LeftInverse (I ×ₛ A) (J ×ₛ B)
216
+ leftInverse {I = I} {J = J} {A = A} {B = B} I↩J A↩B =
217
+ Sym.leftInverse (rightInverse (Sym.rightInverse I↩J) (Sym.rightInverse A↩B))
204
218
205
219
------------------------------------------------------------------------
206
220
-- Inverses
@@ -252,3 +266,17 @@ module _ where
252
266
invʳ : Inverseʳ (_≈_ (I ×ₛ A)) (_≈_ (J ×ₛ B)) to′ from′
253
267
invʳ = strictlyInverseʳ⇒inverseʳ (I ×ₛ A) (J ×ₛ B) from′-cong strictlyInvʳ
254
268
269
+
270
+ ------------------------------------------------------------------------
271
+ -- DEPRECATED NAMES
272
+ ------------------------------------------------------------------------
273
+ -- Please use the new names as continuing support for the old names is
274
+ -- not guaranteed.
275
+
276
+ -- Version 2.3
277
+
278
+ left-inverse = rightInverse
279
+ {-# WARNING_ON_USAGE left-inverse
280
+ "Warning: left-inverse was deprecated in v2.3.
281
+ Please use rightInverse or leftInverse instead."
282
+ #-}
0 commit comments