Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Universal property of smash products #865

Merged
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/foundation-core/equality-dependent-pair-types.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,14 @@ module _

η-pair : (t : Σ A B) → (pair (pr1 t) (pr2 t)) = t
η-pair t = eq-pair-Σ refl refl

eq-base-Σ : {s t : Σ A B} → (s = t) → (pr1 s = pr1 t)
eq-base-Σ p = pr1 (pair-eq-Σ p)

dependent-eq-Σ :
{s t : Σ A B} → (p : s = t) →
dependent-identification B (eq-base-Σ p) (pr2 s) (pr2 t)
dependent-eq-Σ p = pr2 (pair-eq-Σ p)
maybemabeline marked this conversation as resolved.
Show resolved Hide resolved
```

### Lifting equality to the total space
Expand Down
15 changes: 15 additions & 0 deletions src/foundation/homotopies.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,14 @@ module _
map-compute-dependent-identification-eq-value f g p q r
pr2 (compute-dependent-identification-eq-value p q r) =
is-equiv-map-compute-dependent-identification-eq-value p q r

inv-map-compute-dependent-identification-eq-value :
{x y : A} (p : x = y) (q : eq-value f g x) (r : eq-value f g y) →
(tr (eq-value f g) p q = r) →
(((apd f p) ∙ r) = ((ap (tr B p) q) ∙ (apd g p)))
maybemabeline marked this conversation as resolved.
Show resolved Hide resolved
inv-map-compute-dependent-identification-eq-value p q r =
map-inv-equiv
( compute-dependent-identification-eq-value p q r)
```

### Computing dependent-identifications in the type family `eq-value` of ordinary functions
Expand Down Expand Up @@ -241,6 +249,13 @@ module _
map-compute-dependent-identification-eq-value-function f g p q q'
pr2 (compute-dependent-identification-eq-value-function p q q') =
is-equiv-map-compute-dependent-identification-eq-value-function p q q'

inv-map-compute-dependent-identification-eq-value-function :
{a0 a1 : A} (p : a0 = a1) (q : f a0 = g a0) (q' : f a1 = g a1) →
maybemabeline marked this conversation as resolved.
Show resolved Hide resolved
((tr (eq-value f g) p q) = q') → (((ap f p) ∙ q') = (q ∙ (ap g p)))
maybemabeline marked this conversation as resolved.
Show resolved Hide resolved
inv-map-compute-dependent-identification-eq-value-function p q q' =
map-inv-equiv
( compute-dependent-identification-eq-value-function p q q')
```

### Relation between between `compute-dependent-identification-eq-value-function` and `nat-htpy`
Expand Down
24 changes: 19 additions & 5 deletions src/structured-types/commuting-squares-of-pointed-maps.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ module structured-types.commuting-squares-of-pointed-maps where
<details><summary>Imports</summary>

```agda
open import foundation.commuting-squares-of-maps
open import foundation.function-types
open import foundation.universe-levels

open import structured-types.pointed-homotopies
Expand Down Expand Up @@ -35,12 +37,24 @@ between the pointedness preservation proofs.
## Definition

```agda
coherence-square-pointed-maps :
module _
{l1 l2 l3 l4 : Level}
{A : Pointed-Type l1} {B : Pointed-Type l2}
{C : Pointed-Type l3} {X : Pointed-Type l4}
(top : C →∗ B) (left : C →∗ A) (right : B →∗ X) (bottom : A →∗ X) →
UU (l3 ⊔ l4)
coherence-square-pointed-maps top left right bottom =
(bottom ∘∗ left) ~∗ (right ∘∗ top)
(top : C →∗ B) (left : C →∗ A) (right : B →∗ X) (bottom : A →∗ X)
where

coherence-square-pointed-maps : UU (l3 ⊔ l4)
coherence-square-pointed-maps =
(bottom ∘∗ left) ~∗ (right ∘∗ top)
maybemabeline marked this conversation as resolved.
Show resolved Hide resolved

coherence-square-maps-coherence-square-pointed-maps :
coherence-square-pointed-maps →
coherence-square-maps
( map-pointed-map top)
( map-pointed-map left)
( map-pointed-map right)
( map-pointed-map bottom)
coherence-square-maps-coherence-square-pointed-maps =
htpy-pointed-htpy (bottom ∘∗ left) (right ∘∗ top)
```
33 changes: 25 additions & 8 deletions src/structured-types/pointed-unit-type.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ open import foundation.identity-types
open import foundation.unit-type
open import foundation.universe-levels

open import structured-types.pointed-homotopies
open import structured-types.pointed-maps
open import structured-types.pointed-types
```
Expand All @@ -33,12 +34,28 @@ pr2 unit-Pointed-Type = star
## Properties

```agda
terminal-pointed-map : {l : Level} (X : Pointed-Type l) → X →∗ unit-Pointed-Type
pr1 (terminal-pointed-map X) _ = star
pr2 (terminal-pointed-map X) = refl

inclusion-point-Pointed-Type :
{l : Level} (X : Pointed-Type l) → unit-Pointed-Type →∗ X
pr1 (inclusion-point-Pointed-Type X) = point (point-Pointed-Type X)
pr2 (inclusion-point-Pointed-Type X) = refl
module _
{l : Level} (X : Pointed-Type l)
where

terminal-pointed-map : X →∗ unit-Pointed-Type
pr1 terminal-pointed-map _ = star
pr2 terminal-pointed-map = refl

map-terminal-pointed-map : ( type-Pointed-Type X) → unit
maybemabeline marked this conversation as resolved.
Show resolved Hide resolved
map-terminal-pointed-map =
map-pointed-map {A = X} {B = unit-Pointed-Type}
terminal-pointed-map

inclusion-point-Pointed-Type :
unit-Pointed-Type →∗ X
pr1 inclusion-point-Pointed-Type = point (point-Pointed-Type X)
pr2 inclusion-point-Pointed-Type = refl

is-initial-unit-Pointed-Type :
( f : unit-Pointed-Type →∗ X) → f ~∗ inclusion-point-Pointed-Type
pr1 (is-initial-unit-Pointed-Type f) _ =
preserves-point-pointed-map f
pr2 (is-initial-unit-Pointed-Type f) =
inv right-unit
maybemabeline marked this conversation as resolved.
Show resolved Hide resolved
```
39 changes: 39 additions & 0 deletions src/synthetic-homotopy-theory/pushouts-of-pointed-types.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,42 @@ module _
( preserves-point-pointed-map
( horizontal-pointed-map-cocone-Pointed-Type f g c))
```

### Computation with the cogap map for pointed types

```agda
module _
{ l1 l2 l3 l4 : Level}
{S : Pointed-Type l1} {A : Pointed-Type l2} {B : Pointed-Type l3}
( f : S →∗ A) (g : S →∗ B)
{ X : Pointed-Type l4} (c : type-cocone-Pointed-Type f g X)
where

compute-inl-cogap-Pointed-Type :
( x : type-Pointed-Type A) →
( map-cogap-Pointed-Type
( f)
( g)
( c)
( map-pointed-map (inl-pushout-Pointed-Type f g) x)) =
( horizontal-map-cocone-Pointed-Type f g c x)
compute-inl-cogap-Pointed-Type =
compute-inl-cogap
( map-pointed-map f)
( map-pointed-map g)
( cocone-type-cocone-Pointed-Type f g c)

compute-inr-cogap-Pointed-Type :
( y : type-Pointed-Type B) →
( map-cogap-Pointed-Type
( f)
( g)
( c)
( map-pointed-map (inr-pushout-Pointed-Type f g) y)) =
( vertical-map-cocone-Pointed-Type f g c y)
compute-inr-cogap-Pointed-Type =
compute-inr-cogap
( map-pointed-map f)
( map-pointed-map g)
( cocone-type-cocone-Pointed-Type f g c)
```
Loading