| Metamath
Proof Explorer Theorem List (p. 381 of 505) | < Previous Next > | |
| Bad symbols? Try the
GIF version. |
||
|
Mirrors > Metamath Home Page > MPE Home Page > Theorem List Contents > Recent Proofs This page: Page List |
||
| Color key: | (1-31175) |
(31176-32698) |
(32699-50435) |
| Type | Label | Description |
|---|---|---|
| Statement | ||
| Theorem | wl-cleq-5 38001* |
Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong. This text should be read as an exploration rather than as definite statements, open to doubt, alternatives, and reinterpretation.
Semantics of EqualityThere is a broadly shared understanding of what equality between objects expresses, extending beyond mathematics or set theory. Equality constitutes an equivalence relation among objects 𝑥, 𝑦, and 𝑧 within the universe under consideration: 1. Reflexivity 𝑥 = 𝑥 2. Symmetry (𝑥 = 𝑦 → 𝑦 = 𝑥) 3. Transitivity ((𝑥 = 𝑦 ∧ 𝑥 = 𝑧) → 𝑦 = 𝑧) 4. Identity of Indiscernables (Leibniz's Law): distinct (i.e., unequal), objects cannot share all the same properties (or attributes). In formal theories using variables, the attributes of a variable are assumed to mirror those of the instance it denotes. For both variables and objects, items (1) - (4) must either be derived or postulated as axioms. If the theory allows substituting instances for variables, then the equality rules for objects follow directly from those governing variables. However, if variables and instances are formally distinguished, this distinction introduces an additional metatheoretical attribute, relevant for (4). A similar issue arises when equality is considered between different types of variables sharing properties. Such mixed-type equalities are subject to restrictions: reflexivity does not apply, since the two sides represent different kinds of entities. Nevertheless, symmetry and various forms of transitivity typically remain valid, and must be proven or established within the theory. In set.mm formulas express attributes. Therefore, equal instances must behave identically, yielding the same results when substituted into any formula. To verify equality, it suffices to consider only primitive operations involving free variables, since all formulas - once definitions are eliminated - reduce to these. Equality itself introduces no new attribute (an object is always different from all others), and can thus be excluded from this examination.
Equality in First Order Logic (FOL)In the FOL component of set.mm, the notion of an "object" is absent. Only set variables are used to formulate theorems, and their attributes - expressed through an unspecified membership operator - are addressed at a later stage. Instead, several axioms address equality directly: ax-6 1990, ax-7 2031, ax-8 2147, ax-9 2155 and ax-12 2215, and ax-13 2406. In practice, restricted versions with distinct variable conditions are used (ax6v 1991, ax12v 2216). The unrestricted forms together with axiom ax-13 2406, allow for the elimination of distinct variable conditions, this benefit is considered too minor for routine use. Equality in FOL is formalized as follows: 2a. Equivalence Relation. Essentially covered by ax-7 2031, with some support of ax-6 1990. 2b. Leibniz's Law for the primitive ∈ operator. Captured by ax-8 2147 and ax-9 2155. 2c. General formulation. Given in sbequ12 2289. 2d. Implicit substitution. Assuming Leibniz's Law holds for a particular expression, various theorems extend its validity to other, derived expressions, often introducing quantification (see for example cbvalvw 2059). The auxiliary axioms ax-10 2178, ax-11 2194, ax-12 are provable (see ax10w 2166, for example) if you can substitute 𝑦 for 𝑥 in a formula 𝜑 that contains no occurrence of 𝑦 and leaves no remaining trace of 𝑥 after substitution. An implicit substitution is then established by setting the resulting formula equivalent to 𝜑 under the assumption 𝑥 = 𝑦. Ordinary FOL substitution [𝑦 / 𝑥]𝜑 is insufficient in this context, since 𝑥 still occurs in the substituted formula. A simple textual replacement of the token 𝑥 by 𝑦 in 𝜑 might seem an intuitive solution, but such operations are out of the formal scope of Metamath. 2e. Axiom of Extensionality. In its elaborated form (axextb 2740), it states that the determining attributes of a set 𝑥 are the elements 𝑧 it contains, as expressed by 𝑧 ∈ 𝑥. This is the only primitive operation relevant for equality between set variables.
Equality between classesIn set.mm class variables of type "class" are introduced analoguously to set variables. Besides the primitive operations equality and membership, class builders allow other syntactical constructs to substitute for class variables, enabling them to represent class instances. One such builder (cv 1562) allows set variables to replace class variables. Another (df-clab 2744) introduces a class instance, known as class abstraction. Since a class abstraction can freely substitute for a class variable, formulas hold for both alike. Hence, there is no need to distinguish between class variables and abstractions; the term class will denote "class variable or class abstraction". Set variables, however, are treated separately, as they are not of type "class". 3a. Equivalence Relation. Axiom df-cleq 2757, from which class versions of (1a) - (1c) can be derived, guarantees that equality between class variables form an equivalence relation. Since both class abstractions and set variables can substitute for class variables, this equivalence extends to all mixed equalities, including those with set variables, since they automatically convert to classes upon substitution. 3b. Attributes. The primitive operation of membership constitutes the fundamental attributes of a class. Axiom df-clel 2840 reduces possible membership relations between class variables to those between a set variable and a class variable. Axiom df-cleq 2757 extends axextb 2740 to classes, stating that classes are fully determined by their set members. A class builder may introduce a new attribute for classes. An equation involving such a class instance may express this attribute. In the case of the class builder cv 1562, an attribute called sethood is in fact introduced: A class is a set if it can be equated with some set variable. Class abstractions supported by class builder df-clab 2744 also formally introduce attributes. Whether a class can be expressed as an abstraction with a specific predicate may be relevant in analysis. However, since theorem df-clab 2744 is a definition (and hence eliminable), these attributes can also be expressed in other ways. 3c. Conservativity. Because set variables can substitute for class variables, all axioms and definitions must be consistent with theorems in FOL. To ensure this, hypotheses are added to axioms and definitions that mirror the structure of their statement, but with class variables replaced by set variables. Since theorems cannot be applied without first proving their hypotheses, conservativity thus is enforced. 3d. Leibniz's Law. Besides equality membership is (and remains) the only primitive operator between classes. Axioms df-cleq 2757 and df-clel 2840 provide class versions of ax-8 2147 and ax-9 2155, ensuring that membership is consistent with Leibniz's Law. Sethood, being based on mixed-type equality, preserves its value among equal classes. As long as additional class builders beyond those mentioned are only defined, the reasoning given for class abstraction above applies generally, and Leibniz's Law continues to hold. 3e. Backward Compatability. A class 𝐴 equal to a set should be substitutable for a free set variable 𝑥 in any theorem, yielding a valid result, provided 𝑥 and 𝐴 are distinct. Sethood is conveniently expressed by ∃𝑧𝑧 = 𝐴; this assumption is added as an antecedent to the corresponding FOL theorem. However, since direct substitution is disallowed, a deduction version of an FOL theorem cannot be simply converted. Instead, the proof must be replayed, consistently replacing 𝑥 with 𝐴. Ultimately, this process reduces to the FOL axioms, or their deduction form. If these axioms hold when 𝐴 replaces 𝑥- under the above assumptions - then the replacement can be considered generally valid. The affected FOL axioms are ax-6 1990 (in the form ax6ev 1992), ax-7 2031, ax-8 2147, ax-9 2155, ax-12 2215 (ax12v2 2217), and to some extent ax-13 2406 (ax13v 2407). Since ZF (Zermelo-Fraenkel) set theory does not allow quantifification over class variables, no similar class-based versions of the quantified FOL axioms exist. (Contributed by Wolf Lammen, 18-Sep-2025.) |
| ⊢ (𝐴 = 𝐵 ↔ ∀𝑥(𝑥 ∈ 𝐴 ↔ 𝑥 ∈ 𝐵)) | ||
| Theorem | wl-cleq-6 38002* |
Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong. This text should be read as an exploration rather than as definite statements, open to doubt, alternatives, and reinterpretation.
Eliminability of ClassesOne requirement of Zermelo-Fraenkel set theory (ZF) is that it can be formulated entirely without referring to classes. Since set.mm implements ZF, it must therefore be possible to eliminate all classes from its formalization. Eliminating Variables of Propositional Logic Classical propositional logic concerns statements that are either true or false. For example, "A minute has 60 seconds" is such a statement, as is "English is not a language". Our development of propositional logic applies to all such statements, regardless of their subject matter. Any particular topic, or universe of discourse is encompassed by the general theorems of propositional logic. In ZF, however, the objects of study are sets - mathematical entities. The flexibility of propsitional variables is not required here. Instead, ZF introduces two primitive connectives between sets: 𝑥 = 𝑦 and 𝑥 ∈ 𝑦. ZF is concerned only with logical schemata constructed solely from these primitives. Thus, before we can eliminate classes, we must first eliminate propositional variables like 𝜑 and 𝜓. We will describe this process constructively. We begin by restricting ourselves to propositional schemata that consist only of the primitives of ZF, without any propositional variables. Extending this step to first-order Logic (FOL) - by introducing quantifiers - yields the fundamental predicates of ZF, that is, the basic formulas expressible within it. For convenience, we may again allow propositional variables, but under the strict assumption that they always represent fundamental predicates of ZF. Predicates of level 0 are exactly of this kind: no classes occurs in them, and they can be reduced directly to fundamental predicates in ZF. Introducing eliminable classes The following construction is inspired by a paragraph in Azriel Levy's "Basic set theory" concerning eliminable classes. A class can only occur in combination with one of the operators = or ∈. This applies in particular to class abstractions, which are the only kind of classes permtted in this step of extending level-0 predicates in ZF. The definitions df-cleq 2757 and df-clel 2840 show that equality and membership ultimately reduce to expressions of the form 𝑥 ∈ 𝐴. For a class abstraction {𝑦 ∣ 𝜑}, the resulting term amounts to [𝑥 / 𝑦]𝜑. If 𝜑 is a level-0 predicate, then this too is a level-0 expression - fully compatible with ZF. A level-1 class abstraction is a class {𝑦 ∣ 𝜑} where 𝜑 is a level-0 predicate. A level-1 class abstraction can occur in an equality or membership relation with another level-1 class abstractions or a set variable, and such terms reduce to fundamental predicates. Predicates of either level-0, or containing level-1 class abstractions are called level-1 predicates. After eliminating all level-1 abstractions from such a predicate a level-0 expression is the result. Analoguously, we can define level-2 class abstractions, where the predicate 𝜑 in {𝑦 ∣ 𝜑} is a level-1 predicate. Again, 𝑥 ∈ {𝑦 ∣ 𝜑} reduces to a level-1 expression, which in turn can be reduced to a level-0 one. By similar reasoning, equality and membership between at most level-2 class abstractions also reduce to level-0 expressions. A predicate containing at most level-2 class abstractions is called a level-2 predicate. This iterative construction process can be continued to define a predicate of any level. They can be reduced to fundamental predicates in ZF. Introducing eliminable class variables We have seen that propositional variables must be restricted to representing only primitive connectives to maintain compatibility with ZF. Similarly, class variables can be restricted to representing class abstractions of finite level. Such class variables are eliminable, and even definitions like df-un 3912 (𝐴 ∪ 𝐵) introduce no difficulty, since the resulting union remains of finite level. Limitations of eliminable class variables Where does this construction reach its limits? 1. Infinite constructions. Suppose we wish to add up an infinite series of real numbers, where each term defines its successor using a class abstraction one level higher than that of the previous term. Such a summation introduces terms of arbitrary high level. While each individual term remains reducable in ZF, the infinite sum expression may not be reducable without special care. 2. Class builders. Every class builder other than cv 1562 must be a definition, making its elimination straightforward. The class abstraction df-clab 2744 described above is a special case. Since set variables themselves can be expressed as class abstractions - namely 𝑥 = {𝑦 ∣ 𝑦 ∈ 𝑥} (see cvjust 2759) - this formulation does not conflict with the use of class builder cv 1562. The above conditions apply only to substitution. The expression 𝐴 = {𝑥 ∣ 𝑥 ∈ 𝐴} (abid1 2901) is a valid and provable equation, and it should not be interpreted as an assignment that binds a particular instance to 𝐴. (Contributed by Wolf Lammen, 13-Oct-2025.) |
| ⊢ (𝐴 = 𝐵 ↔ ∀𝑥(𝑥 ∈ 𝐴 ↔ 𝑥 ∈ 𝐵)) | ||
| Axiom | ax-wl-cleq 38003* |
Disclaimer: The material presented here is just my (WL's) personal
perception. I am not an expert in this field, so some or all of the
text here can be misleading, or outright wrong.
This text should be read as an exploration rather than as a definite statement, open to doubt, alternatives, and reinterpretation. At the point where df-cleq 2757 is introduced, the foundations of set theory are being established through the notion of a class. A central property of classes is what elements, expressed by the membership operator ∈, belong to them . Quantification (∀𝑥) applies only to objects that a variable of kind setvar can represent. These objects will henceforth be called sets. Some classes may not be sets; these are called proper classes. It remains open at this stage whether membership can involve them. The formula given in df-cleq 2757 (restated below) asserts that two classes are equal if and only if they have exactly the same sets as elements. If proper classes are also admitted as elements, then two equal classes could still differ by such elements, potentially violating Leibniz's Law. A future axiom df-clel 2840 addresses this issue; df-cleq 2757 alone does not. **Primitive connectives and class builders** Specially crafted primitive operators on classes or class builders could introduce properties of classes beyond membership, not reflected in the formula here. This again risks violating Leibniz's Law. Therefore, the introduction of any future primitive operator or class builder must include a conservativity check to ensure consistency with Leibniz's Law. **This axiom covers only some principles of equality** The notion of equality expressed in this axiom does not automatically coincide with the general notion of equality. Some principles are, however, already captured: Equality is shown to be an equivalence relation, covering transivity (eqtr 2785), reflexivity (eqid 2765) and symmetry (eqcom 2772). It also yields the class-level version of ax-ext 2737 (the backward direction of df-cleq 2757) holds. If we assume 𝑥 = 𝐴 holds, then substituting the free set variable 𝑦 with 𝐴 in ax6ev 1992 and ax12v2 2217 yields provable theorems (see wl-isseteq 38006, and wl-ax12v2cl 38007). However, a bound variable cannot be replaced with a class variable, since quantification over classes is not permitted. Taken together with the results from the previous paragraph, this shows that a class variable equal to a set behaves the same as a set variable, provided it is not quantified. **Conservativity** Moreover, this axiom is already partly derivable if all class variables are replaced by variables of type "setvar". In that case, the statement reduces to an instance of axextb 2740. This shows that the class builder cv 1562 is consistent with this axiom. **Eliminable operator** Finally, this axiom supports the idea that proper classes, and operators between them, should be eliminable, as required by ZF: It reduces equality to their membership properties. However, since the term 𝑥 ∈ 𝐴 is still undefined, elimination reduces equality to just something not yet clarified. **Axiom vs Definition** Up to this point, the only content involving class variables comes from the syntax definitions wceq 1563 and wcel 2145. Axioms are therefore required to progressively refine the semantics of classes until provable results coincide with our intended conception of set theory. This refinement process is explained in Step 4 of wl-cleq-2 37998. From this perspective, df-cleq 2757 is in fact an axiom in disguise and would more appropriately be named ax-cleq. At first glance, one might think that 𝐴 = 𝐵 is defined by the right-hand side of the biconditional. This would make 𝑥 ∈ 𝐴, i.e. membership of a set in a class, the more primitive concept, from which equality of classes could be derived. Such a viewpoint would be coherent if the properties of membership could be fully determined by other axioms. In my (WL's') opinion, however, the more direct and fruitful approach is not to construct class equality from membership, but to treat equality itself as axiomatic. (Contributed by Wolf Lammen, 25-Aug-2025.) |
| ⊢ (𝐴 = 𝐵 ↔ ∀𝑥(𝑥 ∈ 𝐴 ↔ 𝑥 ∈ 𝐵)) | ||
| Axiom | ax-wl-clel 38004* |
Disclaimer: The material presented here is just my (WL's) personal
perception. I am not an expert in this field, so some or all of the
text here can be misleading, or outright wrong.
This text should be read as an exploration rather than as a definite statement, open to doubt, alternatives, and reinterpretation. The formula in df-clel 2840 (restated below) states that only those classes for which ∃𝑥𝑥 = 𝐴 holds can be members of classes. Thus, a member of a class is always equal to a set, which excludes proper classes from class membership. As explained in wl-cleq-4 38000, item 3, ∃𝑥𝑥 = 𝐴 is a sufficient criterion for a class to be a set, provided that Leibniz's Law holds for equality. Therefore this axiom is often rephrased as: classes contain only sets as members. **Principles of equality** Using this axiom we can derive the class-level counterparts of ax-8 2147 (see eleq2 2854) and ax-9 2155 (see eleq1 2853). Since ax-wl-cleq 38003 already asserts that equality between classes is an equivalence relation, the operators = and ∈ alone cannot distinguish equal classes. Hence, if membership is the only property that matters for classes, Leibniz's Law will hold. Later, however, additional class builders may introduce further properties of classes. A conservativity check for such builders can ensure this does not occur. **Eliminability** If we replace the class variable 𝐴 with a set variable 𝑧 in this axiom, the auxiliary variable 𝑥 can be eliminated, leaving only the trivial result (𝑧 ∈ 𝐵 ↔ 𝑧 ∈ 𝐵). Thus, df-clel 2840 by itself does not determine when a set is a member of a class. From this perspective, df-clel 2840 is in fact an axiom in disguise and would more appropriately be called ax-clel. Overall, our axiomization leaves the meaning of fundamental expressions 𝑥 ∈ 𝐴 or 𝑥 ∈ 𝐵 open. All other fundamental formulas of set theory (𝐴 not a set variable, 𝐴 ∈ 𝐵, 𝑥 = 𝐵 𝐴 = 𝐵) can be reduced solely to the basic formulas 𝑥 ∈ 𝐴 or 𝑥 ∈ 𝐵. If an axiomatization leaves a fundamental formula like 𝑥 ∈ 𝐴 unspecified, we could in principle define it bi-conditionally by any formula whatsoever - for example, the trivial ⊤. This, however, is not the approach we take. Instead, an appropriate class builder such as df-clab 2744 fills this gap. (Contributed by Wolf Lammen, 26-Aug-2025.) |
| ⊢ (𝐴 ∈ 𝐵 ↔ ∃𝑥(𝑥 = 𝐴 ∧ 𝑥 ∈ 𝐵)) | ||
| Theorem | wl-df-clab 38005 |
Disclaimer: The material presented here is just my (WL's) personal
perception. I am not an expert in this field, so some or all of the text
here can be misleading, or outright wrong.
This text should be seen as an exploration, rather than viewing it as set in stone, no doubt or alternatives possible. We now introduce the notion of class abstraction, which allows us to describe a specific class, in contrast to class variables that can stand for any class indiscriminately. A new syntactic form is introduced for class abstractions, {𝑦 ∣ 𝜑}, read as "the class of sets 𝑦 such that 𝜑(𝑦)". This form is assigned the type "class" in cab 2743, so it can consistently substitute for a class variable during the syntactic construction process. **Eliminability** The axioms ax-wl-cleq 38003 and ax-wl-clel 38004 leave only 𝑥 ∈ 𝐴 unspecified. The definition of this class builder directly corresponds to that expression. When a class abstraction replaces the variable 𝐴 and 𝐵, then 𝐴 = 𝐵 and 𝐴 ∈ 𝐵 can be expressed in terms of these abstractions. For general eliminability two conditions are needed: 1. Any class builder must replace 𝑥 ∈ 𝐴 with an expression containing no class variables. If necessary, class variables must be eliminated via a finite recursive process. 2. There must only be finitely many class builders. If a class variable could range over infinitely many builders, eliminability would fail, since unknown future builders would always need to be considered. Condition (2) is met in set.mm by defining no class builder beyond cv 1562 and df-clab 2744. Thus we may assume that a class variable represents either a set variable, or a class abstraction: a. If it represents a set variable, substitution eliminates it immediately. b. If it equals a set variable 𝑥, then by cvjust 2759 it can be replaced with {𝑦 ∣ 𝑦 ∈ 𝑥}. c. If it represents a proper class, then it equals some abstraction {𝑥 ∣ 𝜑}. If 𝜑 contains no class variables, elimination using 𝜑 is possible. The same holds if finite sequence of elimination steps renders 𝜑 free of class variables. d. It represents a proper class, but 𝜑 in {𝑥 ∣ 𝜑} still contains non-eliminable class variables, then eliminability fails. A simple example is {𝑥 ∣ 𝑥 ∈ 𝐴}. Class variables can only appear in fundamental expressions 𝐴 = 𝐵 or 𝐴 ∈ 𝐵, Both can be reduced to forms involving 𝑧 ∈ 𝐴. Thus, in the expression 𝑧 ∈ {𝑥 ∣ 𝑥 ∈ 𝐴}, we still must eliminate 𝐴. Applying df-clab 2744 reduces it back to 𝑧 ∈ 𝐴, returning us to the starting point. Case (d) shows that in full generality, a class variable cannot always be eliminated, something Zermelo-Fraenkel set theory (ZF) requires. If the universe contained only finitely many sets, a free class variable 𝐴 could be expressed as a finite disjunction of possiblities, hence eliminable. But in ZF's richer universe, in a definition of an unrestricted class variable 𝐴 = {𝑥 ∣ 𝜑} the variable 𝜑 will contain 𝐴 in some way, violating condition (1) above. Thus constraints are needed. In ZF, any formula containing class variables assumes that non-set class variables can be be replaced by {𝑥 ∣ 𝜑} where 𝜑 itself contains no class variables. There is, however, no way to state this condition in a formal way in set.mm. Class abstractions themselves, however, can be eliminated, so df-clab is a definition. **Definition checker** How can case (d) be avoided? A solution is to restrict generality: require that in the definition of any concrete class abstraction {𝑥 ∣ 𝜑}, the formula 𝜑 is either free of class variables or built only from previously defined constructions. Such a restriction could be part of the definition checker. In practice, the Metamath definition checker requires definitions to follow the specific pattern "⊢ {𝑥 ∣ 𝜑} = ...". Although df-clab 2744 does not conform to this pattern, it nevertheless permits elimination of class abstractions. Eliminability is the essential property of a valid definition, so df-clab 2744 can legitimately be regarded as one. For further material on the elimination of class abstractions, see BJ's work beginning with eliminable1 37351 and one comment in https://github.com/metamath/set.mm/pull/4971. (Contributed by Wolf Lammen, 28-Aug-2025.) |
| ⊢ (𝑥 ∈ {𝑦 ∣ 𝜑} ↔ [𝑥 / 𝑦]𝜑) | ||
| Theorem | wl-isseteq 38006* | A class equal to a set variable implies it is a set. Note that 𝐴 may be dependent on 𝑥. The consequent, resembling ax6ev 1992, is the accepted expression for the idea of a class being a set. Sometimes a simpler expression like the antecedent here, or in elisset 2847, is already sufficient to mark a class variable as a set. (Contributed by Wolf Lammen, 7-Sep-2025.) |
| ⊢ (𝑥 = 𝐴 → ∃𝑦 𝑦 = 𝐴) | ||
| Theorem | wl-ax12v2cl 38007* |
The class version of ax12v2 2217, where the set variable 𝑦 is
replaced
with the class variable 𝐴. This is possible if 𝐴 is
known to
be a set, expressed by the antecedent.
Theorem ax12v 2216 is a specialization of ax12v2 2217. So any proof using ax12v 2216 will still hold if ax12v2 2217 is used instead. Theorem ax12v2 2217 expresses that two equal set variables cannot be distinguished by whatever complicated formula 𝜑 if one is replaced with the other in it. This theorem states a similar result for a class variable known to be a set: All sets equal to the class variable behave the same if they replace the class variable in 𝜑. Most axioms in FOL containing an equation correspond to a theorem where a class variable known to be a set replaces a set variable in the formula. Some exceptions cannot be avoided: The set variable must nowhere be bound. And it is not possible to state a distinct variable condition where a class 𝐴 is different from another, or distinct from a variable with type wff. So ax-12 2215 proper is out of reach: you cannot replace 𝑦 in ∀𝑦𝜑 with a class variable. But where such limitations are not violated, the proof of the FOL theorem should carry over to a version where a class variable, known to be set, appears instead of a set variable. (Contributed by Wolf Lammen, 8-Aug-2020.) |
| ⊢ (∃𝑦 𝑦 = 𝐴 → (𝑥 = 𝐴 → (𝜑 → ∀𝑥(𝑥 = 𝐴 → 𝜑)))) | ||
| Theorem | wl-df.clab 38008 |
Define class abstractions, that is, classes of the form {𝑦 ∣ 𝜑},
which is read "the class of sets 𝑦 such that 𝜑(𝑦)".
A few remarks are in order: 1. The axiomatic statement df-clab 2744 does not define the class abstraction {𝑦 ∣ 𝜑} itself, that is, it does not have the form ⊢ {𝑦 ∣ 𝜑} = ... that a standard definition should have (for a good reason: equality itself has not yet been defined or axiomatized for class abstractions; it is defined later in df-cleq 2757). Instead, df-clab 2744 has the form ⊢ (𝑥 ∈ {𝑦 ∣ 𝜑} ↔ ...), meaning that it only defines what it means for a setvar to be a member of a class abstraction. As a consequence, one can say that df-clab 2744 defines class abstractions if and only if a class abstraction is completely determined by which elements belong to it, which is the content of the axiom of extensionality ax-ext 2737. Therefore, df-clab 2744 can be considered a definition only in systems that can prove ax-ext 2737 (and the necessary first-order logic). 2. As in all definitions, the definiendum (the left-hand side of the biconditional) has no disjoint variable conditions. In particular, the setvar variables 𝑥 and 𝑦 need not be distinct, and the formula 𝜑 may depend on both 𝑥 and 𝑦. This is necessary, as with all definitions, since if there was for instance a disjoint variable condition on 𝑥, 𝑦, then one could not do anything with expressions like 𝑥 ∈ {𝑥 ∣ 𝜑} which are sometimes useful to shorten proofs (because of abid 2747). Most often, however, 𝑥 does not occur in {𝑦 ∣ 𝜑} and 𝑦 is free in 𝜑. 3. Remark 1 stresses that df-clab 2744 does not have the standard form of a definition for a class, but one could be led to think it has the standard form of a definition for a formula. However, it also fails that test since the membership predicate ∈ has already appeared earlier (outside of syntax e.g. in ax-8 2147). Indeed, the definiendum extends, or "overloads", the membership predicate ∈ from formulas of the form "setvar ∈ setvar" to formulas of the form "setvar ∈ class abstraction". This is possible because of wcel 2145 and cab 2743, and it can be called an "extension" of the membership predicate because of wel 2146, whose proof uses cv 1562. An a posteriori justification for cv 1562 is given by cvjust 2759, stating that every setvar can be written as a class abstraction (though conversely not every class abstraction is a set, as illustrated by Russell's paradox ru 3746). 4. Proof techniques. Because class variables can be substituted with compound expressions and setvar variables cannot, it is often useful to convert a theorem containing a free setvar variable to a more general version with a class variable. This is done with theorems such as vtoclg 3525 which is used, for example, to convert elirrv 9547 to elirr 9550. 5. Definition or axiom? The question arises with the three axiomatic statements introducing classes, df-clab 2744, df-cleq 2757, and df-clel 2840, to decide if they qualify as definitions or if they should be called axioms. Under the strict definition of "definition" (see conventions 30656), they are not definitions (see Remarks 1 and 3 above, and similarly for df-cleq 2757 and df-clel 2840). One could be less strict and decide to call "definition" every axiomatic statement which provides an eliminable and conservative extension of the considered axiom system. But the notion of conservativity may be given two different meanings in set.mm, due to the difference between the "scheme level" of set.mm and the "object level" of classical treatments. For a proof that these three axiomatic statements yield an eliminable and weakly (that is, object-level) conservative extension of FOL= plus ax-ext 2737, see Appendix of [Levy] p. 357. 6. This definition (or axiom) is a class builder introducing the class {𝑥 ∣ 𝜑}, also called a class abstraction or class comprehension, i.e., it specifies a class by a condition determining its members. Another class-building operator (but no class abstraction) is cv 1562, which asserts that every set is a class. The converse need not hold: not every class is a set. A class that is not a set is called a proper class. From ru 3746, it follows that this abstraction yields proper classes, e.g. {𝑥 ∣ 𝑥 = 𝑥}. 7. References and history. The concept of class abstraction dates back to at least Frege, and is used by Whitehead and Russell. This definition is Definition 2.1 of [Quine] p. 16 and Axiom 4.3.1 of [Levy] p. 12. It is called the "axiom of class comprehension" by [Levy] p. 358, who treats the theory of classes as an extralogical extension to predicate logic and set theory axioms. He calls the construction {𝑦 ∣ 𝜑} a "class term". For a full description of how classes are introduced and how to recover the primitive language, see the books of Quine and Levy (and the comment of eqabb 2904 for a quick overview). For a general discussion of the theory of classes, see mmset.html#class 2904. (Contributed by NM, 26-May-1993.) (Revised by BJ, 19-Aug-2023.) |
| ⊢ (𝑥 ∈ {𝑦 ∣ 𝜑} ↔ [𝑥 / 𝑦]𝜑) | ||
| Theorem | wl-df.cleq 38009* |
Define the equality connective between classes. Definition 2.7 of
[Quine] p. 18. Also Definition 4.5 of
[TakeutiZaring] p. 13; Chapter 4
provides its justification and methods for eliminating it. Note that
its elimination will not necessarily result in a single wff in the
original language but possibly a "scheme" of wffs.
The hypotheses express that all instances of the conclusion where class variables are replaced with setvar variables hold. Therefore, this definition merely extends to class variables something that is true for setvar variables, hence is conservative. This is only a proof sketch of conservativity; for details see Appendix of [Levy] p. 357. This is the reason why we call this axiomatic statement a "definition", even though it does not have the usual form of a definition. If we required a definition to have the usual form, we would call df-cleq 2757 an axiom. See also comments under df-clab 2744, df-clel 2840, and eqabb 2904. In the form of dfcleq 2758, this is called the "axiom of extensionality" by [Levy] p. 338, who treats the theory of classes as an extralogical extension to our logic and set theory axioms. It characterizes classes as collections of sets. While the three class definitions df-clab 2744, df-cleq 2757, and df-clel 2840 are eliminable and conservative and thus meet the requirements for sound definitions, they are technically axioms in that they do not satisfy the requirements for the current definition checker. The proofs of conservativity require external justification that is beyond the scope of the definition checker. For a general discussion of the theory of classes, see mmset.html#class 2840. (Contributed by NM, 15-Sep-1993.) (Revised by BJ, 24-Jun-2019.) |
| ⊢ (𝑦 = 𝑧 ↔ ∀𝑢(𝑢 ∈ 𝑦 ↔ 𝑢 ∈ 𝑧)) & ⊢ (𝑡 = 𝑡 ↔ ∀𝑣(𝑣 ∈ 𝑡 ↔ 𝑣 ∈ 𝑡)) ⇒ ⊢ (𝐴 = 𝐵 ↔ ∀𝑥(𝑥 ∈ 𝐴 ↔ 𝑥 ∈ 𝐵)) | ||
| Theorem | wl-dfcleq.basic 38010* |
This theorem is a conservative extension of ax-ext 2737 to classes, with no
hypotheses. It is not complete, since ax-8 2147
can be derived (see
in-ax8 36592) via alpha-renaming.
Although unsuitable for general use, it is adequate for the development of theorems unaffected by alpha-renaming, including: 1. Theorems with no bound variables in the hypotheses or conclusion (see eqriv 2762). 2. Theorems using the same bound variable throughout (see abbib 2834). 3. Theorems with distinct bound variables arising only through implicit substitution (see eqabbw 2838). Remark: the proof uses axextb 2740 to prove the hypothesis of df-cleq 2757 that is a degenerate instance, but it could be proved also from minimal propositional calculus and { ax-gen 1818, equid 2035 }. (Contributed by NM, 15-Sep-1993.) (Revised by BJ, 24-Jun-2019.) |
| ⊢ (𝐴 = 𝐵 ↔ ∀𝑥(𝑥 ∈ 𝐴 ↔ 𝑥 ∈ 𝐵)) | ||
| Theorem | wl-dfcleq.just 38011* |
The hypotheses added to this version of df-cleq 2757 address the following:
1. Equality of classes is an equivalence relation, as expected of equality. 2. Equality of classes obeys the Law of Indiscernibles (Leibniz's Law), and is compatible with class membership. 3. Alpha-renaming is explicitly permitted. (Contributed by Wolf Lammen, 7-Apr-2026.) |
| ⊢ (∀𝑥(𝑥 ∈ 𝐴 ↔ 𝑥 ∈ 𝐵) ↔ ∀𝑦(𝑦 ∈ 𝐴 ↔ 𝑦 ∈ 𝐵)) & ⊢ 𝐴 = 𝐴 & ⊢ (𝐴 = 𝐵 → (𝐵 = 𝐶 → 𝐶 = 𝐴)) & ⊢ (𝐴 = 𝐵 → (𝐴 ∈ 𝐶 → 𝐵 ∈ 𝐶)) & ⊢ (𝐴 = 𝐵 → (𝐶 ∈ 𝐴 → 𝐶 ∈ 𝐵)) ⇒ ⊢ (𝐴 = 𝐵 ↔ ∀𝑥(𝑥 ∈ 𝐴 ↔ 𝑥 ∈ 𝐵)) | ||
| Theorem | wl-df.clel 38012* |
Define the membership connective between classes. Theorem 6.3 of
[Quine] p. 41, or Proposition 4.6 of [TakeutiZaring] p. 13, which we
adopt as a definition. See these references for its metalogical
justification.
The hypotheses assert that every instance of the conclusion obtained by substituting the class variables with set variables already holds. Thus, this definition extends to class variables a relation already valid for set variables, and is therefore conservative. This only sketches the conservativity arguement; for details see Appendix of [Levy] p. 357. For this reason we regard this statement as a "definition", even though it does not have the usual form of a definition. Under a stricter syntactic criterion, df-clel 2840 would instead be an axiom. See also comments under df-clab 2744, df-cleq 2757, and eqabb 2904. Alternate characterizations of 𝐴 ∈ 𝐵 when either 𝐴 or 𝐵 is a set are given by clel2g 3621, clel3g 3623, and clel4g 3625. [Levy] p. 338 refers to this as the "axiom of membership", treating the theory of classes as an extralogical extension to our logic and set theory axioms. Under this definition, class members can only be sets; classes are therefore collections of sets. Although the extensionality expressed in df-cleq 2757 already points in this direction, an unusual interpretation of equality could still permit proper classes as members. Although the class definitions df-clab 2744, df-cleq 2757, and df-clel 2840 are eliminable and conservative, and hence meet the requirements for sound definitions, they are technically axioms in that they do not satisfy the syntactic requirements enforced by the current definition checker. The conservativity proofs require external justification beyond the scope of the checker. For a general discussion of the theory of classes, see mmset.html#class 2840. (Contributed by NM, 26-May-1993.) (Revised by BJ, 27-Jun-2019.) |
| ⊢ (𝑦 ∈ 𝑧 ↔ ∃𝑢(𝑢 = 𝑦 ∧ 𝑢 ∈ 𝑧)) & ⊢ (𝑡 ∈ 𝑡 ↔ ∃𝑣(𝑣 = 𝑡 ∧ 𝑣 ∈ 𝑡)) ⇒ ⊢ (𝐴 ∈ 𝐵 ↔ ∃𝑥(𝑥 = 𝐴 ∧ 𝑥 ∈ 𝐵)) | ||
| Theorem | wl-dfclel.basic 38013* |
This theorem gives a conservative extension of membership of classes,
without hypotheses. Conservativity alone, however, is insufficient,
since issues involving alpha-renaming can still arise, see in-ax8 36592.
Although unsuitable for general use, it is adequate for the development of theorems unaffected by alpha-renaming, including: 1. Theorems whose hypotheses and conclusion contain no bound variables (see eleq1w 2848). 2. Theorems using the same bound variable throughout (see elex2 2842). 3. Theorems in which distinct bound variables arise only through implicit substitution (see eqabbw 2838). (Contributed by BJ, 27-Jun-2019.) |
| ⊢ (𝐴 ∈ 𝐵 ↔ ∃𝑥(𝑥 = 𝐴 ∧ 𝑥 ∈ 𝐵)) | ||
| Theorem | wl-dfclel.just 38014* | Add a hypothesis to wl-dfclel.basic 38013, that permits alpha-renaming. (Contributed by Wolf Lammen, 7-Apr-2026.) |
| ⊢ (∃𝑥(𝑥 = 𝐴 ∧ 𝑥 ∈ 𝐵) ↔ ∃𝑦(𝑦 = 𝐴 ∧ 𝑦 ∈ 𝐵)) ⇒ ⊢ (𝐴 ∈ 𝐵 ↔ ∃𝑥(𝑥 = 𝐴 ∧ 𝑥 ∈ 𝐵)) | ||
| Theorem | wl-dfcleq 38015* |
The defining characterization of class equality. This version of
df-cleq 2757 has no restrictions, unlike the forms on
which it is based.
It is proved in Tarski's FOL from the axiom of extensionality
(ax-ext 2737), the definition of class equality (df-cleq 2757), and the
definition of class membership (df-clel 2840).
Its forward implication is known as "class extensionality". (Contributed by NM, 15-Sep-1993.) (Revised by BJ, 24-Jun-2019.) Base on wl-dfcleq.just 38011. (Revised by Wolf Lammen, 7-Apr-2026.) |
| ⊢ (𝐴 = 𝐵 ↔ ∀𝑥(𝑥 ∈ 𝐴 ↔ 𝑥 ∈ 𝐵)) | ||
| Theorem | wl-dfclel 38016* | The defining characterization of class membership. Unlike the forms on which it is based, it is unrestricted. Proven in Tarski's FOL, from the axiom of (set) extensionality (ax-ext 2737), the definitions df-clel 2840 and df-cleq . (Contributed by BJ, 27-Jun-2019.) Base on wl-dfclel.just 38014. (Revised by Wolf Lammen, 13-Apr-2026.) |
| ⊢ (𝐴 ∈ 𝐵 ↔ ∃𝑥(𝑥 = 𝐴 ∧ 𝑥 ∈ 𝐵)) | ||
| Theorem | wl-mps 38017 | Replacing a nested consequent. A sort of modus ponens in antecedent position. (Contributed by Wolf Lammen, 20-Sep-2013.) (Proof modification is discouraged.) (New usage is discouraged.) |
| ⊢ (𝜑 → (𝜓 → 𝜒)) & ⊢ ((𝜑 → 𝜒) → 𝜃) ⇒ ⊢ ((𝜑 → 𝜓) → 𝜃) | ||
| Theorem | wl-syls1 38018 | Replacing a nested consequent. A sort of syllogism in antecedent position. (Contributed by Wolf Lammen, 20-Sep-2013.) (Proof modification is discouraged.) (New usage is discouraged.) |
| ⊢ (𝜓 → 𝜒) & ⊢ ((𝜑 → 𝜒) → 𝜃) ⇒ ⊢ ((𝜑 → 𝜓) → 𝜃) | ||
| Theorem | wl-syls2 38019 | Replacing a nested antecedent. A sort of syllogism in antecedent position. (Contributed by Wolf Lammen, 20-Sep-2013.) (Proof modification is discouraged.) (New usage is discouraged.) |
| ⊢ (𝜑 → 𝜓) & ⊢ ((𝜑 → 𝜒) → 𝜃) ⇒ ⊢ ((𝜓 → 𝜒) → 𝜃) | ||
| Theorem | wl-embant 38020 | A true wff can always be added as a nested antecedent to an antecedent. Note: this theorem is intuitionistically valid. (Contributed by Wolf Lammen, 4-Oct-2013.) (Proof modification is discouraged.) (New usage is discouraged.) |
| ⊢ 𝜑 & ⊢ (𝜓 → 𝜒) ⇒ ⊢ ((𝜑 → 𝜓) → 𝜒) | ||
| Theorem | wl-orel12 38021 | In a conjunctive normal form a pair of nodes like (𝜑 ∨ 𝜓) ∧ (¬ 𝜑 ∨ 𝜒) eliminates the need of a node (𝜓 ∨ 𝜒). This theorem allows simplifications in that respect. (Contributed by Wolf Lammen, 20-Jun-2020.) |
| ⊢ (((𝜑 ∨ 𝜓) ∧ (¬ 𝜑 ∨ 𝜒)) → (𝜓 ∨ 𝜒)) | ||
| Theorem | wl-cases2-dnf 38022 | A particular instance of orddi 1025 and anddi 1026 converting between disjunctive and conjunctive normal forms, when both 𝜑 and ¬ 𝜑 appear. This theorem in fact rephrases cases2 1061, and is related to consensus 1066. I restate it here in DNF and CNF. The proof deliberately does not use df-ifp 1077 and dfifp4 1080, by which it can be shortened. (Contributed by Wolf Lammen, 21-Jun-2020.) (Proof modification is discouraged.) |
| ⊢ (((𝜑 ∧ 𝜓) ∨ (¬ 𝜑 ∧ 𝜒)) ↔ ((¬ 𝜑 ∨ 𝜓) ∧ (𝜑 ∨ 𝜒))) | ||
| Theorem | wl-cbvmotv 38023* | Change bound variable. Uses only Tarski's FOL axiom schemes. Part of Lemma 7 of [KalishMontague] p. 86. (Contributed by Wolf Lammen, 5-Mar-2023.) |
| ⊢ (∃*𝑥⊤ → ∃*𝑦⊤) | ||
| Theorem | wl-moteq 38024 | Change bound variable. Uses only Tarski's FOL axiom schemes. Part of Lemma 7 of [KalishMontague] p. 86. (Contributed by Wolf Lammen, 5-Mar-2023.) |
| ⊢ (∃*𝑥⊤ → 𝑦 = 𝑧) | ||
| Theorem | wl-motae 38025 | Change bound variable. Uses only Tarski's FOL axiom schemes. Part of Lemma 7 of [KalishMontague] p. 86. (Contributed by Wolf Lammen, 5-Mar-2023.) |
| ⊢ (∃*𝑢⊤ → ∀𝑥 𝑦 = 𝑧) | ||
| Theorem | wl-moae 38026* | Two ways to express "at most one thing exists" or, in this context equivalently, "exactly one thing exists" . The equivalence results from the presence of ax-6 1990 in the proof, that ensures "at least one thing exists". For other equivalences see wl-euae 38027 and exists1 2690. Gerard Lang pointed out, that ∃𝑦∀𝑥𝑥 = 𝑦 with disjoint 𝑥 and 𝑦 (dfmo 2570, trut 1569) also means "exactly one thing exists" . (Contributed by NM, 5-Apr-2004.) State the theorem using truth constant ⊤. (Revised by BJ, 7-Oct-2022.) Reduce axiom dependencies, and use ∃*. (Revised by Wolf Lammen, 7-Mar-2023.) |
| ⊢ (∃*𝑥⊤ ↔ ∀𝑥 𝑥 = 𝑦) | ||
| Theorem | wl-euae 38027* | Two ways to express "exactly one thing exists" . (Contributed by Wolf Lammen, 5-Mar-2023.) |
| ⊢ (∃!𝑥⊤ ↔ ∀𝑥 𝑥 = 𝑦) | ||
| Theorem | wl-nax6im 38028* | The following series of theorems are centered around the empty domain, where no set exists. As a consequence, a set variable like 𝑥 has no instance to assign to. An expression like 𝑥 = 𝑦 is not really meaningful then. What does it evaluate to, true or false? In fact, the grammar extension weq 1985 requires us to formally assign a boolean value to an equation, say always false, unless you want to give up on exmid 907, for example. Whatever it is, we start out with the contraposition of ax-6 1990, that guarantees the existence of at least one set. Our hypothesis here expresses tentatively it might not hold. We can simplify the antecedent then, to the point where we do not need equation any more. This suggests what a decent characterization of the empty domain of discourse could be. (Contributed by Wolf Lammen, 12-Mar-2023.) |
| ⊢ (¬ ∃𝑥 𝑥 = 𝑦 → 𝜑) ⇒ ⊢ (¬ ∃𝑥⊤ → 𝜑) | ||
| Theorem | wl-hbae1 38029 | This specialization of hbae 2465 does not depend on ax-11 2194. (Contributed by Wolf Lammen, 8-Aug-2021.) |
| ⊢ (∀𝑥 𝑥 = 𝑦 → ∀𝑦∀𝑥 𝑥 = 𝑦) | ||
| Theorem | wl-naevhba1v 38030* | An instance of hbn1w 2071 applied to equality. (Contributed by Wolf Lammen, 7-Apr-2021.) |
| ⊢ (¬ ∀𝑥 𝑥 = 𝑦 → ∀𝑥 ¬ ∀𝑥 𝑥 = 𝑦) | ||
| Theorem | wl-spae 38031 |
Prove an instance of sp 2221 from ax-13 2406 and Tarski's FOL only, without
distinct variable conditions. The antecedent ∀𝑥𝑥 = 𝑦 holds in a
multi-object universe only if 𝑦 is substituted for 𝑥, or
vice
versa, i.e. both variables are effectively the same. The converse
¬ ∀𝑥𝑥 = 𝑦 indicates that both variables are
distinct, and it so
provides a simple translation of a distinct variable condition to a
logical term. In case studies ∀𝑥𝑥 = 𝑦 and ¬
∀𝑥𝑥 = 𝑦 can
help eliminating distinct variable conditions.
The antecedent ∀𝑥𝑥 = 𝑦 is expressed in the theorem's name by the abbreviation ae standing for 'all equal'. Note that we cannot provide a logical predicate telling us directly whether a logical expression contains a particular variable, as such a construct would usually contradict ax-12 2215. Note that this theorem is also provable from ax-12 2215 alone, so you can pick the axiom it is based on. Compare this result to 19.3v 2005 and spaev 2077 having distinct variable conditions, but a smaller footprint on axiom usage. (Contributed by Wolf Lammen, 5-Apr-2021.) |
| ⊢ (∀𝑥 𝑥 = 𝑦 → 𝑥 = 𝑦) | ||
| Theorem | wl-speqv 38032* | Under the assumption ¬ 𝑥 = 𝑦 a specialized version of sp 2221 is provable from Tarski's FOL and ax13v 2407 only. Note that this reverts the implication in ax13lem1 2408, so in fact (¬ 𝑥 = 𝑦 → (∀𝑥𝑧 = 𝑦 ↔ 𝑧 = 𝑦)) holds. (Contributed by Wolf Lammen, 17-Apr-2021.) |
| ⊢ (¬ 𝑥 = 𝑦 → (∀𝑥 𝑧 = 𝑦 → 𝑧 = 𝑦)) | ||
| Theorem | wl-19.8eqv 38033* | Under the assumption ¬ 𝑥 = 𝑦 a specialized version of 19.8a 2219 is provable from Tarski's FOL and ax13v 2407 only. Note that this reverts the implication in ax13lem2 2410, so in fact (¬ 𝑥 = 𝑦 → (∃𝑥𝑧 = 𝑦 ↔ 𝑧 = 𝑦)) holds. (Contributed by Wolf Lammen, 17-Apr-2021.) |
| ⊢ (¬ 𝑥 = 𝑦 → (𝑧 = 𝑦 → ∃𝑥 𝑧 = 𝑦)) | ||
| Theorem | wl-19.2reqv 38034* | Under the assumption ¬ 𝑥 = 𝑦 the reverse direction of 19.2 1999 is provable from Tarski's FOL and ax13v 2407 only. Note that in conjunction with 19.2 1999 in fact (¬ 𝑥 = 𝑦 → (∀𝑥𝑧 = 𝑦 ↔ ∃𝑥𝑧 = 𝑦)) holds. (Contributed by Wolf Lammen, 17-Apr-2021.) |
| ⊢ (¬ 𝑥 = 𝑦 → (∃𝑥 𝑧 = 𝑦 → ∀𝑥 𝑧 = 𝑦)) | ||
| Theorem | wl-nfalv 38035* | If 𝑥 is not present in 𝜑, it is not free in ∀𝑦𝜑. (Contributed by Wolf Lammen, 11-Jan-2020.) |
| ⊢ Ⅎ𝑥∀𝑦𝜑 | ||
| Theorem | wl-nfimf1 38036 | An antecedent is irrelevant to a not-free property, if it always holds. I used this variant of nfim 1919 in dvelimdf 2483 to simplify the proof. (Contributed by Wolf Lammen, 14-Oct-2018.) |
| ⊢ (∀𝑥𝜑 → (Ⅎ𝑥(𝜑 → 𝜓) ↔ Ⅎ𝑥𝜓)) | ||
| Theorem | wl-nfae1 38037 | Unlike nfae 2467, this specialized theorem avoids ax-11 2194. (Contributed by Wolf Lammen, 26-Jun-2019.) |
| ⊢ Ⅎ𝑥∀𝑦 𝑦 = 𝑥 | ||
| Theorem | wl-nfnae1 38038 | Unlike nfnae 2468, this specialized theorem avoids ax-11 2194. (Contributed by Wolf Lammen, 27-Jun-2019.) |
| ⊢ Ⅎ𝑥 ¬ ∀𝑦 𝑦 = 𝑥 | ||
| Theorem | wl-aetr 38039 | A transitive law for variable identifying expressions. (Contributed by Wolf Lammen, 30-Jun-2019.) |
| ⊢ (∀𝑥 𝑥 = 𝑦 → (∀𝑥 𝑥 = 𝑧 → ∀𝑦 𝑦 = 𝑧)) | ||
| Theorem | wl-axc11r 38040 | Same as axc11r 2402, but using ax12 2457 instead of ax-12 2215 directly. This better reflects axiom usage in theorems dependent on it. (Contributed by NM, 25-Jul-2015.) Avoid direct use of ax-12 2215. (Revised by Wolf Lammen, 30-Mar-2024.) |
| ⊢ (∀𝑦 𝑦 = 𝑥 → (∀𝑥𝜑 → ∀𝑦𝜑)) | ||
| Theorem | wl-dral1d 38041 | A version of dral1 2473 with a context. Note: At first glance one might be tempted to generalize this (or a similar) theorem by weakening the first two hypotheses adding a 𝑥 = 𝑦, ∀𝑥𝑥 = 𝑦 or 𝜑 antecedent. wl-equsal1i 38054 and nf5di 2322 show that this is in fact pointless. (Contributed by Wolf Lammen, 28-Jul-2019.) |
| ⊢ Ⅎ𝑥𝜑 & ⊢ Ⅎ𝑦𝜑 & ⊢ (𝜑 → (𝑥 = 𝑦 → (𝜓 ↔ 𝜒))) ⇒ ⊢ (𝜑 → (∀𝑥 𝑥 = 𝑦 → (∀𝑥𝜓 ↔ ∀𝑦𝜒))) | ||
| Theorem | wl-cbvalnaed 38042 | wl-cbvalnae 38043 with a context. (Contributed by Wolf Lammen, 28-Jul-2019.) |
| ⊢ Ⅎ𝑥𝜑 & ⊢ Ⅎ𝑦𝜑 & ⊢ (𝜑 → (¬ ∀𝑥 𝑥 = 𝑦 → Ⅎ𝑦𝜓)) & ⊢ (𝜑 → (¬ ∀𝑥 𝑥 = 𝑦 → Ⅎ𝑥𝜒)) & ⊢ (𝜑 → (𝑥 = 𝑦 → (𝜓 ↔ 𝜒))) ⇒ ⊢ (𝜑 → (∀𝑥𝜓 ↔ ∀𝑦𝜒)) | ||
| Theorem | wl-cbvalnae 38043 | A more general version of cbval 2432 when nonfree properties depend on a distinctor. Such expressions arise in proofs aiming at the elimination of distinct variable constraints, specifically in application of dvelimf 2482, nfsb2 2517 or dveeq1 2414. (Contributed by Wolf Lammen, 4-Jun-2019.) |
| ⊢ (¬ ∀𝑥 𝑥 = 𝑦 → Ⅎ𝑦𝜑) & ⊢ (¬ ∀𝑥 𝑥 = 𝑦 → Ⅎ𝑥𝜓) & ⊢ (𝑥 = 𝑦 → (𝜑 ↔ 𝜓)) ⇒ ⊢ (∀𝑥𝜑 ↔ ∀𝑦𝜓) | ||
| Theorem | wl-exeq 38044 | The semantics of ∃𝑥𝑦 = 𝑧. (Contributed by Wolf Lammen, 27-Apr-2018.) |
| ⊢ (∃𝑥 𝑦 = 𝑧 ↔ (𝑦 = 𝑧 ∨ ∀𝑥 𝑥 = 𝑦 ∨ ∀𝑥 𝑥 = 𝑧)) | ||
| Theorem | wl-aleq 38045 | The semantics of ∀𝑥𝑦 = 𝑧. (Contributed by Wolf Lammen, 27-Apr-2018.) |
| ⊢ (∀𝑥 𝑦 = 𝑧 ↔ (𝑦 = 𝑧 ∧ (∀𝑥 𝑥 = 𝑦 ↔ ∀𝑥 𝑥 = 𝑧))) | ||
| Theorem | wl-nfeqfb 38046 | Extend nfeqf 2415 to an equivalence. (Contributed by Wolf Lammen, 31-Jul-2019.) |
| ⊢ (Ⅎ𝑥 𝑦 = 𝑧 ↔ (∀𝑥 𝑥 = 𝑦 ↔ ∀𝑥 𝑥 = 𝑧)) | ||
| Theorem | wl-nfs1t 38047 | If 𝑦 is not free in 𝜑, 𝑥 is not free in [𝑦 / 𝑥]𝜑. Closed form of nfs1 2522. (Contributed by Wolf Lammen, 27-Jul-2019.) |
| ⊢ (Ⅎ𝑦𝜑 → Ⅎ𝑥[𝑦 / 𝑥]𝜑) | ||
| Theorem | wl-equsalvw 38048* |
Version of equsalv 2305 with a disjoint variable condition, and of equsal 2451
with two disjoint variable conditions, which requires fewer axioms. See
also the dual form equsexvw 2028.
This theorem lays the foundation to a transformation of expressions called substitution of set variables in a wff. Only in this particular context we additionally assume 𝜑 and 𝑦 disjoint, stated here as 𝜑(𝑥). Similarly the disjointness of 𝜓 and 𝑥 is expressed by 𝜓(𝑦). Both 𝜑 and 𝜓 may still depend on other set variables, but that is irrelevant here. We want to transform 𝜑(𝑥) into 𝜓(𝑦) such that 𝜓 depends on 𝑦 the same way as 𝜑 depends on 𝑥. This dependency is expressed in our hypothesis (called implicit substitution): (𝑥 = 𝑦 → (𝜑 ↔ 𝜓)). For primitive enough 𝜑 a sort of textual substitution of 𝑥 by 𝑦 is sufficient for such transformation. But note: 𝜑 must not contain wff variables, and the substitution is no proper textual substitution either. We still need grammar information to not accidently replace the x in a token 'x.' denoting multiplication, but only catch set variables 𝑥. Our current stage of development allows only equations and quantifiers make up such primitives. Thanks to equequ1 2048 and cbvalvw 2059 we can then prove in a mechanical way that in fact the implicit substitution holds for each instance. If 𝜑 contains wff variables we cannot use textual transformation any longer, since we don't know how to replace 𝑦 for 𝑥 in placeholders of unknown structure. Our theorem now states, that the generic expression ∀𝑥(𝑥 = 𝑦 → 𝜑) formally behaves as if such a substitution was possible and made. (Contributed by BJ, 31-May-2019.) |
| ⊢ (𝑥 = 𝑦 → (𝜑 ↔ 𝜓)) ⇒ ⊢ (∀𝑥(𝑥 = 𝑦 → 𝜑) ↔ 𝜓) | ||
| Theorem | wl-equsald 38049 | Deduction version of equsal 2451. (Contributed by Wolf Lammen, 27-Jul-2019.) |
| ⊢ Ⅎ𝑥𝜑 & ⊢ (𝜑 → Ⅎ𝑥𝜒) & ⊢ (𝜑 → (𝑥 = 𝑦 → (𝜓 ↔ 𝜒))) ⇒ ⊢ (𝜑 → (∀𝑥(𝑥 = 𝑦 → 𝜓) ↔ 𝜒)) | ||
| Theorem | wl-equsaldv 38050* | Deduction version of equsal 2451. (Contributed by Wolf Lammen, 27-Jul-2019.) |
| ⊢ Ⅎ𝑥𝜑 & ⊢ (𝜑 → Ⅎ𝑥𝜒) & ⊢ (𝜑 → (𝑥 = 𝑦 → (𝜓 ↔ 𝜒))) ⇒ ⊢ (𝜑 → (∀𝑥(𝑥 = 𝑦 → 𝜓) ↔ 𝜒)) | ||
| Theorem | wl-equsal 38051 | A useful equivalence related to substitution. (Contributed by NM, 2-Jun-1993.) (Proof shortened by Andrew Salmon, 12-Aug-2011.) (Revised by Mario Carneiro, 3-Oct-2016.) It seems proving wl-equsald 38049 first, and then deriving more specialized versions wl-equsal 38051 and wl-equsal1t 38052 then is more efficient than the other way round, which is possible, too. See also equsal 2451. (Revised by Wolf Lammen, 27-Jul-2019.) (Proof modification is discouraged.) |
| ⊢ Ⅎ𝑥𝜓 & ⊢ (𝑥 = 𝑦 → (𝜑 ↔ 𝜓)) ⇒ ⊢ (∀𝑥(𝑥 = 𝑦 → 𝜑) ↔ 𝜓) | ||
| Theorem | wl-equsal1t 38052 |
The expression 𝑥 = 𝑦 in antecedent position plays an
important role in
predicate logic, namely in implicit substitution. However, occasionally
it is irrelevant, and can safely be dropped. A sufficient condition for
this is when 𝑥 (or 𝑦 or both) is not free in
𝜑.
This theorem is more fundamental than equsal 2451, spimt 2420 or sbft 2307, to which it is related. (Contributed by Wolf Lammen, 19-Aug-2018.) |
| ⊢ (Ⅎ𝑥𝜑 → (∀𝑥(𝑥 = 𝑦 → 𝜑) ↔ 𝜑)) | ||
| Theorem | wl-equsalcom 38053 | This simple equivalence eases substitution of one expression for the other. (Contributed by Wolf Lammen, 1-Sep-2018.) |
| ⊢ (∀𝑥(𝑥 = 𝑦 → 𝜑) ↔ ∀𝑥(𝑦 = 𝑥 → 𝜑)) | ||
| Theorem | wl-equsal1i 38054 | The antecedent 𝑥 = 𝑦 is irrelevant, if one or both setvar variables are not free in 𝜑. (Contributed by Wolf Lammen, 1-Sep-2018.) |
| ⊢ (Ⅎ𝑥𝜑 ∨ Ⅎ𝑦𝜑) & ⊢ (𝑥 = 𝑦 → 𝜑) ⇒ ⊢ 𝜑 | ||
| Theorem | wl-sbid2ft 38055* | A more general version of sbid2vw 2297. (Contributed by Wolf Lammen, 14-May-2019.) |
| ⊢ (Ⅎ𝑥𝜑 → ([𝑦 / 𝑥][𝑥 / 𝑦]𝜑 ↔ 𝜑)) | ||
| Theorem | wl-cbvalsbi 38056* | Change bounded variables in a special case. The reverse direction seems to involve ax-11 2194. My hope is that I will in some future be able to prove mo3 2594 with reversed quantifiers not using ax-11 2194. See also the remark in mo4 2596, which lead me to this effort. (Contributed by Wolf Lammen, 5-Mar-2024.) |
| ⊢ (∀𝑥𝜑 → ∀𝑦[𝑦 / 𝑥]𝜑) | ||
| Theorem | wl-sbrimt 38057 | Substitution with a variable not free in antecedent affects only the consequent. Closed form of sbrim 2341. (Contributed by Wolf Lammen, 26-Jul-2019.) |
| ⊢ (Ⅎ𝑥𝜑 → ([𝑦 / 𝑥](𝜑 → 𝜓) ↔ (𝜑 → [𝑦 / 𝑥]𝜓))) | ||
| Theorem | wl-sblimt 38058 | Substitution with a variable not free in antecedent affects only the consequent. Closed form of sbrim 2341. (Contributed by Wolf Lammen, 26-Jul-2019.) |
| ⊢ (Ⅎ𝑥𝜓 → ([𝑦 / 𝑥](𝜑 → 𝜓) ↔ ([𝑦 / 𝑥]𝜑 → 𝜓))) | ||
| Theorem | wl-sb9v 38059* | Commutation of quantification and substitution variables based on fewer axioms than sb9 2553. (Contributed by Wolf Lammen, 27-Apr-2025.) |
| ⊢ (∀𝑥[𝑥 / 𝑦]𝜑 ↔ ∀𝑦[𝑦 / 𝑥]𝜑) | ||
| Theorem | wl-sb8ft 38060* | Substitution of variable in universal quantifier. Closed form of sb8f 2388. (Contributed by Wolf Lammen, 27-Apr-2025.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → (∀𝑥𝜑 ↔ ∀𝑦[𝑦 / 𝑥]𝜑)) | ||
| Theorem | wl-sb8eft 38061* | Substitution of variable in existentialal quantifier. Closed form of sb8ef 2389. (Contributed by Wolf Lammen, 27-Apr-2025.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → (∃𝑥𝜑 ↔ ∃𝑦[𝑦 / 𝑥]𝜑)) | ||
| Theorem | wl-sb8t 38062 | Substitution of variable in universal quantifier. Closed form of sb8 2551. (Contributed by Wolf Lammen, 27-Jul-2019.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → (∀𝑥𝜑 ↔ ∀𝑦[𝑦 / 𝑥]𝜑)) | ||
| Theorem | wl-sb8et 38063 | Substitution of variable in universal quantifier. Closed form of sb8e 2552. (Contributed by Wolf Lammen, 27-Jul-2019.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → (∃𝑥𝜑 ↔ ∃𝑦[𝑦 / 𝑥]𝜑)) | ||
| Theorem | wl-sbhbt 38064 | Closed form of sbhb 2555. Characterizing the expression 𝜑 → ∀𝑥𝜑 using a substitution expression. (Contributed by Wolf Lammen, 28-Jul-2019.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → ((𝜑 → ∀𝑥𝜑) ↔ ∀𝑦(𝜑 → [𝑦 / 𝑥]𝜑))) | ||
| Theorem | wl-sbnf1 38065 | Two ways expressing that 𝑥 is effectively not free in 𝜑. Simplified version of sbnf2 2392. Note: This theorem shows that sbnf2 2392 has unnecessary distinct variable constraints. (Contributed by Wolf Lammen, 28-Jul-2019.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → (Ⅎ𝑥𝜑 ↔ ∀𝑥∀𝑦(𝜑 → [𝑦 / 𝑥]𝜑))) | ||
| Theorem | wl-equsb3 38066 | equsb3 2140 with a distinctor. (Contributed by Wolf Lammen, 27-Jun-2019.) |
| ⊢ (¬ ∀𝑦 𝑦 = 𝑧 → ([𝑥 / 𝑦]𝑦 = 𝑧 ↔ 𝑥 = 𝑧)) | ||
| Theorem | wl-equsb4 38067 | Substitution applied to an atomic wff. The distinctor antecedent is more general than a distinct variable condition. (Contributed by Wolf Lammen, 26-Jun-2019.) |
| ⊢ (¬ ∀𝑥 𝑥 = 𝑧 → ([𝑦 / 𝑥]𝑦 = 𝑧 ↔ 𝑦 = 𝑧)) | ||
| Theorem | wl-2sb6d 38068 | Version of 2sb6 2122 with a context, and distinct variable conditions replaced with distinctors. (Contributed by Wolf Lammen, 4-Aug-2019.) |
| ⊢ (𝜑 → ¬ ∀𝑦 𝑦 = 𝑥) & ⊢ (𝜑 → ¬ ∀𝑦 𝑦 = 𝑤) & ⊢ (𝜑 → ¬ ∀𝑦 𝑦 = 𝑧) & ⊢ (𝜑 → ¬ ∀𝑥 𝑥 = 𝑧) ⇒ ⊢ (𝜑 → ([𝑧 / 𝑥][𝑤 / 𝑦]𝜓 ↔ ∀𝑥∀𝑦((𝑥 = 𝑧 ∧ 𝑦 = 𝑤) → 𝜓))) | ||
| Theorem | wl-sbcom2d-lem1 38069* | Lemma used to prove wl-sbcom2d 38071. (Contributed by Wolf Lammen, 10-Aug-2019.) (New usage is discouraged.) |
| ⊢ ((𝑢 = 𝑦 ∧ 𝑣 = 𝑤) → (¬ ∀𝑥 𝑥 = 𝑤 → ([𝑢 / 𝑥][𝑣 / 𝑧]𝜑 ↔ [𝑦 / 𝑥][𝑤 / 𝑧]𝜑))) | ||
| Theorem | wl-sbcom2d-lem2 38070* | Lemma used to prove wl-sbcom2d 38071. (Contributed by Wolf Lammen, 10-Aug-2019.) (New usage is discouraged.) |
| ⊢ (¬ ∀𝑦 𝑦 = 𝑥 → ([𝑢 / 𝑥][𝑣 / 𝑦]𝜑 ↔ ∀𝑥∀𝑦((𝑥 = 𝑢 ∧ 𝑦 = 𝑣) → 𝜑))) | ||
| Theorem | wl-sbcom2d 38071 | Version of sbcom2 2209 with a context, and distinct variable conditions replaced with distinctors. (Contributed by Wolf Lammen, 4-Aug-2019.) |
| ⊢ (𝜑 → ¬ ∀𝑥 𝑥 = 𝑤) & ⊢ (𝜑 → ¬ ∀𝑥 𝑥 = 𝑧) & ⊢ (𝜑 → ¬ ∀𝑧 𝑧 = 𝑦) ⇒ ⊢ (𝜑 → ([𝑤 / 𝑧][𝑦 / 𝑥]𝜓 ↔ [𝑦 / 𝑥][𝑤 / 𝑧]𝜓)) | ||
| Theorem | wl-sbalnae 38072 | A theorem used in elimination of disjoint variable restrictions by replacing them with distinctors. (Contributed by Wolf Lammen, 25-Jul-2019.) |
| ⊢ ((¬ ∀𝑥 𝑥 = 𝑦 ∧ ¬ ∀𝑥 𝑥 = 𝑧) → ([𝑧 / 𝑦]∀𝑥𝜑 ↔ ∀𝑥[𝑧 / 𝑦]𝜑)) | ||
| Theorem | wl-sbal1 38073* | A theorem used in elimination of disjoint variable restriction on 𝑥 and 𝑦 by replacing it with a distinctor ¬ ∀𝑥𝑥 = 𝑧. (Contributed by NM, 15-May-1993.) Proof is based on wl-sbalnae 38072 now. See also sbal1 2562. (Revised by Wolf Lammen, 25-Jul-2019.) (Proof modification is discouraged.) (New usage is discouraged.) |
| ⊢ (¬ ∀𝑥 𝑥 = 𝑧 → ([𝑧 / 𝑦]∀𝑥𝜑 ↔ ∀𝑥[𝑧 / 𝑦]𝜑)) | ||
| Theorem | wl-sbal2 38074* | Move quantifier in and out of substitution. Revised to remove a distinct variable constraint. (Contributed by NM, 2-Jan-2002.) Proof is based on wl-sbalnae 38072 now. See also sbal2 2563. (Revised by Wolf Lammen, 25-Jul-2019.) (Proof modification is discouraged.) (New usage is discouraged.) |
| ⊢ (¬ ∀𝑥 𝑥 = 𝑦 → ([𝑧 / 𝑦]∀𝑥𝜑 ↔ ∀𝑥[𝑧 / 𝑦]𝜑)) | ||
| Theorem | wl-2spsbbi 38075 | spsbbi 2109 applied twice. (Contributed by Wolf Lammen, 5-Aug-2023.) |
| ⊢ (∀𝑎∀𝑏(𝜑 ↔ 𝜓) → ([𝑦 / 𝑏][𝑥 / 𝑎]𝜑 ↔ [𝑦 / 𝑏][𝑥 / 𝑎]𝜓)) | ||
| Theorem | wl-lem-exsb 38076* | This theorem provides a basic working step in proving theorems about ∃* or ∃!. (Contributed by Wolf Lammen, 3-Oct-2019.) |
| ⊢ (𝑥 = 𝑦 → (𝜑 ↔ ∀𝑥(𝑥 = 𝑦 → 𝜑))) | ||
| Theorem | wl-lem-nexmo 38077 | This theorem provides a basic working step in proving theorems about ∃* or ∃!. (Contributed by Wolf Lammen, 3-Oct-2019.) |
| ⊢ (¬ ∃𝑥𝜑 → ∀𝑥(𝜑 → 𝑥 = 𝑧)) | ||
| Theorem | wl-lem-moexsb 38078* |
The antecedent ∀𝑥(𝜑 → 𝑥 = 𝑧) relates to ∃*𝑥𝜑, but is
better suited for usage in proofs. Note that no distinct variable
restriction is placed on 𝜑.
This theorem provides a basic working step in proving theorems about ∃* or ∃!. (Contributed by Wolf Lammen, 3-Oct-2019.) |
| ⊢ (∀𝑥(𝜑 → 𝑥 = 𝑧) → (∃𝑥𝜑 ↔ [𝑧 / 𝑥]𝜑)) | ||
| Theorem | wl-alanbii 38079 | This theorem extends alanimi 1839 to a biconditional. Recurrent usage stacks up more quantifiers. (Contributed by Wolf Lammen, 4-Oct-2019.) |
| ⊢ (𝜑 ↔ (𝜓 ∧ 𝜒)) ⇒ ⊢ (∀𝑥𝜑 ↔ (∀𝑥𝜓 ∧ ∀𝑥𝜒)) | ||
| Theorem | wl-mo2df 38080 | Version of mof 2593 with a context and a distinctor replacing a distinct variable condition. This version should be used only to eliminate disjoint variable conditions. (Contributed by Wolf Lammen, 11-Aug-2019.) |
| ⊢ Ⅎ𝑥𝜑 & ⊢ Ⅎ𝑦𝜑 & ⊢ (𝜑 → ¬ ∀𝑥 𝑥 = 𝑦) & ⊢ (𝜑 → Ⅎ𝑦𝜓) ⇒ ⊢ (𝜑 → (∃*𝑥𝜓 ↔ ∃𝑦∀𝑥(𝜓 → 𝑥 = 𝑦))) | ||
| Theorem | wl-mo2tf 38081 | Closed form of mof 2593 with a distinctor avoiding distinct variable conditions. (Contributed by Wolf Lammen, 20-Sep-2020.) |
| ⊢ ((¬ ∀𝑥 𝑥 = 𝑦 ∧ ∀𝑥Ⅎ𝑦𝜑) → (∃*𝑥𝜑 ↔ ∃𝑦∀𝑥(𝜑 → 𝑥 = 𝑦))) | ||
| Theorem | wl-eudf 38082 | Version of eu6 2604 with a context and a distinctor replacing a distinct variable condition. This version should be used only to eliminate disjoint variable conditions. (Contributed by Wolf Lammen, 23-Sep-2020.) |
| ⊢ Ⅎ𝑥𝜑 & ⊢ Ⅎ𝑦𝜑 & ⊢ (𝜑 → ¬ ∀𝑥 𝑥 = 𝑦) & ⊢ (𝜑 → Ⅎ𝑦𝜓) ⇒ ⊢ (𝜑 → (∃!𝑥𝜓 ↔ ∃𝑦∀𝑥(𝜓 ↔ 𝑥 = 𝑦))) | ||
| Theorem | wl-eutf 38083 | Closed form of eu6 2604 with a distinctor avoiding distinct variable conditions. (Contributed by Wolf Lammen, 23-Sep-2020.) |
| ⊢ ((¬ ∀𝑥 𝑥 = 𝑦 ∧ ∀𝑥Ⅎ𝑦𝜑) → (∃!𝑥𝜑 ↔ ∃𝑦∀𝑥(𝜑 ↔ 𝑥 = 𝑦))) | ||
| Theorem | wl-euequf 38084 | euequ 2627 proved with a distinctor. (Contributed by Wolf Lammen, 23-Sep-2020.) |
| ⊢ (¬ ∀𝑥 𝑥 = 𝑦 → ∃!𝑥 𝑥 = 𝑦) | ||
| Theorem | wl-mo2t 38085* | Closed form of mof 2593. (Contributed by Wolf Lammen, 18-Aug-2019.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → (∃*𝑥𝜑 ↔ ∃𝑦∀𝑥(𝜑 → 𝑥 = 𝑦))) | ||
| Theorem | wl-mo3t 38086* | Closed form of mo3 2594. (Contributed by Wolf Lammen, 18-Aug-2019.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → (∃*𝑥𝜑 ↔ ∀𝑥∀𝑦((𝜑 ∧ [𝑦 / 𝑥]𝜑) → 𝑥 = 𝑦))) | ||
| Theorem | wl-nfsbtv 38087* | Closed form of nfsbv 2365. (Contributed by Wolf Lammen, 2-May-2025.) |
| ⊢ (∀𝑥Ⅎ𝑧𝜑 → Ⅎ𝑧[𝑦 / 𝑥]𝜑) | ||
| Theorem | wl-sb8eut 38088 | Substitution of variable in universal quantifier. Closed form of sb8eu 2630. (Contributed by Wolf Lammen, 11-Aug-2019.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → (∃!𝑥𝜑 ↔ ∃!𝑦[𝑦 / 𝑥]𝜑)) | ||
| Theorem | wl-sb8eutv 38089* | Substitution of variable in universal quantifier. Closed form of sb8euv 2629. (Contributed by Wolf Lammen, 3-May-2025.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → (∃!𝑥𝜑 ↔ ∃!𝑦[𝑦 / 𝑥]𝜑)) | ||
| Theorem | wl-sb8mot 38090 | Substitution of variable in universal quantifier. Closed form of sb8mo 2631. (Contributed by Wolf Lammen, 11-Aug-2019.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → (∃*𝑥𝜑 ↔ ∃*𝑦[𝑦 / 𝑥]𝜑)) | ||
| Theorem | wl-sb8motv 38091* |
Substitution of variable in universal quantifier. Closed form of
sb8mo 2631 without ax-13 2406, but requiring 𝑥 and 𝑦 being
disjoint.
This theorem relates to wl-mo3t 38086, since replacing 𝜑 with [𝑦 / 𝑥]𝜑 in the latter yields subexpressions like [𝑥 / 𝑦][𝑦 / 𝑥]𝜑, which can be reduced to 𝜑 via sbft 2307 and sbco 2541. So ∃*𝑥𝜑 ↔ ∃*𝑦[𝑦 / 𝑥]𝜑 is provable from wl-mo3t 38086 in a simple fashion. From an educational standpoint, one would assume wl-mo3t 38086 to be more fundamental, as it hints how the "at most one" objects on both sides of the biconditional correlate (they are the same), if they exist at all, and then prove this theorem from it. (Contributed by Wolf Lammen, 3-May-2025.) |
| ⊢ (∀𝑥Ⅎ𝑦𝜑 → (∃*𝑥𝜑 ↔ ∃*𝑦[𝑦 / 𝑥]𝜑)) | ||
| Theorem | wl-issetft 38092 | A closed form of issetf 3474. The proof here is a modification of a subproof in vtoclgft 3523, where it could be used to shorten the proof. (Contributed by Wolf Lammen, 25-Jan-2025.) |
| ⊢ (Ⅎ𝑥𝐴 → (𝐴 ∈ V ↔ ∃𝑥 𝑥 = 𝐴)) | ||
| Theorem | wl-axc11rc11 38093 |
Proving axc11r 2402 from axc11 2464. The hypotheses are two instances of
axc11 2464 used in the proof here. Some systems
introduce axc11 2464 as an
axiom, see for example System S2 in
https://us.metamath.org/downloads/finiteaxiom.pdf 2464.
By contrast, this database sees the variant axc11r 2402, directly derived from ax-12 2215, as foundational. Later axc11 2464 is proven somewhat trickily, requiring ax-10 2178 and ax-13 2406, see its proof. (Contributed by Wolf Lammen, 18-Jul-2023.) |
| ⊢ (∀𝑦 𝑦 = 𝑥 → (∀𝑦 𝑦 = 𝑥 → ∀𝑥 𝑦 = 𝑥)) & ⊢ (∀𝑥 𝑥 = 𝑦 → (∀𝑥𝜑 → ∀𝑦𝜑)) ⇒ ⊢ (∀𝑦 𝑦 = 𝑥 → (∀𝑥𝜑 → ∀𝑦𝜑)) | ||
| Theorem | wl-clabv 38094* |
Variant of df-clab 2744, where the element 𝑥 is required to be
disjoint from the class it is taken from. This restriction meets
similar ones found in other definitions and axioms like ax-ext 2737,
df-clel 2840 and df-cleq 2757. 𝑥 ∈ 𝐴 with 𝐴 depending on 𝑥 can
be the source of side effects, that you rather want to be aware of. So
here we eliminate one possible way of letting this slip in instead.
An expression 𝑥 ∈ 𝐴 with 𝑥, 𝐴 not disjoint, is now only introduced either via ax-8 2147, ax-9 2155, or df-clel 2840. Theorem cleljust 2154 shows that a possible choice does not matter. The original df-clab 2744 can be rederived, see wl-dfclab 38095. In an implementation this theorem is the only user of df-clab. (Contributed by NM, 26-May-1993.) Element and class are disjoint. (Revised by Wolf Lammen, 31-May-2023.) |
| ⊢ (𝑥 ∈ {𝑦 ∣ 𝜑} ↔ [𝑥 / 𝑦]𝜑) | ||
| Theorem | wl-dfclab 38095 | Rederive df-clab 2744 from wl-clabv 38094. (Contributed by Wolf Lammen, 31-May-2023.) (Proof modification is discouraged.) |
| ⊢ (𝑥 ∈ {𝑦 ∣ 𝜑} ↔ [𝑥 / 𝑦]𝜑) | ||
| Theorem | wl-clabtv 38096* | Using class abstraction in a context, requiring 𝑥 and 𝜑 disjoint, but based on fewer axioms than wl-clabt 38097. (Contributed by Wolf Lammen, 29-May-2023.) |
| ⊢ (𝜑 → {𝑥 ∣ 𝜓} = {𝑥 ∣ (𝜑 → 𝜓)}) | ||
| Theorem | wl-clabt 38097 | Using class abstraction in a context. For a version based on fewer axioms see wl-clabtv 38096. (Contributed by Wolf Lammen, 29-May-2023.) |
| ⊢ Ⅎ𝑥𝜑 ⇒ ⊢ (𝜑 → {𝑥 ∣ 𝜓} = {𝑥 ∣ (𝜑 → 𝜓)}) | ||
| Theorem | wl-eujustlem1 38098* | Version of cbvexvw 2060 with references to ax-6 1990 listed as antecedents. (Contributed by Wolf Lammen, 18-Feb-2026.) |
| ⊢ (𝑥 = 𝑦 → (𝜑 ↔ 𝜓)) ⇒ ⊢ ((∀𝑦∃𝑥 𝑥 = 𝑦 ∧ ∀𝑥∃𝑦 𝑥 = 𝑦) → (∃𝑥𝜑 ↔ ∃𝑦𝜓)) | ||
| Theorem | rabiun 38099* | Abstraction restricted to an indexed union. (Contributed by Brendan Leahy, 26-Oct-2017.) |
| ⊢ {𝑥 ∈ ∪ 𝑦 ∈ 𝐴 𝐵 ∣ 𝜑} = ∪ 𝑦 ∈ 𝐴 {𝑥 ∈ 𝐵 ∣ 𝜑} | ||
| Theorem | iundif1 38100* | Indexed union of class difference with the subtrahend held constant. (Contributed by Brendan Leahy, 6-Aug-2018.) |
| ⊢ ∪ 𝑥 ∈ 𝐴 (𝐵 ∖ 𝐶) = (∪ 𝑥 ∈ 𝐴 𝐵 ∖ 𝐶) | ||
| < Previous Next > |
| Copyright terms: Public domain | < Previous Next > |