Cavallo's trick
module synthetic-homotopy-theory.cavallos-trick where
Imports
open import foundation.dependent-pair-types open import foundation.functions open import foundation.homotopies open import foundation.identity-types open import foundation.sections open import foundation.universe-levels open import structured-types.pointed-homotopies open import structured-types.pointed-maps open import structured-types.pointed-types
Idea
Cavallo's trick is a way of upgrading an unpointed homotopy between pointed maps
to a pointed homotopy. Originally, this trick was formulated by Evan Cavallo for
homogeneous spaces, but it works as soon as the evaluation map (id ~ id) → Ω B
has a section.
Theorem
module _ {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) where cavallos-trick : (f g : A →∗ B) → sec (λ (H : id ~ id) → H (point-Pointed-Type B)) → (map-pointed-map A B f ~ map-pointed-map A B g) → f ~∗ g pr1 (cavallos-trick (f , refl) (g , q) (K , α) H) a = K (inv q ∙ inv (H (point-Pointed-Type A))) (f a) ∙ H a pr2 (cavallos-trick (f , refl) (g , q) (K , α) H) = ( ap ( concat' (f (point-Pointed-Type A)) (H (point-Pointed-Type A))) ( α (inv q ∙ inv (H (point-Pointed-Type A))))) ∙ ( ( assoc ( inv q) ( inv (H (point-Pointed-Type A))) ( H (point-Pointed-Type A))) ∙ ( ( ap ( concat (inv q) (g (point-Pointed-Type A))) ( left-inv (H (point-Pointed-Type A)))) ∙ ( right-unit)))
References
- Cavallo's trick was originally formalized in the cubical agda library.
- The above generalization was found by Buchholtz, Christensen, Rijke, and Taxerås Flaten, in Central H-spaces and banded types