Section Completeness.
Fixpoint size (s: exp X) :=
match s with
| var x => 0
| const x => 0
| lambda s => S (size s)
| app s1 s2 => S(size s1 + size s2)
end.

Lemma unifies_free_all sigma x s:
~ x ∈ vars s -> free' sigma -> free x ->
unifies sigma (var x) s -> (forall y, y ∈ vars s -> free y) .