open import Definition.Typed.Restrictions
open import Graded.Modality
module Definition.Typed.EqualityRelation
{ℓ} {M : Set ℓ}
{𝕄 : Modality M}
(R : Type-restrictions 𝕄)
where
open Type-restrictions R
open import Definition.Untyped M
open import Definition.Untyped.Sup R
open import Definition.Untyped.Whnf M type-variant
import Definition.Untyped.Erased 𝕄 as Erased
open import Definition.Typed R
open import Definition.Typed.Properties R
open import Definition.Typed.Weakening R as W using (_»_∷ʷ_⊇_)
open import Definition.Typed.Weakening.Definition R
open import Definition.Typed.Well-formed R
open import Tools.Fin
open import Tools.Function
open import Tools.Level hiding (Level; _⊔_; Lift)
open import Tools.Nat
open import Tools.Product as Σ
import Tools.PropositionalEquality as PE
open import Tools.Relation
private
variable
p q q′ r : M
δ n n′ : Nat
∇ : DCon (Term 0) n
∇′ : DCon (Term 0) n′
Γ : Cons _ _
Δ Η : Con _ _
ρ : Wk n′ n
A A₁ A₂ A′ B B₁ B₂ B′ C : Term n
a a′ b b′ e e′ : Term n
k l l₁ l₂ l′ m t t₁ t₂ u u₁ u₂ v v₁ v₂ w₁ w₂ : Term n
s : Strength
bm : BinderMode
record Equality-relations
(_⊢_≅_ : ∀ {δ n} → Cons δ n → (_ _ : Term n) → Set ℓ)
(_⊢_≅_∷_ : ∀ {δ n} → Cons δ n → (_ _ _ : Term n) → Set ℓ)
(_⊢_≅_∷Level : ∀ {δ n} → Cons δ n → (_ _ : Term n) → Set ℓ)
(_⊢_~_∷_ : ∀ {δ n} → Cons δ n → (t u A : Term n) → Set ℓ)
(Var-included : Set ℓ) :
Set ℓ where
no-eta-equality
infix 4 _⊢≅_
_⊢≅_ : Cons δ n → Term n → Set ℓ
Γ ⊢≅ A = Γ ⊢ A ≅ A
infix 4 _⊢≅_∷_
_⊢≅_∷_ : Cons δ n → Term n → Term n → Set ℓ
Γ ⊢≅ t ∷ A = Γ ⊢ t ≅ t ∷ A
infix 4 _⊢~_∷_
_⊢~_∷_ : Cons δ n → Term n → Term n → Set ℓ
Γ ⊢~ t ∷ A = Γ ⊢ t ~ t ∷ A
field
Var-included? : Dec Var-included
Equality-reflection-allowed→¬Var-included :
Equality-reflection → ¬ Var-included
⊢≡→⊢≅ :
¬ Var-included →
Γ ⊢ A ≡ B → Γ ⊢ A ≅ B
⊢≡∷→⊢≅∷ :
¬ Var-included →
Γ ⊢ t ≡ u ∷ A → Γ ⊢ t ≅ u ∷ A
~-to-≅ₜ : Γ ⊢ t ~ u ∷ A
→ Γ ⊢ t ≅ u ∷ A
⊢≅∷→⊢≅∷L : Γ ⊢ l₁ ≅ l₂ ∷ Level
→ Γ ⊢ l₁ ≅ l₂ ∷Level
≅-eq : Γ ⊢ A ≅ B
→ Γ ⊢ A ≡ B
≅ₜ-eq : Γ ⊢ t ≅ u ∷ A
→ Γ ⊢ t ≡ u ∷ A
⊢≅∷L→⊢≡∷L : Γ ⊢ l₁ ≅ l₂ ∷Level
→ Γ ⊢ l₁ ≡ l₂ ∷Level
Level-literal→⊢≅∷L : ¬ Level-allowed
→ ⊢ Γ
→ Level-literal l
→ Γ ⊢ l ≅ l ∷Level
⊢≅∷L→⊢≅∷ : Level-allowed
→ Γ ⊢ l₁ ≅ l₂ ∷Level
→ Γ ⊢ l₁ ≅ l₂ ∷ Level
≅-univ : Γ ⊢ A ≅ B ∷ U l
→ Γ ⊢ A ≅ B
≅-sym : Γ ⊢ A ≅ B → Γ ⊢ B ≅ A
≅ₜ-sym : Γ ⊢ t ≅ u ∷ A → Γ ⊢ u ≅ t ∷ A
~-sym : Γ ⊢ t ~ u ∷ A → Γ ⊢ u ~ t ∷ A
≅-trans : Γ ⊢ A ≅ B → Γ ⊢ B ≅ C → Γ ⊢ A ≅ C
≅ₜ-trans : Γ ⊢ t ≅ u ∷ A → Γ ⊢ u ≅ v ∷ A → Γ ⊢ t ≅ v ∷ A
~-trans : Γ ⊢ t ~ u ∷ A → Γ ⊢ u ~ v ∷ A → Γ ⊢ t ~ v ∷ A
≅-conv : Γ ⊢ t ≅ u ∷ A → Γ ⊢ A ≡ B → Γ ⊢ t ≅ u ∷ B
~-conv : Γ ⊢ t ~ u ∷ A → Γ ⊢ A ≡ B → Γ ⊢ t ~ u ∷ B
≅-wk : ∇ » ρ ∷ʷ Η ⊇ Δ
→ (∇ » Δ) ⊢ A ≅ B
→ (∇ » Η) ⊢ wk ρ A ≅ wk ρ B
≅ₜ-wk : ∇ » ρ ∷ʷ Η ⊇ Δ
→ (∇ » Δ) ⊢ t ≅ u ∷ A
→ (∇ » Η) ⊢ wk ρ t ≅ wk ρ u ∷ wk ρ A
wk-⊢≅∷L : ∇ » ρ ∷ʷ Η ⊇ Δ
→ (∇ » Δ) ⊢ t ≅ u ∷Level
→ (∇ » Η) ⊢ wk ρ t ≅ wk ρ u ∷Level
~-wk : ∇ » ρ ∷ʷ Η ⊇ Δ
→ (∇ » Δ) ⊢ t ~ u ∷ A
→ (∇ » Η) ⊢ wk ρ t ~ wk ρ u ∷ wk ρ A
≅-defn-wk : » ∇′ ⊇ ∇
→ (∇ » Δ) ⊢ A ≅ B
→ (∇′ » Δ) ⊢ A ≅ B
≅ₜ-defn-wk : » ∇′ ⊇ ∇
→ (∇ » Δ) ⊢ t ≅ u ∷ A
→ (∇′ » Δ) ⊢ t ≅ u ∷ A
~-defn-wk : » ∇′ ⊇ ∇
→ (∇ » Δ) ⊢ t ~ u ∷ A
→ (∇′ » Δ) ⊢ t ~ u ∷ A
≅-red : Γ ⊢ A ↘ A′
→ Γ ⊢ B ↘ B′
→ Γ ⊢ A′ ≅ B′
→ Γ ⊢ A ≅ B
≅ₜ-red : Γ ⊢ A ↘ B
→ Γ ⊢ a ↘ a′ ∷ B
→ Γ ⊢ b ↘ b′ ∷ B
→ Γ ⊢ a′ ≅ b′ ∷ B
→ Γ ⊢ a ≅ b ∷ A
≅ₜ-Levelrefl : ⊢ Γ → Level-is-small → Γ ⊢≅ Level ∷ U zeroᵘ
≅-Levelrefl : Level-allowed → ⊢ Γ → Γ ⊢≅ Level
≅ₜ-zeroᵘrefl : Level-allowed → ⊢ Γ → Γ ⊢≅ zeroᵘ ∷ Level
≅ₜ-sucᵘ-cong : Γ ⊢ t ≅ u ∷ Level → Γ ⊢ sucᵘ t ≅ sucᵘ u ∷ Level
≅ₜ-supᵘ-cong
: Γ ⊢ t₁ ≅ t₂ ∷ Level
→ Γ ⊢ u₁ ≅ u₂ ∷ Level
→ Γ ⊢ t₁ supᵘ u₁ ≅ t₂ supᵘ u₂ ∷ Level
≅ₜ-supᵘ-zeroʳ
: Γ ⊢≅ t ∷ Level
→ Γ ⊢ t supᵘ zeroᵘ ≅ t ∷ Level
≅ₜ-supᵘ-assoc
: Γ ⊢≅ t ∷ Level
→ Γ ⊢≅ u ∷ Level
→ Γ ⊢≅ v ∷ Level
→ Γ ⊢ (t supᵘ u) supᵘ v ≅ t supᵘ (u supᵘ v) ∷ Level
≅ₜ-supᵘ-comm
: Γ ⊢≅ t ∷ Level
→ Γ ⊢≅ u ∷ Level
→ Γ ⊢ t supᵘ u ≅ u supᵘ t ∷ Level
≅ₜ-supᵘ-idem
: Γ ⊢≅ t ∷ Level
→ Γ ⊢ t supᵘ t ≅ t ∷ Level
≅ₜ-supᵘ-sub
: Γ ⊢≅ t ∷ Level
→ Γ ⊢ t supᵘ sucᵘ t ≅ sucᵘ t ∷ Level
≅ₜ-U-cong : Γ ⊢ l ≅ k ∷Level → Γ ⊢ U l ≅ U k ∷ U (sucᵘ l)
≅-Lift-cong
: Γ ⊢ l ≅ k ∷Level
→ Γ ⊢ A ≅ B
→ Γ ⊢ Lift l A ≅ Lift k B
≅ₜ-Lift-cong
: Γ ⊢ l ≅ k ∷Level
→ Γ ⊢ A ≅ B ∷ U l₁
→ Γ ⊢ Lift l A ≅ Lift k B ∷ U (l₁ supᵘₗ l)
≅-Lift-η : Γ ⊢ t ∷ Lift k A
→ Γ ⊢ u ∷ Lift k A
→ Whnf (Γ .defs) t
→ Whnf (Γ .defs) u
→ Γ ⊢ lower t ≅ lower u ∷ A
→ Γ ⊢ t ≅ u ∷ Lift k A
≅ₜ-ℕrefl : ⊢ Γ → Γ ⊢≅ ℕ ∷ U zeroᵘ
≅ₜ-Emptyrefl : ⊢ Γ → Γ ⊢≅ Empty ∷ U zeroᵘ
≅ₜ-Unit-refl : ⊢ Γ → Unit-allowed s → Γ ⊢≅ Unit s ∷ U zeroᵘ
≅ₜ-η-unit : Γ ⊢ e ∷ Unit s
→ Γ ⊢ e′ ∷ Unit s
→ Unit-with-η s
→ Γ ⊢ e ≅ e′ ∷ Unit s
≅-ΠΣ-cong : ∀ {F G H E}
→ Γ ⊢ F ≅ H
→ Γ »∙ F ⊢ G ≅ E
→ ΠΣ-allowed bm p q
→ Γ ⊢ ΠΣ⟨ bm ⟩ p , q ▷ F ▹ G ≅ ΠΣ⟨ bm ⟩ p , q ▷ H ▹ E
≅ₜ-ΠΣ-cong
: ∀ {F G H E}
→ Γ ⊢ l ∷Level
→ Γ ⊢ F ≅ H ∷ U l
→ Γ »∙ F ⊢ G ≅ E ∷ U (wk1 l)
→ ΠΣ-allowed bm p q
→ Γ ⊢ ΠΣ⟨ bm ⟩ p , q ▷ F ▹ G ≅ ΠΣ⟨ bm ⟩ p , q ▷ H ▹ E ∷
U l
≅ₜ-zerorefl : ⊢ Γ → Γ ⊢≅ zero ∷ ℕ
≅-suc-cong : ∀ {m n} → Γ ⊢ m ≅ n ∷ ℕ → Γ ⊢ suc m ≅ suc n ∷ ℕ
≅-prod-cong : ∀ {F G t t′ u u′}
→ Γ »∙ F ⊢ G
→ Γ ⊢ t ≅ t′ ∷ F
→ Γ ⊢ u ≅ u′ ∷ G [ t ]₀
→ Σʷ-allowed p q
→ Γ ⊢ prodʷ p t u ≅ prodʷ p t′ u′ ∷ Σʷ p , q ▷ F ▹ G
≅-η-eq : ∀ {f g F G}
→ Γ ⊢ f ∷ Π p , q ▷ F ▹ G
→ Γ ⊢ g ∷ Π p , q ▷ F ▹ G
→ Function⁺ (Γ .defs) f
→ Function⁺ (Γ .defs) g
→ Γ »∙ F ⊢ wk1 f ∘⟨ p ⟩ var x0 ≅ wk1 g ∘⟨ p ⟩ var x0 ∷ G
→ Γ ⊢ f ≅ g ∷ Π p , q ▷ F ▹ G
≅-Σ-η : ∀ {r s F G}
→ Γ ⊢ r ∷ Σˢ p , q ▷ F ▹ G
→ Γ ⊢ s ∷ Σˢ p , q ▷ F ▹ G
→ Product⁺ (Γ .defs) r
→ Product⁺ (Γ .defs) s
→ Γ ⊢ fst p r ≅ fst p s ∷ F
→ Γ ⊢ snd p r ≅ snd p s ∷ G [ fst p r ]₀
→ Γ ⊢ r ≅ s ∷ Σˢ p , q ▷ F ▹ G
~-var : ∀ {x A} → Γ ⊢ var x ∷ A → Γ ⊢~ var x ∷ A
~-defn : ∀ {α A A′}
→ Γ ⊢ defn α ∷ A
→ α ↦⊘∷ A′ ∈ Γ .defs
→ Γ ⊢~ defn α ∷ A
~-lower
: Γ ⊢ t ~ u ∷ Lift l₂ A
→ Γ ⊢ lower t ~ lower u ∷ A
~-app : ∀ {a b f g F G}
→ Γ ⊢ f ~ g ∷ Π p , q ▷ F ▹ G
→ Γ ⊢ a ≅ b ∷ F
→ Γ ⊢ f ∘⟨ p ⟩ a ~ g ∘⟨ p ⟩ b ∷ G [ a ]₀
~-fst : ∀ {r s F G}
→ Γ »∙ F ⊢ G
→ Γ ⊢ r ~ s ∷ Σˢ p , q ▷ F ▹ G
→ Γ ⊢ fst p r ~ fst p s ∷ F
~-snd : ∀ {r s F G}
→ Γ »∙ F ⊢ G
→ Γ ⊢ r ~ s ∷ Σˢ p , q ▷ F ▹ G
→ Γ ⊢ snd p r ~ snd p s ∷ G [ fst p r ]₀
~-natrec : ∀ {z z′ s s′ n n′ F F′}
→ Γ »∙ ℕ ⊢ F ≅ F′
→ Γ ⊢ z ≅ z′ ∷ F [ zero ]₀
→ Γ »∙ ℕ »∙ F ⊢ s ≅ s′ ∷ F [ suc (var x1) ]↑²
→ Γ ⊢ n ~ n′ ∷ ℕ
→ Γ ⊢ natrec p q r F z s n ~ natrec p q r F′ z′ s′ n′ ∷
F [ n ]₀
~-prodrec : ∀ {F G A A′ t t′ u u′}
→ Γ »∙ Σʷ p , q ▷ F ▹ G ⊢ A ≅ A′
→ Γ ⊢ t ~ t′ ∷ Σʷ p , q ▷ F ▹ G
→ Γ »∙ F »∙ G ⊢ u ≅ u′ ∷ A [ prodʷ p (var x1) (var x0) ]↑²
→ Σʷ-allowed p q
→ Γ ⊢ prodrec r p q′ A t u ~ prodrec r p q′ A′ t′ u′ ∷
A [ t ]₀
~-emptyrec : ∀ {n n′ F F′}
→ Γ ⊢ F ≅ F′
→ Γ ⊢ n ~ n′ ∷ Empty
→ Γ ⊢ emptyrec p F n ~ emptyrec p F′ n′ ∷ F
~-unitrec : ∀ {A A′ t t′ u u′}
→ Γ »∙ Unitʷ ⊢ A ≅ A′
→ Γ ⊢ t ~ t′ ∷ Unitʷ
→ Γ ⊢ u ≅ u′ ∷ A [ starʷ ]₀
→ Unitʷ-allowed
→ ¬ Unitʷ-η
→ Γ ⊢ unitrec p q A t u ~ unitrec p q A′ t′ u′ ∷
A [ t ]₀
≅ₜ-star-refl
: ⊢ Γ
→ Unit-allowed s
→ Γ ⊢≅ star s ∷ Unit s
≅-Id-cong
: Γ ⊢ A₁ ≅ A₂
→ Γ ⊢ t₁ ≅ t₂ ∷ A₁
→ Γ ⊢ u₁ ≅ u₂ ∷ A₁
→ Γ ⊢ Id A₁ t₁ u₁ ≅ Id A₂ t₂ u₂
≅ₜ-Id-cong
: Γ ⊢ A₁ ≅ A₂ ∷ U l
→ Γ ⊢ t₁ ≅ t₂ ∷ A₁
→ Γ ⊢ u₁ ≅ u₂ ∷ A₁
→ Γ ⊢ Id A₁ t₁ u₁ ≅ Id A₂ t₂ u₂ ∷ U l
≅ₜ-rflrefl : Γ ⊢ t ∷ A → Γ ⊢≅ rfl ∷ Id A t t
~-J
: Γ ⊢ A₁ ≅ A₂
→ Γ ⊢ t₁ ∷ A₁
→ Γ ⊢ t₁ ≅ t₂ ∷ A₁
→ Γ »∙ A₁ »∙ Id (wk1 A₁) (wk1 t₁) (var x0) ⊢ B₁ ≅ B₂
→ Γ ⊢ u₁ ≅ u₂ ∷ B₁ [ t₁ , rfl ]₁₀
→ Γ ⊢ v₁ ≅ v₂ ∷ A₁
→ Γ ⊢ w₁ ~ w₂ ∷ Id A₁ t₁ v₁
→ Γ ⊢ J p q A₁ t₁ B₁ u₁ v₁ w₁ ~ J p q A₂ t₂ B₂ u₂ v₂ w₂ ∷
B₁ [ v₁ , w₁ ]₁₀
~-K
: Γ ⊢ A₁ ≅ A₂
→ Γ ⊢ t₁ ≅ t₂ ∷ A₁
→ Γ »∙ Id A₁ t₁ t₁ ⊢ B₁ ≅ B₂
→ Γ ⊢ u₁ ≅ u₂ ∷ B₁ [ rfl ]₀
→ Γ ⊢ v₁ ~ v₂ ∷ Id A₁ t₁ t₁
→ K-allowed
→ Γ ⊢ K p A₁ t₁ B₁ u₁ v₁ ~ K p A₂ t₂ B₂ u₂ v₂ ∷ B₁ [ v₁ ]₀
~-[]-cong
: Γ ⊢ l₁ ≅ l₂ ∷Level
→ Γ ⊢ A₁ ≅ A₂
→ Γ ⊢ t₁ ≅ t₂ ∷ A₁
→ Γ ⊢ u₁ ≅ u₂ ∷ A₁
→ Γ ⊢ v₁ ~ v₂ ∷ Id A₁ t₁ u₁
→ []-cong-allowed s
→ let open Erased s in
Γ ⊢ []-cong s l₁ A₁ t₁ u₁ v₁ ~ []-cong s l₂ A₂ t₂ u₂ v₂ ∷
Id (Erased l₁ A₁) ([ t₁ ]) ([ u₁ ])
~-eq : ∀ {k l A} → Γ ⊢ k ~ l ∷ A → Γ ⊢ k ≡ l ∷ A
~-eq = ≅ₜ-eq ∘→ ~-to-≅ₜ
~-to-≅ : ∀ {k l l′} → Γ ⊢ k ~ l ∷ U l′ → Γ ⊢ k ≅ l
~-to-≅ = ≅-univ ∘→ ~-to-≅ₜ
opaque
≅-ℕrefl : ⊢ Γ → Γ ⊢≅ ℕ
≅-ℕrefl = ≅-univ ∘→ ≅ₜ-ℕrefl
opaque
≅-Emptyrefl : ⊢ Γ → Γ ⊢≅ Empty
≅-Emptyrefl = ≅-univ ∘→ ≅ₜ-Emptyrefl
opaque
≅-U-cong : Γ ⊢ l ≅ k ∷Level → Γ ⊢ U l ≅ U k
≅-U-cong l≡k = ≅-univ (≅ₜ-U-cong l≡k)
opaque
≅-Unit-refl : ⊢ Γ → Unit-allowed s → Γ ⊢≅ Unit s
≅-Unit-refl ⊢Γ ok = ≅-univ (≅ₜ-Unit-refl ⊢Γ ok)
opaque
wf-⊢≅ : Γ ⊢ A ≅ B → Γ ⊢≅ A × Γ ⊢≅ B
wf-⊢≅ A≅B =
≅-trans A≅B (≅-sym A≅B) ,
≅-trans (≅-sym A≅B) A≅B
opaque
wf-⊢≅∷ : Γ ⊢ t ≅ u ∷ A → Γ ⊢≅ t ∷ A × Γ ⊢≅ u ∷ A
wf-⊢≅∷ t≅u =
≅ₜ-trans t≅u (≅ₜ-sym t≅u) ,
≅ₜ-trans (≅ₜ-sym t≅u) t≅u
opaque
wf-⊢~∷ : Γ ⊢ t ~ u ∷ A → Γ ⊢~ t ∷ A × Γ ⊢~ u ∷ A
wf-⊢~∷ t~u =
~-trans t~u (~-sym t~u) ,
~-trans (~-sym t~u) t~u
opaque
included :
{Γ : Con Term n} ⦃ inc : Var-included ⦄ →
Var-included or-empty Γ
included ⦃ inc ⦄ = possibly-nonempty ⦃ ok = inc ⦄
opaque
with-inc-⊢≅ :
Γ ⊢ A ≡ B →
(⦃ inc : Var-included ⦄ → Γ ⊢ A ≅ B) →
Γ ⊢ A ≅ B
with-inc-⊢≅ A≡B A≅B =
case Var-included? of λ where
(yes inc) → A≅B ⦃ inc = inc ⦄
(no ni) → ⊢≡→⊢≅ ni A≡B
opaque
with-inc-⊢≅∷ :
Γ ⊢ t ≡ u ∷ A →
(⦃ inc : Var-included ⦄ → Γ ⊢ t ≅ u ∷ A) →
Γ ⊢ t ≅ u ∷ A
with-inc-⊢≅∷ t≡u t≅u =
case Var-included? of λ where
(yes inc) → t≅u ⦃ inc = inc ⦄
(no ni) → ⊢≡∷→⊢≅∷ ni t≡u
opaque
≅ₜ-supᵘ-sucᵘ
: Γ ⊢≅ t ∷ Level
→ Γ ⊢≅ u ∷ Level
→ Γ ⊢ sucᵘ t supᵘ sucᵘ u ≅ sucᵘ (t supᵘ u) ∷ Level
≅ₜ-supᵘ-sucᵘ ⊢≅t ⊢≅u =
let ⊢Level , ⊢t , _ = wf-⊢≡∷ (≅ₜ-eq ⊢≅t)
_ , ⊢u , _ = wf-⊢≡∷ (≅ₜ-eq ⊢≅u)
in ≅ₜ-red
(id ⊢Level , Levelₙ)
(redMany (supᵘ-sucᵘ ⊢t ⊢u) , sucᵘₙ)
(id (sucᵘⱼ (supᵘⱼ ⊢t ⊢u)) , sucᵘₙ)
(≅ₜ-sucᵘ-cong (≅ₜ-supᵘ-cong ⊢≅t ⊢≅u))
opaque
≅ₜ-supᵘ-sub′
: Γ ⊢≅ t ∷ Level
→ Γ ⊢ t supᵘ u ≅ u ∷ Level
→ Γ ⊢ t supᵘ sucᵘ u ≅ sucᵘ u ∷ Level
≅ₜ-supᵘ-sub′ ⊢≅t t⊔u≡u =
let _ , ⊢t , _ = wf-⊢≡∷ (≅ₜ-eq ⊢≅t)
_ , ⊢t⊔u , ⊢u = wf-⊢≡∷ (≅ₜ-eq t⊔u≡u)
_ , ⊢≅u = wf-⊢≅∷ t⊔u≡u
in
≅ₜ-trans (≅ₜ-supᵘ-cong ⊢≅t (≅ₜ-trans
(≅ₜ-sucᵘ-cong (≅ₜ-sym t⊔u≡u))
(≅ₜ-sym (≅ₜ-supᵘ-sucᵘ ⊢≅t ⊢≅u))))
$ ≅ₜ-trans (≅ₜ-sym (≅ₜ-supᵘ-assoc ⊢≅t (≅ₜ-sucᵘ-cong ⊢≅t) (≅ₜ-sucᵘ-cong ⊢≅u)))
$ ≅ₜ-trans (≅ₜ-supᵘ-cong (≅ₜ-supᵘ-sub ⊢≅t) (≅ₜ-sucᵘ-cong ⊢≅u))
$ ≅ₜ-trans (≅ₜ-supᵘ-sucᵘ ⊢≅t ⊢≅u)
$ ≅ₜ-sucᵘ-cong t⊔u≡u
record EqRelSet : Set (lsuc ℓ) where
no-eta-equality
infix 4 _⊢_≅_ _⊢_≅_∷_ _⊢_~_∷_
field
_⊢_≅_ : Cons δ n → (A B : Term n) → Set ℓ
_⊢_≅_∷_ : Cons δ n → (t u A : Term n) → Set ℓ
_⊢_≅_∷Level : Cons δ n → (t u : Term n) → Set ℓ
_⊢_~_∷_ : Cons δ n → (t u A : Term n) → Set ℓ
Var-included : Set ℓ
equality-relations :
Equality-relations _⊢_≅_ _⊢_≅_∷_ _⊢_≅_∷Level _⊢_~_∷_ Var-included
open Equality-relations equality-relations public