<chapter id="sec_tacticals">
<title>Tacticals</title>
<sect1>
- <title>Introduction</title>
+ <title>Interactive proofs and definitions</title>
<para>
- &TODO;
+ An interactive definition is started by giving a
+ <link linkend="definition">definition</link> command omitting
+ the definiens.
+ An interactive proof is started by using one of the
+ <link linkend="proofs">proof commands</link> omitting
+ an explicit proof term.
</para>
+ <para>An interactive proof or definition can and must be terminated by
+ a <link linkend="command_qed">qed</link> command when no more sequents are
+ left to prove. Between the command that starts the interactive session and
+ the qed command the user must provide a procedural proof script made
+ of <link linkend="sec_tactics">tactics</link> structured by means of
+ <link linkend="tacticals">tacticals</link>.</para>
+ <para>In the tradition of the LCF system, tacticals can be considered
+ higher order tactics. Their syntax is structured and they are executed
+ atomically. On the contrary, in Matita the syntax of several tacticals is
+ destructured into a sequence of tokens and tactics in such a way that is
+ is possible to stop execution after every single token or tactic.
+ The original semantics is preserved: the execution of the whole sequence
+ yields the result expected by the original LCF-like tactical.</para>
+ </sect1>
+ <sect1 id="tacticals">
+ <title>Tacticals</title>
+ <table frame="topbot" rowsep="0" colsep="0" role="grammar">
+ <title>proof script</title>
+ <tgroup cols="4">
+ <tbody>
+ <row>
+ <entry id="grammar.proofscript">&proofscript;</entry>
+ <entry>::=</entry>
+ <entry>&proofstep; [&proofstep;]…</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <para>Every proof step can be immediately executed.</para>
+ <table frame="topbot" rowsep="0" colsep="0" role="grammar">
+ <title>proof steps</title>
+ <tgroup cols="4">
+ <tbody>
+ <row>
+ <entry id="grammar.proofstep">&proofstep;</entry>
+ <entry>::=</entry>
+ <entry>&LCFtactical;</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">.</emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">;</emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">[</emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">|</emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>&nat;[<emphasis role="bold">,</emphasis>&nat;]…<emphasis role="bold">:</emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">*:</emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">skip</emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">]</emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">focus</emphasis> &nat; [&nat;]…</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">unfocus</emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table frame="topbot" rowsep="0" colsep="0" role="grammar">
+ <title>tactics and LCF tacticals</title>
+ <tgroup cols="4">
+ <tbody>
+ <row>
+ <entry id="grammar.LCFtactical">&LCFtactical;</entry>
+ <entry>::=</entry>
+ <entry>&tactic;</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>&LCFtactical; <emphasis role="bold">;</emphasis> &LCFtactical;</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>&LCFtactical;
+ <emphasis role="bold">[</emphasis>
+ [&LCFtactical;]
+ [<emphasis role="bold">|</emphasis> &LCFtactical;]…
+ <emphasis role="bold">]</emphasis>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">do</emphasis> &nat;
+ &LCFtactical; <emphasis role="bold">end</emphasis>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">repeat</emphasis>
+ &LCFtactical; <emphasis role="bold">end</emphasis>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <emphasis role="bold">first [</emphasis>
+ [&LCFtactical;]
+ [<emphasis role="bold">|</emphasis> &LCFtactical;]…
+ <emphasis role="bold">]</emphasis>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">try</emphasis> &LCFtactical;</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <emphasis role="bold">solve [</emphasis>
+ [&LCFtactical;]
+ [<emphasis role="bold">|</emphasis> &LCFtactical;]…
+ <emphasis role="bold">]</emphasis>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><emphasis role="bold">(</emphasis>&LCFtactical;<emphasis role="bold">)</emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <para>&TODO;</para>
</sect1>
</chapter>
-<itemizedlist>
- <listitem>
- <para><link linkend="tac_absurd"><emphasis role="bold">absurd</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_apply"><emphasis role="bold">apply</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_assumption">
- <emphasis role="bold">assumption</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para><link linkend="tac_auto"><emphasis role="bold">auto</emphasis></link> [<emphasis role="bold">depth=</emphasis><emphasis><link linkend="grammar.nat">nat</link></emphasis>] [<emphasis role="bold">width=</emphasis><emphasis><link linkend="grammar.nat">nat</link></emphasis>] [<emphasis role="bold">paramodulation</emphasis>] [<emphasis role="bold">full</emphasis>]</para>
- </listitem>
- <listitem>
- <para><link linkend="tac_change"><emphasis role="bold">change</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis> <emphasis role="bold">with</emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></para>
- </listitem>
- <listitem>
- <para>
+<table frame="topbot" rowsep="0" colsep="0" role="grammar">
+ <title>tactics</title>
+ <tgroup cols="3">
+ <tbody>
+ <row>
+ <entry id="grammar.tactic">&tactic;</entry>
+ <entry>::=</entry>
+ <entry><link linkend="tac_absurd"><emphasis role="bold">absurd</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_apply"><emphasis role="bold">apply</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_assumption">
+ <emphasis role="bold">assumption</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_auto"><emphasis role="bold">auto</emphasis></link> [<emphasis role="bold">depth=</emphasis><emphasis><link linkend="grammar.nat">nat</link></emphasis>] [<emphasis role="bold">width=</emphasis><emphasis><link linkend="grammar.nat">nat</link></emphasis>] [<emphasis role="bold">paramodulation</emphasis>] [<emphasis role="bold">full</emphasis>]</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_change"><emphasis role="bold">change</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis> <emphasis role="bold">with</emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
<link linkend="tac_clear"><emphasis role="bold">clear</emphasis></link>
<emphasis><link linkend="grammar.id">id</link></emphasis> [<emphasis><link linkend="grammar.id">id</link></emphasis>…]
- </para>
- </listitem>
- <listitem>
- <para><link linkend="tac_clearbody"><emphasis role="bold">clearbody</emphasis></link> <emphasis><link linkend="grammar.id">id</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_constructor"><emphasis role="bold">constructor</emphasis></link> <emphasis><link linkend="grammar.nat">nat</link></emphasis></para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_contradiction">
- <emphasis role="bold">contradiction</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para><link linkend="tac_cut"><emphasis role="bold">cut</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis> [<emphasis role="bold">as</emphasis> <emphasis><link linkend="grammar.id">id</link></emphasis>]</para>
- </listitem>
- <listitem>
- <para>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_clearbody"><emphasis role="bold">clearbody</emphasis></link> <emphasis><link linkend="grammar.id">id</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_constructor"><emphasis role="bold">constructor</emphasis></link> <emphasis><link linkend="grammar.nat">nat</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_contradiction">
+ <emphasis role="bold">contradiction</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_cut"><emphasis role="bold">cut</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis> [<emphasis role="bold">as</emphasis> <emphasis><link linkend="grammar.id">id</link></emphasis>]</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
<link linkend="tac_decompose"><emphasis role="bold">decompose</emphasis></link>
[<emphasis role="bold">(</emphasis>
<emphasis><link linkend="grammar.id">id</link></emphasis>…
<emphasis role="bold">)</emphasis>]
[<emphasis><link linkend="grammar.id">id</link></emphasis>]
[<emphasis role="bold">as</emphasis> <emphasis><link linkend="grammar.id">id</link></emphasis>…]
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_demodulate">
- <emphasis role="bold">demodulate</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para><link linkend="tac_discriminate"><emphasis role="bold">discriminate</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_elim"><emphasis role="bold">elim</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis> [<emphasis role="bold">using</emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis>] <emphasis><link linkend="grammar.intros-spec">intros-spec</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_elimType"><emphasis role="bold">elimType</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis> [<emphasis role="bold">using</emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis>] <emphasis><link linkend="grammar.intros-spec">intros-spec</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_exact"><emphasis role="bold">exact</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_exists">
- <emphasis role="bold">exists</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_fail">
- <emphasis role="bold">fail</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para><link linkend="tac_fold"><emphasis role="bold">fold</emphasis></link> <emphasis><link linkend="grammar.reduction-kind">reduction-kind</link></emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_fourier">
- <emphasis role="bold">fourier</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para><link linkend="tac_fwd"><emphasis role="bold">fwd</emphasis></link> <emphasis><link linkend="grammar.id">id</link></emphasis> [<emphasis role="bold">as</emphasis> <emphasis><link linkend="grammar.id">id</link></emphasis> [<emphasis><link linkend="grammar.id">id</link></emphasis>]…]</para>
- </listitem>
- <listitem>
- <para><link linkend="tac_generalize"><emphasis role="bold">generalize</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis> [<emphasis role="bold">as</emphasis> <emphasis><link linkend="grammar.id">id</link></emphasis>]</para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_id">
- <emphasis role="bold">id</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para><link linkend="tac_injection"><emphasis role="bold">injection</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_intro"><emphasis role="bold">intro</emphasis></link> [<emphasis><link linkend="grammar.id">id</link></emphasis>]</para>
- </listitem>
- <listitem>
- <para><link linkend="tac_intros"><emphasis role="bold">intros</emphasis></link> <emphasis><link linkend="grammar.intros-spec">intros-spec</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_inversion"><emphasis role="bold">inversion</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></para>
- </listitem>
- <listitem>
- <para>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_demodulate">
+ <emphasis role="bold">demodulate</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_discriminate"><emphasis role="bold">discriminate</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_elim"><emphasis role="bold">elim</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis> [<emphasis role="bold">using</emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis>] <emphasis><link linkend="grammar.intros-spec">intros-spec</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_elimType"><emphasis role="bold">elimType</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis> [<emphasis role="bold">using</emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis>] <emphasis><link linkend="grammar.intros-spec">intros-spec</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_exact"><emphasis role="bold">exact</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_exists">
+ <emphasis role="bold">exists</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_fail">
+ <emphasis role="bold">fail</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_fold"><emphasis role="bold">fold</emphasis></link> <emphasis><link linkend="grammar.reduction-kind">reduction-kind</link></emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_fourier">
+ <emphasis role="bold">fourier</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_fwd"><emphasis role="bold">fwd</emphasis></link> <emphasis><link linkend="grammar.id">id</link></emphasis> [<emphasis role="bold">as</emphasis> <emphasis><link linkend="grammar.id">id</link></emphasis> [<emphasis><link linkend="grammar.id">id</link></emphasis>]…]</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_generalize"><emphasis role="bold">generalize</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis> [<emphasis role="bold">as</emphasis> <emphasis><link linkend="grammar.id">id</link></emphasis>]</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_id">
+ <emphasis role="bold">id</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_injection"><emphasis role="bold">injection</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_intro"><emphasis role="bold">intro</emphasis></link> [<emphasis><link linkend="grammar.id">id</link></emphasis>]</entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_intros"><emphasis role="bold">intros</emphasis></link> <emphasis><link linkend="grammar.intros-spec">intros-spec</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_inversion"><emphasis role="bold">inversion</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
<link linkend="tac_lapply"><emphasis role="bold">lapply</emphasis></link>
[<emphasis role="bold">linear</emphasis>]
[<emphasis role="bold">depth=</emphasis><emphasis><link linkend="grammar.nat">nat</link></emphasis>]
[<emphasis role="bold">,</emphasis><emphasis><link linkend="grammar.sterm">sterm</link></emphasis>…]
]
[<emphasis role="bold">as</emphasis> <emphasis><link linkend="grammar.id">id</link></emphasis>]
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_left">
- <emphasis role="bold">left</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para><link linkend="tac_letin"><emphasis role="bold">letin</emphasis></link> <emphasis><link linkend="grammar.id">id</link></emphasis> <emphasis role="bold">≝</emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_normalize"><emphasis role="bold">normalize</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_paramodulation"><emphasis role="bold">paramodulation</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_reduce"><emphasis role="bold">reduce</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_reflexivity">
- <emphasis role="bold">reflexivity</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para><link linkend="tac_replace"><emphasis role="bold">replace</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis> <emphasis role="bold">with</emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_rewrite"><emphasis role="bold">rewrite</emphasis></link> [<emphasis role="bold"><</emphasis>|<emphasis role="bold">></emphasis>] <emphasis><link linkend="grammar.sterm">sterm</link></emphasis> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_right">
- <emphasis role="bold">right</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_ring">
- <emphasis role="bold">ring</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para><link linkend="tac_simplify"><emphasis role="bold">simplify</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_split">
- <emphasis role="bold">split</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="tac_symmetry">
- <emphasis role="bold">symmetry</emphasis>
- </link>
- </para>
- </listitem>
- <listitem>
- <para><link linkend="tac_transitivity"><emphasis role="bold">transitivity</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_unfold"><emphasis role="bold">unfold</emphasis></link> [<emphasis><link linkend="grammar.sterm">sterm</link></emphasis>] <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></para>
- </listitem>
- <listitem>
- <para><link linkend="tac_whd"><emphasis role="bold">whd</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></para>
- </listitem>
-</itemizedlist>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_left">
+ <emphasis role="bold">left</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_letin"><emphasis role="bold">letin</emphasis></link> <emphasis><link linkend="grammar.id">id</link></emphasis> <emphasis role="bold">≝</emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_normalize"><emphasis role="bold">normalize</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_paramodulation"><emphasis role="bold">paramodulation</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_reduce"><emphasis role="bold">reduce</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_reflexivity">
+ <emphasis role="bold">reflexivity</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_replace"><emphasis role="bold">replace</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis> <emphasis role="bold">with</emphasis> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_rewrite"><emphasis role="bold">rewrite</emphasis></link> [<emphasis role="bold"><</emphasis>|<emphasis role="bold">></emphasis>] <emphasis><link linkend="grammar.sterm">sterm</link></emphasis> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_right">
+ <emphasis role="bold">right</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_ring">
+ <emphasis role="bold">ring</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_simplify"><emphasis role="bold">simplify</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_split">
+ <emphasis role="bold">split</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry>
+ <link linkend="tac_symmetry">
+ <emphasis role="bold">symmetry</emphasis>
+ </link>
+ </entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_transitivity"><emphasis role="bold">transitivity</emphasis></link> <emphasis><link linkend="grammar.sterm">sterm</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_unfold"><emphasis role="bold">unfold</emphasis></link> [<emphasis><link linkend="grammar.sterm">sterm</link></emphasis>] <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></entry>
+ </row>
+ <row>
+ <entry/>
+ <entry>|</entry>
+ <entry><link linkend="tac_whd"><emphasis role="bold">whd</emphasis></link> <emphasis><link linkend="grammar.pattern">pattern</link></emphasis></entry>
+ </row>
+ </tbody>
+ </tgroup>
+</table>