60 likes | 150 Views
Prover9 Implementation. Using ReL to evaluate prover9 statements. Prover9Demo.py. Assumptions. Goals. formulas (goals). mortal ( george ) . end_of_list . formulas (assumptions). man(x) -> mortal(x). man( george ). end_of_list. Python.g. prover9_assumption_stmt
E N D
Prover9 Implementation Using ReL to evaluate prover9 statements
Prover9Demo.py Assumptions Goals formulas (goals). mortal (george). end_of_list. formulas (assumptions). man(x) -> mortal(x). man(george). end_of_list
Python.g prover9_assumption_stmt :PRV9 {$prover9_stmt::strings.add($PRV9.text);LPAREN{$prover9_stmt::strings.add ($LPAREN.text);} ASSUMPTS{$prover9_stmt::strings.add ($ASSUMPTS.text);} RPAREN{$prover9_stmt::strings.add($RPAREN.text);} prover9_dot (prover9_clause_stmt)+ //expr ENDL{$prover9_stmt::strings.add($ENDL.text);} prover9_dot prover9_clause_stmt : prover9_predicate (prover9_ops prover9_predicate)* prover9_dot; prover9_predicate :(MINUS {$prover9_stmt::strings.add($MINUS.text);}) NAME{$prover9_stmt::strings.add($NAME.text);} LPAREN {$prover9_stmt::strings.add($LPAREN.text);}prover9_var RPAREN{$prover9_stmt::strings.add($RPAREN.text);};
Constructor ( parse_prv9) -> ^(PRV9<Tuple>[$prover9_stmt.start, null, $expr::ctype, $prover9_stmt::strings, "PRV9"]); parse_prv9 : prover9_assumption_stmt (NEWLINE)* prover9_goals_stmt ;
PyTuple.java else if (mode.equals("PRV9”)) handleProver9(elements, sqlstrings, server, uname, pword, ctype, conn);} ------------------------------------------------------------------------------------------------------------------ public void handleProver9(PyObject[] elements, String prover9_stmts, String server, String uname, String pword,Stringconntype, OracleConnection conn){ try{ FileWriterfstream = new FileWriter("/Users/mullero/dist/rules.txt"); BufferedWriter out = new BufferedWriter(fstream); prover9_stmts = prover9_stmts.replaceAll(";",""); prover9_stmts = prover9_stmts.replaceAll(" ",""); String[] s = prover9_stmts.split("."); int length = s.length; for(inti=0; i < length-1 ; i++){ out.write(s[i] + '.');}
Executing of Prover9 Rules String cmd = "LADR-2009-11A/bin/prover9 -f ../rules.in"; execShellCmd(cmd); ------------------------------------------------------------------------------------------------------------------------------------------------------------------ try { FileWriter fstream2 = new FileWriter("../rules.out"); Runtime runtime = Runtime.getRuntime(); Process process = runtime.exec(cmd); intexitValue = process.waitFor(); System.out.println("exit value: " + exitValue); BufferedReaderbuf = new BufferedReader(new InputStreamReader(process.getInputStream())); BufferedWriterout2 = new BufferedWriter(fstream2); String line = ""; while ((line = buf.readLine()) != null) { System.out.println(line); out2.write(line + "\n"); } out2.close();