]> matita.cs.unibo.it Git - helm.git/blobdiff - components/grafite_engine/grafiteEngine.ml
- Level-1: some fixes to the extraction procedure
[helm.git] / components / grafite_engine / grafiteEngine.ml
index d99ab859311367572eb866e6f675bdb5612a3028..ac63812461ab3002c9eb4ee5e2a4c42f9ce7ef6c 100644 (file)
@@ -152,17 +152,28 @@ let tactic_of_ast ast =
   | GrafiteAst.Right _ -> Tactics.right
   | GrafiteAst.Ring _ -> Tactics.ring
   | GrafiteAst.Split _ -> Tactics.split
+  | GrafiteAst.Subst (_, hyp) -> Tactics.subst ~hyp
   | GrafiteAst.Symmetry _ -> Tactics.symmetry
   | GrafiteAst.Transitivity (_, term) -> Tactics.transitivity term
   (* Implementazioni Aggiunte *)
   | GrafiteAst.Assume (_, id, t) -> Declarative.assume id t
-  | GrafiteAst.Suppose (_, t, id) -> Declarative.suppose t id
-  | GrafiteAst.By_term_we_proved (_, t, ty, id) ->
-     Declarative.by_term_we_proved t ty id
-  | GrafiteAst.We_need_to_prove (_, t, id) -> Declarative.we_need_to_prove t id
-  | GrafiteAst.Bydone (_, t) -> Declarative.bydone t
+  | GrafiteAst.Suppose (_, t, id, t1) -> Declarative.suppose t id t1
+  | GrafiteAst.By_term_we_proved (_, t, ty, id, t1) ->
+     Declarative.by_term_we_proved ~dbd:(LibraryDb.instance()) t ty id t1
+  | GrafiteAst.We_need_to_prove (_, t, id, t2) ->
+     Declarative.we_need_to_prove t id t2
+  | GrafiteAst.Bydone (_, t) -> Declarative.bydone ~dbd:(LibraryDb.instance()) t
+  | GrafiteAst.We_proceed_by_induction_on (_, t, t1) ->
+     Declarative.we_proceed_by_induction_on t t1
+  | GrafiteAst.Byinduction (_, t, id) -> Declarative.byinduction t id
+  | GrafiteAst.Thesisbecomes (_, t) -> Declarative.thesisbecomes t
+  | GrafiteAst.ExistsElim (_, t, id1, t1, id2, t2) ->
+     Declarative.existselim t id1 t1 id2 t2
+  | GrafiteAst.Case (_,id,params) -> Declarative.case id params
+  | GrafiteAst.AndElim(_,t,id1,t1,id2,t2) -> Declarative.andelim t id1 t1 id2 t2
+  | GrafiteAst.RewritingStep (_,termine,t1,t2,cont) ->
+     Declarative.rewritingstep ~dbd:(LibraryDb.instance ()) termine t1 t2 cont
 
-(* maybe we only need special cases for apply and goal *)
 let classify_tactic tactic = 
   match tactic with
   (* tactics that can't close the goal (return a goal we want to "select") *)
@@ -625,9 +636,12 @@ let rec eval_command = {ec_go = fun ~disambiguate_command opts status
           LibraryClean.clean_baseuris [value];
           assert (Http_getter_storage.is_empty value);
         end;
-        HExtlib.mkdir 
-          (Filename.dirname (Http_getter.filename ~writable:true (value ^
-            "/foo.con")));
+        if not (Helm_registry.get_opt_default Helm_registry.bool "matita.nodisk"
+                  ~default:false) 
+        then
+          HExtlib.mkdir 
+            (Filename.dirname (Http_getter.filename ~writable:true (value ^
+              "/foo.con")));
       end;
       GrafiteTypes.set_option status name value,[]
   | GrafiteAst.Drop loc -> raise Drop