This file is indexed.

/usr/share/mozart/doc/notation/node7.html is in mozart-doc 1.4.0-8ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

1
2
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>5.2 Constraint Extensions and Combinators</TITLE><LINK href="ozdoc.css" rel="stylesheet" type="text/css"></HEAD><BODY><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node6.html#section.translation.base">&lt;&lt; Prev</A></TD><TD><A href="node5.html">- Up -</A></TD><TD><A href="node8.html#section.translation.classes">Next &gt;&gt;</A></TD></TR></TABLE><DIV id="section.translation.constraints"><H2><A name="section.translation.constraints">5.2 Constraint Extensions and Combinators</A></H2><DIV class="unnumbered"><H3><A name="label35">Operators</A></H3><P> </P><DIV class="note"><P>Missing: fd compare</P></DIV><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>statement</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>E1</I><CODE>&nbsp;<SPAN class="keyword">::</SPAN>&nbsp;</CODE><I>E2</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`FD.int`</SPAN>&nbsp;</CODE><I>E2</I><CODE>&nbsp;</CODE><I>E1</I><CODE>}</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>statement</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>E1</I><CODE>&nbsp;<SPAN class="keyword">:::</SPAN>&nbsp;</CODE><I>E2</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`FD.dom`</SPAN>&nbsp;</CODE><I>E2</I><CODE>&nbsp;</CODE><I>E1</I><CODE>}</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>expression</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>E1</I><CODE>&nbsp;<SPAN class="keyword">::</SPAN>&nbsp;</CODE><I>E2</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`FD.reified.int`</SPAN>&nbsp;</CODE><I>E2</I><CODE>&nbsp;</CODE><I>E1</I><CODE>}</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>expression</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>E1</I><CODE>&nbsp;<SPAN class="keyword">:::</SPAN>&nbsp;</CODE><I>E2</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`FD.reified.dom`</SPAN>&nbsp;</CODE><I>E2</I><CODE>&nbsp;</CODE><I>E1</I><CODE>}</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P></DIV><DIV class="unnumbered"><H3><A name="label36">Failure</A></H3><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>statement</I>&gt;, &lt;<I>expression</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">fail</SPAN></CODE></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE><SPAN class="keyword">raise</SPAN>&nbsp;failure(</CODE>...<CODE>)&nbsp;<SPAN class="keyword">end</SPAN></CODE></P></TD></TR></TABLE></TD></TR><TR valign="top"><TD><P>where the omitted parts of the exception are implementation-dependent.</P></TD></TR></TABLE><P> </P></DIV><DIV class="unnumbered"><H3><A name="label37">Combinators</A></H3><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>statement</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">not</SPAN>&nbsp;</CODE><I>S</I><CODE>&nbsp;<SPAN class="keyword">end</SPAN></CODE></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`Combinator.'not'`</SPAN>&nbsp;<SPAN class="keyword">proc</SPAN><SPAN class="variablename">&nbsp;</SPAN>{<SPAN class="functionname">$</SPAN>}&nbsp;</CODE><I>S</I><CODE>&nbsp;<SPAN class="keyword">end</SPAN>}</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>statement</I>&gt;, &lt;<I>expression</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">cond</SPAN>&nbsp;</CODE><I>L1</I><CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE>...<CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE><I>Ln</I><CODE>&nbsp;<BR><SPAN class="keyword">end</SPAN></CODE></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE><SPAN class="keyword">cond</SPAN>&nbsp;</CODE><I>L1</I><CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE>...<CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE><I>Ln</I><CODE>&nbsp;<BR><SPAN class="keyword">else</SPAN>&nbsp;<BR>&nbsp;&nbsp;&nbsp;<SPAN class="keyword">raise</SPAN>&nbsp;error(kernel(noElse&nbsp;</CODE>...<CODE>)&nbsp;</CODE>...<CODE>)&nbsp;<SPAN class="keyword">end</SPAN>&nbsp;<BR><SPAN class="keyword">end</SPAN></CODE></P></TD></TR></TABLE></TD></TR><TR valign="top"><TD><P>where the omitted parts of the exception are implementation-dependent.</P></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>cond statement clause</I>&gt;, &lt;<I>dis statement clause</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>D</I><CODE>&nbsp;<SPAN class="keyword">in</SPAN>&nbsp;</CODE><I>S1</I><CODE>&nbsp;</CODE>[ <CODE><SPAN class="keyword">then</SPAN>&nbsp;</CODE><I>S2</I> ]</P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><I>x1</I><CODE>&nbsp;</CODE>...<CODE>&nbsp;</CODE><I>xn</I><CODE>&nbsp;<SPAN class="keyword">in</SPAN>&nbsp;</CODE><I>D'</I><CODE>&nbsp;</CODE><I>S1</I><CODE>&nbsp;</CODE>[ <CODE><SPAN class="keyword">then</SPAN>&nbsp;</CODE><I>S2</I> ]</P></TD></TR></TABLE></TD></TR><TR valign="top"><TD><P>if <I>D</I> is not a sequence of distinct variables and where {<I>x1</I>, ..., <I>xn</I>} = <I>PV</I>(<I>D</I>) and <I>D'</I> is <I>D</I> with singleton variables and escapes removed.</P></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>cond expression clause</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>D</I><CODE>&nbsp;<SPAN class="keyword">in</SPAN>&nbsp;</CODE><I>S</I><CODE>&nbsp;<SPAN class="keyword">then</SPAN>&nbsp;</CODE><I>E</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><I>x1</I><CODE>&nbsp;</CODE>...<CODE>&nbsp;</CODE><I>xn</I><CODE>&nbsp;<SPAN class="keyword">in</SPAN>&nbsp;</CODE><I>D'</I><CODE>&nbsp;</CODE><I>S</I><CODE>&nbsp;<SPAN class="keyword">then</SPAN>&nbsp;</CODE><I>E</I></P></TD></TR></TABLE></TD></TR><TR valign="top"><TD><P>if <I>D</I> is not a sequence of distinct variables and where {<I>x1</I>, ..., <I>xn</I>} = <I>PV</I>(<I>D</I>) and <I>D'</I> is <I>D</I> with singleton variables and escapes removed.</P></TD></TR></TABLE><P> </P><DIV class="note"><P>Missing: translation of <CODE><SPAN class="keyword">cond</SPAN></CODE>/<CODE><SPAN class="keyword">or</SPAN></CODE>/<CODE><SPAN class="keyword">dis</SPAN></CODE>/<CODE><SPAN class="keyword">choice</SPAN></CODE> expression into statement</P></DIV><P> The following rewrite rules make use of an auxiliary function <I>Proc</I>, defined as follows: </P><TABLE align="center" bgcolor="#f0f0e0"><TR valign="top"><TH><P><I>L</I></P></TH><TH><P><I>Proc</I>(<I>L</I>)</P></TH></TR><TR valign="top"><TD><P><I>S1</I><CODE>&nbsp;<SPAN class="keyword">in</SPAN>&nbsp;</CODE><I>S2</I></P></TD><TD><P><CODE><SPAN class="keyword">proc</SPAN><SPAN class="variablename">&nbsp;</SPAN>{<SPAN class="functionname">$</SPAN>}&nbsp;</CODE><I>S1</I><CODE>&nbsp;<SPAN class="keyword">in</SPAN>&nbsp;</CODE><I>S2</I><CODE>&nbsp;<SPAN class="keyword">end</SPAN></CODE></P></TD></TR><TR valign="top"><TD><P><I>S1</I><CODE>&nbsp;<SPAN class="keyword">in</SPAN>&nbsp;</CODE><I>S2</I><CODE>&nbsp;<SPAN class="keyword">then</SPAN>&nbsp;</CODE><I>S3</I></P></TD><TD><P><CODE><SPAN class="keyword">fun</SPAN><SPAN class="variablename">&nbsp;</SPAN>{<SPAN class="functionname">$</SPAN>}&nbsp;</CODE><I>S1</I><CODE>&nbsp;<SPAN class="keyword">in</SPAN>&nbsp;</CODE><I>S2</I><CODE>&nbsp;<SPAN class="keyword">proc</SPAN><SPAN class="variablename">&nbsp;</SPAN>{<SPAN class="functionname">$</SPAN>}&nbsp;</CODE><I>S3</I><CODE>&nbsp;<SPAN class="keyword">end</SPAN>&nbsp;<SPAN class="keyword">end</SPAN></CODE></P></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>statement</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">cond</SPAN>&nbsp;</CODE><I>L1</I><CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE>...<CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE><I>Ln</I><CODE>&nbsp;<BR><SPAN class="keyword">else</SPAN>&nbsp;</CODE><I>S</I><CODE>&nbsp;<BR><SPAN class="keyword">end</SPAN></CODE></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`Combinator.'cond'`</SPAN>&nbsp;<SPAN class="string">'#'</SPAN>(</CODE><I>Proc</I>(<I>L1</I>)<CODE>&nbsp;</CODE>...<CODE>&nbsp;</CODE><I>Proc</I>(<I>Ln</I>)<CODE>)<BR>&nbsp;<SPAN class="keyword">proc</SPAN><SPAN class="variablename">&nbsp;</SPAN>{<SPAN class="functionname">$</SPAN>}&nbsp;</CODE><I>S</I><CODE>&nbsp;<SPAN class="keyword">end</SPAN>}</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>statement</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">or</SPAN>&nbsp;</CODE><I>L1</I><CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE>...<CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE><I>Ln</I><CODE>&nbsp;<BR><SPAN class="keyword">end</SPAN></CODE></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`Combinator.'or'`</SPAN>&nbsp;<SPAN class="string">'#'</SPAN>(</CODE><I>Proc</I>(<I>L1</I>)<CODE>&nbsp;</CODE>...<CODE>&nbsp;</CODE><I>Proc</I>(<I>Ln</I>)<CODE>)</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>statement</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">dis</SPAN>&nbsp;</CODE><I>L1</I><CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE>...<CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE><I>Ln</I><CODE>&nbsp;<BR><SPAN class="keyword">end</SPAN></CODE></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`Combinator.'dis'`</SPAN>&nbsp;<SPAN class="string">'#'</SPAN>(</CODE><I>Proc</I>(<I>L1</I>)<CODE>&nbsp;</CODE>...<CODE>&nbsp;</CODE><I>Proc</I>(<I>Ln</I>)<CODE>)</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD>&lt;<I>statement</I>&gt; ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">choice</SPAN>&nbsp;</CODE><I>S1</I><CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE>...<CODE>&nbsp;<SPAN class="keyword">[]</SPAN>&nbsp;</CODE><I>Sn</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE><SPAN class="keyword">case</SPAN>&nbsp;{<SPAN class="string">`Space.choose`</SPAN>&nbsp;</CODE><I>n</I><CODE>}&nbsp;<SPAN class="keyword">of</SPAN>&nbsp;1&nbsp;<SPAN class="keyword">then</SPAN>&nbsp;</CODE><I>S1</I><CODE>&nbsp;<BR><SPAN class="keyword">[]</SPAN>&nbsp;</CODE>...<CODE>&nbsp;<BR><SPAN class="keyword">[]</SPAN>&nbsp;</CODE><I>n</I><CODE>&nbsp;<SPAN class="keyword">then</SPAN>&nbsp;</CODE><I>Sn</I><CODE>&nbsp;<BR><SPAN class="keyword">end</SPAN></CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P></DIV></DIV><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node6.html#section.translation.base">&lt;&lt; Prev</A></TD><TD><A href="node5.html">- Up -</A></TD><TD><A href="node8.html#section.translation.classes">Next &gt;&gt;</A></TD></TR></TABLE><HR><ADDRESS><A href="http://www.iscs.nus.edu.sg/~henz">Martin&nbsp;Henz</A> and&nbsp;<A href="http://www.ps.uni-sb.de/~kornstae/">Leif&nbsp;Kornstaedt</A><BR><SPAN class="version">Version 1.4.0 (20110908185330)</SPAN></ADDRESS></BODY></HTML>