]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/grafite_parser/grafiteParser.ml
assert_tac now takes a list of sequents and also checks that the number of
[helm.git] / helm / software / components / grafite_parser / grafiteParser.ml
index dacdc28bdb936f9035d6fc27f5633f0530c38134..7b4e6157b70fd43950da32b8d8f832628cbcffa5 100644 (file)
@@ -182,6 +182,16 @@ EXTEND
   using: [ [ using = OPT [ IDENT "using"; t = tactic_term -> t ] -> using ] ];
   ntactic: [
     [ IDENT "napply"; t = tactic_term -> GrafiteAst.NApply (loc, t)
+    | IDENT "nassert";
+       seqs = LIST0 [
+        hyps = LIST0
+         [ id = IDENT ; SYMBOL ":" ; ty = tactic_term -> id,`Decl ty
+         | id = IDENT ; SYMBOL ":" ; ty = tactic_term ;
+                        SYMBOL <:unicode<def>> ; bo = tactic_term ->
+            id,`Def (bo,ty)];
+        SYMBOL <:unicode<vdash>>;
+        concl = tactic_term -> (hyps,concl) ] ->
+         GrafiteAst.NAssert (loc, seqs)
     | IDENT "ncases"; what = tactic_term ; where = pattern_spec ->
         GrafiteAst.NCases (loc, what, where)
     | IDENT "nchange"; what = pattern_spec; "with"; with_what = tactic_term -> 
@@ -190,6 +200,9 @@ EXTEND
         GrafiteAst.NElim (loc, what, where)
     | IDENT "ngeneralize"; p=pattern_spec ->
         GrafiteAst.NGeneralize (loc, p)
+    | IDENT "nletin"; name = IDENT ; SYMBOL <:unicode<def>> ; t = tactic_term;
+        where = pattern_spec ->
+        GrafiteAst.NLetIn (loc,where,t,name)
     | IDENT "nrewrite"; dir = direction; what = tactic_term ; where = pattern_spec ->
         GrafiteAst.NRewrite (loc, dir, what, where)
     | IDENT "nwhd"; delta = OPT [ IDENT "nodelta" -> () ];