{-# OPTIONS --without-K #-}
module Util.HoTT.Univalence.Beta where
open import Util.HoTT.Equiv
open import Util.HoTT.Equiv.Induction
open import Util.HoTT.Univalence.Axiom
open import Util.Prelude
open import Util.Relation.Binary.PropositionalEquality using
( Σ-≡⁻ ; cast )
private
variable
α β γ : Level
A B C : Set α
≃→≡-β : ≃→≡ (≃-refl {A = A}) ≡ refl
≃→≡-β = ≃→≡∘≡→≃ refl
cast-≃→≡ : ∀ (A≃B : A ≃ B) {x}
→ cast (≃→≡ A≃B) x ≡ A≃B .forth x
cast-≃→≡ A≃B {x}
= J-≃ (λ A B A≃B → ∀ x → cast (≃→≡ A≃B) x ≡ A≃B .forth x)
(λ A x → subst (λ p → cast p x ≡ x) (sym ≃→≡-β) refl) A≃B x
cast-≅→≡ : ∀ (A≅B : A ≅ B) {x}
→ cast (≅→≡ A≅B) x ≡ A≅B .forth x
cast-≅→≡ = cast-≃→≡ ∘ ≅→≃