]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/grafite_parser/grafiteParser.ml
some fixes to THF parser
[helm.git] / helm / software / components / grafite_parser / grafiteParser.ml
index b35245f9087b92345df0148bbc027c4a5ab91279..3d5c662ca378447e94099f129925178cffbcbb3f 100644 (file)
@@ -238,6 +238,7 @@ EXTEND
   using: [ [ using = OPT [ IDENT "using"; t = tactic_term -> t ] -> using ] ];
   ntactic: [
     [ IDENT "napply"; t = tactic_term -> G.NApply (loc, t)
+    | IDENT "napplyS"; t = tactic_term -> G.NSmartApply (loc, t)
     | IDENT "nassert";
        seqs = LIST0 [
         hyps = LIST0
@@ -249,6 +250,10 @@ EXTEND
         concl = tactic_term -> (List.rev hyps,concl) ] ->
          G.NAssert (loc, seqs)
     | IDENT "nauto"; params = auto_params -> G.NAuto (loc, params)
+    | SYMBOL "/"; num = OPT NUMBER ; SYMBOL "/" ; 
+       (univ,params) = auto_params ->
+        let depth = match num with Some n -> n | None -> "1" in
+          G.NAuto (loc, (univ,["slir","";"depth",depth]@params))
     | IDENT "ncases"; what = tactic_term ; where = pattern_spec ->
         G.NCases (loc, what, where)
     | IDENT "nchange"; what = pattern_spec; "with"; with_what = tactic_term -> 
@@ -264,6 +269,8 @@ EXTEND
         G.NElim (loc, what, where)
     | IDENT "ngeneralize"; p=pattern_spec ->
         G.NGeneralize (loc, p)
+    | IDENT "ninversion"; what = tactic_term ; where = pattern_spec ->
+        G.NInversion (loc, what, where)
     | IDENT "nlapply"; t = tactic_term -> G.NLApply (loc, t)
     | IDENT "nletin"; name = IDENT ; SYMBOL <:unicode<def>> ; t = tactic_term;
         where = pattern_spec ->
@@ -416,7 +423,7 @@ EXTEND
     | "let" ; id1 = IDENT ; SYMBOL ":" ; t1 = tactic_term ;
       IDENT "such" ; IDENT "that" ; t2=tactic_term ; LPAREN ; 
       id2 = IDENT ; RPAREN -> 
-        G.ExistsElim (loc, `Auto ([],[]), id1, t1, id2, t2)
+        G.ExistsElim (loc, `Auto (None,[]), id1, t1, id2, t2)
     | just =
        [ IDENT "using"; t=tactic_term -> `Term t
        | params = auto_params -> `Auto params] ;
@@ -478,7 +485,9 @@ EXTEND
 ];
   auto_fixed_param: [
    [ IDENT "paramodulation"
+   | IDENT "demod"
    | IDENT "fast_paramod"
+   | IDENT "paramod"
    | IDENT "slir"
    | IDENT "depth"
    | IDENT "width"
@@ -490,13 +499,13 @@ EXTEND
    ]
 ];
   auto_params: [
-   [ params =
+    [ params = 
       LIST0 [
          i = auto_fixed_param -> i,""
        | i = auto_fixed_param ; SYMBOL "="; v = [ v = int ->
               string_of_int v | v = IDENT -> v ] -> i,v ]; 
-      tl = OPT [ IDENT "by"; tl = tactic_term_list1 -> tl] ->
-      (match tl with Some l -> l | None -> []),
+      tl = OPT [ IDENT "by"; tl = tactic_term_list1 -> tl] -> tl,
+      (* (match tl with Some l -> l | None -> []), *)
       params
    ]
 ];