Draft: I wrote a lot of text, but based on the closed issues I should probably compile the program first and try to make proofs, since the process will lead to a better understanding of rumm. I already see it uses a specific commit of metamath-knife, which might affect $j commands in some way I don't appreciate. I'm saving the issue for now
Currently, this might be somewhat outlandish, but I would like to share some ideas for tactics:
equality: equality builders
Somewhat similar to the find tactics. (I'm confused on why all tactics are referred to in their plural)
The $j command $j equality marks = and <-> as "equality symbols", these symbols will be denoted equiv
For statements of the form &1 equiv &2 and ( antecedent -> &1 equiv &2 ), it is often the case where you want to remove shared symbols in &1 and &2, which will now be called ph(&3) and ph(&4). This tactic attempts to find a theorem that reduces this to some smaller &3 and &4.
Cases like mpteq2dva vs mpteq2dv can be added later. It would obviously be easier to only find mpteq2dv for now. I think it is better in the long run if equality just does one syntax reduction, instead of as much as possible. Maybe in the future an option n can be provided to reduce (up to) n times. This way, if some live feedback is ever made, the number can simply be edited 1, 2, etc., which is very convenient.
This might require a new $j command "implication" to identify the antecedent and consequent of an implication, in order to keep database-independence
nf: "not free" builders i.e. does not depend on
Similar to equality. Tries to reduce F/ ph(&1) to some F/ &1, or F/_ A(&1) to some F/_ &1
Again, the $j commands (see link above) seem really useful. I know that the latest metamath-knife processes at least a few $j-commands
cbv: Change bound variable
Given a class A, replacing all x with y results in class B. This tactic tries to show A = B (or A. x ph <-> A. y ps?) by trying to prove x = y -> ph <-> ps using equality, and then using a theorem like cbvmpt.
Note: I have no idea how cbvmpt-like theorems would be found, so this is theoretical
Comments
Based on #9 it sounds like there is potential for quality-of-life improvements.
Currently, this might be somewhat outlandish, but I would like to share some ideas for tactics:
equality: equality buildersSomewhat similar to the
findtactics. (I'm confused on why all tactics are referred to in their plural)The $j command
$j equalitymarks=and<->as "equality symbols", these symbols will be denotedequivFor statements of the form
&1 equiv &2and( antecedent -> &1 equiv &2 ), it is often the case where you want to remove shared symbols in&1and&2, which will now be calledph(&3)andph(&4). This tactic attempts to find a theorem that reduces this to some smaller&3and&4.Cases like mpteq2dva vs mpteq2dv can be added later. It would obviously be easier to only find mpteq2dv for now. I think it is better in the long run if
equalityjust does one syntax reduction, instead of as much as possible. Maybe in the future an optionncan be provided to reduce (up to)ntimes. This way, if some live feedback is ever made, the number can simply be edited 1, 2, etc., which is very convenient.This might require a new
$jcommand "implication" to identify the antecedent and consequent of an implication, in order to keep database-independencenf: "not free" builders i.e. does not depend onSimilar to
equality. Tries to reduceF/ ph(&1)to someF/ &1, orF/_ A(&1)to someF/_ &1Again, the
$jcommands (see link above) seem really useful. I know that the latest metamath-knife processes at least a few $j-commandscbv: Change bound variableGiven a class
A, replacing allxwithyresults in classB. This tactic tries to showA = B(orA. x ph <-> A. y ps?) by trying to provex = y -> ph <-> psusingequality, and then using a theorem likecbvmpt.Note: I have no idea how
cbvmpt-like theorems would be found, so this is theoreticalComments
Based on #9 it sounds like there is potential for quality-of-life improvements.