Section LambdaFreeness.
Context {X: Const}.
Inductive lambda_free : exp X -> Prop :=
| lambda_free_var x: lambda_free (var x)
| lambda_free_const c: lambda_free (const c)
| lambda_free_app s t: lambda_free s -> lambda_free t -> lambda_free (s t).

Lemma lambda_free_substitution sigma s:
lambda_free s -> (forall x, x ∈ vars s -> lambda_free (sigma x)) -> lambda_free (sigma • s).