Hi Brian, w.r.t. this part of your post

> 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.

we use local class definition a lot, but you can also use local wff 
definition.

For example, you can take a look at the last hypothesis of 
~ ioodvbdlimc1lem2

|- ( ch <-> ( ( ( ( ( ph /\ x e. RR+ )
       /\ j e. ( ZZ>= ` N ) )
       /\ ( abs ` ( ( S ` j ) - ( limsup ` S ) ) ) < ( x / 2 ) )
       /\ z e. ( A (,) B ) ) /\ ( abs ` ( z - A ) ) < ( 1 / j ) ) )

Disclaimer: today I would write a much sorter, more readable proof of that 
lemma (at the cost of more sublemmas) but I tried this "technique" as an 
experiment of local definition of a wff (as you write, it "could" make 
proof outlines more compact and understandable, not sure I succeeded in 
this specific example).

The invoking theorem, most of the time, will simply use a biid or a bitri 
and a bunch of cbv* (if disjoint vars have to be handled), in a very 
similar way of local class definitions (eqid and may be cbv*)

Doing a quick search, other contributors used local definitions for wffs, 
see for instance ~ bnj1189

Glauco


-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/metamath/5b2fbb63-965a-4b8a-be12-ba46e8e0a238n%40googlegroups.com.

Reply via email to