51 lines
1.8 KiB
Agda
51 lines
1.8 KiB
Agda
module 0Trinitarianism.Quest5Solutions where
|
|
|
|
open import Cubical.Foundations.Prelude renaming (subst to endPt ; transport to pathToFun)
|
|
open import Cubical.HITs.S1 using ( S¹ ; base ; loop )
|
|
open import Cubical.Foundations.Isomorphism renaming (Iso to _≅_)
|
|
open import Cubical.Foundations.Path
|
|
open import 1FundamentalGroup.Quest0Solutions
|
|
open import Cubical.Data.Bool
|
|
|
|
PathD : {A0 A1 : Type} (A : A0 ≡ A1) (x : A0) (y : A1) → Type
|
|
PathD A x y = pathToFun A x ≡ y
|
|
|
|
syntax PathD A x y = x ≡ y along A
|
|
|
|
outOfS¹P : (B : S¹ → Type) → (b : B base) → PathP (λ i → B (loop i)) b b → (x : S¹) → B x
|
|
outOfS¹P B b p base = b
|
|
outOfS¹P B b p (loop i) = p i
|
|
|
|
outOfS¹D : (B : S¹ → Type) → (b : B base) → b ≡ b along (λ i → B (loop i)) → (x : S¹) → B x
|
|
outOfS¹D B b p x = outOfS¹P B b (_≅_.inv (PathPIsoPath (λ i → B (loop i)) b b) p) x
|
|
|
|
-- example : (x : S¹) → doubleCover x → Bool
|
|
-- example = outOfS¹D (λ x → doubleCover x → Bool) (λ x → true)
|
|
-- (pathToFun (λ i → (doubleCover (loop i)) → Bool) (λ x → true)
|
|
-- ≡⟨ refl ⟩
|
|
-- pathToFun (λ i → flipPath i → Bool) (λ x → true)
|
|
-- ≡⟨ refl ⟩
|
|
-- (λ x → true)
|
|
-- ∎)
|
|
|
|
example : (x : S¹) → doubleCover x → doubleCover x
|
|
example base = Flip
|
|
example (loop i) = p i where
|
|
|
|
p : PathP (λ i → doubleCover (loop i) → doubleCover (loop i)) Flip Flip
|
|
p = {!!}
|
|
|
|
example' : (x : S¹) → doubleCover x → doubleCover x
|
|
example' = outOfS¹D (λ x → doubleCover x → doubleCover x) Flip
|
|
(
|
|
pathToFun (λ i → doubleCover (loop i) → doubleCover (loop i)) Flip
|
|
≡⟨ refl ⟩
|
|
pathToFun (λ i → flipPath i → flipPath i) Flip
|
|
≡⟨ funExt lem ⟩
|
|
Flip
|
|
∎) where
|
|
|
|
lem : (x : Bool) → pathToFun (λ i → flipPath i → flipPath i) Flip x ≡ Flip x
|
|
lem false = refl
|
|
lem true = refl
|