**Description: **This syntax construction
states that a variable *x*, which has been
declared to be a setvar variable by $f statement vx, is also a class
expression. This can be justified informally as follows. We know that
the class builder {*y* ∣ *y*
∈ *x*} is a class by cab 2004.
Since (when
*y* is
distinct from *x*) we
have *x* = {*y* ∣ *y*
∈ *x*} by
cvjust 2013, we can argue that the syntax "class *x* " can be viewed as
an abbreviation for "class
{*y* ∣ *y* ∈ *x*}". See the discussion
under the definition of class in [Jech] p.
4 showing that "Every set can
be considered to be a class."
While it is tempting and perhaps occasionally useful to view cv 1225 as a
"type conversion" from a setvar variable to a class variable,
keep in
mind that cv 1225 is intrinsically no different from any other
class-building syntax such as cab 2004, cun 2888,
or c0 3197.
For a general discussion of the theory of classes and the role of cv 1225,
see http://us.metamath.org/mpeuni/mmset.html#class.
(The description above applies to set theory, not predicate calculus.
The purpose of introducing class
*x* here, and not in set theory
where
it belongs, is to allow us to express i.e. "prove" the weq 1369 of
predicate calculus from the wceq 1226 of set theory, so that we don't
overload the = connective with two syntax
definitions. This is done
to prevent ambiguity that would complicate some Metamath
parsers.) |