</tbody>
</tgroup>
</table>
+ <table frame="topbot" rowsep="0" colsep="0" role="grammar">
+ <title>csymbol</title>
+ <tgroup cols="4">
+ <tbody>
+ <row>
+ <entry id="grammar.csymbol">&csymbol;</entry>
+ <entry>::=</entry>
+ <entry><emphasis role="bold">'</emphasis>&id;</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table frame="topbot" rowsep="0" colsep="0" role="grammar">
+ <title>symbol</title>
+ <tgroup cols="4">
+ <tbody>
+ <row>
+ <entry id="grammar.symbol">&symbol;</entry>
+ <entry>::=</entry>
+ <entry><emphasis role="bold">〈〈None of the above〉〉</emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
</sect2>
<sect2 id="terms">
<title>Terms</title>
-->
<para>
- <table frame="topbot" rowsep="0" colsep="0" role="grammar">
+ <table id="tbl_terms" frame="topbot" rowsep="0" colsep="0" role="grammar">
<title>Terms</title>
<tgroup cols="4">
<tbody>
<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>
<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
<entry><emphasis role="bold">normalize</emphasis></entry>
<entry>Computes the βδιζ-normal form</entry>
</row>
- <row>
- <entry/>
- <entry>|</entry>
- <entry><emphasis role="bold">reduce</emphasis></entry>
- <entry>Computes the βδιζ-normal form</entry>
- </row>
<row>
<entry/>
<entry>|</entry>
</tgroup>
</table>
</sect2>
+
+ <sect2 id="auto-params">
+ <title>auto-params</title>
+ <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>
+ </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>Give a bound to the depth of the search tree</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">width=&nat;</emphasis></entry>
+ <entry>The maximal width of the search tree</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">library</emphasis></entry>
+ <entry>Search everywhere (not only in included files)</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">type</emphasis></entry>
+ <entry>Try to close also goals of sort Type, otherwise only goals
+ living in sort Prop are attacked.
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">paramodulation</emphasis></entry>
+ <entry>Try to close the goal performing unit-equality paramodulation
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">size=&nat;</emphasis></entry>
+ <entry>The maximal number of nodes in the proof</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">timeout=&nat;</emphasis></entry>
+ <entry>Timeout in seconds
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+
+ <sect2 id="justification">
+ <title>justification</title>
+ <table frame="topbot" rowsep="0" colsep="0" role="grammar">
+ <title>justification</title>
+ <tgroup cols="4">
+ <tbody>
+ <row>
+ <entry id="grammar.justification">&justification;</entry>
+ <entry>::=</entry>
+ <entry><emphasis role="bold">using</emphasis> &term;</entry>
+ <entry>Proof term manually provided</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>&autoparams;</entry>
+ <entry>Call automation</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
</sect1>
</chapter>