in
let t' = C.Lambda (C.Anonymous, ty, bo'') in
bo,
- C.Implicit None
+ Inference.ProofBlock (subst, eq_URI, t', eq_found, target)
(* (\* M. *\)apply_subst subst (C.Appl [C.Const (eq_URI, []); ty; what; t'; *)
(* proof; other; proof']) *)
in
let time2 = Unix.gettimeofday () in
build_newtarget_time := !build_newtarget_time +. (time2 -. time1);
-
- newmeta, (newproof, (eq_ty, left, right, ordering), newmetasenv, newargs)
+
+ let res =
+ let w = Utils.compute_equality_weight eq_ty left right in
+ (w, (eq_ty, left, right, ordering), newmetasenv, newargs)
+ in
+ Inference.store_proof res newproof;
+ newmeta, res
in
(* let build_newtarget = *)
(* let profile = CicUtil.profile "Indexing.demodulation.build_newtarget" in *)
in
let t' = C.Lambda (C.Anonymous, ty, bo'') in
bo',
- C.Implicit None
+ Inference.ProofBlock (s, eq_URI, t', eq_found, target)
(* (\* M. *\)apply_subst s *)
(* (C.Appl [C.Const (eq_URI, []); ty; what; t'; *)
(* proof; other; proof']) *)
let time2 = Unix.gettimeofday () in
build_newtarget_time := !build_newtarget_time +. (time2 -. time1);
-
- (newproof, (eq_ty, left, right, neworder), [], [])
+
+ let res =
+ let w = Utils.compute_equality_weight eq_ty left right in
+ (w, (eq_ty, left, right, neworder), [], [])
+ in
+ Inference.store_proof res newproof;
+ res
in
(* let build_new = *)
(* let profile = CicUtil.profile "Inference.superposition_left.build_new" in *)
in
let t' = C.Lambda (C.Anonymous, ty, bo'') in
bo',
- C.Implicit None
+ Inference.ProofBlock (s, eq_URI, t', eq_found, target)
(* (\* M. *\)apply_subst s *)
(* (C.Appl [C.Const (eq_URI, []); ty; what; t'; *)
(* eqproof; other; proof']) *)
let neworder = !Utils.compare_terms left right
and newmenv = newmetas @ menv'
and newargs = args @ args' in
- let eq' = (newproof, (eq_ty, left, right, neworder), newmenv, newargs)
+ let eq' =
+ let w = Utils.compute_equality_weight eq_ty left right in
+ (w, (eq_ty, left, right, neworder), newmenv, newargs)
and env = (metasenv, context, ugraph) in
let newm, eq' = Inference.fix_metas !maxmeta eq' in
newm, eq'
let time2 = Unix.gettimeofday () in
build_newtarget_time := !build_newtarget_time +. (time2 -. time1);
-
+
+ Inference.store_proof newequality newproof;
newequality
in