X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=matita%2Fhelp%2FC%2Fsec_tactics.xml;h=ff8d099c0180101efba481ec0f7cd16ed0308ace;hb=ff6a35c50aace7c20d4f68a1ac4a0d751cfc72e3;hp=c10d2bd337aabc49384f3c7984677369e751fce8;hpb=218d9cfaa1e2874b62c3e08adf98c4f9a85d2c11;p=helm.git diff --git a/matita/help/C/sec_tactics.xml b/matita/help/C/sec_tactics.xml index c10d2bd33..ff8d099c0 100644 --- a/matita/help/C/sec_tactics.xml +++ b/matita/help/C/sec_tactics.xml @@ -86,6 +86,61 @@ + + applyS + applyS + applyS t auto_params + + + + Synopsis: + + applyS &sterm; &autoparams; + + + + Pre-conditions: + + t must have type + T1 → ... → + Tn → G. + + + + Action: + + applyS is useful when + apply 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 P(n*O+m) and + the theorem to be applied proves ∀m.P(m+O). + + + It tries to automatically rewrite the current goal using + auto paramodulation + to make it unifiable with G. + Then it closes the current sequent by applying + t to n + implicit arguments (that become new sequents). + The auto_params parameters are passed + directly to auto paramodulation. + + + + + New sequents to prove: + + It opens a new sequent for each premise + Ti that is not + instantiated by unification. Ti is + the conclusion of the i-th new sequent to + prove. + + + + + assumption assumption @@ -123,13 +178,13 @@ auto auto - auto depth=d width=w paramodulation full + auto params Synopsis: - auto [depth=&nat;] [width=&nat;] [paramodulation] [full] + auto &autoparams; @@ -137,10 +192,10 @@ None, but the tactic may fail finding a proof if every proof is in the search space that is pruned away. Pruning is - controlled by d and w. + controlled by the optional params. 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 + a sequent is ...&TODO; @@ -163,27 +218,40 @@ clear clear - clear H + + clear H1 ... Hm + Synopsis: - clear &id; + + clear + &id; [&id;…] + Pre-conditions: - H must be an hypothesis of the - current sequent to prove. + + + H1 ... Hm + must be hypotheses of the + current sequent to prove. + Action: - It hides the hypothesis H from the - current sequent. + + It hides the hypotheses + + H1 ... Hm + from the current sequent. + @@ -382,14 +450,22 @@ decompose decompose - decompose (T1 ... Tn) H hips + decompose (T1 ... Tn) + H as H1 ... Hm Synopsis: - decompose &id; [&id;]… &intros-spec; + + decompose + [( + &id;… + )] + [&id;] + [as &id;…] + @@ -408,9 +484,13 @@ Action: - Runs elim H hyps, clears H and tries to run - itself recursively on each new identifier introduced by - elim in the opened sequents. + Runs + elim H H1 ... Hm + , clears H and tries to run itself + recursively on each new identifier introduced by + elim in the opened sequents. + If H is not provided tries this operation on + each premise in the current context. @@ -425,16 +505,16 @@ - - demodulation - demodulation - demodulation patt + + demodulate + demodulate + demodulate Synopsis: - demodulation &pattern; + demodulate @@ -458,30 +538,35 @@ - - discriminate - discriminate - discriminate p + + destruct + destruct + destruct p Synopsis: - discriminate &sterm; + destruct &sterm; Pre-conditions: - p must have type K t1 ... tn = K' t'1 ... t'm where K and K' must be different constructors of the same inductive type and each argument list can be empty if -its constructor takes no arguments. + p must have type E1 = E2 where the two sides of the equality are possibly applied constructors of an inductive type. Action: - It closes the current sequent by proving the absurdity of - p. + The tactic recursively compare the two sides of the equality + looking for different constructors in corresponding position. + If two of them are found, the tactic closes the current sequent + by proving the absurdity of p. Otherwise + it adds a new hypothesis for each leaf of the formula that + states the equality of the subformulae in the corresponding + positions on the two sides of the equality. + @@ -750,13 +835,13 @@ its constructor takes no arguments. fwd fwd - fwd H + fwd H as H0 ... Hn Synopsis: - fwd &id; [([&id;]…)] + fwd &id; [as &id; [&id;]…] @@ -775,16 +860,23 @@ its constructor takes no arguments. This tactic is under development. It simplifies the current context by removing H using the following methods: - forward application of a suitable simplification theorem (chosen - automatically) of which the type of H is a - premise, decomposition, rewriting. + forward application (by lapply) of a suitable + simplification theorem, chosen automatically, of which the type + of H is a premise, + decomposition (by decompose), + rewriting (by rewrite). + H0 ... Hn + are passed to the tactics fwd invokes, as + names for the premise they introduce. New sequents to prove: - None. + + The ones opened by the tactics fwd invokes. + @@ -865,43 +957,6 @@ its constructor takes no arguments. - - injection - injection - injection p - - - - Synopsis: - - injection &sterm; - - - - Pre-conditions: - - p must have type K t1 ... tn = K t'1 ... t'n where both argument lists are empty if -K takes no arguments. - - - - Action: - - It derives new hypotheses by injectivity of - K. - - - - New sequents to prove: - - The new sequent to prove is equal to the current sequent - with the additional hypotheses - t1=t'1 ... tn=t'n. - - - - - intro intro @@ -1029,7 +1084,7 @@ its constructor takes no arguments. lapply lapply - lapply depth=d t + lapply linear depth=d t to t1, ..., tn as H @@ -1037,25 +1092,59 @@ its constructor takes no arguments. Synopsis: - lapply [depth=&nat;] &sterm; [to &sterm; [&sterm;]…] [as &id;] + + lapply + [linear] + [depth=&nat;] + &sterm; + [to + &sterm; + [,&sterm;…] + ] + [as &id;] + Pre-conditions: - TODO. + + t must have at least d + independent premises and n must not be + greater than d. + Action: - TODO. + + Invokes letin H ≝ (t ? ... ?) + with enough ?'s to reach the + d-th independent premise of + t + (d is maximum if unspecified). + Then istantiates (by apply) with + t1, ..., tn + the ?'s corresponding to the first + n independent premises of + t. + Usually the other ?'s preceding the + n-th independent premise of + t are istantiated as a consequence. + If the linear flag is specified and if + t, t1, ..., tn + are (applications of) premises in the current context, they are + cleared. + New sequents to prove: - TODO. + + The ones opened by the tactics lapply invokes. + @@ -1166,39 +1255,6 @@ its constructor takes no arguments. - - paramodulation - paramodulation - paramodulation patt - - - - Synopsis: - - paramodulation &pattern; - - - - Pre-conditions: - - TODO. - - - - Action: - - TODO. - - - - New sequents to prove: - - TODO. - - - - - reduce reduce @@ -1492,6 +1548,46 @@ its constructor takes no arguments. + + + subst + subst + subst + + + + Synopsis: + + subst + + + + Pre-conditions: + + None. + + + + Action: + + For each premise of the form + H: x = t or H: t = x + where x is a local variable and + t does not depend on x, + the tactic rewrites H wherever + x appears clearing H and + x afterwards. + + + + New sequents to prove: + + The one opened by the applied tactics. + + + + + symmetry symmetry