-------------------------------------------------------------------------------- Ettore Aldrovandi, ealdrovandi@fsu.edu Started: November 2022 Revision: June 2023 -------------------------------------------------------------------------------- Port of [HoTT-Agda](https://github.com/HoTT/HoTT-Agda) `PathSeq` library to TypeTopology. \begin{code} {-# OPTIONS --without-K --safe #-} module PathSequences.Concat where open import MLTT.Spartan open import UF.Base open import PathSequences.Type \end{code} This module handles concatenation of path sequences. The developmenet is very close to the module `Concat` in the original repository, with a couple of extra items. \begin{code} _ββ‘_ : {X : π€ Μ } {x y z : X} β x β‘ y β y β‘ z β x β‘ z [] ββ‘ t = t (p ββ s) ββ‘ t = p ββ (s ββ‘ t) ββ‘-assoc : {X : π€ Μ } {x y z w : X} β (s : x β‘ y) (t : y β‘ z) (u : z β‘ w) β (s ββ‘ t) ββ‘ u οΌ s ββ‘ (t ββ‘ u) ββ‘-assoc [] t u = refl ββ‘-assoc (p ββ s) t u = ap (p ββ_) (ββ‘-assoc s t u) \end{code} The following is not in the original module, but it seems one should have a proof of associativity for the direct equality _οΌβ_ between path sequences. \begin{code} ββ‘-assoc-οΌβ : {X : π€ Μ } {x y z w : X} β (s : x β‘ y) (t : y β‘ z) (u : z β‘ w) β ((s ββ‘ t) ββ‘ u) οΌβ (s ββ‘ (t ββ‘ u)) ββ‘-assoc-οΌβ s t u = οΌβ-in (ap (Ξ» v β [ v β]) (ββ‘-assoc s t u)) \end{code} We see ββ‘-assoc is more fundamental. Resumingβ¦ \begin{code} []-ββ‘-right-neutral : {X : π€ Μ } {x y : X} β (s : x β‘ y) β s ββ‘ [] οΌ s []-ββ‘-right-neutral [] = refl []-ββ‘-right-neutral (p ββ s) = ap (p ββ_) ([]-ββ‘-right-neutral s) []-ββ‘-right-neutral-οΌβ : {X : π€ Μ } {x y : X} β (s : x β‘ y) β s ββ‘ [] οΌβ s []-ββ‘-right-neutral-οΌβ s = οΌβ-in (ap (Ξ» v β [ v β]) ([]-ββ‘-right-neutral s)) _ββΉ_ : {X : π€ Μ } {x y z : X} β x β‘ y β y οΌ z β x β‘ z s ββΉ p = s ββ‘ (p ββ) β‘-to-οΌ-hom : {X : π€ Μ } {x y z : X} β (s : x β‘ y) (t : y β‘ z) β ([ s β]) β ([ t β]) οΌ [ (s ββ‘ t) β] β‘-to-οΌ-hom [] t = refl-left-neutral β‘-to-οΌ-hom (p ββ s) [] = [ (p ββ s) β] β [ [] β] οΌβ¨ refl-right-neutral [ (p ββ s) β] β»ΒΉ β© [ (p ββ s) β] οΌβ¨ ap (Ξ» v β [ v β]) Ο β© [ (p ββ s ββ‘ []) β] β where Ο = ([]-ββ‘-right-neutral (p ββ s)) β»ΒΉ β‘-to-οΌ-hom (p ββ s) (q ββ t) = [ (p ββ s) β] β [ (q ββ t) β] οΌβ¨ refl β© (p β [ s β]) β [ (q ββ t) β] οΌβ¨ βassoc p [ s β] [ q ββ t β] β© p β ([ s β] β [ q ββ t β]) οΌβ¨ ap (p β_) (β‘-to-οΌ-hom s (q ββ t)) β© p β [ s ββ‘ (q ββ t) β] οΌβ¨ refl β© [ p ββ s ββ‘ q ββ t β] β [β]-hom = β‘-to-οΌ-hom \end{code} Fixities \begin{code} infixr 80 _ββ‘_ infixl 80 _ββΉ_ \end{code}