Thank you, Norm, for this background information. I see the risk of a
misuse of additional variables, and I also had concerns about using the
primes ', " (which can be confused with the grave accent grave ` ).
My initial intend was to use special variables for special cases.
One of these cases (replacing a setvar variable in a definition by a class
variable in a corresponding theorem) is described in my initial posting: `
def $e |- I = ( p e. L |-> V ) $. ` , ` defval $p |- ( ( ph /\ .p. e. L )
-> ( I ` .p. ) = ... ` . If P is not used elsewhere, it can be used instead
of .p., but if it is already used, it is a littel bit strange to use P' in
this case: ` defval $p |- ( ( ph /\ P' e. L ) -> ( I ` P' ) = ... ` .
Another case would be the need for class variables of the same kind, e.g.
"Let ` M e. ( Base `` A ) `and ` M' e. ( Base `` A ) ` be two matrices ...
". Here, the "prime" solution is adequate, but could cause the difficulties
explained by Norm.
A third case is the usage of setvar variables in antecedents/hypotheses,
see, for example, ~ gsumcom3:
gsumcom3.n $e |- ( ( ph /\ ( ( j e. A /\ k e. C ) /\ -. j U k ) )
Here, j and k should be replaced by J and K or, if J and K are already in
use, by J' and K'. I often thought that there is a theorem which could help
me proving my theorem, until I find out that it requires setvar variables
in its hypotheses, but in my case there is a class expression at this place
- I have to revise/reprove the concerned theorem, or I have to perform a
transfomation of the class (expression) into a setvar. Maybe it is not a
good idea to allow free setvar variables in hypotheses/antecedents at all,
because these could always cause such problems. But this is a different
topic.
As a concrete example, in which I am running out of adequate available
variables, are theorems about matrices having polynomials as entries. For
these theorems, I use the following capitel letters as class variables with
fixed meaning (in addition I also use symbols-as-class-variables for
certain operations):
- ` R ` : represents a ring.
- ` B = ( Base `` R ) ` is its base set
- ` P = ( Poly1 `` R ) ` is the polynomial algebra over (the ring) ` R `
- ` K = ( Base `` P ) ` is its base set
- ` Y = ( var1 `` R ) ` is its variable
- ` E = ( .g `` ( mulGrp `` P ) ) ` is its exponentiation
- ` A = ( N Mat R ) ` is the algebra of N x N matrices over (the ring) `
R `.
- ` M = ( Base `` A ) ` is its base set
- ` C = ( N Mat P ) ` is the algebra of N x N matrices over (the
polynomial ring) ` P `.
- ` D = ( Base `` C ) ` is its base set
- ` Q = ( Poly1 `` A ) ` is the polynomial algebra over (the matrix
ring) ` A `.
- ` L = ( Base `` Q ) ` is its base set
- ` X = ( var1 `` A ) ` is its variable
- Z: Zero (if .0. is already used)
- O: One ( if .1. is already used)
- T: Transformation (e.g. of a matrix consisting of polynomials into a
polynomial with matrix coefficients)
- F: diverse auxiliary mappings
- I,J: integers (indices, sum variables, etc)
That means only 7 letters are remaining: CGHSUVW. Usually, V and W are used
for arbitrary classes, indicating that certain classes are sets (e.g. ` ( X
e. V -> ... ) `), so only 5 capital letters are actually remaining: CGHSU.
This means there is no large choice for concrete objects like matrices and
polynomials to be represented.
Maybe a mechanism for local class variables (only visible/usable within the
scope in which they are defined) could be helpful, but this would be a too
heavy conceptual change of the metamath system, at least for the moment.
As a conclusion, I would propose *not *to provide additional class
variables in general at the moment. As a first step, it may be helpful to
provide a table listing all class variables (including the
symbols-as-class-variables) and explainig for which mathematical concept
they are used commonly/frequently. We can put this table into section
"convention", adding the advice to use the shown variables for the
indicated concept whenever possible/adequate. My list shown above could be
a part of such a table...
--
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/932d1eca-c399-4dd2-bc31-145c79e478b4%40googlegroups.com.