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 |