]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaEngine.ml
clear already exists
[helm.git] / helm / matita / matitaEngine.ml
index 5b5a76a7d0e6344fe0c1cdad993c9ce78b5bd696..89d168af36acb80efefc91b890005e161d6f9de3 100644 (file)
@@ -29,7 +29,9 @@ let tactic_of_ast = function
   | TacticAst.Contradiction _ -> Tactics.contradiction
   | TacticAst.Compare (_, term) -> Tactics.compare term
   | TacticAst.Constructor (_, n) -> Tactics.constructor n
-  | TacticAst.Cut (_, term) -> Tactics.cut term
+  | TacticAst.Cut (_, ident, term) ->
+     let names = match ident with None -> [] | Some id -> [id] in
+     Tactics.cut ~mk_fresh_name_callback:(namer_of names) term
   | TacticAst.DecideEquality _ -> Tactics.decide_equality
   | TacticAst.Decompose (_,term) -> Tactics.decompose term
   | TacticAst.Discriminate (_,term) -> Tactics.discriminate term
@@ -50,7 +52,9 @@ let tactic_of_ast = function
   | TacticAst.Fourier _ -> Tactics.fourier
   | TacticAst.FwdSimpl (_, term) -> 
      Tactics.fwd_simpl ~what:term ~dbd:(MatitaDb.instance ())
-  | TacticAst.Generalize (_,term,pat) -> Tactics.generalize term pat
+  | TacticAst.Generalize (_,term,ident,pat) ->
+     let names = match ident with None -> [] | Some id -> [id] in
+     Tactics.generalize ~term ~mk_fresh_name_callback:(namer_of names) pat
   | TacticAst.Goal (_, n) -> Tactics.set_goal n
   | TacticAst.Injection (_,term) -> Tactics.injection term
   | TacticAst.Intros (_, None, names) ->
@@ -394,9 +398,9 @@ let disambiguate_tactic status = function
       status, TacticAst.Constructor (loc,n)
   | TacticAst.Contradiction loc ->
       status, TacticAst.Contradiction loc
-  | TacticAst.Cut (loc, term) -> 
+  | TacticAst.Cut (loc, ident, term) -> 
       let status, cic = disambiguate_term status term in
-      status, TacticAst.Cut (loc, cic)
+      status, TacticAst.Cut (loc, ident, cic)
   | TacticAst.DecideEquality loc ->
       status, TacticAst.DecideEquality loc
   | TacticAst.Decompose (loc,term) ->
@@ -426,10 +430,10 @@ let disambiguate_tactic status = function
      let status, term = disambiguate_term status term in
      status, TacticAst.FwdSimpl (loc, term)  
   | TacticAst.Fourier loc -> status, TacticAst.Fourier loc
-  | TacticAst.Generalize (loc,term,pattern) ->
+  | TacticAst.Generalize (loc,term,ident,pattern) ->
       let status,term = disambiguate_term status term in
       let pattern = disambiguate_pattern status.aliases pattern in
-      status, TacticAst.Generalize(loc,term,pattern)
+      status, TacticAst.Generalize(loc,term,ident,pattern)
   | TacticAst.Goal (loc, g) -> status, TacticAst.Goal (loc, g)
   | TacticAst.Injection (loc,term) ->
       let status, term = disambiguate_term status term in