{
CVC5_API_TRY_CATCH_BEGIN;
CVC5_API_SOLVER_CHECK_TERM(conj);
- CVC5_API_CHECK(d_slv->getOptions().smt.interpols)
+ CVC5_API_CHECK(d_slv->getOptions().smt.interpolants)
<< "Cannot get interpolant unless interpolants are enabled (try "
- "--produce-interpols)";
+ "--produce-interpolants)";
//////// all checks before this line
TypeNode nullType;
Node result = d_slv->getInterpolant(*conj.d_node, nullType);
{
CVC5_API_TRY_CATCH_BEGIN;
CVC5_API_SOLVER_CHECK_TERM(conj);
- CVC5_API_CHECK(d_slv->getOptions().smt.interpols)
+ CVC5_API_CHECK(d_slv->getOptions().smt.interpolants)
<< "Cannot get interpolant unless interpolants are enabled (try "
- "--produce-interpols)";
+ "--produce-interpolants)";
//////// all checks before this line
Node result = d_slv->getInterpolant(*conj.d_node, *grammar.resolve().d_type);
return Term(this, result);
Term Solver::getInterpolantNext() const
{
CVC5_API_TRY_CATCH_BEGIN;
- CVC5_API_CHECK(d_slv->getOptions().smt.interpols)
+ CVC5_API_CHECK(d_slv->getOptions().smt.interpolants)
<< "Cannot get interpolant unless interpolants are enabled (try "
- "--produce-interpols)";
+ "--produce-interpolants)";
CVC5_API_CHECK(d_slv->getOptions().base.incrementalSolving)
<< "Cannot get next interpolant when not solving incrementally (try "
"--incremental)";
* \verbatim embed:rst:leading-asterisk
* .. code:: smtlib
*
- * (get-interpol <conj>)
+ * (get-interpolant <conj>)
*
* Requires option
- * :ref:`produce-interpols <lbl-option-produce-interpols>` to be set to a
- * mode different from `none`.
- * \endverbatim
+ * :ref:`produce-interpolants <lbl-option-produce-interpolants>` to be set to
+ * a mode different from `none`. \endverbatim
*
* @warning This method is experimental and may change in future versions.
*
* \verbatim embed:rst:leading-asterisk
* .. code:: smtlib
*
- * (get-interpol <conj> <grammar>)
+ * (get-interpolant <conj> <grammar>)
*
* Requires option
- * :ref:`produce-interpols <lbl-option-produce-interpols>` to be set to a
- * mode different from `none`.
- * \endverbatim
+ * :ref:`produce-interpolants <lbl-option-produce-interpolants>` to be set to
+ * a mode different from `none`. \endverbatim
*
* @warning This method is experimental and may change in future versions.
*
/**
* Get the next interpolant. Can only be called immediately after a successful
- * call to get-interpol or get-interpol-next. Is guaranteed to produce a
+ * call to get-interpolant or get-interpolant-next. Is guaranteed to produce a
* syntactically different interpolant wrt the last returned interpolant if
* successful.
*
* \verbatim embed:rst:leading-asterisk
* .. code:: smtlib
*
- * (get-interpol-next)
+ * (get-interpolant-next)
*
* Requires to enable incremental mode, and option
- * :ref:`produce-interpols <lbl-option-produce-interpols>` to be set to a
- * mode different from `none`.
- * \endverbatim
+ * :ref:`produce-interpolants <lbl-option-produce-interpolants>` to be set to
+ * a mode different from `none`. \endverbatim
*
* @warning This method is experimental and may change in future versions.
*
* Get an interpolant
* SMT-LIB:
* {@code
- * ( get-interpol <conj> )
+ * ( get-interpolant <conj> )
* }
- * Requires 'produce-interpols' to be set to a mode different from 'none'.
+ * Requires 'produce-interpolants' to be set to a mode different from 'none'.
*
* @apiNote This method is experimental and may change in future versions.
*
* Get an interpolant
* SMT-LIB:
* {@code
- * ( get-interpol <conj> <g> )
+ * ( get-interpolant <conj> <g> )
* }
- * Requires 'produce-interpols' to be set to a mode different from 'none'.
+ * Requires 'produce-interpolants' to be set to a mode different from 'none'.
*
* @apiNote This method is experimental and may change in future versions.
*
/**
* Get the next interpolant. Can only be called immediately after a successful
- * call to get-interpol or get-interpol-next. Is guaranteed to produce a
+ * call to get-interpolant or get-interpolant-next. Is guaranteed to produce a
* syntactically different interpolant wrt the last returned interpolant if
* successful.
*
* \verbatim embed:rst:leading-asterisk
* .. code:: smtlib
*
- * (get-interpol-next)
+ * (get-interpolant-next)
*
- * Requires to enable incremental mode, and option 'produce-interpols' to be
+ * Requires to enable incremental mode, and option 'produce-interpolants' to be
* set to a mode different from 'none'.
* \endverbatim
*
.. code-block:: smtlib
- ( get-interpol <conj> )
- ( get-interpol <conj> <grammar> )
+ ( get-interpolant <conj> )
+ ( get-interpolant <conj> <grammar> )
- Requires option :ref:`produce-interpols <lbl-option-produce-interpols>` to be set to a mode different from `none`.
+ Requires option :ref:`produce-interpolants <lbl-option-produce-interpolants>` to be set to a mode different from `none`.
Supports the following variants:
def getInterpolantNext(self):
"""
Get the next interpolant. Can only be called immediately after
- a succesful call to get-interpol or get-interpol-next.
+ a succesful call to get-interpolant or get-interpolant-next.
Is guaranteed to produce a syntactically different interpolant wrt the
last returned interpolant if successful.
.. code-block:: smtlib
- ( get-interpol-next )
+ ( get-interpolant-next )
Requires to enable incremental mode, and
- option :ref:`produce-interpols <lbl-option-produce-interpols>` to be set to a mode different from `none`.
+ option :ref:`produce-interpolants <lbl-option-produce-interpolants>` to be set to a mode different from `none`.
.. warning:: This method is experimental and may change in future
versions.
help = "attempt to solve a pure real satisfiable problem as an integer problem (for non-linear)"
[[option]]
- name = "interpols"
+ name = "interpolants"
category = "regular"
- long = "produce-interpols"
+ long = "produce-interpolants"
type = "bool"
default = "false"
help = "turn on interpolation generation."
[[option]]
- name = "interpolsMode"
+ name = "interpolantsMode"
category = "regular"
- long = "interpols-mode=MODE"
- type = "InterpolsMode"
+ long = "interpolants-mode=MODE"
+ type = "InterpolantsMode"
default = "DEFAULT"
- help = "choose interpolants production mode, see --interpols-mode=help"
+ help = "choose interpolants production mode, see --interpolants-mode=help"
help_mode = "Interpolants grammar mode"
[[option.mode.DEFAULT]]
name = "default"
help = "support the get-abduct command"
[[option]]
- name = "checkInterpols"
+ name = "checkInterpolants"
category = "regular"
- long = "check-interpols"
+ long = "check-interpolants"
type = "bool"
default = "false"
- help = "checks whether produced solutions to get-interpol are correct"
+ help = "checks whether produced solutions to get-interpolant are correct"
[[option]]
name = "checkAbducts"
sygusGrammar[g, terms, name]
)?
{
- cmd->reset(new GetInterpolCommand(name, e, g));
+ cmd->reset(new GetInterpolantCommand(name, e, g));
}
| GET_INTERPOL_NEXT_TOK {
PARSER_STATE->checkThatLogicIsSet();
- cmd->reset(new GetInterpolNextCommand);
+ cmd->reset(new GetInterpolantNextCommand);
}
| DECLARE_HEAP LPAREN_TOK
sortSymbol[t, CHECK_DECLARED]
GET_QE_DISJUNCT_TOK : 'get-qe-disjunct';
GET_ABDUCT_TOK : 'get-abduct';
GET_ABDUCT_NEXT_TOK : 'get-abduct-next';
-GET_INTERPOL_TOK : 'get-interpol';
-GET_INTERPOL_NEXT_TOK : 'get-interpol-next';
+GET_INTERPOL_TOK : 'get-interpolant';
+GET_INTERPOL_NEXT_TOK : 'get-interpolant-next';
DECLARE_HEAP : 'declare-heap';
DECLARE_POOL : 'declare-pool';
Node conj,
TypeNode sygusType) const
{
- printUnknownCommand(out, "get-interpol");
+ printUnknownCommand(out, "get-interpolant");
}
void Printer::toStreamCmdGetInterpolNext(std::ostream& out) const
{
- printUnknownCommand(out, "get-interpol-next");
+ printUnknownCommand(out, "get-interpolant-next");
}
void Printer::toStreamCmdGetAbduct(std::ostream& out,
/** Print get-instantiations command */
void toStreamCmdGetInstantiations(std::ostream& out) const;
- /** Print get-interpol command */
+ /** Print get-interpolant command */
virtual void toStreamCmdGetInterpol(std::ostream& out,
const std::string& name,
Node conj,
TypeNode sygusType) const;
- /** Print get-interpol-next command */
+ /** Print get-interpolant-next command */
virtual void toStreamCmdGetInterpolNext(std::ostream& out) const;
/** Print get-abduct command */
Node conj,
TypeNode sygusType) const
{
- out << "(get-interpol " << cvc5::quoteSymbol(name) << ' ' << conj;
+ out << "(get-interpolant " << cvc5::quoteSymbol(name) << ' ' << conj;
if (!sygusType.isNull())
{
out << ' ' << sygusGrammarString(sygusType);
void Smt2Printer::toStreamCmdGetInterpolNext(std::ostream& out) const
{
- out << "(get-interpol-next)" << std::endl;
+ out << "(get-interpolant-next)" << std::endl;
}
void Smt2Printer::toStreamCmdGetAbduct(std::ostream& out,
/** Print get-proof command */
void toStreamCmdGetProof(std::ostream& out) const override;
- /** Print get-interpol command */
+ /** Print get-interpolant command */
void toStreamCmdGetInterpol(std::ostream& out,
const std::string& name,
Node conj,
TypeNode sygusType) const override;
- /** Print get-interpol-next command */
+ /** Print get-interpolant-next command */
void toStreamCmdGetInterpolNext(std::ostream& out) const override;
/** Print get-abduct command */
/* class GetInterpolCommand */
/* -------------------------------------------------------------------------- */
-GetInterpolCommand::GetInterpolCommand(const std::string& name, api::Term conj)
+GetInterpolantCommand::GetInterpolantCommand(const std::string& name,
+ api::Term conj)
: d_name(name), d_conj(conj), d_sygus_grammar(nullptr)
{
}
-GetInterpolCommand::GetInterpolCommand(const std::string& name,
- api::Term conj,
- api::Grammar* g)
+GetInterpolantCommand::GetInterpolantCommand(const std::string& name,
+ api::Term conj,
+ api::Grammar* g)
: d_name(name), d_conj(conj), d_sygus_grammar(g)
{
}
-api::Term GetInterpolCommand::getConjecture() const { return d_conj; }
+api::Term GetInterpolantCommand::getConjecture() const { return d_conj; }
-const api::Grammar* GetInterpolCommand::getGrammar() const
+const api::Grammar* GetInterpolantCommand::getGrammar() const
{
return d_sygus_grammar;
}
-api::Term GetInterpolCommand::getResult() const { return d_result; }
+api::Term GetInterpolantCommand::getResult() const { return d_result; }
-void GetInterpolCommand::invoke(api::Solver* solver, SymbolManager* sm)
+void GetInterpolantCommand::invoke(api::Solver* solver, SymbolManager* sm)
{
try
{
- // we must remember the name of the interpolant, in case get-interpol-next
- // is called later.
+ // we must remember the name of the interpolant, in case
+ // get-interpolant-next is called later.
sm->setLastSynthName(d_name);
if (d_sygus_grammar == nullptr)
{
}
}
-void GetInterpolCommand::printResult(std::ostream& out) const
+void GetInterpolantCommand::printResult(std::ostream& out) const
{
if (!ok())
{
}
}
-Command* GetInterpolCommand::clone() const
+Command* GetInterpolantCommand::clone() const
{
- GetInterpolCommand* c =
- new GetInterpolCommand(d_name, d_conj, d_sygus_grammar);
+ GetInterpolantCommand* c =
+ new GetInterpolantCommand(d_name, d_conj, d_sygus_grammar);
c->d_result = d_result;
return c;
}
-std::string GetInterpolCommand::getCommandName() const
+std::string GetInterpolantCommand::getCommandName() const
{
- return "get-interpol";
+ return "get-interpolant";
}
-void GetInterpolCommand::toStream(std::ostream& out,
- int toDepth,
- size_t dag,
- Language language) const
+void GetInterpolantCommand::toStream(std::ostream& out,
+ int toDepth,
+ size_t dag,
+ Language language) const
{
Printer::getPrinter(language)->toStreamCmdGetInterpol(
out, d_name, termToNode(d_conj), grammarToTypeNode(d_sygus_grammar));
/* class GetInterpolNextCommand */
/* -------------------------------------------------------------------------- */
-GetInterpolNextCommand::GetInterpolNextCommand() {}
+GetInterpolantNextCommand::GetInterpolantNextCommand() {}
-api::Term GetInterpolNextCommand::getResult() const { return d_result; }
+api::Term GetInterpolantNextCommand::getResult() const { return d_result; }
-void GetInterpolNextCommand::invoke(api::Solver* solver, SymbolManager* sm)
+void GetInterpolantNextCommand::invoke(api::Solver* solver, SymbolManager* sm)
{
try
{
}
}
-void GetInterpolNextCommand::printResult(std::ostream& out) const
+void GetInterpolantNextCommand::printResult(std::ostream& out) const
{
if (!ok())
{
}
}
-Command* GetInterpolNextCommand::clone() const
+Command* GetInterpolantNextCommand::clone() const
{
- GetInterpolNextCommand* c = new GetInterpolNextCommand;
+ GetInterpolantNextCommand* c = new GetInterpolantNextCommand;
c->d_result = d_result;
return c;
}
-std::string GetInterpolNextCommand::getCommandName() const
+std::string GetInterpolantNextCommand::getCommandName() const
{
- return "get-interpol-next";
+ return "get-interpolant-next";
}
-void GetInterpolNextCommand::toStream(std::ostream& out,
- int toDepth,
- size_t dag,
- Language language) const
+void GetInterpolantNextCommand::toStream(std::ostream& out,
+ int toDepth,
+ size_t dag,
+ Language language) const
{
Printer::getPrinter(language)->toStreamCmdGetInterpolNext(out);
}
api::Solver* d_solver;
}; /* class GetInstantiationsCommand */
-/** The command (get-interpol s B (G)?)
+/** The command (get-interpolant s B (G)?)
*
* This command asks for an interpolant from the current set of assertions and
* conjecture (goal) B.
* find a predicate P, then the output response of this command is: (define-fun
* s () Bool P)
*/
-class CVC5_EXPORT GetInterpolCommand : public Command
+class CVC5_EXPORT GetInterpolantCommand : public Command
{
public:
- GetInterpolCommand(const std::string& name, api::Term conj);
+ GetInterpolantCommand(const std::string& name, api::Term conj);
/** The argument g is the grammar of the interpolation query */
- GetInterpolCommand(const std::string& name, api::Term conj, api::Grammar* g);
+ GetInterpolantCommand(const std::string& name,
+ api::Term conj,
+ api::Grammar* g);
/** Get the conjecture of the interpolation query */
api::Term getConjecture() const;
api::Term d_result;
}; /* class GetInterpolCommand */
-/** The command (get-interpol-next) */
-class CVC5_EXPORT GetInterpolNextCommand : public Command
+/** The command (get-interpolant-next) */
+class CVC5_EXPORT GetInterpolantNextCommand : public Command
{
public:
- GetInterpolNextCommand();
+ GetInterpolantNextCommand();
/**
* Get the result of the query, which is the solution to the interpolation
* query.
const TypeNode& grammarType,
Node& interpol)
{
- if (!options().smt.interpols)
+ if (!options().smt.interpolants)
{
const char* msg =
- "Cannot get interpolation when produce-interpols options is off.";
+ "Cannot get interpolation when produce-interpolants options is off.";
throw ModalException(msg);
}
Trace("sygus-interpol") << "SolverEngine::getInterpol: conjecture " << conj
if (d_subsolver->solveInterpolation(
name, axioms, conjn, grammarType, interpol))
{
- if (options().smt.checkInterpols)
+ if (options().smt.checkInterpolants)
{
checkInterpol(interpol, axioms, conj);
}
bool InterpolationSolver::getInterpolantNext(Node& interpol)
{
// should already have initialized a subsolver, since we are immediately
- // preceeded by a successful call to get-interpol(-next).
+ // preceeded by a successful call to get-interpolant(-next).
Assert(d_subsolver != nullptr);
return d_subsolver->solveInterpolationNext(interpol);
}
/**
* A solver for interpolation queries.
*
- * This class is responsible for responding to get-interpol commands. It spawns
- * a subsolver SolverEngine for a sygus conjecture that captures the
+ * This class is responsible for responding to get-interpolant commands. It
+ * spawns a subsolver SolverEngine for a sygus conjecture that captures the
* interpolation query, and implements supporting utility methods such as
* checkInterpol.
*/
}
if (!d_isInternalSubsolver)
{
- if (opts.smt.produceAbducts || opts.smt.interpols
+ if (opts.smt.produceAbducts || opts.smt.interpolants
|| opts.quantifiers.sygusInference
|| opts.quantifiers.sygusRewSynthInput)
{
UNSAT,
// immediately after a successful call to get-abduct
ABDUCT,
- // immediately after a successful call to get-interpol
+ // immediately after a successful call to get-interpolant
INTERPOL,
// immediately after a successful call to check-synth or check-synth-next
SYNTH
{
d_abductSolver.reset(new AbductionSolver(*d_env.get()));
}
- if (d_env->getOptions().smt.interpols)
+ if (d_env->getOptions().smt.interpolants)
{
d_interpolSolver.reset(new InterpolationSolver(*d_env));
}
Node interpol;
bool success =
d_interpolSolver->getInterpolant(axioms, conj, grammarType, interpol);
- // notify the state of whether the get-interpol call was successfuly, which
+ // notify the state of whether the get-interpolant call was successfuly, which
// impacts the SMT mode.
d_state->notifyGetInterpol(success);
Assert(success == !interpol.isNull());
if (d_state->getMode() != SmtMode::INTERPOL)
{
throw RecoverableModalException(
- "Cannot get-interpol-next unless immediately preceded by a successful "
- "call to get-interpol(-next).");
+ "Cannot get-interpolant-next unless immediately preceded by a "
+ "successful "
+ "call to get-interpolant(-next).");
}
Node interpol;
bool success = d_interpolSolver->getInterpolantNext(interpol);
- // notify the state of whether the get-interpolant-next call was successful
+ // notify the state of whether the get-interpolantant-next call was successful
d_state->notifyGetInterpol(success);
Assert(success == !interpol.isNull());
return interpol;
/**
* Notify that we finished an interpolation query, where success is whether
* the command was successful. This is managed independently of the above
- * calls for notifying check-sat. In other words, if a get-interpol command
+ * calls for notifying check-sat. In other words, if a get-interpolant command
* is issued to an SolverEngine, it may use a satisfiability call (if desired)
* to solve the interpolation query. This method is called *in addition* to
* the above calls to notifyCheckSat / notifyCheckSatResult in this case.
std::map<TypeNode, std::unordered_set<Node>>& result)
{
NodeManager* nm = NodeManager::currentNM();
- Assert(options().smt.interpols);
+ Assert(options().smt.interpolants);
// ASSUMPTIONS
- if (options().smt.interpolsMode == options::InterpolsMode::ASSUMPTIONS)
+ if (options().smt.interpolantsMode == options::InterpolantsMode::ASSUMPTIONS)
{
Node tmpAssumptions =
(axioms.size() == 1 ? axioms[0] : nm->mkNode(kind::AND, axioms));
expr::getOperatorsMap(tmpAssumptions, result);
}
// CONJECTURE
- else if (options().smt.interpolsMode == options::InterpolsMode::CONJECTURE)
+ else if (options().smt.interpolantsMode
+ == options::InterpolantsMode::CONJECTURE)
{
expr::getOperatorsMap(conj, result);
}
// SHARED
- else if (options().smt.interpolsMode == options::InterpolsMode::SHARED)
+ else if (options().smt.interpolantsMode == options::InterpolantsMode::SHARED)
{
// Get operators from axioms
std::map<TypeNode, std::unordered_set<Node>> include_cons_axioms;
}
}
// ALL
- else if (options().smt.interpolsMode == options::InterpolsMode::ALL)
+ else if (options().smt.interpolantsMode == options::InterpolantsMode::ALL)
{
Node tmpAssumptions =
(axioms.size() == 1 ? axioms[0] : nm->mkNode(kind::AND, axioms));
Trace("sygus-interpol")
<< "SolverEngine::getInterpol: could not find solution!" << std::endl;
throw RecoverableModalException(
- "Could not find solution for get-interpol.");
+ "Could not find solution for get-interpolant.");
return false;
}
Trace("sygus-interpol") << "SolverEngine::getInterpol: solution is "
namespace theory {
namespace quantifiers {
/**
- * This is an utility for the SMT-LIB command (get-interpol <term>).
+ * This is an utility for the SMT-LIB command (get-interpolant <term>).
* The utility turns a set of quantifier-free assertions into a sygus
* conjecture that encodes an interpolation problem, and then solve the
* interpolation problem by synthesizing it. In detail, if our input formula is
*
* This class uses a fresh copy of the SMT engine which is used for solving the
* interpolation problem. In particular, consider the input: (assert A)
- * (get-interpol s B)
+ * (get-interpolant s B)
* In the copy of the SMT engine where these commands are issued, we maintain
* A in the assertion stack. In solving the interpolation problem, we will
* need to call a SMT engine solver with a different assertion stack, which is
-; COMMAND-LINE: --produce-interpols --interpols-mode=default --sygus-enum=fast --check-interpols -i
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=default --sygus-enum=fast --check-interpolants -i
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(set-logic NIA)
(declare-fun z ( ) Int)
(push)
(assert (= (* 2 x) y))
-(get-interpol A (distinct (+ (* 2 z) 1) y)
+(get-interpolant A (distinct (+ (* 2 z) 1) y)
; the grammar for the interpol-to-synthesize
((Start Bool) (StartInt Int))
(pop)
(assert (= (* 2 y) x))
-(get-interpol A (distinct (+ (* 2 z) 1) x)
+(get-interpolant A (distinct (+ (* 2 z) 1) x)
; the grammar for the interpol-to-synthesize
((Start Bool) (StartInt Int))
(
-; COMMAND-LINE: --produce-interpols --interpols-mode=default --sygus-enum=fast --check-interpols
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=default --sygus-enum=fast --check-interpolants
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(set-logic NIA)
(declare-fun y ( ) Int)
(declare-fun z ( ) Int)
(assert (= (* 2 x) y))
-(get-interpol A (distinct (+ (* 2 z) 1) y)
+(get-interpolant A (distinct (+ (* 2 z) 1) y)
; the grammar for the interpol-to-synthesize
((Start Bool) (StartInt Int))
-; COMMAND-LINE: --produce-interpols --interpols-mode=default --check-interpols -i
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=default --check-interpolants -i
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(set-logic LIA)
(declare-fun a () Int)
(assert (> a 1))
-(get-interpol A (> a 0))
-(get-interpol-next)
+(get-interpolant A (> a 0))
+(get-interpolant-next)
-; COMMAND-LINE: --produce-interpols --interpols-mode=default --check-interpols
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=default --check-interpolants
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(set-logic LIA)
(declare-fun a () Int)
(assert (> a 1))
-(get-interpol A (> a 0))
+(get-interpolant A (> a 0))
-; COMMAND-LINE: --produce-interpols --interpols-mode=default --sygus-enum=fast --check-interpols
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=default --sygus-enum=fast --check-interpolants
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(set-logic ALL)
(declare-fun a () (Array (_ BitVec 4) (_ BitVec 4)))
(declare-fun y () (_ BitVec 4))
(assert (= (select a y) (_ bv0 4)))
-(get-interpol A (distinct (select a y) (_ bv1 4)))
+(get-interpolant A (distinct (select a y) (_ bv1 4)))
-; COMMAND-LINE: --produce-interpols --interpols-mode=default --sygus-enum=fast --check-interpols
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=default --sygus-enum=fast --check-interpolants
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(set-logic ALL)
(assert (and A1 A2 A3 A4 A5))
;The conjuecture is: 2 <= x+y
-(get-interpol A (<= 2 (+ (select arr 2) (select arr 3))))
+(get-interpolant A (<= 2 (+ (select arr 2) (select arr 3))))
-; COMMAND-LINE: --produce-interpols --interpols-mode=conjecture --sygus-enum=fast --check-interpols
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=conjecture --sygus-enum=fast --check-interpolants
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(set-logic ALL)
(declare-fun op@2 () (_ BitVec 4))
(declare-fun witness_0@2 () Bool)
(assert (and (and (and (and true (= counter@0 (_ bv0 16))) witness_0@0) (= cfg@0 (_ bv1 1))) (and (and (and (and true (= witness_0@1 (not (= (bvand (ite (bvugt counter@0 ((_ zero_extend 15) (_ bv0 1))) (_ bv1 1) (_ bv0 1)) (bvnot (ite (bvugt counter@0 ((_ zero_extend 15) (_ bv0 1))) (bvcomp (ite (not (distinct op@0 (_ bv0 4))) (bvadd a@0 b@0) (bvsub a@0 b@0)) (bvadd a@0 b@0)) input14@0))) (_ bv1 1))))) (= op@1 (ite (= cfg@0 (_ bv1 1)) (_ bv0 4) op@0))) (= counter@1 (bvadd counter@0 ((_ zero_extend 15) (_ bv1 1))))) (= cfg@1 (_ bv0 1)))))
-(get-interpol I (not (and (and true (and (and (and (and true (= witness_0@2 (not (= (bvand (ite (bvugt counter@1 ((_ zero_extend 15) (_ bv0 1))) (_ bv1 1) (_ bv0 1)) (bvnot (ite (bvugt counter@1 ((_ zero_extend 15) (_ bv0 1))) (bvcomp (ite (not (distinct op@1 (_ bv0 4))) (bvadd a@1 b@1) (bvsub a@1 b@1)) (bvadd a@1 b@1)) input14@1))) (_ bv1 1))))) (= op@2 (ite (= cfg@1 (_ bv1 1)) (_ bv0 4) op@1))) (= counter@2 (bvadd counter@1 ((_ zero_extend 15) (_ bv1 1))))) (= cfg@2 (_ bv0 1)))) (not witness_0@2))))
+(get-interpolant I (not (and (and true (and (and (and (and true (= witness_0@2 (not (= (bvand (ite (bvugt counter@1 ((_ zero_extend 15) (_ bv0 1))) (_ bv1 1) (_ bv0 1)) (bvnot (ite (bvugt counter@1 ((_ zero_extend 15) (_ bv0 1))) (bvcomp (ite (not (distinct op@1 (_ bv0 4))) (bvadd a@1 b@1) (bvsub a@1 b@1)) (bvadd a@1 b@1)) input14@1))) (_ bv1 1))))) (= op@2 (ite (= cfg@1 (_ bv1 1)) (_ bv0 4) op@1))) (= counter@2 (bvadd counter@1 ((_ zero_extend 15) (_ bv1 1))))) (= cfg@2 (_ bv0 1)))) (not witness_0@2))))
-; COMMAND-LINE: --produce-interpols --interpols-mode=default
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=default
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(set-logic ALL)
(assert ((_ is nil) (tail x)))
(assert (= (head x) 0))
(assert (= x y))
-(get-interpol A (distinct y nil))
+(get-interpolant A (distinct y nil))
-; COMMAND-LINE: --produce-interpols --interpols-mode=default --sygus-enum=fast --check-interpols
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=default --sygus-enum=fast --check-interpolants
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(set-logic ALL)
(declare-fun f1@0 () (_ BitVec 1))
(assert (and (and (and (and (and (and (and (and (and (and (and true (= v_c@0 (_ bv0 16))) (= v_x1@0 (_ bv0 16))) (= v_x2@0 (_ bv0 16))) (= a_Q_a1@0 (_ bv0 1))) (= a_R_a1@0 (_ bv0 1))) (= a_S_a1@0 (_ bv0 1))) (= a_Q_a2@0 (_ bv0 1))) (= a_R_a2@0 (_ bv0 1))) (= a_S_a2@0 (_ bv0 1))) (= dve_invalid@0 (_ bv0 1))) (and (and (and (and (and (and (and (and (and (and true (= v_c@1 (bvxor (_ bv1 16) (ite (= f5@0 (_ bv1 1)) v_x2@0 (ite (= f2@0 (_ bv1 1)) v_x1@0 (bvxor (_ bv1 16) v_c@0)))))) (= v_x1@1 (ite (= f1@0 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x1@0 (_ bv0 16)) (_ bv16 32)))) (ite (= f0@0 (_ bv1 1)) (bvxor (_ bv1 16) v_c@0) v_x1@0)))) (= v_x2@1 (ite (= f4@0 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x2@0 (_ bv0 16)) (_ bv16 32)))) (ite (= f3@0 (_ bv1 1)) (bvxor (_ bv1 16) v_c@0) v_x2@0)))) (= a_Q_a1@1 (bvnot (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)))) (= a_R_a1@1 (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)))) (= a_S_a1@1 (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)))) (= a_Q_a2@1 (bvnot (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)))) (= a_R_a2@1 (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)))) (= a_S_a2@1 (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)))) (= dve_invalid@1 (bvnot (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvor (bvnot f0@0) (bvand (bvnot a_Q_a1@0) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1)))) (bvor a_R_a1@0 (bvnot f1@0))) (bvor a_S_a1@0 (bvnot f2@0))) (bvor (bvnot f3@0) (bvand (bvnot a_Q_a2@0) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1))))) (bvor a_R_a2@0 (bvnot f4@0))) (bvor a_S_a2@0 (bvnot f5@0))) (bvor f5@0 (bvor f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0)))))) (bvnot (bvor (bvor (bvor (bvor (bvand f0@0 f1@0) (bvand f2@0 (bvor f0@0 f1@0))) (bvand f3@0 (bvor f2@0 (bvor f0@0 f1@0)))) (bvand f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0))))) (bvand f5@0 (bvor f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0)))))))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvnot a_Q_a1@0) a_R_a1@0) (bvand a_S_a1@0 (bvor (bvnot a_Q_a1@0) a_R_a1@0)))) (bvor a_S_a1@0 (bvor (bvnot a_Q_a1@0) a_R_a1@0))) (bvnot (bvor (bvand (bvnot a_Q_a2@0) a_R_a2@0) (bvand a_S_a2@0 (bvor (bvnot a_Q_a2@0) a_R_a2@0))))) (bvor a_S_a2@0 (bvor (bvnot a_Q_a2@0) a_R_a2@0)))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)) (bvand (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)) (bvor (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0))))) (bvor (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)) (bvor (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)))) (bvnot (bvor (bvand (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)) (bvand (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)) (bvor (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)))))) (bvor (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)) (bvor (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0))))) (bvnot dve_invalid@0)))))))
-(get-interpol I (not (and true (not (not (= (bvand (bvnot dve_invalid@1) (bvcomp (_ bv500 32) (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1)))))))
+(get-interpolant I (not (and true (not (not (= (bvand (bvnot dve_invalid@1) (bvcomp (_ bv500 32) (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1)))))))
-; COMMAND-LINE: --produce-interpols --interpols-mode=default --sygus-enum=fast --check-interpols
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=default --sygus-enum=fast --check-interpolants
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(set-logic ALL)
(assert (and (and (and (and (and (and (and (and (and (and (and true (= v_c@0 (_ bv0 16))) (= v_x1@0 (_ bv0 16))) (= v_x2@0 (_ bv0 16))) (= a_Q_a1@0 (_ bv0 1))) (= a_R_a1@0 (_ bv0 1))) (= a_S_a1@0 (_ bv0 1))) (= a_Q_a2@0 (_ bv0 1))) (= a_R_a2@0 (_ bv0 1))) (= a_S_a2@0 (_ bv0 1))) (= dve_invalid@0 (_ bv0 1))) (and (and (and (and (and (and (and (and (and (and true (= v_c@1 (bvxor (_ bv1 16) (ite (= f5@0 (_ bv1 1)) v_x2@0 (ite (= f2@0 (_ bv1 1)) v_x1@0 (bvxor (_ bv1 16) v_c@0)))))) (= v_x1@1 (ite (= f1@0 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x1@0 (_ bv0 16)) (_ bv16 32)))) (ite (= f0@0 (_ bv1 1)) (bvxor (_ bv1 16) v_c@0) v_x1@0)))) (= v_x2@1 (ite (= f4@0 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x2@0 (_ bv0 16)) (_ bv16 32)))) (ite (= f3@0 (_ bv1 1)) (bvxor (_ bv1 16) v_c@0) v_x2@0)))) (= a_Q_a1@1 (bvnot (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)))) (= a_R_a1@1 (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)))) (= a_S_a1@1 (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)))) (= a_Q_a2@1 (bvnot (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)))) (= a_R_a2@1 (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)))) (= a_S_a2@1 (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)))) (= dve_invalid@1 (bvnot (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvor (bvnot f0@0) (bvand (bvnot a_Q_a1@0) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1)))) (bvor a_R_a1@0 (bvnot f1@0))) (bvor a_S_a1@0 (bvnot f2@0))) (bvor (bvnot f3@0) (bvand (bvnot a_Q_a2@0) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1))))) (bvor a_R_a2@0 (bvnot f4@0))) (bvor a_S_a2@0 (bvnot f5@0))) (bvor f5@0 (bvor f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0)))))) (bvnot (bvor (bvor (bvor (bvor (bvand f0@0 f1@0) (bvand f2@0 (bvor f0@0 f1@0))) (bvand f3@0 (bvor f2@0 (bvor f0@0 f1@0)))) (bvand f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0))))) (bvand f5@0 (bvor f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0)))))))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvnot a_Q_a1@0) a_R_a1@0) (bvand a_S_a1@0 (bvor (bvnot a_Q_a1@0) a_R_a1@0)))) (bvor a_S_a1@0 (bvor (bvnot a_Q_a1@0) a_R_a1@0))) (bvnot (bvor (bvand (bvnot a_Q_a2@0) a_R_a2@0) (bvand a_S_a2@0 (bvor (bvnot a_Q_a2@0) a_R_a2@0))))) (bvor a_S_a2@0 (bvor (bvnot a_Q_a2@0) a_R_a2@0)))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)) (bvand (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)) (bvor (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0))))) (bvor (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)) (bvor (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)))) (bvnot (bvor (bvand (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)) (bvand (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)) (bvor (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)))))) (bvor (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)) (bvor (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0))))) (bvnot dve_invalid@0)))))))
(assert (and (or (and (and (and (and (and (and (and (and (and (and true (= v_c@0 (_ bv0 16))) (= v_x1@0 (_ bv0 16))) (= v_x2@0 (_ bv0 16))) (= a_Q_a1@0 (_ bv0 1))) (= a_R_a1@0 (_ bv0 1))) (= a_S_a1@0 (_ bv0 1))) (= a_Q_a2@0 (_ bv0 1))) (= a_R_a2@0 (_ bv0 1))) (= a_S_a2@0 (_ bv0 1))) (= dve_invalid@0 (_ bv0 1))) (bvult v_c@0 (_ bv2 16))) (and (and (and (and (and (and (and (and (and (and true (= v_c@1 (bvxor (_ bv1 16) (ite (= f5@0 (_ bv1 1)) v_x2@0 (ite (= f2@0 (_ bv1 1)) v_x1@0 (bvxor (_ bv1 16) v_c@0)))))) (= v_x1@1 (ite (= f1@0 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x1@0 (_ bv0 16)) (_ bv16 32)))) (ite (= f0@0 (_ bv1 1)) (bvxor (_ bv1 16) v_c@0) v_x1@0)))) (= v_x2@1 (ite (= f4@0 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x2@0 (_ bv0 16)) (_ bv16 32)))) (ite (= f3@0 (_ bv1 1)) (bvxor (_ bv1 16) v_c@0) v_x2@0)))) (= a_Q_a1@1 (bvnot (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)))) (= a_R_a1@1 (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)))) (= a_S_a1@1 (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)))) (= a_Q_a2@1 (bvnot (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)))) (= a_R_a2@1 (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)))) (= a_S_a2@1 (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)))) (= dve_invalid@1 (bvnot (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvor (bvnot f0@0) (bvand (bvnot a_Q_a1@0) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1)))) (bvor a_R_a1@0 (bvnot f1@0))) (bvor a_S_a1@0 (bvnot f2@0))) (bvor (bvnot f3@0) (bvand (bvnot a_Q_a2@0) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1))))) (bvor a_R_a2@0 (bvnot f4@0))) (bvor a_S_a2@0 (bvnot f5@0))) (bvor f5@0 (bvor f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0)))))) (bvnot (bvor (bvor (bvor (bvor (bvand f0@0 f1@0) (bvand f2@0 (bvor f0@0 f1@0))) (bvand f3@0 (bvor f2@0 (bvor f0@0 f1@0)))) (bvand f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0))))) (bvand f5@0 (bvor f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0)))))))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvnot a_Q_a1@0) a_R_a1@0) (bvand a_S_a1@0 (bvor (bvnot a_Q_a1@0) a_R_a1@0)))) (bvor a_S_a1@0 (bvor (bvnot a_Q_a1@0) a_R_a1@0))) (bvnot (bvor (bvand (bvnot a_Q_a2@0) a_R_a2@0) (bvand a_S_a2@0 (bvor (bvnot a_Q_a2@0) a_R_a2@0))))) (bvor a_S_a2@0 (bvor (bvnot a_Q_a2@0) a_R_a2@0)))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)) (bvand (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)) (bvor (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0))))) (bvor (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)) (bvor (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)))) (bvnot (bvor (bvand (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)) (bvand (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)) (bvor (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)))))) (bvor (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)) (bvor (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0))))) (bvnot dve_invalid@0)))))))
-(get-interpol I (not (and true (not (not (= (bvand (bvnot dve_invalid@1) (bvcomp (_ bv500 32) (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1)))))))
+(get-interpolant I (not (and true (not (not (= (bvand (bvnot dve_invalid@1) (bvcomp (_ bv500 32) (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1)))))))
-; COMMAND-LINE: --produce-interpols --interpols-mode=default
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=default
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(set-logic ALL)
(declare-fun v_c@2 () (_ BitVec 16))
(assert (and (and (and (and (and (and (and (and (and (and (and true (= v_c@0 (_ bv0 16))) (= v_x1@0 (_ bv0 16))) (= v_x2@0 (_ bv0 16))) (= a_Q_a1@0 (_ bv0 1))) (= a_R_a1@0 (_ bv0 1))) (= a_S_a1@0 (_ bv0 1))) (= a_Q_a2@0 (_ bv0 1))) (= a_R_a2@0 (_ bv0 1))) (= a_S_a2@0 (_ bv0 1))) (= dve_invalid@0 (_ bv0 1))) (and (and (and (and (and (and (and (and (and (and true (= v_c@1 (bvxor (_ bv1 16) (ite (= f5@0 (_ bv1 1)) v_x2@0 (ite (= f2@0 (_ bv1 1)) v_x1@0 (bvxor (_ bv1 16) v_c@0)))))) (= v_x1@1 (ite (= f1@0 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x1@0 (_ bv0 16)) (_ bv16 32)))) (ite (= f0@0 (_ bv1 1)) (bvxor (_ bv1 16) v_c@0) v_x1@0)))) (= v_x2@1 (ite (= f4@0 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x2@0 (_ bv0 16)) (_ bv16 32)))) (ite (= f3@0 (_ bv1 1)) (bvxor (_ bv1 16) v_c@0) v_x2@0)))) (= a_Q_a1@1 (bvnot (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)))) (= a_R_a1@1 (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)))) (= a_S_a1@1 (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)))) (= a_Q_a2@1 (bvnot (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)))) (= a_R_a2@1 (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)))) (= a_S_a2@1 (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)))) (= dve_invalid@1 (bvnot (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvor (bvnot f0@0) (bvand (bvnot a_Q_a1@0) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1)))) (bvor a_R_a1@0 (bvnot f1@0))) (bvor a_S_a1@0 (bvnot f2@0))) (bvor (bvnot f3@0) (bvand (bvnot a_Q_a2@0) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@0) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1))))) (bvor a_R_a2@0 (bvnot f4@0))) (bvor a_S_a2@0 (bvnot f5@0))) (bvor f5@0 (bvor f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0)))))) (bvnot (bvor (bvor (bvor (bvor (bvand f0@0 f1@0) (bvand f2@0 (bvor f0@0 f1@0))) (bvand f3@0 (bvor f2@0 (bvor f0@0 f1@0)))) (bvand f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0))))) (bvand f5@0 (bvor f4@0 (bvor f3@0 (bvor f2@0 (bvor f0@0 f1@0)))))))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvnot a_Q_a1@0) a_R_a1@0) (bvand a_S_a1@0 (bvor (bvnot a_Q_a1@0) a_R_a1@0)))) (bvor a_S_a1@0 (bvor (bvnot a_Q_a1@0) a_R_a1@0))) (bvnot (bvor (bvand (bvnot a_Q_a2@0) a_R_a2@0) (bvand a_S_a2@0 (bvor (bvnot a_Q_a2@0) a_R_a2@0))))) (bvor a_S_a2@0 (bvor (bvnot a_Q_a2@0) a_R_a2@0)))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)) (bvand (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)) (bvor (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0))))) (bvor (bvand (bvor a_S_a1@0 f1@0) (bvnot f2@0)) (bvor (bvand (bvor a_R_a1@0 f0@0) (bvnot f1@0)) (bvor (bvand (bvnot a_Q_a1@0) (bvnot f0@0)) f2@0)))) (bvnot (bvor (bvand (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)) (bvand (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)) (bvor (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0)))))) (bvor (bvand (bvor a_S_a2@0 f4@0) (bvnot f5@0)) (bvor (bvand (bvor a_R_a2@0 f3@0) (bvnot f4@0)) (bvor (bvand (bvnot a_Q_a2@0) (bvnot f3@0)) f5@0))))) (bvnot dve_invalid@0)))))))
-(get-interpol I (not (and (and true (and (and (and (and (and (and (and (and (and (and true (= v_c@2 (bvxor (_ bv1 16) (ite (= f5@1 (_ bv1 1)) v_x2@1 (ite (= f2@1 (_ bv1 1)) v_x1@1 (bvxor (_ bv1 16) v_c@1)))))) (= v_x1@2 (ite (= f1@1 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x1@1 (_ bv0 16)) (_ bv16 32)))) (ite (= f0@1 (_ bv1 1)) (bvxor (_ bv1 16) v_c@1) v_x1@1)))) (= v_x2@2 (ite (= f4@1 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x2@1 (_ bv0 16)) (_ bv16 32)))) (ite (= f3@1 (_ bv1 1)) (bvxor (_ bv1 16) v_c@1) v_x2@1)))) (= a_Q_a1@2 (bvnot (bvor (bvand (bvnot a_Q_a1@1) (bvnot f0@1)) f2@1)))) (= a_R_a1@2 (bvand (bvor a_R_a1@1 f0@1) (bvnot f1@1)))) (= a_S_a1@2 (bvand (bvor a_S_a1@1 f1@1) (bvnot f2@1)))) (= a_Q_a2@2 (bvnot (bvor (bvand (bvnot a_Q_a2@1) (bvnot f3@1)) f5@1)))) (= a_R_a2@2 (bvand (bvor a_R_a2@1 f3@1) (bvnot f4@1)))) (= a_S_a2@2 (bvand (bvor a_S_a2@1 f4@1) (bvnot f5@1)))) (= dve_invalid@2 (bvnot (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvor (bvnot f0@1) (bvand (bvnot a_Q_a1@1) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1)))) (bvor a_R_a1@1 (bvnot f1@1))) (bvor a_S_a1@1 (bvnot f2@1))) (bvor (bvnot f3@1) (bvand (bvnot a_Q_a2@1) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1))))) (bvor a_R_a2@1 (bvnot f4@1))) (bvor a_S_a2@1 (bvnot f5@1))) (bvor f5@1 (bvor f4@1 (bvor f3@1 (bvor f2@1 (bvor f0@1 f1@1)))))) (bvnot (bvor (bvor (bvor (bvor (bvand f0@1 f1@1) (bvand f2@1 (bvor f0@1 f1@1))) (bvand f3@1 (bvor f2@1 (bvor f0@1 f1@1)))) (bvand f4@1 (bvor f3@1 (bvor f2@1 (bvor f0@1 f1@1))))) (bvand f5@1 (bvor f4@1 (bvor f3@1 (bvor f2@1 (bvor f0@1 f1@1)))))))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvnot a_Q_a1@1) a_R_a1@1) (bvand a_S_a1@1 (bvor (bvnot a_Q_a1@1) a_R_a1@1)))) (bvor a_S_a1@1 (bvor (bvnot a_Q_a1@1) a_R_a1@1))) (bvnot (bvor (bvand (bvnot a_Q_a2@1) a_R_a2@1) (bvand a_S_a2@1 (bvor (bvnot a_Q_a2@1) a_R_a2@1))))) (bvor a_S_a2@1 (bvor (bvnot a_Q_a2@1) a_R_a2@1)))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvand (bvor a_R_a1@1 f0@1) (bvnot f1@1)) (bvor (bvand (bvnot a_Q_a1@1) (bvnot f0@1)) f2@1)) (bvand (bvand (bvor a_S_a1@1 f1@1) (bvnot f2@1)) (bvor (bvand (bvor a_R_a1@1 f0@1) (bvnot f1@1)) (bvor (bvand (bvnot a_Q_a1@1) (bvnot f0@1)) f2@1))))) (bvor (bvand (bvor a_S_a1@1 f1@1) (bvnot f2@1)) (bvor (bvand (bvor a_R_a1@1 f0@1) (bvnot f1@1)) (bvor (bvand (bvnot a_Q_a1@1) (bvnot f0@1)) f2@1)))) (bvnot (bvor (bvand (bvand (bvor a_R_a2@1 f3@1) (bvnot f4@1)) (bvor (bvand (bvnot a_Q_a2@1) (bvnot f3@1)) f5@1)) (bvand (bvand (bvor a_S_a2@1 f4@1) (bvnot f5@1)) (bvor (bvand (bvor a_R_a2@1 f3@1) (bvnot f4@1)) (bvor (bvand (bvnot a_Q_a2@1) (bvnot f3@1)) f5@1)))))) (bvor (bvand (bvor a_S_a2@1 f4@1) (bvnot f5@1)) (bvor (bvand (bvor a_R_a2@1 f3@1) (bvnot f4@1)) (bvor (bvand (bvnot a_Q_a2@1) (bvnot f3@1)) f5@1))))) (bvnot dve_invalid@1)))))) (not (not (= (bvand (bvnot dve_invalid@2) (bvcomp (_ bv500 32) (bvashr (concat (bvxor (_ bv1 16) v_c@2) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1)))))))
+(get-interpolant I (not (and (and true (and (and (and (and (and (and (and (and (and (and true (= v_c@2 (bvxor (_ bv1 16) (ite (= f5@1 (_ bv1 1)) v_x2@1 (ite (= f2@1 (_ bv1 1)) v_x1@1 (bvxor (_ bv1 16) v_c@1)))))) (= v_x1@2 (ite (= f1@1 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x1@1 (_ bv0 16)) (_ bv16 32)))) (ite (= f0@1 (_ bv1 1)) (bvxor (_ bv1 16) v_c@1) v_x1@1)))) (= v_x2@2 (ite (= f4@1 (_ bv1 1)) ((_ extract 15 0) (bvadd (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)) (bvashr (concat v_x2@1 (_ bv0 16)) (_ bv16 32)))) (ite (= f3@1 (_ bv1 1)) (bvxor (_ bv1 16) v_c@1) v_x2@1)))) (= a_Q_a1@2 (bvnot (bvor (bvand (bvnot a_Q_a1@1) (bvnot f0@1)) f2@1)))) (= a_R_a1@2 (bvand (bvor a_R_a1@1 f0@1) (bvnot f1@1)))) (= a_S_a1@2 (bvand (bvor a_S_a1@1 f1@1) (bvnot f2@1)))) (= a_Q_a2@2 (bvnot (bvor (bvand (bvnot a_Q_a2@1) (bvnot f3@1)) f5@1)))) (= a_R_a2@2 (bvand (bvor a_R_a2@1 f3@1) (bvnot f4@1)))) (= a_S_a2@2 (bvand (bvor a_S_a2@1 f4@1) (bvnot f5@1)))) (= dve_invalid@2 (bvnot (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvand (bvor (bvnot f0@1) (bvand (bvnot a_Q_a1@1) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1)))) (bvor a_R_a1@1 (bvnot f1@1))) (bvor a_S_a1@1 (bvnot f2@1))) (bvor (bvnot f3@1) (bvand (bvnot a_Q_a2@1) (ite (not (bvule (_ bv200 32) (bvashr (concat (bvxor (_ bv1 16) v_c@1) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1) (_ bv0 1))))) (bvor a_R_a2@1 (bvnot f4@1))) (bvor a_S_a2@1 (bvnot f5@1))) (bvor f5@1 (bvor f4@1 (bvor f3@1 (bvor f2@1 (bvor f0@1 f1@1)))))) (bvnot (bvor (bvor (bvor (bvor (bvand f0@1 f1@1) (bvand f2@1 (bvor f0@1 f1@1))) (bvand f3@1 (bvor f2@1 (bvor f0@1 f1@1)))) (bvand f4@1 (bvor f3@1 (bvor f2@1 (bvor f0@1 f1@1))))) (bvand f5@1 (bvor f4@1 (bvor f3@1 (bvor f2@1 (bvor f0@1 f1@1)))))))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvnot a_Q_a1@1) a_R_a1@1) (bvand a_S_a1@1 (bvor (bvnot a_Q_a1@1) a_R_a1@1)))) (bvor a_S_a1@1 (bvor (bvnot a_Q_a1@1) a_R_a1@1))) (bvnot (bvor (bvand (bvnot a_Q_a2@1) a_R_a2@1) (bvand a_S_a2@1 (bvor (bvnot a_Q_a2@1) a_R_a2@1))))) (bvor a_S_a2@1 (bvor (bvnot a_Q_a2@1) a_R_a2@1)))) (bvand (bvand (bvand (bvnot (bvor (bvand (bvand (bvor a_R_a1@1 f0@1) (bvnot f1@1)) (bvor (bvand (bvnot a_Q_a1@1) (bvnot f0@1)) f2@1)) (bvand (bvand (bvor a_S_a1@1 f1@1) (bvnot f2@1)) (bvor (bvand (bvor a_R_a1@1 f0@1) (bvnot f1@1)) (bvor (bvand (bvnot a_Q_a1@1) (bvnot f0@1)) f2@1))))) (bvor (bvand (bvor a_S_a1@1 f1@1) (bvnot f2@1)) (bvor (bvand (bvor a_R_a1@1 f0@1) (bvnot f1@1)) (bvor (bvand (bvnot a_Q_a1@1) (bvnot f0@1)) f2@1)))) (bvnot (bvor (bvand (bvand (bvor a_R_a2@1 f3@1) (bvnot f4@1)) (bvor (bvand (bvnot a_Q_a2@1) (bvnot f3@1)) f5@1)) (bvand (bvand (bvor a_S_a2@1 f4@1) (bvnot f5@1)) (bvor (bvand (bvor a_R_a2@1 f3@1) (bvnot f4@1)) (bvor (bvand (bvnot a_Q_a2@1) (bvnot f3@1)) f5@1)))))) (bvor (bvand (bvor a_S_a2@1 f4@1) (bvnot f5@1)) (bvor (bvand (bvor a_R_a2@1 f3@1) (bvnot f4@1)) (bvor (bvand (bvnot a_Q_a2@1) (bvnot f3@1)) f5@1))))) (bvnot dve_invalid@1)))))) (not (not (= (bvand (bvnot dve_invalid@2) (bvcomp (_ bv500 32) (bvashr (concat (bvxor (_ bv1 16) v_c@2) (_ bv0 16)) (_ bv16 32)))) (_ bv1 1)))))))
-; COMMAND-LINE: --produce-interpols --interpols-mode=default --sygus-enum=fast --check-interpols
+; COMMAND-LINE: --produce-interpolants --interpolants-mode=default --sygus-enum=fast --check-interpolants
; SCRUBBER: grep -v -E '(\(define-fun)'
; EXIT: 0
(assert (and A1 A2 A3 A4 A5))
;The conjuecture is: 2 <= x+y
-(get-interpol A (<= 2 (+ x y)))
+(get-interpolant A (<= 2 (+ x y)))
TEST_F(TestApiBlackSolver, getInterpolant)
{
d_solver.setLogic("QF_LIA");
- d_solver.setOption("produce-interpols", "true");
+ d_solver.setOption("produce-interpolants", "true");
d_solver.setOption("incremental", "false");
Sort intSort = d_solver.getIntegerSort();
TEST_F(TestApiBlackSolver, getInterpolantNext)
{
d_solver.setLogic("QF_LIA");
- d_solver.setOption("produce-interpols", "true");
+ d_solver.setOption("produce-interpolants", "true");
d_solver.setOption("incremental", "true");
Sort intSort = d_solver.getIntegerSort();
@Test void getInterpolant() throws CVC5ApiException
{
d_solver.setLogic("QF_LIA");
- d_solver.setOption("produce-interpols", "true");
+ d_solver.setOption("produce-interpolants", "true");
d_solver.setOption("incremental", "false");
Sort intSort = d_solver.getIntegerSort();
@Test void getInterpolantNext() throws CVC5ApiException
{
d_solver.setLogic("QF_LIA");
- d_solver.setOption("produce-interpols", "true");
+ d_solver.setOption("produce-interpolants", "true");
d_solver.setOption("incremental", "true");
Sort intSort = d_solver.getIntegerSort();
def test_get_interpolant(solver):
solver.setLogic("QF_LIA")
- solver.setOption("produce-interpols", "true")
+ solver.setOption("produce-interpolants", "true")
solver.setOption("incremental", "false")
intSort = solver.getIntegerSort()
def test_get_interpolant_next(solver):
solver.setLogic("QF_LIA")
- solver.setOption("produce-interpols", "true")
+ solver.setOption("produce-interpolants", "true")
solver.setOption("incremental", "true")
intSort = solver.getIntegerSort()