(* Main structure
   i : input context
   j : output context
   t : syntactification of heap_of using context j *)
Class Ast (i j : ctx) (t : synheap) (h : heap) :=
       { ast : invariant i j t h}.(* Main structure
   i : input context
   j : output context
   t : syntactification of heap_of using context j *)
Class Ast (i j : ctx) (t : synheap) (h : heap) :=
       { ast : invariant i j t h}.

(* Specifications: *)
Theorem cancelR j k t1 t2 h1 h2 (f1 : Ast empc j t1 h1) (f2 : Ast j k t2 h2) : def h1 -> h1 = h2 -> eval k (cancel k t1 t2).