Documentation

Stlc.typing

inductive typing :
contextTrmTypProp
Instances For
    theorem typing_valid_ctx (Γ : context) (e : Trm) (T : Typ) :
    typing Γ e Tvalid_ctx Γ
    theorem typing_weakening_strengthened' (Γ : context) (Δ : context) (Ψ' : context) (t : Trm) (T : Typ) :
    typing Ψ' t T∀ (Ψ : context), Ψ' = Ψ ++ Γvalid_ctx (Ψ ++ Δ ++ Γ)typing (Ψ ++ Δ ++ Γ) t T
    theorem typing_weakening_strengthened (Γ : context) (Δ : context) (Ψ : context) (t : Trm) (T : Typ) :
    typing (Ψ ++ Γ) t Tvalid_ctx (Ψ ++ Δ ++ Γ)typing (Ψ ++ Δ ++ Γ) t T
    theorem typing_weakening (Γ : context) (Δ : context) (t : Trm) (T : Typ) :
    typing Γ t Tvalid_ctx (Δ ++ Γ)typing (Δ ++ Γ) t T
    theorem typing_weakening_head (Γ : context) (t : Trm) (T : Typ) (S : Typ) (x : ) :
    ¬in_context x Γtyping Γ t Ttyping ((x, S) :: Γ) t T
    theorem typing_subst_var_case (Γ : context) (Δ : context) (u : Trm) (S : Typ) (T : Typ) (z : ) (x : ) :
    binds x T (Δ ++ (z, S) :: Γ)valid_ctx (Δ ++ (z, S) :: Γ)typing Γ u Styping (Δ ++ Γ) ([z // u] $x) T
    theorem typing_regular (t : Trm) (T : Typ) (Γ : context) :
    typing Γ t Tt.lc
    theorem typing_subst_strengthened' (Γ : context) (Δ' : context) (t : Trm) (u : Trm) (S : Typ) (T : Typ) (z : ) :
    typing Δ' t T∀ (φ : context), Δ' = φ ++ (z, S) :: Γtyping (φ ++ (z, S) :: Γ) t Ttyping Γ u Styping (φ ++ Γ) ([z // u] t) T
    theorem typing_subst_strengthened (Γ : context) (Δ : context) (t : Trm) (u : Trm) (S : Typ) (T : Typ) (z : ) :
    typing (Δ ++ (z, S) :: Γ) t Ttyping Γ u Styping (Δ ++ Γ) ([z // u] t) T
    theorem typing_subst (Γ : context) (t : Trm) (u : Trm) (S : Typ) (T : Typ) (z : ) :
    typing ((z, S) :: Γ) t Ttyping Γ u Styping Γ ([z // u] t) T
    theorem typing_rename (Γ : context) (x : ) (y : ) (t : Trm) (T1 : Typ) (T2 : Typ) :
    xt.fv¬in_context x Γyt.fv¬in_context y Γtyping ((x, T1) :: Γ) (t.open₀ ($x)) T2typing ((y, T1) :: Γ) (t.open₀ ($y)) T2
    theorem typing_abs_intro (Γ : context) (x : ) (t : Trm) (T1 : Typ) (T2 : Typ) :
    xt.fv¬in_context x Γtyping ((x, T1) :: Γ) (t.open₀ ($x)) T2typing Γ (λt) (T1 -> T2)
    theorem preservation_beta_red (E : context) (e : Trm) (T : Typ) :
    typing E e T∀ (e' : Trm), beta_red e e'typing E e' T
    theorem preservation_multi_red (E : context) (e : Trm) (T : Typ) :
    typing E e T∀ (e' : Trm), multi_red e e'typing E e' T