(***********************************************)
(* Reflection lemmas                           *)
(* The following series of lemmas establish a  *)
(* bridge between syntax and semantics         *)
(***********************************************)

(* Main lemma: the cancel algorithm is correct *)
Lemma cancel_sound i t1 t2 :
def (interp i t1) -> interp i t1 = interp i t2 ->
eval i (cancel i t1 t2).