Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::relational::RelExpr< K, Cs > Struct Template Referenceexport

A relation \(A \rightsquigarrow B\) built at run time: a term over relations, its objects dom and cod data, its classifier a reading. More...

Collaboration diagram for dedekind::relational::RelExpr< K, Cs >:

Classes

struct  Member

Public Types

using Point = dedekind::sets::Row<Cs...>
using P = dedekind::sets::Pred<K>
using T = dedekind::sets::Term<K>
using Kind = Node
using Domain = std::pair<Point, Point>
 A point of the relation: a row of the domain and a row of the codomain, the product dom × cod, read through π_1 / π_2.
using logic_species = dedekind::category::Kleene
 Membership answers in K₃: decided, or not yet (the verdict's search).
using Codomain = dedekind::category::Ternary

Public Member Functions

constexpr unsigned arity () const
constexpr Columns columns () const
 The columns: dom's then cod's.
constexpr Point rep () const
 A row of the columns: the points' representative.
constexpr Domain ι (const Member &m) const
constexpr Codomain operator() (const Domain &p) const
 χ: the verdict at the joined row of the point; a point not of the shape dom × cod is none of the relation's.

Static Public Member Functions

static constexpr RelExpr universe (Object dom, Object cod)
 The universe \(A \times B\): the full relation.
static constexpr RelExpr unary (Kind k, RelExpr x, Object dom, Object cod, P p=P::top())
static constexpr RelExpr binary (Kind k, RelExpr x, RelExpr y, Object dom, Object cod)

Public Attributes

Kind kind {Kind::Universe}
Object dom
Object cod
P predicate = P::top()
std::shared_ptr< const RelExpr > a
std::shared_ptr< const RelExpr > b
std::uint64_t budget = std::uint64_t{1} << 16

Detailed Description

template<typename K, typename... Cs>
struct dedekind::relational::RelExpr< K, Cs >

A relation \(A \rightsquigarrow B\) built at run time: a term over relations, its objects dom and cod data, its classifier a reading.

Template Parameters
Kthe constants' type.
Csthe carriers a column may have.

The documentation for this struct was generated from the following file:
  • src/main/modules/dedekind/relational/rows.cppm