]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/help/C/sec_tactics.xml
New: pattern for elim documented.
[helm.git] / helm / software / matita / help / C / sec_tactics.xml
index 193a0e3310f489c1c587955cc1a3210deed2f4a3..b9857040779315ff3c9187d44d473c79b24a12ce 100644 (file)
         <varlistentry role="tactic.synopsis">
           <term>Synopsis:</term>
           <listitem>
-            <para><emphasis role="bold">auto</emphasis> &autoparams;</para>
+            <para><emphasis role="bold">auto</emphasis> &autoparams;. </para>
+            <para><emphasis role="bold">autobatch</emphasis> &autoparams;</para>
           </listitem>
         </varlistentry>
         <varlistentry>
              controlled by the optional <command>params</command>.
              Moreover, only lemmas whose type signature is a subset of the
              signature of the current sequent are considered. The signature of
-             a sequent is ...&TODO;</para>
+             a sequent is essentially the set of constats appearing in it.
+           </para>
           </listitem>
         </varlistentry>
         <varlistentry>
       </variablelist>
     </para>
   </sect1>
+  <sect1 id="tac_compose">
+    <title>compose</title>
+    <titleabbrev>compose</titleabbrev>
+    <para><userinput>compose n t1 with t2 hyps</userinput></para>
+    <para>
+      <variablelist>
+        <varlistentry role="tactic.synopsis">
+          <term>Synopsis:</term>
+          <listitem>
+            <para><emphasis role="bold">compose</emphasis> [&nat;] &sterm; [<emphasis role="bold">with</emphasis> &sterm;] [&intros-spec;]</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Pre-conditions:</term>
+          <listitem>
+            <para></para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Action:</term>
+          <listitem>
+            <para>Composes t1 with t2 in every possible way
+              <command>n</command> times introducing generated terms
+              as if <command>intros hyps</command> was issued.</para>
+            <para>If <command>t1:∀x:A.B[x]</command> and
+            <command>t2:∀x,y:A.B[x]→B[y]→C[x,y]</command> it generates:
+             <itemizedlist>
+                <listitem>
+                  <para><command>λx,y:A.t2 x y (t1 x) : ∀x,y:A.B[y]→C[x,y]</command></para>
+                </listitem>
+                <listitem>
+                  <para><command>λx,y:A.λH:B[x].t2 x y H (t1 y) : ∀x,y:A.B[x]→C[x,y]
+                  </command></para>
+                </listitem>
+             </itemizedlist>
+          </para>
+          <para>If <command>t2</command> is omitted it composes 
+            <command>t1</command>
+              with every hypothesis that can be introduced.  
+              <command>n</command> iterates the process.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>New sequents to prove:</term>
+          <listitem>
+            <para>The same, but with more hypothesis eventually introduced
+            by the &intros-spec;.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </para>
+  </sect1>
   <sect1 id="tac_change">
     <title>change</title>
     <titleabbrev>change</titleabbrev>
           <term>Action:</term>
           <listitem>
             <para>
-            For each each premise <command>H</command> 
-            of type <command>T</command> in the current context
-            where <command>T</command> is a non-recursive inductive type
-            of sort Prop without right parameters, the tactic runs
+            For each each premise <command>H</command> of type 
+            <command>T</command> in the current context where
+            <command>T</command> is a non-recursive inductive type without
+            right parameters and of sort Prop or CProp, the tactic runs
             <command> 
              elim H as H<subscript>1</subscript> ... H<subscript>m</subscript>
             </command>, clears <command>H</command>  and runs itself
   <sect1 id="tac_demodulate">
     <title>demodulate</title>
     <titleabbrev>demodulate</titleabbrev>
-    <para><userinput>demodulate</userinput></para>
+    <para><userinput>demodulate auto_params</userinput></para>
     <para>
       <variablelist>
         <varlistentry role="tactic.synopsis">
           <term>Synopsis:</term>
           <listitem>
-            <para><emphasis role="bold">demodulate</emphasis></para>
+            <para><emphasis role="bold">demodulate</emphasis> &autoparams;</para>
           </listitem>
         </varlistentry>
         <varlistentry>
   <sect1 id="tac_elim">
     <title>elim</title>
     <titleabbrev>elim</titleabbrev>
-    <para><userinput>elim t using th hyps</userinput></para>
+    <para><userinput>elim t pattern using th hyps</userinput></para>
     <para>
       <variablelist>
         <varlistentry role="tactic.synopsis">
           <term>Synopsis:</term>
           <listitem>
-            <para><emphasis role="bold">elim</emphasis> &sterm; [<emphasis role="bold">using</emphasis> &sterm;] &intros-spec;</para>
+            <para><emphasis role="bold">elim</emphasis> &sterm; &pattern; [<emphasis role="bold">using</emphasis> &sterm;] &intros-spec;</para>
           </listitem>
         </varlistentry>
         <varlistentry>
           <listitem>
             <para>It proceeds by cases on the values of <command>t</command>,
              according to the elimination principle <command>th</command>.
+             The induction predicate is restricted by
+             <command>pattern</command>. In particular, if some hypothesis
+             is listed in <command>pattern</command>, the hypothesis is
+             generalized and cleared before eliminating <command>t</command>
             </para>
           </listitem>
         </varlistentry>
       </variablelist>
     </para>
   </sect1>
-  <sect1 id="tac_reduce">
-    <title>reduce</title>
-    <titleabbrev>reduce</titleabbrev>
-    <para><userinput>reduce patt</userinput></para>
-    <para>
-      <variablelist>
-        <varlistentry role="tactic.synopsis">
-          <term>Synopsis:</term>
-          <listitem>
-            <para><emphasis role="bold">reduce</emphasis> &pattern;</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>Pre-conditions:</term>
-          <listitem>
-            <para>None.</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>Action:</term>
-          <listitem>
-            <para>It replaces all the terms matched by <command>patt</command>
-             with their βδιζ-normal form.</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>New sequents to prove:</term>
-          <listitem>
-            <para>None.</para>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-    </para>
-  </sect1>
   <sect1 id="tac_reflexivity">
     <title>reflexivity</title>
     <titleabbrev>reflexivity</titleabbrev>