]> matita.cs.unibo.it Git - helm.git/commitdiff
fixed parsing
authorAndrea Asperti <andrea.asperti@unibo.it>
Fri, 26 Jun 2009 13:21:55 +0000 (13:21 +0000)
committerAndrea Asperti <andrea.asperti@unibo.it>
Fri, 26 Jun 2009 13:21:55 +0000 (13:21 +0000)
helm/software/components/binaries/matitaprover/tptp_cnf.ml

index ffac7658523f917e298a51b7536a807130f732c7..8c38d6e6571eaee3b27064fc867a57c4a257d93c 100644 (file)
@@ -1,15 +1,13 @@
 
-let trans_atom ~neg = function 
+let trans_atom = function 
   | Ast.True | Ast.False | Ast.Predicate _ | Ast.Proposition _ -> assert false
-  | Ast.Eq _ when neg -> assert false
-  | Ast.Eq (a,b) -> Ast.Function ("==",[Ast.Constant "_"; a; b])
-  | Ast.NotEq (a,b) when neg -> Ast.Function ("==",[Ast.Constant "_"; a; b])
-  | Ast.NotEq _ -> assert false
+  | Ast.Eq (a,b) -> true, Ast.Function ("==",[Ast.Constant "_"; a; b])
+  | Ast.NotEq (a,b) -> false, Ast.Function ("==",[Ast.Constant "_"; a; b])
 ;;
 
-let trans_formulae ~neg = function
+let trans_formulae = function
   | Ast.Disjunction _ -> assert false
-  | Ast.Atom a -> trans_atom ~neg a
+  | Ast.Atom a -> trans_atom a
   | Ast.NegAtom _ -> assert false
 ;;
 
@@ -50,11 +48,11 @@ let parse ~tptppath filename =
     let rec aux p n = function
       | [] -> p,n
       | Ast.Comment _ :: tl -> aux p n tl
-      | Ast.AnnotatedFormula (name, (Ast.Axiom | Ast.Hypothesis), f,_,_) :: tl->
-          aux (p@[Ast.Constant name,trans_formulae ~neg:false f]) n tl
-      | Ast.AnnotatedFormula (name, Ast.Negated_conjecture, f,_,_) :: tl ->
-          assert (n = []);
-          aux p (n@[Ast.Constant name, trans_formulae ~neg:true f]) tl
+      | Ast.AnnotatedFormula (name, 
+          (Ast.Axiom | Ast.Hypothesis|Ast.Negated_conjecture), f,_,_) :: tl->
+          let is_positive, f = trans_formulae f in
+          if is_positive then aux (p@[Ast.Constant name,f]) n tl
+          else aux p (n@[Ast.Constant name,f]) tl
       | _ -> prerr_endline "bad syntax"; assert false
     in
       aux [] [] statements