(* | _, _, (_, left, right, _), _, _ -> *)
(* not (fst (CR.are_convertible context left right ugraph)) *)
(* in *)
- let _ =
- let env = metasenv, context, ugraph in
- debug_print
- (lazy
- (Printf.sprintf "end of superposition_right:\n%s\n"
- (String.concat "\n"
- ((List.map
- (fun e -> "Positive " ^
- (Inference.string_of_equality ~env e)) (new1 @ new2))))))
- in
let ok e = not (Inference.is_identity (metasenv, context, ugraph) e) in
(!maxmeta,
(List.filter ok (new1 @ new2)))
| C.Meta _ | C.Rel _ | C.Const _ -> false
| C.Var _ -> true
| C.Appl l -> List.exists has_vars l
- | C.Prod (_, s, t) -> (has_vars s) || (has_vars t)
- | _ -> assert false
+ | C.Prod (_, s, t) | C.Lambda (_, s, t)
+ | C.LetIn (_, s, t) | C.Cast (s, t) ->
+ (has_vars s) || (has_vars t)
+ | _ -> false
in
let rec aux newmeta = function
| [] -> [], newmeta
let eqterm =
C.Appl [C.MutInd (LibraryObjects.eq_URI (), 0, []); ty; left; right] in
let gproof, gmetas, gterm = goal in
- debug_print
- (lazy
- (Printf.sprintf "APPLY EQUALITY TO GOAL: %s, %s"
- (string_of_equality equality) (CicPp.ppterm gterm)));
+(* debug_print *)
+(* (lazy *)
+(* (Printf.sprintf "APPLY EQUALITY TO GOAL: %s, %s" *)
+(* (string_of_equality equality) (CicPp.ppterm gterm))); *)
try
let subst, metasenv', _ =
let menv = metasenv @ metas @ gmetas in
in
let r, s, l =
if Inference.term_is_equality term then
- let _ = debug_print (lazy "OK, is equality!!") in
+(* let _ = debug_print (lazy "OK, is equality!!") in *)
let rec appleq_a = function
| [] -> false, [], []
| (Positive, equality)::tl ->