]> matita.cs.unibo.it Git - helm.git/blobdiff - components/grafite_engine/grafiteEngine.ml
- tactics:
[helm.git] / components / grafite_engine / grafiteEngine.ml
index a747223c7dea4136e5a54a6b69f59eed4d0bc427..30aa982d8bec9395ad6813c0af5a19fe3f777c68 100644 (file)
@@ -68,6 +68,9 @@ let tactic_of_ast status ast =
   | GrafiteAst.Auto (_,params) ->
       AutoTactic.auto_tac ~params ~dbd:(LibraryDb.instance ()) 
        ~universe:status.GrafiteTypes.universe
+  | GrafiteAst.Cases (_, what, names) ->
+      Tactics.cases_intros ~mk_fresh_name_callback:(namer_of names)
+        what
   | GrafiteAst.Change (_, pattern, with_what) ->
      Tactics.change ~pattern with_what
   | GrafiteAst.Clear (_,id) -> Tactics.clear id
@@ -148,10 +151,11 @@ let tactic_of_ast status ast =
         | `Unfold what -> Tactics.unfold ~pattern what
         | `Whd -> Tactics.whd ~pattern)
   | GrafiteAst.Reflexivity _ -> Tactics.reflexivity
+  | GrafiteAst.Rename (_, froms, tos) -> Tactics.rename ~froms ~tos
   | GrafiteAst.Replace (_, pattern, with_what) ->
      Tactics.replace ~pattern ~with_what
-  | GrafiteAst.Rewrite (_, direction, t, pattern) ->
-     EqualityTactics.rewrite_tac ~direction ~pattern t
+  | GrafiteAst.Rewrite (_, direction, t, pattern, names) ->
+     EqualityTactics.rewrite_tac ~direction ~pattern t names
   | GrafiteAst.Right _ -> Tactics.right
   | GrafiteAst.Ring _ -> Tactics.ring
   | GrafiteAst.Split _ -> Tactics.split
@@ -169,6 +173,8 @@ let tactic_of_ast status ast =
   | GrafiteAst.Bydone (_, t) ->
      Declarative.bydone ~dbd:(LibraryDb.instance())
       ~universe:status.GrafiteTypes.universe t
+  | GrafiteAst.We_proceed_by_cases_on (_, t, t1) ->
+     Declarative.we_proceed_by_cases_on t t1
   | GrafiteAst.We_proceed_by_induction_on (_, t, t1) ->
      Declarative.we_proceed_by_induction_on t t1
   | GrafiteAst.Byinduction (_, t, id) -> Declarative.byinduction t id