aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/formal/Z3Interface.cpp
diff options
context:
space:
mode:
authorLeonardo Alt <leonardoaltt@gmail.com>2018-04-07 00:01:40 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2018-04-17 19:26:58 +0800
commitae3350ae0320d140a427d2fa318e7002745a73a5 (patch)
treee4da5e3619baa56b09509004c58b1b5d12594e48 /libsolidity/formal/Z3Interface.cpp
parent842fd0cd2cef3c11c392b7820e178fd0d034fa07 (diff)
downloaddexon-solidity-ae3350ae0320d140a427d2fa318e7002745a73a5.tar.gz
dexon-solidity-ae3350ae0320d140a427d2fa318e7002745a73a5.tar.zst
dexon-solidity-ae3350ae0320d140a427d2fa318e7002745a73a5.zip
[SMTChecker] Integration with CVC4
Diffstat (limited to 'libsolidity/formal/Z3Interface.cpp')
-rw-r--r--libsolidity/formal/Z3Interface.cpp17
1 files changed, 1 insertions, 16 deletions
diff --git a/libsolidity/formal/Z3Interface.cpp b/libsolidity/formal/Z3Interface.cpp
index 125da00d..41943c92 100644
--- a/libsolidity/formal/Z3Interface.cpp
+++ b/libsolidity/formal/Z3Interface.cpp
@@ -116,21 +116,6 @@ z3::expr Z3Interface::toZ3Expr(Expression const& _expr)
for (auto const& arg: _expr.arguments)
arguments.push_back(toZ3Expr(arg));
- static map<string, unsigned> arity{
- {"ite", 3},
- {"not", 1},
- {"and", 2},
- {"or", 2},
- {"=", 2},
- {"<", 2},
- {"<=", 2},
- {">", 2},
- {">=", 2},
- {"+", 2},
- {"-", 2},
- {"*", 2},
- {"/", 2}
- };
string const& n = _expr.name;
if (m_functions.count(n))
return m_functions.at(n)(arguments);
@@ -150,7 +135,7 @@ z3::expr Z3Interface::toZ3Expr(Expression const& _expr)
return m_context.int_val(n.c_str());
}
- solAssert(arity.count(n) && arity.at(n) == arguments.size(), "");
+ solAssert(_expr.hasCorrectArity(), "");
if (n == "ite")
return z3::ite(arguments[0], arguments[1], arguments[2]);
else if (n == "not")