<sect2 id="lexical">
<title>Lexical conventions</title>
<table frame="topbot" rowsep="0" colsep="0" role="grammar">
- <title>string</title>
+ <title>qstring</title>
<tgroup cols="4">
<tbody>
<row>
- <entry id="grammar.string">&string;</entry>
+ <entry id="grammar.qstring">&qstring;</entry>
<entry>::=</entry>
- <entry><emphasis>〈〈any sequence of characters excluded "〉〉</emphasis></entry>
+ <entry><emphasis role="bold">"</emphasis><emphasis>〈〈any sequence of characters excluded "〉〉</emphasis><emphasis role="bold">"</emphasis></entry>
</row>
</tbody>
</tgroup>
<entry id="grammar.rec_def">&rec_def;</entry>
<entry>::=</entry>
<entry>
- &id; [&id;|<emphasis role="bold">(</emphasis>&id;[<emphasis role="bold">,</emphasis>&term;]… <emphasis role="bold">:</emphasis>&term;<emphasis role="bold">)</emphasis>]…
+ &id; [&id;|<emphasis role="bold">_</emphasis>|<emphasis role="bold">(</emphasis>&id;[<emphasis role="bold">,</emphasis>&id;]… <emphasis role="bold">:</emphasis>&term;<emphasis role="bold">)</emphasis>]…
</entry>
<entry />
</row>
<entry />
<entry />
<entry>
- [<emphasis role="bold">on</emphasis> &nat;]
+ [<emphasis role="bold">on</emphasis> &id;]
[<emphasis role="bold">:</emphasis> &term;]
<emphasis role="bold">≝</emphasis> &term;]
</entry>
<entry/>
<entry>|</entry>
<entry><emphasis role="bold">match</emphasis> &term;
- [ <emphasis role="bold">in</emphasis> &term; ]
+ [ <emphasis role="bold">in</emphasis> &id; ]
[ <emphasis role="bold">return</emphasis> &term; ]
<emphasis role="bold">with</emphasis>
</entry>
<entry><emphasis role="bold">(</emphasis>&id; &id; [&id;]…<emphasis role="bold">)</emphasis></entry>
<entry>n-ary constructor (binds the n arguments)</entry>
</row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>&id; &id; [&id;]…</entry>
+ <entry>n-ary constructor (binds the n arguments)</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">_</emphasis></entry>
+ <entry>any remaining constructor (ignoring its arguments)</entry>
+ </row>
</tbody>
</tgroup>
</table>
<command>f</command> must be defined by means of tactics.</para>
<para>Notice that the command is equivalent to <command>theorem f: T ≝ t</command>.</para>
</sect2>
+ <sect2 id="letrec">
+ <title><emphasis role="bold">letrec</emphasis> &TODO;</title>
+ <titleabbrev>&TODO;</titleabbrev>
+ <para>&TODO;</para>
+ </sect2>
<sect2 id="inductive">
<title>[<emphasis role="bold">inductive</emphasis>|<emphasis role="bold">coinductive</emphasis>] &id; [&args2;]… <emphasis role="bold">:</emphasis> &term; <emphasis role="bold">≝</emphasis> [<emphasis role="bold">|</emphasis>] [&id;<emphasis role="bold">:</emphasis>&term;] [<emphasis role="bold">|</emphasis> &id;<emphasis role="bold">:</emphasis>&term;]…
[<emphasis role="bold">with</emphasis> &id; <emphasis role="bold">:</emphasis> &term; <emphasis role="bold">≝</emphasis> [<emphasis role="bold">|</emphasis>] [&id;<emphasis role="bold">:</emphasis>&term;] [<emphasis role="bold">|</emphasis> &id;<emphasis role="bold">:</emphasis>&term;]…]…
<row>
<entry/>
<entry>|</entry>
- <entry><emphasis role="bold">in match</emphasis> &term;
+ <entry><emphasis role="bold">in match</emphasis> &path;
[<emphasis role="bold">in</emphasis>
[&id;[<emphasis role="bold">:</emphasis> &path;]]…
[<emphasis role="bold">⊢</emphasis> &path;]]</entry>
<row>
<entry id="grammar.path">&path;</entry>
<entry>::=</entry>
- <entry><emphasis>〈〈any &sterm; whithout occurrences of <emphasis role="bold">Set</emphasis>, <emphasis role="bold">Prop</emphasis>, <emphasis role="bold">CProp</emphasis>, <emphasis role="bold">Type</emphasis>, &id;, &uri; and user provided notation; however, <emphasis role="bold">%</emphasis> is now an additional production for &sterm;〉〉</emphasis></entry>
+ <entry><emphasis>〈〈any &sterm; without occurrences of <emphasis role="bold">Set</emphasis>, <emphasis role="bold">Prop</emphasis>, <emphasis role="bold">CProp</emphasis>, <emphasis role="bold">Type</emphasis>, &id;, &uri; and user provided notation; however, <emphasis role="bold">%</emphasis> is now an additional production for &sterm;〉〉</emphasis></entry>
</row>
</tbody>
</tgroup>
that can be represented by <emphasis role="bold">?</emphasis>.
</para></listitem>
</orderedlist>
+ <para>Warning: the format for a path for a <emphasis role="bold">match</emphasis> … <emphasis role="bold">with</emphasis>
+ expression is restricted to: <emphasis role="bold">match</emphasis> &path;
+ <emphasis role="bold">with</emphasis>
+ <emphasis role="bold">[</emphasis>
+ <emphasis role="bold">_</emphasis>
+ <emphasis role="bold">⇒</emphasis>
+ &path;
+ <emphasis role="bold">|</emphasis> …
+ <emphasis role="bold">|</emphasis>
+ <emphasis role="bold">_</emphasis>
+ <emphasis role="bold">⇒</emphasis>
+ &path;
+ <emphasis role="bold">]</emphasis>
+ Its semantics is the following: the n-th
+ "<emphasis role="bold">_</emphasis>
+ <emphasis role="bold">⇒</emphasis>
+ &path;" branch is matched against the n-th constructor of the
+ inductive data type. The head λ-abstractions of &path; are matched
+ against the corresponding constructor arguments.
+ </para>
<para>For instance, the path
<userinput>∀_,_:?.(? ? % ?)→(? ? ? %)</userinput>
locates at once the subterms
</tgroup>
</table>
</sect2>
+
+ <sect2 id="auto-params">
+ <title>auto-params</title>
+ <para>&TODO;</para>
+ <table frame="topbot" rowsep="0" colsep="0" role="grammar">
+ <title>auto-params</title>
+ <tgroup cols="4">
+ <tbody>
+ <row>
+ <entry id="grammar.autoparams">&autoparams;</entry>
+ <entry>::=</entry>
+ <entry>[&simpleautoparam;]…
+ [<emphasis role="bold">by</emphasis>
+ &term; [&term;]…]
+ </entry>
+ <entry>&TODO;</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table frame="topbot" rowsep="0" colsep="0" role="grammar">
+ <title>simple-auto-param</title>
+ <tgroup cols="4">
+ <tbody>
+ <row>
+ <entry id="grammar.simpleautoparam">&simpleautoparam;</entry>
+ <entry>::=</entry>
+ <entry><emphasis role="bold">depth=&nat;</emphasis></entry>
+ <entry>&TODO;</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">width=&nat;</emphasis></entry>
+ <entry>&TODO;</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">&TODO;</emphasis></entry>
+ <entry>&TODO;</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
</sect1>
</chapter>