]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/grafite_engine/grafiteEngine.ml
more abstract discrimination tree
[helm.git] / helm / software / components / grafite_engine / grafiteEngine.ml
index b3a6284637692baedf3577c15217d4c308ca62e0..10cf1b8cbc41e3171f83a6e01300f6822ff2c91f 100644 (file)
@@ -82,6 +82,7 @@ let rec tactic_of_ast status ast =
   (* First order tactics *)
   | GrafiteAst.Absurd (_, term) -> Tactics.absurd term
   | GrafiteAst.Apply (_, term) -> Tactics.apply term
+  | GrafiteAst.ApplyP (_, term) -> Tactics.applyP term
   | GrafiteAst.ApplyS (_, term, params) ->
      Tactics.applyS ~term ~params ~dbd:(LibraryDb.instance ())
        ~universe:status.GrafiteTypes.universe
@@ -454,7 +455,7 @@ type 'a eval_executable =
 type 'a eval_from_moo =
  { efm_go: GrafiteTypes.status -> string -> GrafiteTypes.status }
       
-let coercion_moo_statement_of (uri,arity, saturations) =
+let coercion_moo_statement_of (uri,arity, saturations,_) =
   GrafiteAst.Coercion
    (HExtlib.dummy_floc, CicUtil.term_of_uri uri, false, arity, saturations)
 
@@ -492,11 +493,11 @@ let eval_coercion status ~add_composites uri arity saturations =
    saturations (GrafiteTypes.get_baseuri status)
  in
  let moo_content = 
-   List.map coercion_moo_statement_of ((uri,arity,saturations)::compounds)
+   List.map coercion_moo_statement_of ((uri,arity,saturations,0)::compounds)
  in
  let status = GrafiteTypes.add_moo_content moo_content status in
   {status with GrafiteTypes.proof_status = GrafiteTypes.No_proof},
-   List.map (fun u,_,_ -> u) compounds
+   List.map (fun u,_,_,_ -> u) compounds
 
 module MatitaStatus =
  struct
@@ -607,9 +608,9 @@ let add_coercions_of_record_to_moo obj lemmas status =
               in
               let is_a_coercion, arity_coercion = is_a_coercion uri in
               if is_a_coercion then
-                Some (uri, coercion_moo_statement_of (uri,arity_coercion,0))
+                Some (uri, coercion_moo_statement_of (uri,arity_coercion,0,0))
               else if is_a_wanted_coercion then
-                Some (uri, coercion_moo_statement_of (uri,arity_wanted,0))
+                Some (uri, coercion_moo_statement_of (uri,arity_wanted,0,0))
               else
                 None)
             lemmas)
@@ -793,9 +794,19 @@ let rec eval_command = {ec_go = fun ~disambiguate_command opts status
 } and eval_executable = {ee_go = fun ~disambiguate_tactic ~disambiguate_command
 ~disambiguate_macro opts status (text,prefix_len,ex) ->
   match ex with
-  | GrafiteAst.Tactic (_, Some tac, punct) ->
+  | GrafiteAst.Tactic (_(*loc*), Some tac, punct) ->
      let tac = apply_tactic ~disambiguate_tactic (text,prefix_len,tac) in
      let status = eval_tactical status (tactic_of_ast' tac) in
+     (* CALL auto on every goal, easy way of testing it 
+     let auto = 
+       GrafiteAst.AutoBatch 
+         (loc, ([],["depth","2";"timeout","1";"type","1"])) in
+     (try
+       let auto = apply_tactic ~disambiguate_tactic ("",0,auto) in
+       let _ = eval_tactical status (tactic_of_ast' auto) in 
+       print_endline "GOOD"; ()
+     with ProofEngineTypes.Fail _ -> print_endline "BAD" | _ -> ());
+     *)
       eval_tactical status
        (punctuation_tactical_of_ast (text,prefix_len,punct)),[]
   | GrafiteAst.Tactic (_, None, punct) ->