/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"><< Prev</A></TD><TD><A href="node5.html">- Up -</A></TD><TD><A href="node8.html#section.translation.classes">Next >></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><<I>statement</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>E1</I><CODE> <SPAN class="keyword">::</SPAN> </CODE><I>E2</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`FD.int`</SPAN> </CODE><I>E2</I><CODE> </CODE><I>E1</I><CODE>}</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD><<I>statement</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>E1</I><CODE> <SPAN class="keyword">:::</SPAN> </CODE><I>E2</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`FD.dom`</SPAN> </CODE><I>E2</I><CODE> </CODE><I>E1</I><CODE>}</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD><<I>expression</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>E1</I><CODE> <SPAN class="keyword">::</SPAN> </CODE><I>E2</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`FD.reified.int`</SPAN> </CODE><I>E2</I><CODE> </CODE><I>E1</I><CODE>}</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD><<I>expression</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>E1</I><CODE> <SPAN class="keyword">:::</SPAN> </CODE><I>E2</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`FD.reified.dom`</SPAN> </CODE><I>E2</I><CODE> </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><<I>statement</I>>, <<I>expression</I>> ::=</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> failure(</CODE>...<CODE>) <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><<I>statement</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">not</SPAN> </CODE><I>S</I><CODE> <SPAN class="keyword">end</SPAN></CODE></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE>{<SPAN class="string">`Combinator.'not'`</SPAN> <SPAN class="keyword">proc</SPAN><SPAN class="variablename"> </SPAN>{<SPAN class="functionname">$</SPAN>} </CODE><I>S</I><CODE> <SPAN class="keyword">end</SPAN>}</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD><<I>statement</I>>, <<I>expression</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">cond</SPAN> </CODE><I>L1</I><CODE> <SPAN class="keyword">[]</SPAN> </CODE>...<CODE> <SPAN class="keyword">[]</SPAN> </CODE><I>Ln</I><CODE> <BR><SPAN class="keyword">end</SPAN></CODE></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE><SPAN class="keyword">cond</SPAN> </CODE><I>L1</I><CODE> <SPAN class="keyword">[]</SPAN> </CODE>...<CODE> <SPAN class="keyword">[]</SPAN> </CODE><I>Ln</I><CODE> <BR><SPAN class="keyword">else</SPAN> <BR> <SPAN class="keyword">raise</SPAN> error(kernel(noElse </CODE>...<CODE>) </CODE>...<CODE>) <SPAN class="keyword">end</SPAN> <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><<I>cond statement clause</I>>, <<I>dis statement clause</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>D</I><CODE> <SPAN class="keyword">in</SPAN> </CODE><I>S1</I><CODE> </CODE>[ <CODE><SPAN class="keyword">then</SPAN> </CODE><I>S2</I> ]</P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><I>x1</I><CODE> </CODE>...<CODE> </CODE><I>xn</I><CODE> <SPAN class="keyword">in</SPAN> </CODE><I>D'</I><CODE> </CODE><I>S1</I><CODE> </CODE>[ <CODE><SPAN class="keyword">then</SPAN> </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><<I>cond expression clause</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><I>D</I><CODE> <SPAN class="keyword">in</SPAN> </CODE><I>S</I><CODE> <SPAN class="keyword">then</SPAN> </CODE><I>E</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><I>x1</I><CODE> </CODE>...<CODE> </CODE><I>xn</I><CODE> <SPAN class="keyword">in</SPAN> </CODE><I>D'</I><CODE> </CODE><I>S</I><CODE> <SPAN class="keyword">then</SPAN> </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> <SPAN class="keyword">in</SPAN> </CODE><I>S2</I></P></TD><TD><P><CODE><SPAN class="keyword">proc</SPAN><SPAN class="variablename"> </SPAN>{<SPAN class="functionname">$</SPAN>} </CODE><I>S1</I><CODE> <SPAN class="keyword">in</SPAN> </CODE><I>S2</I><CODE> <SPAN class="keyword">end</SPAN></CODE></P></TD></TR><TR valign="top"><TD><P><I>S1</I><CODE> <SPAN class="keyword">in</SPAN> </CODE><I>S2</I><CODE> <SPAN class="keyword">then</SPAN> </CODE><I>S3</I></P></TD><TD><P><CODE><SPAN class="keyword">fun</SPAN><SPAN class="variablename"> </SPAN>{<SPAN class="functionname">$</SPAN>} </CODE><I>S1</I><CODE> <SPAN class="keyword">in</SPAN> </CODE><I>S2</I><CODE> <SPAN class="keyword">proc</SPAN><SPAN class="variablename"> </SPAN>{<SPAN class="functionname">$</SPAN>} </CODE><I>S3</I><CODE> <SPAN class="keyword">end</SPAN> <SPAN class="keyword">end</SPAN></CODE></P></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD><<I>statement</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">cond</SPAN> </CODE><I>L1</I><CODE> <SPAN class="keyword">[]</SPAN> </CODE>...<CODE> <SPAN class="keyword">[]</SPAN> </CODE><I>Ln</I><CODE> <BR><SPAN class="keyword">else</SPAN> </CODE><I>S</I><CODE> <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> <SPAN class="string">'#'</SPAN>(</CODE><I>Proc</I>(<I>L1</I>)<CODE> </CODE>...<CODE> </CODE><I>Proc</I>(<I>Ln</I>)<CODE>)<BR> <SPAN class="keyword">proc</SPAN><SPAN class="variablename"> </SPAN>{<SPAN class="functionname">$</SPAN>} </CODE><I>S</I><CODE> <SPAN class="keyword">end</SPAN>}</CODE></P></TD></TR></TABLE></TD></TR></TABLE><P> </P><TABLE border="1"><TR valign="top"><TD><<I>statement</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">or</SPAN> </CODE><I>L1</I><CODE> <SPAN class="keyword">[]</SPAN> </CODE>...<CODE> <SPAN class="keyword">[]</SPAN> </CODE><I>Ln</I><CODE> <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> <SPAN class="string">'#'</SPAN>(</CODE><I>Proc</I>(<I>L1</I>)<CODE> </CODE>...<CODE> </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><<I>statement</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">dis</SPAN> </CODE><I>L1</I><CODE> <SPAN class="keyword">[]</SPAN> </CODE>...<CODE> <SPAN class="keyword">[]</SPAN> </CODE><I>Ln</I><CODE> <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> <SPAN class="string">'#'</SPAN>(</CODE><I>Proc</I>(<I>L1</I>)<CODE> </CODE>...<CODE> </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><<I>statement</I>> ::=</TD></TR><TR><TD><TABLE width="100%"><TR><TD><P><CODE><SPAN class="keyword">choice</SPAN> </CODE><I>S1</I><CODE> <SPAN class="keyword">[]</SPAN> </CODE>...<CODE> <SPAN class="keyword">[]</SPAN> </CODE><I>Sn</I></P></TD><TD><IMG alt="==>" src="latex15.png"></TD><TD><P><CODE><SPAN class="keyword">case</SPAN> {<SPAN class="string">`Space.choose`</SPAN> </CODE><I>n</I><CODE>} <SPAN class="keyword">of</SPAN> 1 <SPAN class="keyword">then</SPAN> </CODE><I>S1</I><CODE> <BR><SPAN class="keyword">[]</SPAN> </CODE>...<CODE> <BR><SPAN class="keyword">[]</SPAN> </CODE><I>n</I><CODE> <SPAN class="keyword">then</SPAN> </CODE><I>Sn</I><CODE> <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"><< Prev</A></TD><TD><A href="node5.html">- Up -</A></TD><TD><A href="node8.html#section.translation.classes">Next >></A></TD></TR></TABLE><HR><ADDRESS><A href="http://www.iscs.nus.edu.sg/~henz">Martin Henz</A> and <A href="http://www.ps.uni-sb.de/~kornstae/">Leif Kornstaedt</A><BR><SPAN class="version">Version 1.4.0 (20110908185330)</SPAN></ADDRESS></BODY></HTML>
|