Universe level bounds #
theorem
le_univMax_all
{χ : Type u_1}
{E : Axioms χ}
:
(∀ {Γ : Ctx χ}, WfCtx E Γ → ∀ {A : Expr χ} {i l : ℕ}, Lookup Γ i A l → l ≤ univMax) ∧ (∀ {Γ : Ctx χ} {l : ℕ} {A : Expr χ}, E ∣ Γ ⊢[l] A → l ≤ univMax) ∧ (∀ {Γ : Ctx χ} {l : ℕ} {A B : Expr χ}, E ∣ Γ ⊢[l] A ≡ B → l ≤ univMax) ∧ (∀ {Γ : Ctx χ} {l : ℕ} {A t : Expr χ}, E ∣ Γ ⊢[l] t : A → l ≤ univMax) ∧ ∀ {Γ : Ctx χ} {l : ℕ} {A t u : Expr χ}, E ∣ Γ ⊢[l] t ≡ u : A → l ≤ univMax
Admissibility of renaming #
theorem
rename_all
{χ : Type u_1}
{E : Axioms χ}
:
(∀ {Γ : Ctx χ} {l : ℕ} {A : Expr χ},
E ∣ Γ ⊢[l] A → ∀ {Δ : Ctx χ} {ξ : ℕ → ℕ}, WfCtx E Δ → WfRen Δ ξ Γ → E ∣ Δ ⊢[l] Expr.rename ξ A) ∧ (∀ {Γ : Ctx χ} {l : ℕ} {A B : Expr χ},
E ∣ Γ ⊢[l] A ≡ B →
∀ {Δ : Ctx χ} {ξ : ℕ → ℕ}, WfCtx E Δ → WfRen Δ ξ Γ → E ∣ Δ ⊢[l] Expr.rename ξ A ≡ Expr.rename ξ B) ∧ (∀ {Γ : Ctx χ} {l : ℕ} {A t : Expr χ},
E ∣ Γ ⊢[l] t : A →
∀ {Δ : Ctx χ} {ξ : ℕ → ℕ}, WfCtx E Δ → WfRen Δ ξ Γ → E ∣ Δ ⊢[l] Expr.rename ξ t : Expr.rename ξ A) ∧ ∀ {Γ : Ctx χ} {l : ℕ} {A t u : Expr χ},
E ∣ Γ ⊢[l] t ≡ u : A →
∀ {Δ : Ctx χ} {ξ : ℕ → ℕ},
WfCtx E Δ → WfRen Δ ξ Γ → E ∣ Δ ⊢[l] Expr.rename ξ t ≡ Expr.rename ξ u : Expr.rename ξ A
Lookup well-formedness #
Admissibility of substitution #
@[irreducible]
The substitutions σ σ' : Δ ⟶ Γ
are judgmentally equal.
This is a functional definition similar to that in the Autosubst paper, but with a lot of preservation data added so that we can use this before proving admissibility of substitution and inversion.
The additional data is an implementation detail;
EqSb
should not be unfolded outside of this module.
A common alternative is to use an inductive characterization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
SubstProof.subst_all
{χ : Type u_1}
{E : Axioms χ}
:
(∀ {Γ : Ctx χ} {l : ℕ} {A : Expr χ},
E ∣ Γ ⊢[l] A →
(∀ {Δ : Ctx χ} {σ : ℕ → Expr χ}, WfSb E Δ σ Γ → E ∣ Δ ⊢[l] Expr.subst σ A) ∧ ∀ {Δ : Ctx χ} {σ σ' : ℕ → Expr χ}, EqSb E Δ σ σ' Γ → E ∣ Δ ⊢[l] Expr.subst σ A ≡ Expr.subst σ' A) ∧ (∀ {Γ : Ctx χ} {l : ℕ} {A B : Expr χ},
E ∣ Γ ⊢[l] A ≡ B →
∀ {Δ : Ctx χ} {σ σ' : ℕ → Expr χ}, EqSb E Δ σ σ' Γ → E ∣ Δ ⊢[l] Expr.subst σ A ≡ Expr.subst σ' B) ∧ (∀ {Γ : Ctx χ} {l : ℕ} {A t : Expr χ},
E ∣ Γ ⊢[l] t : A →
(∀ {Δ : Ctx χ} {σ : ℕ → Expr χ}, WfSb E Δ σ Γ → E ∣ Δ ⊢[l] Expr.subst σ t : Expr.subst σ A) ∧ ∀ {Δ : Ctx χ} {σ σ' : ℕ → Expr χ},
EqSb E Δ σ σ' Γ → E ∣ Δ ⊢[l] Expr.subst σ t ≡ Expr.subst σ' t : Expr.subst σ A) ∧ ∀ {Γ : Ctx χ} {l : ℕ} {A t u : Expr χ},
E ∣ Γ ⊢[l] t ≡ u : A →
∀ {Δ : Ctx χ} {σ σ' : ℕ → Expr χ},
EqSb E Δ σ σ' Γ → E ∣ Δ ⊢[l] Expr.subst σ t ≡ Expr.subst σ' u : Expr.subst σ A