# which case this run script terminates immediately. Otherwise, this
# function returns normally.
function trywith {
- result="$($cvc4 -L tptp --no-checking --no-interactive "$@" $bench)"
+ result="$( ulimit -t "$1";shift;$cvc4 -L tptp --szs-compliant --no-checking --no-interactive "$@" $bench)"
case "$result" in
sat) echo "SZS Satisfiable for $filename"; exit 0;;
unsat) echo "SZS Unsatisfiable for $filename"; exit 0;;
+ conjecture-sat) echo "SZS CounterSatisfiable for $filename"; exit 0;;
+ conjecture-unsat) echo "SZS Theorem for $filename"; exit 0;;
+ esac
+}
+function finishwith {
+ result="$( $cvc4 -L tptp --szs-compliant --no-checking --no-interactive "$@" $bench)"
+ case "$result" in
+ sat) echo "SZS Satisfiable for $filename"; exit 0;;
+ unsat) echo "SZS Unsatisfiable for $filename"; exit 0;;
+ conjecture-sat) echo "SZS CounterSatisfiable for $filename"; exit 0;;
+ conjecture-unsat) echo "SZS Theorem for $filename"; exit 0;;
esac
}
-
-trywith --finite-model-find --uf-ss-totality --tlimit-per=10000
-trywith --finite-model-find --decision=justification --tlimit-per=10000
-trywith --finite-model-find --decision=justification --fmf-fmc
-;;
-
-
+trywith 15 --finite-model-find --uf-ss-totality
+trywith 15 --finite-model-find --decision=justification --fmf-fmc
+finishwith --finite-model-find --decision=justification
+echo "SZS GaveUp for $filename"
\ No newline at end of file
option semanticChecks /--no-checking bool :default DO_SEMANTIC_CHECKS_BY_DEFAULT :link /--no-type-checking
disable ALL semantic checks, including type checks
+option szsCompliant --szs-compliant bool :default false
+ temporary support for szs ontolotogy, print if conjecture is found
+
endmodule
parser = new Smt2(d_exprManager, input, d_strictMode, d_parseOnly);
break;
case language::input::LANG_TPTP:
- parser = new Tptp(d_exprManager, input, d_strictMode, d_parseOnly);
+ {
+ Tptp * tparser = new Tptp(d_exprManager, input, d_strictMode, d_parseOnly);
+ tparser->d_szsCompliant = d_szsCompliant;
+ parser = tparser;
+ }
break;
default:
parser = new Parser(d_exprManager, input, d_strictMode, d_parseOnly);
}
ParserBuilder& ParserBuilder::withOptions(const Options& options) {
+ d_szsCompliant = options[options::szsCompliant];
return
withInputLanguage(options[options::inputLanguage])
.withMmap(options[options::memoryMap])
/** Are we parsing only? */
bool d_parseOnly;
+ /** hack for szs compliance */
+ bool d_szsCompliant;
+
/** Initialize this parser builder */
void init(ExprManager* exprManager, const std::string& filename);
d_tptpDir.append("/");
}
}
+ d_hasConjecture = false;
}
void Tptp::addTheory(Theory theory) {
#include "util/hash.h"
#include <ext/hash_set>
#include <cassert>
+#include "parser/options.h"
namespace CVC4 {
// empty if none could be determined
std::string d_tptpDir;
+ //hack to make output SZS ontology-compliant
+ bool d_hasConjecture;
+ // hack for szs compliance
+ bool d_szsCompliant;
+
public:
bool cnf; //in a cnf formula
};
inline Command* Tptp::makeCommand(FormulaRole fr, Expr & expr){
+ //hack for SZS ontology compliance
+ if(d_szsCompliant && (fr==FR_NEGATED_CONJECTURE || fr==FR_CONJECTURE)){
+ if( !d_hasConjecture ){
+ d_hasConjecture = true;
+ std::cout << "conjecture-";
+ }
+ }
switch(fr){
case FR_AXIOM:
case FR_HYPOTHESIS: