]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/help/C/sec_terms.html
151c909c88fee0a5fec06e05146d58283e9dcbf5
[helm.git] / matita / matita / help / C / sec_terms.html
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Syntax</title><link rel="stylesheet" type="text/css" href="docbook.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Matita V0.99.5 User Manual (rev. 0.99.5 )" /><link rel="up" href="index.html" title="Matita V0.99.5 User Manual (rev. 0.99.5 )" /><link rel="prev" href="authoring.html" title="Authoring" /><link rel="next" href="axiom_definition_declaration.html" title="Definitions and declarations" /></head><body><a xmlns="" href="../../../"><div class="matita_logo"><img src="figures/matita.png" alt="Tiny Matita logo" /><span>Matita Home</span></div></a><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Syntax</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="authoring.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="axiom_definition_declaration.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="sec_terms"></a>Chapter 4. Syntax</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="sect1"><a href="sec_terms.html#terms_and_co">Terms &amp; co.</a></span></dt><dd><dl><dt><span class="sect2"><a href="sec_terms.html#lexical">Lexical conventions</a></span></dt><dt><span class="sect2"><a href="sec_terms.html#terms">Terms</a></span></dt></dl></dd><dt><span class="sect1"><a href="axiom_definition_declaration.html">Definitions and declarations</a></span></dt><dd><dl><dt><span class="sect2"><a href="axiom_definition_declaration.html#axiom">axiom</a></span></dt><dt><span class="sect2"><a href="axiom_definition_declaration.html#definition">definition</a></span></dt><dt><span class="sect2"><a href="axiom_definition_declaration.html#discriminator">discriminator</a></span></dt><dt><span class="sect2"><a href="axiom_definition_declaration.html#inverter">inverter</a></span></dt><dt><span class="sect2"><a href="axiom_definition_declaration.html#letrec"><span class="emphasis"><em>TODO</em></span></a></span></dt><dt><span class="sect2"><a href="axiom_definition_declaration.html#inductive">(co)inductive types declaration</a></span></dt><dt><span class="sect2"><a href="axiom_definition_declaration.html#record">record</a></span></dt></dl></dd><dt><span class="sect1"><a href="proofs.html">Proofs</a></span></dt><dd><dl><dt><span class="sect2"><a href="proofs.html#theorem">theorem</a></span></dt><dt><span class="sect2"><a href="proofs.html#corollary">corollary</a></span></dt><dt><span class="sect2"><a href="proofs.html#lemma">lemma</a></span></dt><dt><span class="sect2"><a href="proofs.html#fact">fact</a></span></dt><dt><span class="sect2"><a href="proofs.html#example">example</a></span></dt></dl></dd><dt><span class="sect1"><a href="tacticargs.html">Tactic arguments</a></span></dt><dd><dl><dt><span class="sect2"><a href="tacticargs.html#pattern">pattern</a></span></dt><dt><span class="sect2"><a href="tacticargs.html#reduction-kind">reduction-kind</a></span></dt><dt><span class="sect2"><a href="tacticargs.html#auto-params">auto-params</a></span></dt><dt><span class="sect2"><a href="tacticargs.html#justification">justification</a></span></dt></dl></dd></dl></div><p>To describe syntax in this manual we use the following conventions:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Non terminal symbols are emphasized and have a link to their
3         definition. E.g.: <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span></p></li><li class="listitem"><p>Terminal symbols are in bold. E.g.:
4         <span class="bold"><strong>theorem</strong></span></p></li><li class="listitem"><p>Optional sequences of elements are put in square brackets.
5         E.g.: [<span class="bold"><strong>in</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>]</p></li><li class="listitem"><p>Alternatives are put in square brakets and they are
6         separated by vertical bars. E.g.: [<span class="bold"><strong>&lt;</strong></span>|<span class="bold"><strong>&gt;</strong></span>]</p></li><li class="listitem"><p>Repetitions of a sequence of elements are given by putting the
7     sequence in square brackets, that are followed by three dots. The empty
8     sequence is a valid repetition.
9     E.g.: [<span class="bold"><strong>and</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>]…</p></li><li class="listitem"><p>Characters belonging to a set of characters are given
10      by listing the set elements in square brackets. Hyphens are used to
11      specify ranges of characters in the set.
12      E.g.: [<span class="bold"><strong>a</strong></span>-<span class="bold"><strong>zA</strong></span>-<span class="bold"><strong>Z0</strong></span>-<span class="bold"><strong>9_-</strong></span>]</p></li></ol></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="terms_and_co"></a>Terms &amp; co.</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="lexical"></a>Lexical conventions</h3></div></div></div><div class="table"><a id="idm389"></a><p class="title"><strong>Table 4.1. qstring</strong></p><div class="table-contents"><table class="table" summary="qstring" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.qstring"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.qstring">qstring</a></em></span></td><td style="">::=</td><td style=""><span class="bold"><strong>"</strong></span><span class="emphasis"><em>〈〈any sequence of characters excluded "〉〉</em></span><span class="bold"><strong>"</strong></span></td><td class="auto-generated" style=""> </td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm402"></a><p class="title"><strong>Table 4.2. id</strong></p><div class="table-contents"><table class="table" summary="id" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.id"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em>〈〈any sequence of letters, underscores or valid <a class="ulink" href="http://www.w3.org/TR/2004/REC-xml-20040204/#NT-Digit" target="_top">XML digits</a> prefixed by a latin letter ([a-zA-Z]) and post-fixed by a possible empty sequence of decorators ([?'`])〉〉</em></span></td><td class="auto-generated" style=""> </td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm414"></a><p class="title"><strong>Table 4.3. nat</strong></p><div class="table-contents"><table class="table" summary="nat" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.nat"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.nat">nat</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em>〈〈any sequence of valid <a class="ulink" href="http://www.w3.org/TR/2004/REC-xml-20040204/#NT-Digit" target="_top">XML digits</a>〉〉</em></span></td><td class="auto-generated" style=""> </td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm426"></a><p class="title"><strong>Table 4.4. char</strong></p><div class="table-contents"><table class="table" summary="char" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.char"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.char">char</a></em></span></td><td style="">::=</td><td style="">[<span class="bold"><strong>a</strong></span>-<span class="bold"><strong>zA</strong></span>-<span class="bold"><strong>Z0</strong></span>-<span class="bold"><strong>9_-</strong></span>]</td><td class="auto-generated" style=""> </td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm440"></a><p class="title"><strong>Table 4.5. uri-step</strong></p><div class="table-contents"><table class="table" summary="uri-step" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.uri-step"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.uri-step">uri-step</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.char">char</a></em></span>[<span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.char">char</a></em></span>]…</td><td class="auto-generated" style=""> </td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm454"></a><p class="title"><strong>Table 4.6. uri</strong></p><div class="table-contents"><table class="table" summary="uri" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.uri"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.uri">uri</a></em></span></td><td style="">::=</td><td style="">[<span class="bold"><strong>cic:/</strong></span>|<span class="bold"><strong>theory:/</strong></span>]<span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.uri-step">uri-step</a></em></span>[<span class="bold"><strong>/</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.uri-step">uri-step</a></em></span>]…<span class="bold"><strong>.</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>[<span class="bold"><strong>.</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>]…[<span class="bold"><strong>#xpointer(</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.nat">nat</a></em></span><span class="bold"><strong>/</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.nat">nat</a></em></span>[<span class="bold"><strong>/</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.nat">nat</a></em></span>]…<span class="bold"><strong>)</strong></span>]</td><td class="auto-generated" style=""> </td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm487"></a><p class="title"><strong>Table 4.7. csymbol</strong></p><div class="table-contents"><table class="table" summary="csymbol" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.csymbol"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.csymbol">csymbol</a></em></span></td><td style="">::=</td><td style=""><span class="bold"><strong>'</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td class="auto-generated" style=""> </td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="idm500"></a><p class="title"><strong>Table 4.8. symbol</strong></p><div class="table-contents"><table class="table" summary="symbol" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.symbol"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.symbol">symbol</a></em></span></td><td style="">::=</td><td style=""><span class="bold"><strong>〈〈None of the above〉〉</strong></span></td><td class="auto-generated" style=""> </td></tr></tbody></table></div></div><br class="table-break" /></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="terms"></a>Terms</h3></div></div></div><p>
13   </p><div class="table"><a id="tbl_terms"></a><p class="title"><strong>Table 4.9. Terms</strong></p><div class="table-contents"><table class="table" summary="Terms" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.term"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.sterm">sterm</a></em></span></td><td style="">simple or delimited term</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span></td><td style="">application</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>λ</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.args">args</a></em></span><span class="bold"><strong>.</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span></td><td style="">λ-abstraction</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>Π</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.args">args</a></em></span><span class="bold"><strong>.</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span></td><td style="">dependent product meant to define a datatype</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>∀</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.args">args</a></em></span><span class="bold"><strong>.</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span></td><td style="">dependent product meant to define a proposition</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span> <span class="bold"><strong>→</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span></td><td style="">non-dependent product (logical implication or function space)</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>let</strong></span> [<span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>|(<span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span><span class="bold"><strong>:</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>)] <span class="bold"><strong>≝</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span> <span class="bold"><strong>in</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span></td><td style="">local definition</td></tr><tr><td style=""> </td><td style="">|</td><td style="">
14         <span class="bold"><strong>let</strong></span>
15         [<span class="bold"><strong>co</strong></span>]<span class="bold"><strong>rec</strong></span>
16         <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.rec_def">rec_def</a></em></span>
17       </td><td style="">(co)recursive definitions</td></tr><tr><td style=""> </td><td style=""> </td><td style="">
18       [<span class="bold"><strong>and</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.rec_def">rec_def</a></em></span>]…
19       </td><td style=""> </td></tr><tr><td style=""> </td><td style=""> </td><td style="">
20       <span class="bold"><strong>in</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>
21       </td><td style=""> </td></tr><tr><td style=""> </td><td style="">|</td><td style="">…</td><td style="">user provided notation</td></tr><tr><td style=""><a id="grammar.rec_def"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.rec_def">rec_def</a></em></span></td><td style="">::=</td><td style="">
22           <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span> [<span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>|<span class="bold"><strong>_</strong></span>|<span class="bold"><strong>(</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>[<span class="bold"><strong>,</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>]… <span class="bold"><strong>:</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span><span class="bold"><strong>)</strong></span>]…
23         </td><td style=""> </td></tr><tr><td style=""> </td><td style=""> </td><td style="">
24           [<span class="bold"><strong>on</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>]
25           [<span class="bold"><strong>:</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>]
26           <span class="bold"><strong>≝</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>]
27         </td><td style=""> </td></tr></tbody></table></div></div><p><br class="table-break" />
28
29   </p><div class="table"><a id="idm665"></a><p class="title"><strong>Table 4.10. Simple terms</strong></p><div class="table-contents"><table class="table" summary="Simple terms" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.sterm"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.sterm">sterm</a></em></span></td><td style="">::=</td><td style=""><span class="bold"><strong>(</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span><span class="bold"><strong>)</strong></span></td><td style=""> </td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>[<span class="bold"><strong>\subst[</strong></span>
30        <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span><span class="bold"><strong>≔</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>
31        [<span class="bold"><strong>;</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span><span class="bold"><strong>≔</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>]…
32        <span class="bold"><strong>]</strong></span>]
33       </td><td style="">identifier with optional explicit named substitution</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.uri">uri</a></em></span></td><td style="">a qualified reference</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>Prop</strong></span></td><td style="">the impredicative sort of propositions</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>Set</strong></span></td><td style="">the impredicate sort of datatypes</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>CProp</strong></span></td><td style="">one fixed predicative sort of constructive propositions</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>Type</strong></span></td><td style="">one predicative sort of datatypes</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>?</strong></span></td><td style="">implicit argument</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>?n</strong></span>
34       [<span class="bold"><strong>[</strong></span>
35       [<span class="bold"><strong>_</strong></span>|<span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>]…
36       <span class="bold"><strong>]</strong></span>]</td><td style="">metavariable</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>match</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span> 
37         [ <span class="bold"><strong>in</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span> ]
38         [ <span class="bold"><strong>return</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span> ]
39         <span class="bold"><strong>with</strong></span>
40       </td><td style="">case analysis</td></tr><tr><td style=""> </td><td style=""> </td><td style="">
41        <span class="bold"><strong>[</strong></span> 
42        <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.match_branch">match_branch</a></em></span>[<span class="bold"><strong>|</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.match_branch">match_branch</a></em></span>]…
43        <span class="bold"><strong>]</strong></span> 
44       </td><td style=""> </td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>(</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span><span class="bold"><strong>:</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span><span class="bold"><strong>)</strong></span></td><td style="">cast</td></tr><tr><td style=""> </td><td style="">|</td><td style="">…</td><td style="">user provided notation at precedence 90</td></tr></tbody></table></div></div><p><br class="table-break" />
45
46   </p><div class="table"><a id="idm792"></a><p class="title"><strong>Table 4.11. Arguments</strong></p><div class="table-contents"><table class="table" summary="Arguments" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.args"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.args">args</a></em></span></td><td style="">::=</td><td style="">
47        <span class="bold"><strong>_</strong></span>[<span class="bold"><strong>:</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>]
48       </td><td style="">ignored argument</td></tr><tr><td style=""> </td><td style="">|</td><td style="">
49        <span class="bold"><strong>(</strong></span><span class="bold"><strong>_</strong></span>[<span class="bold"><strong>:</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>]<span class="bold"><strong>)</strong></span>
50       </td><td style="">ignored argument</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>[<span class="bold"><strong>,</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>]…[<span class="bold"><strong>:</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>]</td><td style=""> </td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>(</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>[<span class="bold"><strong>,</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>]…[<span class="bold"><strong>:</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span>]<span class="bold"><strong>)</strong></span></td><td style=""> </td></tr><tr><td style=""><a id="grammar.args2"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.args2">args2</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style=""> </td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>(</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>[<span class="bold"><strong>,</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>]…<span class="bold"><strong>:</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span><span class="bold"><strong>)</strong></span></td><td style=""> </td></tr></tbody></table></div></div><p><br class="table-break" />
51
52   </p><div class="table"><a id="idm870"></a><p class="title"><strong>Table 4.12. Pattern matching</strong></p><div class="table-contents"><table class="table" summary="Pattern matching" style="border-collapse: collapse;border-top: 1px solid ; border-bottom: 1px solid ; "><colgroup><col /><col /><col /><col /></colgroup><tbody><tr><td style=""><a id="grammar.match_branch"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.match_branch">match_branch</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.match_pattern">match_pattern</a></em></span> <span class="bold"><strong>⇒</strong></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.term">term</a></em></span></td><td style=""> </td></tr><tr><td style=""><a id="grammar.match_pattern"></a><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.match_pattern">match_pattern</a></em></span></td><td style="">::=</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span></td><td style="">0-ary constructor</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>(</strong></span><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span> [<span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>]…<span class="bold"><strong>)</strong></span></td><td style="">n-ary constructor (binds the n arguments)</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span> <span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span> [<span class="emphasis"><em><a class="link" href="sec_terms.html#grammar.id">id</a></em></span>]…</td><td style="">n-ary constructor (binds the n arguments)</td></tr><tr><td style=""> </td><td style="">|</td><td style=""><span class="bold"><strong>_</strong></span></td><td style="">any remaining constructor (ignoring its arguments)</td></tr></tbody></table></div></div><p><br class="table-break" />
53   </p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="authoring.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="axiom_definition_declaration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Authoring </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Definitions and declarations</td></tr></table></div></body></html>