\import Homotopy.Pushout \import Homotopy.Space \import Homotopy.Suspension \import Logic \import Paths \class Connected0 \extends InhSpace | isConn0 (x y : E) : TruncP (x = y) \instance UnitConnected0 : Connected0 (\Sigma) | isInh => inP () | isConn0 _ _ => inP idp \instance PushoutConnected0 {A : InhSpace} {B C : Connected0} {f : A -> B} {g : A -> C} : Connected0 (PushoutData f g) | isInh => \case isInh \with { | inP b => inP (pinl b) } | isConn0 x y => \case isInh, \elim x, \elim y \with { | inP a, pinl b, pinl b' => TruncP.map (isConn0 b b') (pmap pinl) | inP a, pinl b, pinr c => \case isConn0 b (f a), isConn0 (g a) c \with { | inP p, inP q => inP (pmap pinl p *> path (pglue a) *> pmap pinr q) } | inP a, pinr c, pinl b => \case isConn0 c (g a), isConn0 (f a) b \with { | inP p, inP q => inP (pmap pinr p *> inv (path (pglue a)) *> pmap pinl q) } | inP a, pinr c, pinr c' => TruncP.map (isConn0 c c') (pmap pinr) }