Hi Brian,
As you found out, equality theorems end in `eq`. They prove the
equality for an expression, given equality for one term of that
expression. For example, ~ sumeq1d states |- ( ph -> A = B )
==> ( ph -> sum_ k e. A C = sum_ k e. B C ) . Here we have
effectively substituted ` A ` for ` B ` in the sum expression.
There is another theorem ~ sumeq2dv, for equality of the other term (the summand ` C `).
There is also a related family of theorems for changing the bound
variable ` k ` into another variable (for my sum example, that
would be ~ cbvsum). Change bound variable theorems are not
equality theorems per se, but they also allow a substitution of a
part of the formula, namely, the bound (set) variables.
You can for example have a look at http://us2.metamath.org:88/mpeuni/breprval.html, step 3~8 for how several equality theorems are used together to prove a more complex substitution.
What we end up with is an equality, or an equivalence, if you look at the result of step 6, ~ eqeq1d, which we can then chain with more equalities to get the desired result.
I hope this helps!
Maybe if you could give the actual case you'd like to solve, we could help you prove it or rewrite it in a way which is easier to prove.
BR,
_
Thierry
--
You received this message because you are subscribed to the Google Groups "Metamath" group.
To unsubscribe from this group and stop receiving emails from it, send an email to metamath+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/c7d4d8a3-b112-43cd-b154-5fcf816d978dn%40googlegroups.com.
I often want to use substitution to do something like this:|- ph & |- x = y |- ( [ y / x ] ph <-> ps ) ==> |- psBut I'm having trouble showing that ps results from the proper substitution of y for x in ph.
Alexander's proofs of sbiei and sbieg are so simple and elegant, I'm sorry I didn't try it myself.The challenge will be establishing ( [ y / x ] ph <-> ps ). Given a distinct variable hypothesis $d y ph $. there should be some (easy?) way to show that ps is the same as ph having y substituted for x.
--
You received this message because you are subscribed to the Google Groups "Metamath" group.
To unsubscribe from this group and stop receiving emails from it, send an email to metamath+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/E5BB092F-3464-4B61-BBF2-DD170628896E%40dwheeler.com.
Thank you Mario for the perspicuous example.This also shows the power of the deductive form.I'm encouraged to prove deductive form of my own theorems.I tried Mario's example in mmj2, and it was too easy:h1::sbdmo.1 |- x = y
d1::oveq1 |- ( x = y -> ( x + 2 ) = ( y + 2 ) )
qed:d1:breq1d |- ( x = y -> ( ( x + 2 ) < 5 <-> ( y + 2 ) < 5 ) )
$= ( cv wceq c2 caddc co c5 clt oveq1 breq1d ) ACZBCZDLEFGMEFGHILMEFJK $.For my theorems, I often wanted to substitute a wff for a wff.I had ( ph <-> ps ), and wanted to prove something that had ph, but needed ps there.I fumbled around and got a proof (not very elegant) "building up" as David suggested.
I had two other uses for substitution in mind.I'm trying to use Metamath to prove soundness of some logic used to prove program correctness.The Hoare triples used for proof obligations have three formulas, two predicates in a first-order temporal logic, and a formula (to be) satisfied by constructing a computation lattice. It's analogous to the (old) guarded commands proofs of Dijkstra and Gries:{ P } S { Q }Though the syntax uses << >> instead of { }For { P ) x:=e { Q }, that means proving P -> [ e / x ] Q, thus my "need" for substitution.Thinking about the problem, my proof assistant does the substitution (whether it does so correctly is another matter), so proving the rhs of df-sb and df-sbc is all I need (perhaps with a temporary variable y=e to substitute [ y / x ]).
The other use is for using labeled predicates. This makes proof outlines much more compact and understandable. At user command, a tactic will replace predicate labels with the text of the predicate, having substituted actual parameters for formals.Here is a bit trickier because I want to substitute a predicate for a predicate label rather than set or class variables.Do any such wff labels (variables) exist in set.mm?