]> 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 8f37c918e83e8834446ddc667cb835dfc95bb04f..7b4e6157b70fd43950da32b8d8f832628cbcffa5 100644 (file)
@@ -182,12 +182,33 @@ 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 -> 
         GrafiteAst.NChange (loc, what, with_what)
     | IDENT "nelim"; what = tactic_term ; where = pattern_spec ->
         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" -> () ];
+      where = pattern_spec ->
+        let delta = match delta with None -> true | _ -> false in
+        GrafiteAst.NEval (loc, where, `Whd delta)
     | SYMBOL "#"; n=IDENT -> GrafiteAst.NIntro (loc,n)
     | SYMBOL "#"; SYMBOL "_" -> GrafiteAst.NIntro (loc,"_")
     | SYMBOL "*" -> GrafiteAst.NCase1 (loc,"_")