mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Implement inner xor.
This commit is contained in:
parent
68bfbdb2a6
commit
5c1ecce2a3
@ -844,6 +844,11 @@ void BooleanLPSolver::addBooleanEquality(Literal const& _left, smtutil::Expressi
|
|||||||
state().clauses.emplace_back(Clause{vector<Literal>{_left, negate(a), negate(b)}});
|
state().clauses.emplace_back(Clause{vector<Literal>{_left, negate(a), negate(b)}});
|
||||||
state().clauses.emplace_back(Clause{vector<Literal>{_left, a, b}});
|
state().clauses.emplace_back(Clause{vector<Literal>{_left, a, b}});
|
||||||
}
|
}
|
||||||
|
else if (_right.name == "xor")
|
||||||
|
{
|
||||||
|
solAssert(_right.arguments.size() == 2);
|
||||||
|
addBooleanEquality(negate(_left), _right.arguments.at(0) == _right.arguments.at(1), move(_letBindings));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
solAssert(false, "Unsupported operation: " + _right.name);
|
solAssert(false, "Unsupported operation: " + _right.name);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user