(* This version of the proof is incredibly slow. *)
(*
  all: pre; basic_solve.
  all: try oh_c'mon.
  all: try invert_open_wrt.
  all: try pick fresh c for L.
  all: try eapply lc_a_UCAbs_exists; eauto.
  all: try apply H; eauto.
  all: eapply (lc_a_UAbs_exists c). rewrite e. eauto. done.
Qed.*)

Definition Typing_lc  := first lc_mutual.Definition PropWff_lc := second lc_mutual.Definition Iso_lc     := third lc_mutual.Definition DefEq_lc   := fourth lc_mutual.Definition Ctx_lc     := fifth lc_mutual.

(* Specifications: *)
Lemma Typing_lc1 : forall G0 a A, Typing G0 a A -> lc_tm a.
Lemma Typing_lc2 : forall G0 a A, Typing G0 a A -> lc_tm A.
Lemma Iso_lc1 : forall G0 D p1 p2, Iso G0 D p1 p2 -> lc_constraint p1.
Lemma Iso_lc2 : forall G0 D p1 p2, Iso G0 D p1 p2 -> lc_constraint p2.
Lemma DefEq_lc1 : forall G0 D A B T, DefEq G0 D A B T -> lc_tm A.
Lemma DefEq_lc2 : forall G0 D A B T, DefEq G0 D A B T -> lc_tm B.
Lemma DefEq_lc3 : forall G0 D A B T, DefEq G0 D A B T -> lc_tm T.
Lemma Toplevel_lc : forall c s, binds c s toplevel -> lc_sig_sort s.