Lattice Land Core Library
Loading...
Searching...
No Matches
lala::PreBDec Struct Reference

#include <pre_bdec.hpp>

Public Types

using this_type = PreBDec
 
using dual_type = PreBInc
 
using value_type = dual_type::value_type
 
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 >
static CUDA 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)
 
static CUDA constexpr bool is_supported_fun (Sig sig)
 
template<Sig sig>
static CUDA constexpr value_type fun (value_type x)
 
template<Sig sig>
static CUDA 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 = false
 
static constexpr const char * name = "BDec"
 
static constexpr const bool is_arithmetic = true
 

Detailed Description

PreBDec is a pre-abstract universe \( \langle \{\mathit{true}, \mathit{false}\}, \leq \rangle \) such that \( \mathit{false} \geq \mathit{true} \). It is used to represent Boolean variables which truth's value progresses from \( \mathit{true} \) to \( \mathit{false} \). 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>.

Member Typedef Documentation

◆ this_type

◆ dual_type

◆ value_type

◆ increasing_type

Member Function Documentation

◆ zero()

CUDA static constexpr value_type lala::PreBDec::zero ( )
inlinestaticconstexpr

◆ one()

CUDA static constexpr value_type lala::PreBDec::one ( )
inlinestaticconstexpr

◆ interpret_tell()

template<bool diagnose, class F >
static CUDA bool lala::PreBDec::interpret_tell ( const F & f,
value_type & tell,
IDiagnostics & diagnostics )
inlinestatic

◆ interpret_ask()

template<bool diagnose, class F >
static CUDA bool lala::PreBDec::interpret_ask ( const F & f,
value_type & ask,
IDiagnostics & diagnostics )
inlinestatic

◆ interpret_type()

template<bool diagnose, class F >
static CUDA bool lala::PreBDec::interpret_type ( const F & f,
value_type & k,
IDiagnostics & diagnostics )
inlinestatic

◆ deinterpret()

template<class F >
static CUDA F lala::PreBDec::deinterpret ( const value_type & v)
inlinestatic

◆ sig_order()

static CUDA constexpr Sig lala::PreBDec::sig_order ( )
inlinestaticconstexpr

◆ sig_strict_order()

static CUDA constexpr Sig lala::PreBDec::sig_strict_order ( )
inlinestaticconstexpr

◆ bot()

static CUDA constexpr value_type lala::PreBDec::bot ( )
inlinestaticconstexpr

◆ top()

static CUDA constexpr value_type lala::PreBDec::top ( )
inlinestaticconstexpr

◆ join()

static CUDA constexpr value_type lala::PreBDec::join ( value_type x,
value_type y )
inlinestaticconstexpr

◆ meet()

static CUDA constexpr value_type lala::PreBDec::meet ( value_type x,
value_type y )
inlinestaticconstexpr

◆ order()

static CUDA constexpr bool lala::PreBDec::order ( value_type x,
value_type y )
inlinestaticconstexpr

◆ strict_order()

static CUDA constexpr bool lala::PreBDec::strict_order ( value_type x,
value_type y )
inlinestaticconstexpr

◆ next()

static CUDA constexpr value_type lala::PreBDec::next ( value_type x)
inlinestaticconstexpr

◆ prev()

static CUDA constexpr value_type lala::PreBDec::prev ( value_type x)
inlinestaticconstexpr

◆ is_supported_fun()

static CUDA constexpr bool lala::PreBDec::is_supported_fun ( Sig sig)
inlinestaticconstexpr

◆ fun() [1/2]

template<Sig sig>
static CUDA constexpr value_type lala::PreBDec::fun ( value_type x)
inlinestaticconstexpr

◆ fun() [2/2]

template<Sig sig>
static CUDA constexpr value_type lala::PreBDec::fun ( value_type x,
value_type y )
inlinestaticconstexpr

Member Data Documentation

◆ is_totally_ordered

constexpr const bool lala::PreBDec::is_totally_ordered = true
staticconstexpr

◆ preserve_bot

constexpr const bool lala::PreBDec::preserve_bot = true
staticconstexpr

◆ preserve_top

constexpr const bool lala::PreBDec::preserve_top = false
staticconstexpr

◆ preserve_join

constexpr const bool lala::PreBDec::preserve_join = true
staticconstexpr

◆ preserve_meet

constexpr const bool lala::PreBDec::preserve_meet = true
staticconstexpr

◆ injective_concretization

constexpr const bool lala::PreBDec::injective_concretization = true
staticconstexpr

◆ preserve_concrete_covers

constexpr const bool lala::PreBDec::preserve_concrete_covers = true
staticconstexpr

◆ complemented

constexpr const bool lala::PreBDec::complemented = false
staticconstexpr

◆ increasing

constexpr const bool lala::PreBDec::increasing = false
staticconstexpr

◆ name

constexpr const char* lala::PreBDec::name = "BDec"
staticconstexpr

◆ is_arithmetic

constexpr const bool lala::PreBDec::is_arithmetic = true
staticconstexpr

The documentation for this struct was generated from the following file: