open import Definition.Typed.Restrictions
open import Graded.Modality
module Definition.Typed.Properties
{ℓ} {M : Set ℓ}
{𝕄 : Modality M}
(R : Type-restrictions 𝕄)
where
open import Definition.Untyped M
open import Definition.Typed R
open import Tools.Fin
import Tools.PropositionalEquality as PE
open import Definition.Typed.Properties.Admissible.Bool R public
open import Definition.Typed.Properties.Admissible.Empty R public
open import Definition.Typed.Properties.Admissible.Equality R public
open import Definition.Typed.Properties.Admissible.Erased R public
open import Definition.Typed.Properties.Admissible.Identity R public
open import Definition.Typed.Properties.Admissible.Lift R public
open import Definition.Typed.Properties.Admissible.Nat R public
open import Definition.Typed.Properties.Admissible.Non-dependent R
public
open import Definition.Typed.Properties.Admissible.Pi R public
open import Definition.Typed.Properties.Admissible.Sigma R public
open import Definition.Typed.Properties.Admissible.Unit R public
open import Definition.Typed.Properties.Admissible.Var R public
open import Definition.Typed.Properties.Reduction R public
open import Definition.Typed.Properties.Well-formed R public
private variable
x : Fin _
Γ : Con Term _
A A′ B B′ t u : Term _
opaque
det∈ : x ∷ A ∈ Γ → x ∷ B ∈ Γ → A PE.≡ B
det∈ here here = PE.refl
det∈ (there x) (there y) = PE.cong wk1 (det∈ x y)
opaque
⊢∷-conv-PE : Γ ⊢ t ∷ A → A PE.≡ B → Γ ⊢ t ∷ B
⊢∷-conv-PE ⊢t PE.refl = ⊢t
opaque
⊢≡∷-conv-PE : Γ ⊢ t ≡ u ∷ A → A PE.≡ B → Γ ⊢ t ≡ u ∷ B
⊢≡∷-conv-PE ⊢t≡u PE.refl = ⊢t≡u
opaque
⊢⇒∷-conv-PE : Γ ⊢ t ⇒ u ∷ A → A PE.≡ B → Γ ⊢ t ⇒ u ∷ B
⊢⇒∷-conv-PE ⊢t⇒u PE.refl = ⊢t⇒u
opaque
⊢⇒*∷-conv-PE : Γ ⊢ t ⇒* u ∷ A → A PE.≡ B → Γ ⊢ t ⇒* u ∷ B
⊢⇒*∷-conv-PE ⊢t⇒u PE.refl = ⊢t⇒u
opaque
⊢-cong : Γ ⊢ A → A PE.≡ B → Γ ⊢ B
⊢-cong ⊢A PE.refl = ⊢A
opaque
⊢∷-cong : Γ ⊢ t ∷ A → t PE.≡ u → Γ ⊢ u ∷ A
⊢∷-cong ⊢t PE.refl = ⊢t
opaque
⊢≡-cong : Γ ⊢ A ≡ B → A PE.≡ A′ → B PE.≡ B′ → Γ ⊢ A′ ≡ B′
⊢≡-cong ⊢A≡B PE.refl PE.refl = ⊢A≡B
opaque
⊢≡-congˡ : Γ ⊢ A ≡ B → B PE.≡ B′ → Γ ⊢ A ≡ B′
⊢≡-congˡ ⊢A≡B PE.refl = ⊢A≡B
opaque
⊢≡-congʳ : Γ ⊢ A ≡ B → A PE.≡ A′ → Γ ⊢ A′ ≡ B
⊢≡-congʳ ⊢A≡B PE.refl = ⊢A≡B