Section BasicOperations.
Local Notation "{ k ~> u } t" := (open_rec k u t) (at level 67).
(** The first property we would like to show is the analogue to [subst_fresh]: index substitution has no effect for closed terms.  Here is an initial attempt at the proof. *)
(** At this point there are two problems.  Our goal is about substitution for index [S k] in term [e], while our induction hypothesis IHLC only tells use about index [k] in term [open e x].  To solve the first problem, we generalize our IH over all [k]. That way, when [k] is incremented in the [abs] case, it will still apply.  Below, we use the tactic [generalize dependent] to generalize over [k] before using induction. *)

Lemma open_rec_lc_1 : forall k u e,
lc e ->
e = {k ~> u} e.