|
Lattice Land Core Library
|
#include <pre_binc.hpp>
Public Types | |
| using | this_type = PreBInc |
| using | dual_type = PreBDec |
| using | value_type = bool |
| using | increasing_type = PreBInc |
Static Public Member Functions | |
| CUDA static constexpr value_type | zero () |
| CUDA static constexpr value_type | one () |
| template<bool diagnose, class F > | |
| static CUDA bool | interpret_tell (const F &f, value_type &tell, IDiagnostics &diagnostics) |
| template<bool diagnose, class F > | |
| static CUDA bool | interpret_ask (const F &f, value_type &ask, IDiagnostics &diagnostics) |
| template<bool diagnose, class F > | |
| CUDA static NI bool | interpret_type (const F &f, value_type &k, IDiagnostics &diagnostics) |
| template<class F > | |
| static CUDA F | deinterpret (const value_type &v) |
| static CUDA constexpr Sig | sig_order () |
| static CUDA constexpr Sig | sig_strict_order () |
| static CUDA constexpr value_type | bot () |
| static CUDA constexpr value_type | top () |
| static CUDA constexpr value_type | join (value_type x, value_type y) |
| static CUDA constexpr value_type | meet (value_type x, value_type y) |
| static CUDA constexpr bool | order (value_type x, value_type y) |
| static CUDA constexpr bool | strict_order (value_type x, value_type y) |
| static CUDA constexpr value_type | next (value_type x) |
| static CUDA constexpr value_type | prev (value_type x) |
| CUDA static NI constexpr bool | is_supported_fun (Sig sig) |
| template<Sig sig> | |
| static CUDA constexpr value_type | fun (value_type x) |
| template<Sig sig> | |
| CUDA static NI constexpr value_type | fun (value_type x, value_type y) |
Static Public Attributes | |
| static constexpr const bool | is_totally_ordered = true |
| static constexpr const bool | preserve_bot = true |
| static constexpr const bool | preserve_top = false |
| static constexpr const bool | preserve_join = true |
| static constexpr const bool | preserve_meet = true |
| static constexpr const bool | injective_concretization = true |
| static constexpr const bool | preserve_concrete_covers = true |
| static constexpr const bool | complemented = false |
| static constexpr const bool | increasing = true |
| static constexpr const char * | name = "BInc" |
| static constexpr const bool | is_arithmetic = true |
PreBInc is a pre-abstract universe \( \langle \{\mathit{true}, \mathit{false}\}, \leq \rangle \) such that \( \mathit{false} \leq \mathit{true} \). It is used to represent Boolean variables which truth's value progresses from \( \mathit{false} \) to \( \mathit{true} \). Note that this type is unable to represent Boolean domain which requires four states: unknown (bot), true, false and failed (top). To obtain such a domain, you should use Interval<BInc>.
| using lala::PreBInc::this_type = PreBInc |
| using lala::PreBInc::dual_type = PreBDec |
| using lala::PreBInc::value_type = bool |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inlinestatic |
Interpret a formula into an upset Boolean lattice.
f is a constant of type Bool. Otherwise it returns an explanation of the error.
|
inlinestatic |
In this domain, the ask version of any constraint is the same as the tell version. This is because this domain can exactly represent Boolean values.
|
inlinestatic |
Verify if the type of a variable, introduced by an existential quantifier, is compatible with the current abstract universe.
bot() if the type of the existentially quantified variable is Bool. Otherwise it returns an explanation of the error.
|
inlinestatic |
Given a Boolean value, create a logical constant representing that value. Note that the lattice order has no influence here.
|
inlinestaticconstexpr |
The logical predicate symbol corresponding to the order of this pre-universe. We have \( a \leq_\mathit{BInc} b \Leftrightarrow a \leq b \).
LEQ.
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
\( \bot \) is represented by false.
|
inlinestaticconstexpr |
\( \top \) is represented by true.
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
From a lattice perspective, this function returns an element \( y \) such that \( y \) is a cover of \( x \).
true.
|
inlinestaticconstexpr |
From a lattice perspective, this function returns an element \( y \) such that \( x \) is a cover of \( y \).
false.
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |