12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455-------------------------------------------------------------------------- The Agda standard library---- Relationships between properties of functions where the equality-- over both the domain and codomain is assumed to be _≡_------------------------------------------------------------------------ {-# OPTIONS --cubical-compatible --safe #-} module Function.Consequences.Propositional {a b} {A : Set a} {B : Set b} where open import Relation.Binary.PropositionalEquality.Core using (_≡_; _≢_; cong)open import Relation.Binary.PropositionalEquality.Properties using (setoid)open import Function.Definitions using (StrictlySurjective; StrictlyInverseˡ; StrictlyInverseʳ; Inverseˡ ; Inverseʳ; Surjective)open import Relation.Nullary.Negation.Core using (contraposition) import Function.Consequences.Setoid (setoid A) (setoid B) as Setoid -------------------------------------------------------------------------- Re-export setoid properties open Setoid public hiding ( strictlySurjective⇒surjective ; strictlyInverseˡ⇒inverseˡ ; strictlyInverseʳ⇒inverseʳ ) -------------------------------------------------------------------------- Properties that rely on congruence private variable f : A → B f⁻¹ : B → A strictlySurjective⇒surjective : StrictlySurjective _≡_ f → Surjective _≡_ _≡_ fstrictlySurjective⇒surjective = Setoid.strictlySurjective⇒surjective (cong _) strictlyInverseˡ⇒inverseˡ : ∀ f → StrictlyInverseˡ _≡_ f f⁻¹ → Inverseˡ _≡_ _≡_ f f⁻¹strictlyInverseˡ⇒inverseˡ f = Setoid.strictlyInverseˡ⇒inverseˡ (cong _) strictlyInverseʳ⇒inverseʳ : ∀ f → StrictlyInverseʳ _≡_ f f⁻¹ → Inverseʳ _≡_ _≡_ f f⁻¹strictlyInverseʳ⇒inverseʳ f = Setoid.strictlyInverseʳ⇒inverseʳ (cong _)