**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 1999.
Since (when
*y* is
distinct from *x*) we
have *x* = {*y* ∣ *y*
∈ *x*} by
cvjust 2008, 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 1222 as a
"type conversion" from a setvar variable to a class variable,
keep in
mind that cv 1222 is intrinsically no different from any other
class-building syntax such as cab 1999, cun 2883,
or c0 3192.
For a general discussion of the theory of classes and the role of cv 1222,
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 1365 of
predicate calculus from the wceq 1223 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.) |