@@ -20,6 +20,7 @@ open import Function.Properties.Injection using (mkInjection)
2020open import Function.Properties.Surjection using (mkSurjection; ↠⇒⇔)
2121open import Function.Properties.Equivalence using (mkEquivalence; ⇔⇒⟶; ⇔⇒⟵)
2222open import Function.Properties.RightInverse using (mkRightInverse)
23+ import Function.Construct.Symmetry as Sym
2324open import Relation.Binary.Core using (_=[_]⇒_)
2425open import Relation.Binary.Bundles as B
2526open import Relation.Binary.Indexed.Heterogeneous
@@ -179,17 +180,17 @@ module _ where
179180 surj = strictlySurjective⇒surjective (I ×ₛ A) (J ×ₛ B) (Func.cong func) strictlySurj
180181
181182------------------------------------------------------------------------
182- -- LeftInverse
183+ -- RightInverse
183184
184185module _ where
185186 open RightInverse
186187 open Setoid
187188
188- left-inverse :
189+ rightInverse :
189190 (I↪J : I ↪ J) →
190191 (∀ {j} → RightInverse (A atₛ (from I↪J j)) (B atₛ j)) →
191192 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 =
193194 mkRightInverse equiv invʳ
194195 where
195196 equiv : Equivalence (I ×ₛ A) (J ×ₛ B)
@@ -201,6 +202,19 @@ module _ where
201202 invʳ : Inverseʳ (_≈_ (I ×ₛ A)) (_≈_ (J ×ₛ B)) (Equivalence.to equiv) (Equivalence.from equiv)
202203 invʳ = strictlyInverseʳ⇒inverseʳ (I ×ₛ A) (J ×ₛ B) (Equivalence.from-cong equiv) strictlyInvʳ
203204
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))
204218
205219------------------------------------------------------------------------
206220-- Inverses
@@ -252,3 +266,17 @@ module _ where
252266 invʳ : Inverseʳ (_≈_ (I ×ₛ A)) (_≈_ (J ×ₛ B)) to′ from′
253267 invʳ = strictlyInverseʳ⇒inverseʳ (I ×ₛ A) (J ×ₛ B) from′-cong strictlyInvʳ
254268
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