17#include "dlinear/parser/smt2/Sort.h"
18#include "dlinear/parser/smt2/Term.h"
19#include "dlinear/symbolic/literal.h"
65 throw std::runtime_error(
"This function definition expects #" + std::to_string(
parameters_.size()) +
66 " arguments ({}). Provided #" + std::to_string(
sizeof...(arguments)) +
" arguments.");
71 for (
const Term& arg_i : {arguments...}) {
73 arg_i.Check(param_i.get_type());
Represents a symbolic variable.
A new function defined by the user in the SMT2 language using the define-fun command.
Sort return_type_
Return type of the function.
Term operator()(const std::vector< Term > &arguments) const
Call the function with the given arguments.
Term operator()(std::same_as< Term > auto... arguments) const
Call the function with the given arguments.
FunctionDefinition(std::vector< Variable > parameters, Sort return_type, Term body)
Construct a new function definition.
std::vector< Variable > parameters_
Parameters of the function.
Term body_
Body of the function.
Generic term that can be either an expression or a formula.
Term Substitute(const Variable &v, const Term &t)
Create a new Term with substitutes the variable v in this term with t.
Namespace for the SMT2 parser of the dlinear library.