]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/help/C/sec_tactics.xml
added timeout parameter to auto paramodulation.
[helm.git] / matita / help / C / sec_tactics.xml
index 56c2a66167b4e47c17f14cecb6ec5a7cde65a809..53a20ac6a78e3c07404d442cb8b7a0de17c7b661 100644 (file)
       </variablelist>
     </para>
   </sect1>
+  <sect1 id="tac_applyS">
+    <title>applyS</title>
+    <titleabbrev>applyS</titleabbrev>
+    <para><userinput>applyS t</userinput></para>
+    <para>
+      <variablelist>
+        <varlistentry role="tactic.synopsis">
+          <term>Synopsis:</term>
+          <listitem>
+            <para><emphasis role="bold">applyS</emphasis> &sterm;</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Pre-conditions:</term>
+          <listitem>
+            <para><command>t</command> must have type
+             <command>T<subscript>1</subscript> → ... →
+              T<subscript>n</subscript> → G</command>.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>Action:</term>
+          <listitem>
+            <para><command>applyS</command> is useful when
+             <command>apply</command> fails because the current goal
+             and the conclusion of the applied theorems are extensionally
+             equivalent up to instantiation of metavariables, but cannot
+             be unified. E.g. the goal is <command>P(n*O+m)</command> and
+             the theorem to be applied proves <command>∀m.P(m+O)</command>.
+            </para>
+            <para>
+             It tries to automatically rewrite the current goal using
+             <link linkend="tac_auto">auto paramodulation</link>
+             to make it unifiable with <command>G</command>.
+             Then it closes the current sequent by applying
+             <command>t</command> to <command>n</command>
+             implicit arguments (that become new sequents).
+            </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>New sequents to prove:</term>
+          <listitem>
+            <para>It opens a new sequent for each premise 
+             <command>T<subscript>i</subscript></command> that is not
+             instantiated by unification. <command>T<subscript>i</subscript></command> is
+             the conclusion of the <command>i</command>-th new sequent to
+             prove.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </para>
+  </sect1>
   <sect1 id="tac_assumption">
     <title>assumption</title>
     <titleabbrev>assumption</titleabbrev>
       </variablelist>
     </para>
   </sect1>
-  <sect1 id="tac_demodulation">
-    <title>demodulation</title>
-    <titleabbrev>demodulation</titleabbrev>
-    <para><userinput>demodulation patt</userinput></para>
+  <sect1 id="tac_demodulate">
+    <title>demodulate</title>
+    <titleabbrev>demodulate</titleabbrev>
+    <para><userinput>demodulate</userinput></para>
     <para>
       <variablelist>
         <varlistentry role="tactic.synopsis">
           <term>Synopsis:</term>
           <listitem>
-            <para><emphasis role="bold">demodulation</emphasis> &pattern;</para>
+            <para><emphasis role="bold">demodulate</emphasis></para>
           </listitem>
         </varlistentry>
         <varlistentry>
@@ -1061,7 +1114,7 @@ its constructor takes no arguments.</para>
     <title>lapply</title>
     <titleabbrev>lapply</titleabbrev>
     <para><userinput>
-     lapply depth=d t 
+     lapply linear depth=d t 
      to t<subscript>1</subscript>, ..., t<subscript>n</subscript> as H
     </userinput></para>
     <para>
@@ -1071,6 +1124,7 @@ its constructor takes no arguments.</para>
           <listitem>
             <para>
             <emphasis role="bold">lapply</emphasis> 
+            [<emphasis role="bold">linear</emphasis>]
             [<emphasis role="bold">depth=</emphasis>&nat;] 
             &sterm; 
             [<emphasis role="bold">to</emphasis>
@@ -1108,6 +1162,10 @@ its constructor takes no arguments.</para>
             Usually the other <command>?</command>'s preceding the 
             <command>n</command>-th independent premise of
             <command>t</command> are istantiated as a consequence.
+            If the <command>linear</command> flag is specified and if 
+            <command>t, t<subscript>1</subscript>, ..., t<subscript>n</subscript></command>
+            are (applications of) premises in the current context, they are
+             <command>clear</command>ed. 
            </para>
           </listitem>
         </varlistentry>
@@ -1227,39 +1285,6 @@ its constructor takes no arguments.</para>
       </variablelist>
     </para>
   </sect1>
-  <sect1 id="tac_paramodulation">
-    <title>paramodulation</title>
-    <titleabbrev>paramodulation</titleabbrev>
-    <para><userinput>paramodulation patt</userinput></para>
-    <para>
-      <variablelist>
-        <varlistentry role="tactic.synopsis">
-          <term>Synopsis:</term>
-          <listitem>
-            <para><emphasis role="bold">paramodulation</emphasis> &pattern;</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>Pre-conditions:</term>
-          <listitem>
-            <para>TODO.</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>Action:</term>
-          <listitem>
-            <para>TODO.</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>New sequents to prove:</term>
-          <listitem>
-            <para>TODO.</para>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-    </para>
-  </sect1>
   <sect1 id="tac_reduce">
     <title>reduce</title>
     <titleabbrev>reduce</titleabbrev>