48 lines
1.5 KiB
Agda
48 lines
1.5 KiB
Agda
{-# OPTIONS --cubical #-}
|
||
-- Defines equality-principles for data-types from the standard library.
|
||
|
||
module Cat.Equality where
|
||
|
||
open import Level
|
||
open import Cubical
|
||
|
||
-- _[_≡_] = PathP
|
||
|
||
module Equality where
|
||
module Data where
|
||
module Product where
|
||
open import Data.Product
|
||
|
||
module _ {ℓa ℓb : Level} {A : Set ℓa} {B : A → Set ℓb} {a b : Σ A B}
|
||
(proj₁≡ : (λ _ → A) [ proj₁ a ≡ proj₁ b ])
|
||
(proj₂≡ : (λ i → B (proj₁≡ i)) [ proj₂ a ≡ proj₂ b ]) where
|
||
|
||
Σ≡ : a ≡ b
|
||
proj₁ (Σ≡ i) = proj₁≡ i
|
||
proj₂ (Σ≡ i) = proj₂≡ i
|
||
|
||
-- Remark 2.7.1: This theorem:
|
||
--
|
||
-- (x , u) ≡ (x , v) → u ≡ v
|
||
--
|
||
-- does *not* hold! We can only conclude that there *exists* `p : x ≡ x`
|
||
-- such that
|
||
--
|
||
-- p* u ≡ v
|
||
-- thm : isSet A → (∀ {a} → isSet (B a)) → isSet (Σ A B)
|
||
-- thm sA sB (x , y) (x' , y') p q = res
|
||
-- where
|
||
-- x≡x'0 : x ≡ x'
|
||
-- x≡x'0 = λ i → proj₁ (p i)
|
||
-- x≡x'1 : x ≡ x'
|
||
-- x≡x'1 = λ i → proj₁ (q i)
|
||
-- someP : x ≡ x'
|
||
-- someP = {!!}
|
||
-- tricky : {!y!} ≡ y'
|
||
-- tricky = {!!}
|
||
-- -- res' : (λ _ → Σ A B) [ (x , y) ≡ (x' , y') ]
|
||
-- res' : ({!!} , {!!}) ≡ ({!!} , {!!})
|
||
-- res' = {!!}
|
||
-- res : p ≡ q
|
||
-- res i = {!res'!}
|