@@ -36,6 +36,7 @@ \subsubsection{Normal Programs and Integrity Constraints}\label{subsec:gringo:no
36
36
\index {Terms!\code {\# sup}}
37
37
\index {Terms!\code {\# inf}}
38
38
39
+ \comment {T2R: Upgrade tuple definition}
39
40
\begin {figure }
40
41
\vspace *{-19mm}
41
42
\railnontermfont {\rmfamily\itshape }%
@@ -97,10 +98,15 @@ \subsubsection{Normal Programs and Integrity Constraints}\label{subsec:gringo:no
97
98
constant \const {peter}, another function \code {\const {time}(12)}
98
99
with an integer argument, and variable~\var {X}.
99
100
Finally, there are \emph {tuples }, which are similar to \emph {functions } but without a name.
100
- \REWc {Note that there are no one-elementary tuples; a term of form \code {($ t$ )} is equivalent to \code {$ t$ }.}{T2R: Update!}
101
101
Examples for tuples are:
102
102
the empty tuple \code {()} and
103
103
the tuple \code {(\const {at},\const {peter},\const {time}(12),X)} with four elements.
104
+ Tuples may optionally end in a comma `` \code {,}''
105
+ for distinguishing one-elementary tuples.
106
+ That is, \code {($ t$ ,)} is a one-elementary tuple,
107
+ while a term of form \code {($ t$ )} is equivalent to \code {$ t$ }.
108
+ Thus, \code {(42,)} is a one-elementary tuple, whereas \code {(42)} is not.
109
+ The above quadruple is equivalent to \code {(\const {at},\const {peter},\const {time}(12),X,)}.
104
110
105
111
Rules of the following forms are admitted in a
106
112
\emph {normal logic program } (with integrity constraints):
0 commit comments