(V:Type0) (v: Vars V) n (V':Type0) (v': Vars V') m (V'':Type0) (v'': Vars V'') `{!Quote v n v'} `{!Quote (merge v v') m v''} : eval (merge v (merge v' v'')) (expr_map sum_aux (quote n)) = eval (merge v (merge v' v'')) (expr_map sum_assoc (quote m)) -> n = m. Proof. intros E. rewrite <-(eval_quote n), <-(eval_quote m). path_via (eval (merge v (merge v' v'')) (expr_map sum_aux (quote n))); [|path_via (eval (merge v (merge v' v'')) (expr_map sum_assoc (quote m)))]. - rewrite eval_map. apply eval_ext. intros [?|?];reflexivity. - rewrite eval_map. apply eval_ext. intros [[?|?]|?];reflexivity. Qed.
Require Import