let demodulate table current =
let newmeta, newcurrent =
+ let _ =
+ let w, proof, (eq_ty, left, right, order), metas, args = current in
+ let metasenv, context, ugraph = env in
+ let metasenv' = metasenv @ metas in
+ try
+ CicTypeChecker.type_of_aux' metasenv' context left ugraph;
+ CicTypeChecker.type_of_aux' metasenv' context right ugraph;
+ with
+ CicUtil.Meta_not_found _ as exn ->
+ begin
+ prerr_endline "siamo in forward_simplify";
+ prerr_endline (CicPp.ppterm left);
+ prerr_endline (CicPp.ppterm right);
+ raise exn
+ end
+ in
Indexing.demodulation_equality !maxmeta env table sign current in
maxmeta := newmeta;
if is_identity env newcurrent then
let demodulate sign table target =
let newmeta, newtarget =
+ let _ =
+ let w, proof, (eq_ty, left, right, order), metas, args = target in
+ let metasenv, context, ugraph = env in
+ let metasenv' = metasenv @ metas in
+ try
+ CicTypeChecker.type_of_aux' metasenv' context left ugraph;
+ CicTypeChecker.type_of_aux' metasenv' context right ugraph;
+ with
+ CicUtil.Meta_not_found _ as exn ->
+ begin
+ prerr_endline "siamo in forward_simplify_new";
+ prerr_endline (CicPp.ppterm left);
+ prerr_endline (CicPp.ppterm right);
+ raise exn
+ end
+ in
Indexing.demodulation_equality !maxmeta env table sign target in
maxmeta := newmeta;
newtarget