(lazy
(Printf.sprintf "OK: %s" (CicPp.ppterm term)));
let o = !Utils.compare_terms t1 t2 in
- let w = compute_equality_weight ty t1 t2 in
+ let stat = (ty,t1,t2,o) in
+ let w = compute_equality_weight stat in
let proof = BasicProof p in
- let e = (w, proof, (ty, t1, t2, o), newmetas, args) in
+ let e = (w, proof, stat, newmetas, args) in
Some e, (newmeta+1)
| _ -> None, newmeta
)
let t1 = S.lift index t1 in
let t2 = S.lift index t2 in
let o = !Utils.compare_terms t1 t2 in
- let w = compute_equality_weight ty t1 t2 in
- let e = (w, BasicProof (C.Rel index), (ty, t1, t2, o), [], []) in
+ let stat = (ty,t1,t2,o) in
+ let w = compute_equality_weight stat in
+ let e = (w, BasicProof (C.Rel index), stat, [], []) in
Some e, (newmeta+1)
| _ -> None, newmeta
in (
(lazy
(Printf.sprintf "OK: %s" (CicPp.ppterm term)));
let o = !Utils.compare_terms t1 t2 in
- let w = compute_equality_weight ty t1 t2 in
+ let stat = (ty,t1,t2,o) in
+ let w = compute_equality_weight stat in
let proof = BasicProof p in
- let e = (w, proof, (ty, t1, t2, o), newmetas, args) in
+ let e = (w, proof, stat, newmetas, args) in
Some e, (newmeta+1)
| _ -> None, newmeta
)
| C.Appl [C.MutInd (uri, _, _); ty; t1; t2]
when iseq uri && not (has_vars termty) ->
let o = !Utils.compare_terms t1 t2 in
- let w = compute_equality_weight ty t1 t2 in
- let e = (w, BasicProof term, (ty, t1, t2, o), [], []) in
+ let stat = (ty,t1,t2,o) in
+ let w = compute_equality_weight stat in
+ let e = (w, BasicProof term, stat, [], []) in
Some e, (newmeta+1)
| _ -> None, newmeta
in
match term with
| Cic.Appl [Cic.MutInd (uri, _, _); ty; t1; t2] when iseq uri ->
let o = !Utils.compare_terms t1 t2 in
- let w = compute_equality_weight ty t1 t2 in
- let e = (w, BasicProof proof, (ty, t1, t2, o), [], []) in
+ let stat = (ty,t1,t2,o) in
+ let w = compute_equality_weight stat in
+ let e = (w, BasicProof proof, stat, [], []) in
e
| _ ->
raise TermIsNotAnEquality