Set Bullet Behavior "Strict Subproofs".
Set Implicit Arguments.
Require Export FcEtt.ett_inf.
Require Export FcEtt.ett_ind.
(* This file contains these results:  -- the context is well-formed in any judgement -- all components are locally closed in any judgement *)
Hint Resolve DataTy_lc : lc.
destruct (CoercedValue_Value_lc_mutual); auto.
Qed.
destruct (CoercedValue_Value_lc_mutual); auto.
Qed.
Hint Resolve Value_lc CoercedValue_lc : lc.
(* -------------------------------- *)
Definition Typing_Ctx  := first  ctx_wff_mutual.
Definition PropWff_Ctx := second ctx_wff_mutual.
Definition Iso_Ctx     := third  ctx_wff_mutual.
Definition DefEq_Ctx   := fourth ctx_wff_mutual.
(* TODO: put these hints in a database? *)
Hint Resolve Typing_Ctx PropWff_Ctx Iso_Ctx DefEq_Ctx.
induction G; try auto.
inversion 1; subst; solve_uniq.
Qed.
Hint Resolve Ctx_uniq.

Lemma lc_mutual :
(forall G0 a A, Typing G0 a A -> lc_tm a /\ lc_tm A) /\
(forall G0 phi, PropWff G0 phi -> lc_constraint phi) /\
(forall G0 D p1 p2, Iso G0 D p1 p2 -> lc_constraint p1 /\ lc_constraint p2) /\
(forall G0 D A B T, DefEq G0 D A B T -> lc_tm A /\ lc_tm B /\ lc_tm T) /\
(forall G0, Ctx G0 -> forall x s , binds x s G0 -> lc_sort s).