| Absurd of loc * 'term
| Apply of loc * 'term
| Assumption of loc
- | Auto of loc * int option * int option (* depth, width *)
+ | Auto of loc * int option * int option * string option (* depth, width, paramodulation ALB *)
| Change of loc * ('term,'ident) pattern * 'term
| Clear of loc * 'ident
| ClearBody of loc * 'ident
GrafiteAst.Assumption loc
| IDENT "auto";
depth = OPT [ IDENT "depth"; SYMBOL "="; i = int -> i ];
- width = OPT [ IDENT "width"; SYMBOL "="; i = int -> i ] ->
- GrafiteAst.Auto (loc,depth,width)
+ width = OPT [ IDENT "width"; SYMBOL "="; i = int -> i ];
+ paramodulation = OPT [ IDENT "paramodulation" ] -> (* ALB *)
+ GrafiteAst.Auto (loc,depth,width,paramodulation)
| IDENT "clear"; id = IDENT ->
GrafiteAst.Clear (loc,id)
| IDENT "clearbody"; id = IDENT ->
| Absurd of loc * 'term
| Apply of loc * 'term
| Assumption of loc
- | Auto of loc * int option * int option (* depth, width *)
+ | Auto of loc * int option * int option * string option (* depth, width, paramodulation ALB *)
| Change of loc * ('term,'ident) pattern * 'term
| Clear of loc * 'ident
| ClearBody of loc * 'ident
(fun term -> debug_print "term_is_equality E` DUMMY!!!!"; false);;
-let auto_tac ?(depth=default_depth) ?(width=default_width) ~(dbd:Mysql.dbd) () =
+let auto_tac ?(depth=default_depth) ?(width=default_width) ?paramodulation ~(dbd:Mysql.dbd) () =
let auto_tac dbd (proof, goal) =
let normal_auto () =
let universe = MetadataQuery.signature_of_goal ~dbd (proof, goal) in
| _ -> assert false
in
let paramodulation_ok =
- let _, metasenv, _, _ = proof in
- let _, _, meta_goal = CicUtil.lookup_meta goal metasenv in
- !term_is_equality meta_goal
+ match paramodulation with
+ | None -> false
+ | Some _ ->
+ let _, metasenv, _, _ = proof in
+ let _, _, meta_goal = CicUtil.lookup_meta goal metasenv in
+ !term_is_equality meta_goal
in
if paramodulation_ok then (
debug_print "USO PARAMODULATION...";
- try
+(* try *)
!paramodulation_tactic dbd (proof, goal)
- with e ->
- normal_auto ()
+(* with ProofEngineTypes.Fail _ -> *)
+(* normal_auto () *)
) else
normal_auto ()
in
*)
val auto_tac:
- ?depth:int -> ?width:int -> dbd:Mysql.dbd -> unit ->
- ProofEngineTypes.tactic
+ ?depth:int -> ?width:int -> ?paramodulation:string ->
+ dbd:Mysql.dbd -> unit ->
+ ProofEngineTypes.tactic
val paramodulation_tactic:
(Mysql.dbd -> ProofEngineTypes.status ->