(** * Definition of L *)
(** ** Syntax *)

Inductive term : Type :=
| var (n : nat) : term
| app (s : term) (t : term) : term
| lambda (s : term).(** * Definition of L *)
(** ** Syntax *)

Inductive term : Type :=
| var (n : nat) : term
| app (s : term) (t : term) : term
| lambda (s : term).(** * Definition of L *)
(** ** Syntax *)

Inductive term : Type :=
| var (n : nat) : term
| app (s : term) (t : term) : term
| lambda (s : term).(** * Definition of L *)
(** ** Syntax *)

Inductive term : Type :=
| var (n : nat) : term
| app (s : term) (t : term) : term
| lambda (s : term).Definition lam s := exists t, s = lambda t.

(* Specifications: *)
Lemma lambda_lam s : lam (lambda s).