Skip to content
  • REL
  • REFERENCE
  • Keywords and Symbols

Rel Keywords and Symbols

Tables of keywords and other lexical symbols for the Rel language.

Keywords

KeywordDescription
andlogical conjunction
asintroduces a local name for a relation imported from another module
defbegins the declaration of a relation
elseseparates the two branches of a conditional expression
endends a conditional expression or a module
entitybegins the declaration of an entity type (deprecated)
existsthe existential quantifier
falseboolean constant (the empty relation {})
foran alternative form of relational abstraction
forallthe universal quantifier
froma variant of inverse relational abstraction
icbegins the declaration of an integrity constraint
ifbegins a conditional expression
iffboolean equivalence
implieslogical implication
inbinds a variable to the elements of a set of singletons
modulebegins the declaration of a module
notlogical negation
orlogical disjunction
thenseparates the condition and the first branch of a conditional expression
trueboolean constant (the singleton relation {()})
usebegins the list of names imported from another module
wherebinds variables to sets of values that satisfy a formula
withbegins the declaration of imports from another module
xorlogical “exclusive or”

General Language

SymbolOperator Name
.dot
...splat
,comma
;semicolon
:colon
()parentheses (precedence)
()parentheses (application)
{}curly braces (precedence)
{}curly braces (definitions)
[]square brackets
=equal (definitions)
in
%string interpolation in string constants
#specialization

Logical Operations

SymbolOperator Name
or
and
¬not
exists
forall
, , xor
, iff
, implies
|for
()true
{}false

Data Type Constants

SymbolData Type
0xUnsigned Integer
., e, EFloating-point Number
:, :"...",RelName
'Character
", """String
raw", raw""", raw string
%string interpolation

Mathematical Operations

SymbolOperator Name
+add
-subtract
*multiply
/divide
÷trunc_divide
%remainder
×cart
^power
=eq
, !=neq
, >=gt_eq
, <=lt_eq
>gt
<lt
Σsum

Operations on Relations

SymbolOperator Name
union
intersect
proper_superset
proper_subset
superset
subset
++>right_override
<++left_override
:>suffix_join
<:prefix_join

Infix Symbols

User-defined Symbols
, , , , , , , , , , , , infix symbols
Was this doc helpful?