Jon Sterling, started 5th Oct 2022 This file contains some lemmas about precomposing embeddings onto homotopies. \begin{code} {-# OPTIONS --safe --without-K #-} module Modal.Homotopy where open import MLTT.Spartan open import UF.Base open import UF.Embeddings open import UF.Equiv open import UF.FunExt homotopy-precomp : {𝓤 𝓥 𝓦 : Universe} → {U : 𝓤 ̇ } {X : 𝓥 ̇ } {Y : 𝓦 ̇ } → (f g : X → Y) → (i : U → X) → f ∼ g → f ∘ i ∼ g ∘ i homotopy-precomp f g i h = h ∘ i \end{code} The following is a slight generalization of Lemma 5.1.18 of Egbert Rijke's doctoral dissertation. \begin{code} homotopy-precomp-by-embedding-is-equiv : {𝓤 𝓥 𝓦 : Universe} → (fe0 : funext 𝓥 𝓦) → (fe1 : funext 𝓤 𝓦) → (fe2 : funext (𝓥 ⊔ 𝓦) (𝓤 ⊔ 𝓦)) → (fe3 : funext (𝓥 ⊔ 𝓦) (𝓥 ⊔ 𝓦)) → {U : 𝓤 ̇ } {X : 𝓥 ̇ } {Y : 𝓦 ̇ } → (f g : X → Y) → (i : U → X) → (precomp-i-is-emb : is-embedding λ (- : X → Y) → - ∘ i) → is-equiv (homotopy-precomp f g i) homotopy-precomp-by-embedding-is-equiv fe0 fe1 fe2 fe3 f g i precomp-i-is-emb = transport is-equiv composite-is-precomp (eqtofun- composite) where composite : f ∼ g ≃ (f ∘ i ∼ g ∘ i) composite = ≃-sym (≃-funext fe0 f g) ● (ap (_∘ i) , embedding-gives-embedding' _ precomp-i-is-emb _ _) ● ≃-funext fe1 (f ∘ i) (g ∘ i) composite-is-precomp : eqtofun composite = homotopy-precomp f g i composite-is-precomp = dfunext fe2 λ h → eqtofun composite h =⟨ ap happly (aux h) ⟩ happly (dfunext fe1 (h ∘ i)) =⟨ happly-funext fe1 _ _ (h ∘ i) ⟩ homotopy-precomp f g i h ∎ where aux : (h : f ∼ g) → ap (_∘ i) (inverse _ (fe0 f g) h) = dfunext fe1 (h ∘ i) aux h = ap (_∘ i) (inverse (happly' f g) (fe0 f g) h) =⟨ ap (λ - → ap (_∘ i) (- h)) (inverse-of-happly-is-dfunext fe0 fe3 f g) ⟩ ap (_∘ i) (dfunext fe0 h) =⟨ ap-precomp-funext _ _ i h fe0 fe1 ⟩ dfunext fe1 (h ∘ i) ∎ \end{code}