Derivatives for Containers in Univalent Foundations
Cubical.Data.Empty.Properties
Initializing search
    phijor/derivatives
    • Overview
    • Library
    phijor/derivatives
    • Overview
      • Derivative.Bag
      • Derivative.Adjunction
      • Derivative.Basics.Sum
      • Derivative.Basics.Unit
      • Derivative.Basics.W
      • Derivative.Basics.Decidable
      • Derivative.Basics.Embedding
      • Derivative.Basics.Equiv
      • Derivative.Basics.Maybe
      • Derivative.Basics.Sigma
      • Derivative.Category
      • Derivative.ChainRule
      • Derivative.Container
      • Derivative.Derivative
      • Derivative.Indexed.Mu
      • Derivative.Indexed.ChainRule
      • Derivative.Indexed.Container
      • Derivative.Indexed.Derivative
      • Derivative.Indexed.MuRule
      • Derivative.Indexed.Univalence
      • Derivative.Isolated.Base
      • Derivative.Isolated
      • Derivative.Isolated.S1
      • Derivative.Isolated.Sum
      • Derivative.Isolated.W
      • Derivative.Isolated.DependentGrafting
      • Derivative.Isolated.Grafting
      • Derivative.Isolated.Maybe
      • Derivative.Isolated.Sigma
      • Derivative.Prelude
      • Derivative.Properties
      • Derivative.Remove

    Cubical.Data.Empty.Properties

    module Cubical.Data.Empty.Properties where
    
    open import Cubical.Foundations.Prelude
    open import Cubical.Foundations.Equiv
    open import Cubical.Foundations.Isomorphism
    
    open import Cubical.Data.Empty.Base
    
    isProp⊥ : isProp ⊥
    isProp⊥ ()
    
    isProp⊥* : ∀ {ℓ} → isProp {ℓ} ⊥*
    isProp⊥* _ ()
    
    isContr⊥→A : ∀ {ℓ} {A : Type ℓ} → isContr (⊥ → A)
    fst isContr⊥→A ()
    snd isContr⊥→A f i ()
    
    isContrΠ⊥ : ∀ {ℓ} {A : ⊥ → Type ℓ} → isContr ((x : ⊥) → A x)
    fst isContrΠ⊥ ()
    snd isContrΠ⊥ f i ()
    
    isContrΠ⊥* : ∀ {ℓ ℓ'} {A : ⊥* {ℓ} → Type ℓ'} → isContr ((x : ⊥*) → A x)
    fst isContrΠ⊥* ()
    snd isContrΠ⊥* f i ()
    
    uninhabEquiv : ∀ {ℓ ℓ'} {A : Type ℓ} {B : Type ℓ'}
      → (A → ⊥) → (B → ⊥) → A ≃ B
    uninhabEquiv ¬a ¬b = isoToEquiv isom
      where
      open Iso
      isom : Iso _ _
      isom .fun a = rec (¬a a)
      isom .inv b = rec (¬b b)
      isom .rightInv b = rec (¬b b)
      isom .leftInv a = rec (¬a a)
    
    Made with Material for MkDocs