Frederik Hanghøj Iversen
7d6db415a1
Henceforth all modules shall be placed under the top-level module-name `Cat` (at least until I've come up with a better name) Also fixes an issue caused by https://github.com/Saizan/cubical-demo/ redefining Sigma.
53 lines
1.4 KiB
Agda
53 lines
1.4 KiB
Agda
{-# OPTIONS --cubical #-}
|
||
|
||
module Category.Pathy where
|
||
|
||
open import Cubical.PathPrelude
|
||
|
||
{-
|
||
module _ {ℓ ℓ'} {A : Set ℓ} {x : A}
|
||
(P : ∀ y → x ≡ y → Set ℓ') (d : P x ((λ i → x))) where
|
||
pathJ' : (y : A) → (p : x ≡ y) → P y p
|
||
pathJ' _ p = transp (λ i → uncurry P (contrSingl p i)) d
|
||
|
||
pathJprop' : pathJ' _ refl ≡ d
|
||
pathJprop' i
|
||
= primComp (λ _ → P x refl) i (λ {j (i = i1) → d}) d
|
||
|
||
|
||
module _ {ℓ ℓ'} {A : Set ℓ}
|
||
(P : (x y : A) → x ≡ y → Set ℓ') (d : (x : A) → P x x refl) where
|
||
pathJ'' : (x y : A) → (p : x ≡ y) → P x y p
|
||
pathJ'' _ _ p = transp (λ i →
|
||
let
|
||
P' = uncurry P
|
||
q = (contrSingl p i)
|
||
in
|
||
{!uncurry (uncurry P)!} ) d
|
||
-}
|
||
|
||
module _ {ℓ ℓ'} {A : Set ℓ}
|
||
(C : (x y : A) → x ≡ y → Set ℓ')
|
||
(c : (x : A) → C x x refl) where
|
||
|
||
=-ind : (x y : A) → (p : x ≡ y) → C x y p
|
||
=-ind x y p = pathJ (C x) (c x) y p
|
||
|
||
module _ {ℓ ℓ' : Level} {A : Set ℓ} {P : A → Set ℓ} {x y : A} where
|
||
private
|
||
D : (x y : A) → (x ≡ y) → Set ℓ
|
||
D x y p = P x → P y
|
||
|
||
id : {ℓ : Level} → {A : Set ℓ} → A → A
|
||
id x = x
|
||
|
||
d : (x : A) → D x x refl
|
||
d x = id {A = P x}
|
||
|
||
-- the p refers to the third argument
|
||
liftP : x ≡ y → P x → P y
|
||
liftP p = =-ind D d x y p
|
||
|
||
-- lift' : (u : P x) → (p : x ≡ y) → (x , u) ≡ (y , liftP p u)
|
||
-- lift' u p = {!!}
|