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