*)
let apply_tac_verbose = PrimitiveTactics.apply_tac_verbose
let cmatch' = Constr.cmatch'
-
+
+(* used only by te old auto *)
+let signature_of_goal ~(dbd:HMysql.dbd) ((proof, goal) as _status) =
+ let (_, metasenv, _, _) = proof in
+ let (_, context, ty) = CicUtil.lookup_meta goal metasenv in
+ let main, sig_constants = Constr.signature_of ty in
+ let set = signature_of_hypothesis context metasenv in
+ let set =
+ match main with
+ None -> set
+ | Some (main,l) ->
+ List.fold_right Constr.UriManagerSet.add (main::l) set in
+ let set = Constr.UriManagerSet.union set sig_constants in
+ let all_constants_closed = close_with_types set metasenv context in
+ let uris =
+ sigmatch ~dbd ~facts:false ~where:`Statement (None,all_constants_closed) in
+ let uris = List.filter nonvar (List.map snd uris) in
+ let uris = List.filter Hashtbl_equiv.not_a_duplicate uris in
+ uris
+
let is_predicate u =
let ty, _ =
try CicTypeChecker.type_of_aux' [] []
let t = CicUtil.term_of_uri uri in (* FIXME: write ty_of_term *)
let ty,_ = CicTypeChecker.type_of_aux' [] [] t CicUniv.empty_ugraph in
let consts = Constr.constants_of ty in
-(* prerr_endline ("XXX " ^ UriManager.string_of_uri uri);*)
-(* Constr.UriManagerSet.iter (fun u -> prerr_endline (" - " ^*)
-(* UriManager.string_of_uri u)) consts;*)
-(* Constr.UriManagerSet.iter (fun u -> prerr_endline (" + " ^*)
-(* UriManager.string_of_uri u)) constants;*)
+(*
+ prerr_endline ("XXX " ^ UriManager.string_of_uri uri);
+ Constr.UriManagerSet.iter (fun u -> prerr_endline (" - " ^
+ UriManager.string_of_uri u)) consts;
+ Constr.UriManagerSet.iter (fun u -> prerr_endline (" + " ^
+ UriManager.string_of_uri u)) constants;*)
Constr.UriManagerSet.subset consts constants
;;
-let universe_of_goals ~(dbd:HMysql.dbd) proof goals =
- let (_, metasenv, _, _) = proof in
+let universe_of_goals ~(dbd:HMysql.dbd) metasenv goals =
let add_uris_for acc goal =
let (_, context, ty) = CicUtil.lookup_meta goal metasenv in
let main, sig_constants = Constr.signature_of ty in
let predicates, rest =
Constr.UriManagerSet.partition is_predicate all_constants_closed
in
- prerr_endline ("FOO!1");
let uris =
Constr.UriManagerSet.fold
(fun u acc ->
acc @ uris)
predicates []
in
- prerr_endline ("FOO!2");
(*
let uris =
sigmatch ~dbd ~facts:false ~where:`Statement (None,all_constants_closed)
;;
let equations_for_goal ~(dbd:HMysql.dbd) ?signature ((proof, goal) as _status) =
+(*
let to_string set =
"{\n" ^
(String.concat "\n"
(fun u l -> (" "^UriManager.string_of_uri u)::l) set []))
^ "\n}"
in
+*)
let (_, metasenv, _, _) = proof in
let (_, context, ty) = CicUtil.lookup_meta goal metasenv in
let main, sig_constants =