CicTypeChecker.type_of_aux' metasenv context term ugraph
in
let candidates = get_candidates Unification table term in
+ (* List.iter (fun (_,e) -> debug_print (lazy (Equality.string_of_equality e))) candidates; *)
let r =
if subterms_only then
[]
prerr_endline (string_of_int (List.length expansionsl));
prerr_endline (string_of_int (List.length expansionsr));
*)
-(*
- if expansionsl <> [] then prerr_endline "expansionl";
- if expansionsr <> [] then prerr_endline "expansionr";
-*)
List.map (build_newgoal bag context goal Utils.Right Equality.SuperpositionLeft) expansionsl
@
List.map (build_newgoal bag context goal Utils.Left Equality.SuperpositionLeft) expansionsr
end
else
match c with
- | Utils.Gt -> (* prerr_endline "GT"; *)
+ | Utils.Gt ->
let big,small,possmall = l,r,Utils.Right in
let expansions, _ = betaexpand_term menv context ugraph table 0 big in
List.map
(Printf.sprintf "equalities:\n%s\n"
(String.concat "\n"
(List.map Equality.string_of_equality equalities))));
- Utils.debug_print (lazy "SIMPLYFYING EQUALITIES...");
+Utils.debug_print (lazy "SIMPLYFYING EQUALITIES...");
match equalities with
| [] -> []
| hd::tl ->
| [] -> active_goals, []
| hd::tl ->
let changed,selected = simplify_goal bag env hd active in
-(*
- if changed then
- prerr_endline ("--------------- goal semplificato");
-*)
let (_,_,t1) = selected in
+ (*
+ if changed && Utils.debug then
+ prerr_endline ("goal semplificato: " ^ CicPp.ppterm t1); *)
let already_in =
List.exists (fun (_,_,t) -> Equality.meta_convertibility t t1)
active_goals
in
if already_in then
- aux tl
+ aux tl
else
let passive_goals = tl in
let new_passive_goals =
(* replacing fake mets with real ones *)
(* prerr_endline "replacing metas..."; *)
let irl=CicMkImplicit.identity_relocation_list_for_metavariable context in
- if proof_menv = [] then prerr_endline "VUOTA";
CicMetaSubst.ppmetasenv [] proof_menv;
let what, with_what =
List.fold_left
~where:type_of_goal
in
let goal_proof,goal_ty,real_menv,_ =
- prerr_endline "parte la refine";
try
CicRefine.type_of_aux' metasenv context goal_proof
CicUniv.empty_ugraph
List.partition (fun (_,c,_) -> c = context) metasenv in
(* prerr_endline ("other menv = " ^ (CicMetaSubst.ppmetasenv [] other_menv)); *)
Utils.set_goal_symbols cleaned_goal; (* DISACTIVATED *)
- let canonical_menv = List.map (fun (i,_,ty)-> (i,[],ty)) canonical_menv in
+ let canonical_menv =
+ List.map
+ (fun (i,_,ty)-> (i,[],Utils.remove_local_context ty)) canonical_menv
+ in
let metasenv' = List.filter (fun (i,_,_)->i<>goalno) canonical_menv in
let goal = [], metasenv', cleaned_goal in
let env = metasenv,context,CicUniv.empty_ugraph in