Move Tristate class to Utils header
The Tristate class (representing truth values that are either true, false, or unknown) will be used at multiple ends. This moves it to a separate header in order to reuse it properly.
This commit is contained in:
parent
618189368c
commit
f7d99c82fa
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <anthem/AST.h>
|
#include <anthem/AST.h>
|
||||||
#include <anthem/ASTUtils.h>
|
#include <anthem/ASTUtils.h>
|
||||||
|
#include <anthem/Utils.h>
|
||||||
|
|
||||||
namespace anthem
|
namespace anthem
|
||||||
{
|
{
|
||||||
@ -15,16 +16,6 @@ namespace ast
|
|||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// TODO: move to separate class
|
|
||||||
enum class Tristate
|
|
||||||
{
|
|
||||||
True,
|
|
||||||
False,
|
|
||||||
Unknown,
|
|
||||||
};
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
Tristate equal(const Formula &lhs, const Formula &rhs);
|
Tristate equal(const Formula &lhs, const Formula &rhs);
|
||||||
Tristate equal(const Term &lhs, const Term &rhs);
|
Tristate equal(const Term &lhs, const Term &rhs);
|
||||||
|
|
||||||
|
@ -23,6 +23,15 @@ constexpr const auto UserVariablePrefix = "U";
|
|||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
enum class Tristate
|
||||||
|
{
|
||||||
|
True,
|
||||||
|
False,
|
||||||
|
Unknown,
|
||||||
|
};
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -363,7 +363,7 @@ struct SimplificationRuleSubsumptionInBiconditionals
|
|||||||
std::find_if(and_.arguments.cbegin(), and_.arguments.cend(),
|
std::find_if(and_.arguments.cbegin(), and_.arguments.cend(),
|
||||||
[&](const auto &argument)
|
[&](const auto &argument)
|
||||||
{
|
{
|
||||||
return (ast::equal(predicateSide, argument) == ast::Tristate::True);
|
return (ast::equal(predicateSide, argument) == Tristate::True);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (matchingPredicate == and_.arguments.cend())
|
if (matchingPredicate == and_.arguments.cend())
|
||||||
|
Loading…
Reference in New Issue
Block a user