From Coq Require Import Lists.List. Require Import Atom. Require Import Environment. Require Import Metatheory. Require Import debruijn. Require Import subtype. Require Import env. Require Import morph. Require Import subst_lemmas. Require Import typing. Lemma typing_inv_tabs : forall Γ t τ, (Γ |- [{ Λ t }] \is [< ∀ τ >]) -> forall L x, x `notin` L -> (Γ |- (expr_open_type (ty_fvar x) t) \is τ) . Proof. Admitted. Lemma typing_inv_abs : forall Γ σ t τ, (Γ |- [{ λ σ ↦ t }] \is [< σ -> τ >]) -> forall L x, x `notin` L -> ((x,σ)::Γ |- (expr_open (ex_fvar x) t) \is τ) . Proof. Admitted. Lemma typing_inv_morph : forall Γ σ t τ, (Γ |- [{ λ σ ↦morph t }] \is [< σ ->morph τ >]) -> forall L x, x `notin` L -> ((x,σ)::Γ |- (expr_open (ex_fvar x) t) \is τ) . Proof. intros. inversion H. subst. Admitted. Lemma typing_inv_let : forall Γ s σ t τ, (Γ |- s \is σ) -> (Γ |- [{ let s in t }] \is [< τ >]) -> forall L x, x `notin` L -> ((x,σ)::Γ |- (expr_open (ex_fvar x) t) \is τ) . Proof. Admitted.