}
PARSER_STATE->setLogic(name);
if( PARSER_STATE->sygus() ){
- cmd->reset(new SetBenchmarkLogicCommand("ALL"));
+ cmd->reset(new SetBenchmarkLogicCommand(PARSER_STATE->getLogic().getLogicString()));
}else{
cmd->reset(new SetBenchmarkLogicCommand(name));
}
void Smt2::setLogic(std::string name) {
if(sygus()) {
+ // sygus by default requires UF, datatypes, and LIA
if(name == "Arrays") {
- name = "AUF";
+ name = "AUFDTLIA";
} else if(name == "Reals") {
- name = "UFLRA";
+ name = "UFDTLIRA";
} else if(name == "LIA") {
- name = "UFLIA";
+ name = "UFDTLIA";
} else if(name == "LRA") {
- name = "UFLRA";
+ name = "UFDTLIRA";
} else if(name == "LIRA") {
- name = "UFLIRA";
+ name = "UFDTLIRA";
} else if(name == "BV") {
- name = "UFBV";
+ name = "UFDTBVLIA";
} else if(name == "SLIA") {
- name = "UFSLIA";
+ name = "UFDTSLIA";
} else if(name == "SAT") {
- name = "UF";
+ name = "UFDTLIA";
} else if(name == "ALL" || name == "ALL_SUPPORTED") {
//no change
} else {
if(strictModeEnabled()) {
parseError("set-logic must appear before this point.");
} else {
- if(sygus()) {
- setLogic("LIA");
- } else {
- warning("No set-logic command was given before this point.");
- warning("CVC4 will make all theories available.");
- warning("Consider setting a stricter logic for (likely) better performance.");
- warning("To suppress this warning in the future use (set-logic ALL).");
+ warning("No set-logic command was given before this point.");
+ warning("CVC4 will make all theories available.");
+ warning("Consider setting a stricter logic for (likely) better performance.");
+ warning("To suppress this warning in the future use (set-logic ALL).");
- setLogic("ALL");
- }
+ setLogic("ALL");
Command* c = new SetBenchmarkLogicCommand("ALL");
c->setMuted(true);
// the "all theories included" logic, no quantifiers
enableEverything();
disableQuantifiers();
+ arithNonLinear();
p += 16;
} else if(!strcmp(p, "QF_ALL")) {
// the "all theories included" logic, no quantifiers
enableEverything();
disableQuantifiers();
+ arithNonLinear();
p += 6;
} else if(!strcmp(p, "ALL_SUPPORTED")) {
// the "all theories included" logic, with quantifiers
enableEverything();
enableQuantifiers();
+ arithNonLinear();
p += 13;
} else if(!strcmp(p, "ALL")) {
// the "all theories included" logic, with quantifiers
enableEverything();
enableQuantifiers();
+ arithNonLinear();
p += 3;
} else {
if(!strncmp(p, "QF_", 3)) {
-% COMMAND-LINE: --cegqi-si=all --no-dump-synth
+% COMMAND-LINE:
% SCRUBBER: sed -e 's/The fact in question: .*$/The fact in question: TERM/'
% EXPECT: (error "A non-linear fact was asserted to arithmetic in a linear logic.
% EXPECT: The fact in question: TERM