HomeHome Metamath Proof Explorer
Theorem List (p. 375 of 491)
< 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:    Metamath Proof Explorer  Metamath Proof Explorer
(1-30946)
  Hilbert Space Explorer  Hilbert Space Explorer
(30947-32469)
  Users' Mathboxes  Users' Mathboxes
(32470-49035)
 

Theorem List for Metamath Proof Explorer - 37401-37500   *Has distinct variable group(s)
TypeLabelDescription
Statement
 
Axiomax-luk1 37401 1 of 3 axioms for propositional calculus due to Lukasiewicz. Copy of luk-1 1651 and imim1 83, but introduced as an axiom. It focuses on a basic property of a valid implication, namely that the consequent has to be true whenever the antecedent is. So if 𝜑 and 𝜓 are somehow parametrized expressions, then 𝜑𝜓 states that 𝜑 strengthen 𝜓, in that 𝜑 holds only for a (often proper) subset of those parameters making 𝜓 true. We easily accept, that when 𝜓 is stronger than 𝜒 and, at the same time 𝜑 is stronger than 𝜓, then 𝜑 must be stronger than 𝜒. This transitivity is expressed in this axiom.

A particular result of this strengthening property comes into play if the antecedent holds unconditionally. Then the consequent must hold unconditionally as well. This specialization is the foundational idea behind logical conclusion. Such conclusion is best expressed in so-called immediate versions of this axiom like imim1i 63 or syl 17. Note that these forms are weaker replacements (i.e. just frequent specialization) of the closed form presented here, hence a mere convenience.

We can identify in this axiom up to three antecedents, followed by a consequent. The number of antecedents is not really fixed; the fewer we are willing to "see", the more complex the consequent grows. On the other side, since 𝜒 is a variable capable of assuming an implication itself, we might find even more antecedents after some substitution of 𝜒. This shows that the ideas of antecedent and consequent in expressions like this depends on, and can adapt to, our current interpretation of the whole expression.

In this axiom, up to two antecedents happen to be of complex nature themselves, i.e. are an embedded implication. Logically, this axiom is a compact notion of simpler expressions, which I will later coin implication chains. Herein all antecedents and the consequent appear as simple variables, or their negation. Any propositional expression is equivalent to a set of such chains. This axiom, for example, is dissected into following chains, from which it can be recovered losslessly:

(𝜓 → (𝜒 → (𝜑𝜒))); 𝜑 → (𝜒 → (𝜑𝜒))); (𝜓 → (¬ 𝜓 → (𝜑𝜒))); 𝜑 → (¬ 𝜓 → (𝜑𝜒))). (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.)

((𝜑𝜓) → ((𝜓𝜒) → (𝜑𝜒)))
 
Axiomax-luk2 37402 2 of 3 axioms for propositional calculus due to Lukasiewicz. Copy of luk-2 1652 or pm2.18 128, but introduced as an axiom. The core idea behind this axiom is, that if something can be implied from both an antecedent, and separately from its negation, then the antecedent is irrelevant to the consequent, and can safely be dropped. This is perhaps better seen from the following slightly extended version (related to pm2.65 193):

((𝜑𝜑) → ((¬ 𝜑𝜑) → 𝜑)). (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.)

((¬ 𝜑𝜑) → 𝜑)
 
Axiomax-luk3 37403 3 of 3 axioms for propositional calculus due to Lukasiewicz. Copy of luk-3 1653 and pm2.24 124, but introduced as an axiom. One might think that the similar pm2.21 123 𝜑 → (𝜑𝜓)) is a valid replacement for this axiom. But this is not true, ax-3 8 is not derivable from this modification. This can be shown by designing carefully operators ¬ and on a finite set of primitive statements. In propositional logic such statements are and , but we can assume more and other primitives in our universe of statements. So we denote our primitive statements as phi0 , phi1 and phi2. The actual meaning of the statements are not important in this context, it rather counts how they behave under our operations ¬ and , and which of them we assume to hold unconditionally (phi1, phi2). For our disproving model, I give that information in tabular form below. The interested reader may check by hand, that all possible interpretations of ax-mp 5, ax-luk1 37401, ax-luk2 37402 and pm2.21 123 result in phi1 or phi2, meaning they always hold. But for wl-luk-ax3 37415 we can find a counter example resulting in phi0, not a statement always true. The verification of a particular set of axioms in a given model is tedious and error prone, so I wrote a computer program, first checking this for me, and second, hunting for a counter example. Here is the result, after 9165 fruitlessly computer generated models:

ax-3 fails for phi2, phi2
number of statements: 3
always true phi1 phi2

Negation is defined as
----------------------------------------------------------------------
-. phi0-. phi1-. phi2
phi1phi0phi1

Implication is defined as
----------------------------------------------------------------------
p->qq: phi0q: phi1q: phi2
p: phi0phi1phi1phi1
p: phi1phi0phi1phi1
p: phi2phi0phi0phi0

(Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.)
(𝜑 → (¬ 𝜑𝜓))
 
21.22.1  1. Bootstrapping
 
Theoremwl-section-boot 37404 In this section, I provide the first steps needed for convenient proving. The presented theorems follow no common concept other than being useful in themselves, and apt to rederive ax-1 6, ax-2 7 and ax-3 8. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
𝜑       𝜑
 
Theoremwl-luk-imim1i 37405 Inference adding common consequents in an implication, thereby interchanging the original antecedent and consequent. Copy of imim1i 63 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.)
(𝜑𝜓)       ((𝜓𝜒) → (𝜑𝜒))
 
Theoremwl-luk-syl 37406 An inference version of the transitive laws for implication luk-1 1651. Copy of syl 17 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑𝜓)    &   (𝜓𝜒)       (𝜑𝜒)
 
Theoremwl-luk-imtrid 37407 A syllogism rule of inference. The first premise is used to replace the second antecedent of the second premise. Copy of syl5 34 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑𝜓)    &   (𝜒 → (𝜓𝜃))       (𝜒 → (𝜑𝜃))
 
Theoremwl-luk-pm2.18d 37408 Deduction based on reductio ad absurdum. Copy of pm2.18d 127 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑 → (¬ 𝜓𝜓))       (𝜑𝜓)
 
Theoremwl-luk-con4i 37409 Inference rule. Copy of con4i 114 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
𝜑 → ¬ 𝜓)       (𝜓𝜑)
 
Theoremwl-luk-pm2.24i 37410 Inference rule. Copy of pm2.24i 150 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
𝜑       𝜑𝜓)
 
Theoremwl-luk-a1i 37411 Inference rule. Copy of a1i 11 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
𝜑       (𝜓𝜑)
 
Theoremwl-luk-mpi 37412 A nested modus ponens inference. Copy of mpi 20 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
𝜓    &   (𝜑 → (𝜓𝜒))       (𝜑𝜒)
 
Theoremwl-luk-imim2i 37413 Inference adding common antecedents in an implication. Copy of imim2i 16 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑𝜓)       ((𝜒𝜑) → (𝜒𝜓))
 
Theoremwl-luk-imtrdi 37414 A syllogism rule of inference. The second premise is used to replace the consequent of the first premise. Copy of syl6 35 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑 → (𝜓𝜒))    &   (𝜒𝜃)       (𝜑 → (𝜓𝜃))
 
Theoremwl-luk-ax3 37415 ax-3 8 proved from Lukasiewicz's axioms. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
((¬ 𝜑 → ¬ 𝜓) → (𝜓𝜑))
 
Theoremwl-luk-ax1 37416 ax-1 6 proved from Lukasiewicz's axioms. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑 → (𝜓𝜑))
 
Theoremwl-luk-pm2.27 37417 This theorem, called "Assertion", can be thought of as closed form of modus ponens ax-mp 5. Theorem *2.27 of [WhiteheadRussell] p. 104. Copy of pm2.27 42 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑 → ((𝜑𝜓) → 𝜓))
 
Theoremwl-luk-com12 37418 Inference that swaps (commutes) antecedents in an implication. Copy of com12 32 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑 → (𝜓𝜒))       (𝜓 → (𝜑𝜒))
 
Theoremwl-luk-pm2.21 37419 From a wff and its negation, anything follows. Theorem *2.21 of [WhiteheadRussell] p. 104. Also called the Duns Scotus law. Copy of pm2.21 123 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
𝜑 → (𝜑𝜓))
 
Theoremwl-luk-con1i 37420 A contraposition inference. Copy of con1i 147 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
𝜑𝜓)       𝜓𝜑)
 
Theoremwl-luk-ja 37421 Inference joining the antecedents of two premises. Copy of ja 186 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
𝜑𝜒)    &   (𝜓𝜒)       ((𝜑𝜓) → 𝜒)
 
Theoremwl-luk-imim2 37422 A closed form of syllogism (see syl 17). Theorem *2.05 of [WhiteheadRussell] p. 100. Copy of imim2 58 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
((𝜑𝜓) → ((𝜒𝜑) → (𝜒𝜓)))
 
Theoremwl-luk-a1d 37423 Deduction introducing an embedded antecedent. Copy of imim2 58 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑𝜓)       (𝜑 → (𝜒𝜓))
 
Theoremwl-luk-ax2 37424 ax-2 7 proved from Lukasiewicz's axioms. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
((𝜑 → (𝜓𝜒)) → ((𝜑𝜓) → (𝜑𝜒)))
 
Theoremwl-luk-id 37425 Principle of identity. Theorem *2.08 of [WhiteheadRussell] p. 101. Copy of id 22 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑𝜑)
 
Theoremwl-luk-notnotr 37426 Converse of double negation. Theorem *2.14 of [WhiteheadRussell] p. 102. In classical logic (our logic) this is always true. In intuitionistic logic this is not always true; in intuitionistic logic, when this is true for some 𝜑, then 𝜑 is stable. Copy of notnotr 130 with a different proof. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.)
(¬ ¬ 𝜑𝜑)
 
Theoremwl-luk-pm2.04 37427 Swap antecedents. Theorem *2.04 of [WhiteheadRussell] p. 100. This was the third axiom in Frege's logic system, specifically Proposition 8 of [Frege1879] p. 35. Copy of pm2.04 90 with a different proof. (Contributed by Wolf Lammen, 7-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.)
((𝜑 → (𝜓𝜒)) → (𝜓 → (𝜑𝜒)))
 
21.22.2  Implication chains
 
Theoremwl-section-impchain 37428 An implication like (𝜓𝜑) with one antecedent can easily be extended by prepending more and more antecedents, as in (𝜒 → (𝜓𝜑)) or (𝜃 → (𝜒 → (𝜓𝜑))). I call these expressions implication chains, and the number of antecedents (number of nodes minus one) denotes their length. A given length often marks just a required minimum value, since the consequent 𝜑 itself may represent an implication, or even an implication chain, such hiding part of the whole chain. As an extension, it is useful to consider a single variable 𝜑 as a degenerate implication chain of length zero.

Implication chains play a particular role in logic, as all propositional expressions turn out to be convertible to one or more implication chains, their nodes as simple as a variable, or its negation.

So there is good reason to focus on implication chains as a sort of normalized expressions, and build some general theorems around them, with proofs using recursive patterns. This allows for theorems referring to longer and longer implication chains in an automated way.

The theorem names in this section contain the text fragment 'impchain' to point out their relevance to implication chains, followed by a number indicating the (minimal) length of the longest chain involved. (Contributed by Wolf Lammen, 6-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.)

𝜑       𝜑
 
Theoremwl-impchain-mp-x 37429 This series of theorems provide a means of exchanging the consequent of an implication chain via a simple implication. In the main part, Theorems ax-mp 5, syl 17, syl6 35, syl8 76 form the beginning of this series. These theorems are replicated here, but with proofs that aim at a recursive scheme, allowing to base a proof on that of the previous one in the series. (Contributed by Wolf Lammen, 17-Nov-2019.)
 
Theoremwl-impchain-mp-0 37430 This theorem is the start of a proof recursion scheme where we replace the consequent of an implication chain. The number '0' in the theorem name indicates that the modified chain has no antecedents.

This theorem is in fact a copy of ax-mp 5, and is repeated here to emphasize the recursion using similar theorem names. (Contributed by Wolf Lammen, 6-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.)

𝜓    &   (𝜓𝜑)       𝜑
 
Theoremwl-impchain-mp-1 37431 This theorem is in fact a copy of wl-luk-syl 37406, and repeated here to demonstrate a recursive proof scheme. The number '1' in the theorem name indicates that a chain of length 1 is modified. (Contributed by Wolf Lammen, 6-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜒𝜓)    &   (𝜓𝜑)       (𝜒𝜑)
 
Theoremwl-impchain-mp-2 37432 This theorem is in fact a copy of wl-luk-imtrdi 37414, and repeated here to demonstrate a recursive proof scheme. The number '2' in the theorem name indicates that a chain of length 2 is modified. (Contributed by Wolf Lammen, 6-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜃 → (𝜒𝜓))    &   (𝜓𝜑)       (𝜃 → (𝜒𝜑))
 
Theoremwl-impchain-com-1.x 37433 It is often convenient to have the antecedent under focus in first position, so we can apply immediate theorem forms (as opposed to deduction, tautology form). This series of theorems swaps the first with the last antecedent in an implication chain. This kind of swapping is self-inverse, whence we prefer it over, say, rotating theorems. A consequent can hide a tail of a longer chain, so theorems of this series appear as swapping a pair of antecedents with fixed offsets. This form of swapping antecedents is flexible enough to allow for any permutation of antecedents in an implication chain.

The first elements of this series correspond to com12 32, com13 88, com14 96 and com15 101 in the main part.

The proofs of this series aim at automated proving using a simple recursive scheme. It employs the previous theorem in the series along with a sample from the wl-impchain-mp-x 37429 series developed before. (Contributed by Wolf Lammen, 17-Nov-2019.)

 
Theoremwl-impchain-com-1.1 37434 A degenerate form of antecedent swapping. The number '1' in the theorem name indicates that it handles a chain of length 1.

Since there is just one antecedent in the chain, there is nothing to swap. Nondegenerated forms begin with wl-impchain-com-1.2 37435, for more see there. (Contributed by Wolf Lammen, 7-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.)

(𝜓𝜑)       (𝜓𝜑)
 
Theoremwl-impchain-com-1.2 37435 This theorem is in fact a copy of wl-luk-com12 37418, and repeated here to demonstrate a simple proof scheme. The number '2' in the theorem name indicates that a chain of length 2 is modified.

See wl-impchain-com-1.x 37433 for more information how this proof is generated. (Contributed by Wolf Lammen, 7-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.)

(𝜒 → (𝜓𝜑))       (𝜓 → (𝜒𝜑))
 
Theoremwl-impchain-com-1.3 37436 This theorem is in fact a copy of com13 88, and repeated here to demonstrate a simple proof scheme. The number '3' in the theorem name indicates that a chain of length 3 is modified.

See wl-impchain-com-1.x 37433 for more information how this proof is generated. (Contributed by Wolf Lammen, 7-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.)

(𝜃 → (𝜒 → (𝜓𝜑)))       (𝜓 → (𝜒 → (𝜃𝜑)))
 
Theoremwl-impchain-com-1.4 37437 This theorem is in fact a copy of com14 96, and repeated here to demonstrate a simple proof scheme. The number '4' in the theorem name indicates that a chain of length 4 is modified.

See wl-impchain-com-1.x 37433 for more information how this proof is generated. (Contributed by Wolf Lammen, 7-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.)

(𝜂 → (𝜃 → (𝜒 → (𝜓𝜑))))       (𝜓 → (𝜃 → (𝜒 → (𝜂𝜑))))
 
Theoremwl-impchain-com-n.m 37438 This series of theorems allow swapping any two antecedents in an implication chain. The theorem names follow a pattern wl-impchain-com-n.m with integral numbers n < m, that swaps the m-th antecedent with n-th one in an implication chain. It is sufficient to restrict the length of the chain to m, too, since the consequent can be assumed to be the tail right of the m-th antecedent of any arbitrary sized implication chain. We further assume n > 1, since the wl-impchain-com-1.x 37433 series already covers the special case n = 1.

Being able to swap any two antecedents in an implication chain lays the foundation of permuting its antecedents arbitrarily.

The proofs of this series aim at automated proofing using a simple scheme. Any instance of this series is a triple step of swapping the first and n-th antecedent, then the first and the m-th, then the first and the n-th antecedent again. Each of these steps is an instance of the wl-impchain-com-1.x 37433 series. (Contributed by Wolf Lammen, 17-Nov-2019.)

 
Theoremwl-impchain-com-2.3 37439 This theorem is in fact a copy of com23 86. It starts a series of theorems named after wl-impchain-com-n.m 37438. For more information see there. (Contributed by Wolf Lammen, 12-Nov-2019.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜃 → (𝜒 → (𝜓𝜑)))       (𝜃 → (𝜓 → (𝜒𝜑)))
 
Theoremwl-impchain-com-2.4 37440 This theorem is in fact a copy of com24 95. It is another instantiation of theorems named after wl-impchain-com-n.m 37438. For more information see there. (Contributed by Wolf Lammen, 17-Nov-2019.) (Proof modification is discouraged.) (New usage is discouraged.)
(𝜂 → (𝜃 → (𝜒 → (𝜓𝜑))))       (𝜂 → (𝜓 → (𝜒 → (𝜃𝜑))))
 
Theoremwl-impchain-com-3.2.1 37441 This theorem is in fact a copy of com3r 87. The proof is an example of how to arrive at arbitrary permutations of antecedents, using only swapping theorems. The recursion principle is to first swap the correct antecedent to the position just before the consequent, and then employ a theorem handling an implication chain of length one less to reorder the others. (Contributed by Wolf Lammen, 17-Nov-2019.) (Proof modification is discouraged.) (New usage is discouraged.)
(𝜃 → (𝜒 → (𝜓𝜑)))       (𝜓 → (𝜃 → (𝜒𝜑)))
 
Theoremwl-impchain-a1-x 37442 If an implication chain is assumed (hypothesis) or proven (theorem) to hold, then we may add any extra antecedent to it, without changing its truth. This is expressed in its simplest form in wl-luk-a1i 37411, that allows prepending an arbitrary antecedent to an implication chain. Using our antecedent swapping theorems described in wl-impchain-com-n.m 37438, we may then move such a prepended antecedent to any desired location within all antecedents. The first series of theorems of this kind adds a single antecedent somewhere to an implication chain. The appended number in the theorem name indicates its position within all antecedents, 1 denoting the head position. A second theorem series extends this idea to multiple additions (TODO).

Adding antecedents to an implication chain usually weakens their universality. The consequent afterwards depends on more conditions than before, which renders the implication chain less versatile. So you find this proof technique mostly when you adjust a chain to a hypothesis of a rule. A common case are syllogisms merging two implication chains into one.

The first elements of the first series correspond to a1i 11, a1d 25 and a1dd 50 in the main part.

The proofs of this series aim at automated proving using a simple recursive scheme. It employs the previous theorem in the series along with a sample from the wl-impchain-com-1.x 37433 series developed before. (Contributed by Wolf Lammen, 20-Jun-2020.)

 
Theoremwl-impchain-a1-1 37443 Inference rule, a copy of a1i 11. Head start of a recursive proof pattern. (Contributed by Wolf Lammen, 20-Jun-2020.) (New usage is discouraged.) (Proof modification is discouraged.)
𝜑       (𝜓𝜑)
 
Theoremwl-impchain-a1-2 37444 Inference rule, a copy of a1d 25. First recursive proof based on the previous instance. (Contributed by Wolf Lammen, 20-Jun-2020.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑𝜓)       (𝜑 → (𝜒𝜓))
 
Theoremwl-impchain-a1-3 37445 Inference rule, a copy of a1dd 50. A recursive proof depending on previous instances, and demonstrating the proof pattern. (Contributed by Wolf Lammen, 20-Jun-2020.) (New usage is discouraged.) (Proof modification is discouraged.)
(𝜑 → (𝜓𝜒))       (𝜑 → (𝜓 → (𝜃𝜒)))
 
21.22.3  Theorems around the conditional operator
 
Theoremwl-ifp-ncond1 37446 If one case of an if- condition is false, the other automatically follows. (Contributed by Wolf Lammen, 21-Jul-2024.)
𝜓 → (if-(𝜑, 𝜓, 𝜒) ↔ (¬ 𝜑𝜒)))
 
Theoremwl-ifp-ncond2 37447 If one case of an if- condition is false, the other automatically follows. (Contributed by Wolf Lammen, 21-Jul-2024.)
𝜒 → (if-(𝜑, 𝜓, 𝜒) ↔ (𝜑𝜓)))
 
Theoremwl-ifpimpr 37448 If one case of an if- condition is a consequence of the other, the expression in df-ifp 1063 can be shortened. (Contributed by Wolf Lammen, 12-Jun-2024.)
((𝜒𝜓) → (if-(𝜑, 𝜓, 𝜒) ↔ ((𝜑𝜓) ∨ 𝜒)))
 
Theoremwl-ifp4impr 37449 If one case of an if- condition is a consequence of the other, the expression in dfifp4 1066 can be shortened. (Contributed by Wolf Lammen, 18-Jun-2024.)
((𝜒𝜓) → (if-(𝜑, 𝜓, 𝜒) ↔ ((𝜑𝜒) ∧ 𝜓)))
 
21.22.4  Alternative development of hadd, cadd
 
Theoremwl-df-3xor 37450 Alternative definition of whad 1589 based on hadifp 1601. See df-had 1590 to learn how it is currently introduced. The only use case so far is being a binary addition primitive for df-sad 16484. If inputs are viewed as binary digits (true is 1, false is 0), the result is what a binary single-bit addition with carry-in yields in the low bit of their sum.

The core meaning is to check whether an odd number of three inputs are true. The operation tests this for two inputs. So, if the first input is true, the two remaining inputs need to amount to an even (or: not an odd) number, else to an odd number.

The idea of an odd number of inputs being true carries over to other than 3 inputs by recursion: In an informal notation we depend the case with n+1 inputs, 𝜑 being the additional one, recursively on that of n inputs: "(n+1)-xor" ↔ if-(𝜑, ¬ "n-xor" , "n-xor" ). The base case is "0-xor" being , because zero inputs never contain an odd number among them. Then we find, after simplifying, in our informal notation:

"2-xor" (𝜑, 𝜓) ↔ (𝜑𝜓) (see wl-2xor 37465).

Our definition here follows exactly the above pattern.

In microprocessor technology an addition limited to a range (a one-bit range in our case) is called a "wrap-around operation". The name "had", as in df-had 1590, by contrast, is somehow suggestive of a "half adder" instead. Such a circuit, for one, takes two inputs only, no carry-in, and then yields two outputs - both sum and carry. That's why we use "3xor" instead of "had" here. (Contributed by Wolf Lammen, 24-Apr-2024.)

(hadd(𝜑, 𝜓, 𝜒) ↔ if-(𝜑, ¬ (𝜓𝜒), (𝜓𝜒)))
 
Theoremwl-df3xor2 37451 Alternative definition of wl-df-3xor 37450, using triple exclusive disjunction, or XOR3. You can add more input by appending each one with a . Copy of hadass 1593. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 1-May-2024.)
(hadd(𝜑, 𝜓, 𝜒) ↔ (𝜑 ⊻ (𝜓𝜒)))
 
Theoremwl-df3xor3 37452 Alternative form of wl-df3xor2 37451. Copy of df-had 1590. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 1-May-2024.)
(hadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑𝜓) ⊻ 𝜒))
 
Theoremwl-3xortru 37453 If the first input is true, then triple xor is equivalent to the biconditionality of the other two inputs. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 24-Apr-2024.)
(𝜑 → (hadd(𝜑, 𝜓, 𝜒) ↔ ¬ (𝜓𝜒)))
 
Theoremwl-3xorfal 37454 If the first input is false, then triple xor is equivalent to the exclusive disjunction of the other two inputs. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 29-Apr-2024.)
𝜑 → (hadd(𝜑, 𝜓, 𝜒) ↔ (𝜓𝜒)))
 
Theoremwl-3xorbi 37455 Triple xor can be replaced with a triple biconditional. Unlike , you cannot add more inputs by simply stacking up more biconditionals, and still express an "odd number of inputs". (Contributed by Wolf Lammen, 24-Apr-2024.)
(hadd(𝜑, 𝜓, 𝜒) ↔ (𝜑 ↔ (𝜓𝜒)))
 
Theoremwl-3xorbi2 37456 Alternative form of wl-3xorbi 37455. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 24-Apr-2024.)
(hadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑𝜓) ↔ 𝜒))
 
Theoremwl-3xorbi123d 37457 Equivalence theorem for triple xor. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 24-Apr-2024.)
(𝜑 → (𝜓𝜒))    &   (𝜑 → (𝜃𝜏))    &   (𝜑 → (𝜂𝜁))       (𝜑 → (hadd(𝜓, 𝜃, 𝜂) ↔ hadd(𝜒, 𝜏, 𝜁)))
 
Theoremwl-3xorbi123i 37458 Equivalence theorem for triple xor. Copy of hadbi123i 1592. (Contributed by Mario Carneiro, 4-Sep-2016.)
(𝜓𝜒)    &   (𝜃𝜏)    &   (𝜂𝜁)       (hadd(𝜓, 𝜃, 𝜂) ↔ hadd(𝜒, 𝜏, 𝜁))
 
Theoremwl-3xorrot 37459 Rotation law for triple xor. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 24-Apr-2024.)
(hadd(𝜑, 𝜓, 𝜒) ↔ hadd(𝜓, 𝜒, 𝜑))
 
Theoremwl-3xorcoma 37460 Commutative law for triple xor. Copy of hadcoma 1595. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 17-Dec-2023.)
(hadd(𝜑, 𝜓, 𝜒) ↔ hadd(𝜓, 𝜑, 𝜒))
 
Theoremwl-3xorcomb 37461 Commutative law for triple xor. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 24-Apr-2024.)
(hadd(𝜑, 𝜓, 𝜒) ↔ hadd(𝜑, 𝜒, 𝜓))
 
Theoremwl-3xornot1 37462 Flipping the first input flips the triple xor. wl-3xorrot 37459 can rotate any input to the front, so flipping any one of them does the same. (Contributed by Wolf Lammen, 1-May-2024.)
(¬ hadd(𝜑, 𝜓, 𝜒) ↔ hadd(¬ 𝜑, 𝜓, 𝜒))
 
Theoremwl-3xornot 37463 Triple xor distributes over negation. Copy of hadnot 1598. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 11-Jul-2020.)
(¬ hadd(𝜑, 𝜓, 𝜒) ↔ hadd(¬ 𝜑, ¬ 𝜓, ¬ 𝜒))
 
Theoremwl-1xor 37464 In the recursive scheme

"(n+1)-xor" ↔ if-(𝜑, ¬ "n-xor" , "n-xor" )

we set n = 0 to formally arrive at an expression for "1-xor". The base case "0-xor" is replaced with , as a sequence of 0 inputs never has an odd number being part of it. (Contributed by Wolf Lammen, 11-May-2024.)

(if-(𝜓, ¬ ⊥, ⊥) ↔ 𝜓)
 
Theoremwl-2xor 37465 In the recursive scheme

"(n+1)-xor" ↔ if-(𝜑, ¬ "n-xor" , "n-xor" )

we set n = 1 to formally arrive at an expression for "2-xor". It is based on "1-xor", that is known to be equivalent to its only input (see wl-1xor 37464). (Contributed by Wolf Lammen, 11-May-2024.)

(if-(𝜑, ¬ 𝜓, 𝜓) ↔ (𝜑𝜓))
 
Theoremwl-df-3mintru2 37466 Alternative definition of wcad 1602. See df-cad 1603 to learn how it is currently introduced. The only use case so far is being a binary addition primitive for df-sad 16484. If inputs are viewed as binary digits (true is 1, false is 0), the result is whether ordinary binary full addition yields a carry bit. That is what the name df-cad 1603 is derived from: "carry of an addition". Here we stick with this abbreviated form of our notation above, but still use "adder carry" as a shorthand for "at least 2 out of 3" in text.

The core meaning is to check whether at least two of three inputs are true. So, if the first input is true, at least one of the two remaining must be true, else even both. This theorem is the in-between of "at least 1 out of 3", given by triple disjunction df-3or 1087, and "(at least) 3 out of 3", expressed by triple conjunction df-3an 1088.

The notion above can be generalized to other input numbers with other minimum values as follows. Let us introduce informally a logical operation "n-mintru-m" taking n inputs, and requiring at least m of them be true to let the operation itself be true. There now exists a recursive scheme to define it for increasing n, m. We start with the base case n = 0. Here "n-mintru-0" is equivalent to (any sequence of inputs contains at least zero true inputs), the other "0-mintru-m" is for any m > 0 equivalent to , because a sequence of zero inputs never has a positive number of them true. The general case adds a new input 𝜑 to a given sequence of n inputs, and reduces that case for all integers m to that of the smaller sequence by recursion, informally written as:

"(n+1)-mintru-(m+1)" ↔ if-(𝜑, "n-mintru-m" , "n-mintru-(m+1)" )

Our definition here matches "3-mintru-2" with inputs 𝜑, 𝜓 and 𝜒. Starting from the base cases we find after simplifications: "2-mintru-2" (𝜓, 𝜒) ↔ (𝜓𝜒) (wl-2mintru2 37473), and "2-mintru-1" (𝜓, 𝜒) ↔ (𝜓𝜒) (wl-2mintru1 37472). Plugging these expressions into the formula above for n = 3, m = 2 yields exactly our definition here. (Contributed by Wolf Lammen, 2-May-2024.)

(cadd(𝜑, 𝜓, 𝜒) ↔ if-(𝜑, (𝜓𝜒), (𝜓𝜒)))
 
Theoremwl-df2-3mintru2 37467 The adder carry in disjunctive normal form. An alternative highly symmetric definition emphasizing the independence of order of the inputs 𝜑, 𝜓 and 𝜒. Copy of cador 1604. (Contributed by Mario Carneiro, 4-Sep-2016.) df-cad redefined. (Revised by Wolf Lammen, 12-Jun-2024.)
(cadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑𝜓) ∨ (𝜑𝜒) ∨ (𝜓𝜒)))
 
Theoremwl-df3-3mintru2 37468 The adder carry in conjunctive normal form. An alternative highly symmetric definition emphasizing the independence of order of the inputs 𝜑, 𝜓 and 𝜒. Copy of cadan 1605. (Contributed by Mario Carneiro, 4-Sep-2016.) df-cad redefined. (Revised by Wolf Lammen, 18-Jun-2024.)
(cadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑𝜓) ∧ (𝜑𝜒) ∧ (𝜓𝜒)))
 
Theoremwl-df4-3mintru2 37469 An alternative definition of the adder carry. Copy of df-cad 1603. (Contributed by Mario Carneiro, 4-Sep-2016.) df-cad redefined. (Revised by Wolf Lammen, 19-Jun-2024.)
(cadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑𝜓) ∨ (𝜒 ∧ (𝜑𝜓))))
 
Theoremwl-1mintru1 37470 Using the recursion formula:

"(n+1)-mintru-(m+1)" ↔ if-(𝜑, "n-mintru-m" , "n-mintru-(m+1)" )

for "1-mintru-1" (meaning "at least 1 out of 1 input is true") by plugging in n = 0, m = 0, and simplifying. The expressions "0-mintru-0" and "0-mintru-1" are base cases of the recursion, meaning "in a sequence of zero inputs, at least 0 / 1 input is true", respectively equivalent to / .

Negating an "n-mintru1" operation means: All n inputs 𝜑.. 𝜃 are false. This is also conveniently expressed as ¬ (𝜑.. 𝜃). Applying this idea here (n = 1) yields the obvious result that in an input sequence of size 1 only then all will be false, if its single input is. (Contributed by Wolf Lammen, 10-May-2024.)

(if-(𝜒, ⊤, ⊥) ↔ 𝜒)
 
Theoremwl-1mintru2 37471 Using the recursion formula:

"(n+1)-mintru-(m+1)" ↔ if-(𝜑, "n-mintru-m" , "n-mintru-(m+1)" )

for "1-mintru-2" (meaning "at least 2 out of a single input are true") by plugging in n = 0, m = 1, and simplifying. The expressions "0-mintru-1" and "0-mintru-2" are base cases of the recursion, meaning "in a sequence of zero inputs at least 1 / 2 input is true", evaluate both to .

Since no sequence of inputs has a longer subsequence of whatever property, the resulting is to be expected.

Negating a "n-mintru2" operation has an interesting interpretation: at most one input is true, so all inputs exclude each other mutually. Such an exclusion is expressed by a NAND operation (𝜑𝜓), not by a XOR. Applying this idea here (n = 1) leads to the obvious "In a single input sequence 'at most one is true' always holds". (Contributed by Wolf Lammen, 10-May-2024.)

(if-(𝜒, ⊥, ⊥) ↔ ⊥)
 
Theoremwl-2mintru1 37472 Using the recursion formula

"(n+1)-mintru-(m+1)" ↔ if-(𝜑, "n-mintru-m" , "n-mintru-(m+1)" )

for "2-mintru-1" (meaning "at least 1 out of 2 inputs is true") by plugging in n = 1, m = 0, and simplifying. The expression "1-mintru-0" is a base case (meaning at least zero inputs out of 1 are true), evaluating to , and wl-1mintru1 37470 shows "1-mintru-1" is equivalent to the only input.

Negating an "n-mintru1" operation means: All n inputs 𝜑.. 𝜃 are false. This is also conveniently expressed as ¬ (𝜑.. 𝜃), in accordance with the result here. (Contributed by Wolf Lammen, 10-May-2024.)

(if-(𝜓, ⊤, 𝜒) ↔ (𝜓𝜒))
 
Theoremwl-2mintru2 37473 Using the recursion formula

"(n+1)-mintru-(m+1)" ↔ if-(𝜑, "n-mintru-m" , "n-mintru-(m+1)" )

for "2-mintru-2" (meaning "2 out of 2 inputs are true") by plugging in n = 1, m = 1, and simplifying. See wl-1mintru1 37470 and wl-1mintru2 37471 to see that "1-mintru-1" / "1-mintru-2" evaluate to 𝜒 / respectively.

Negating a "n-mintru2" operation means 'at most one input is true', so all inputs exclude each other mutually. Such an exclusion is expressed by a NAND operation (𝜑𝜓), not by a XOR. Applying this idea here (n = 2) yields the expected NAND in case of a pair of inputs. (Contributed by Wolf Lammen, 10-May-2024.)

(if-(𝜓, 𝜒, ⊥) ↔ (𝜓𝜒))
 
Theoremwl-df3maxtru1 37474 Assuming "(n+1)-maxtru1" ↔ ¬ "(n+1)-mintru-2", we can deduce from the recursion formula given in wl-df-3mintru2 37466, that a similiar one

"(n+1)-maxtru1" ↔ if-(𝜑,-. "n-mintru-1" , "n-maxtru1" )

is valid for expressing 'at most one input is true'. This can also be rephrased as a mutual exclusivity of propositional expressions (no two of a sequence of inputs can simultaneously be true). Of course, this suggests that all inputs depend on variables 𝜂, 𝜁... Whatever wellformed expression we plugin for these variables, it will render at most one of the inputs true.

The here introduced mutual exclusivity is possibly useful for case studies, where we want the cases be sort of 'disjoint'. One can further imagine that a complete case scenario demands that the 'at most' is sharpened to 'exactly one'. This does not impose any difficulty here, as one of the inputs will then be the negation of all others be or'ed. As one input is determined, 'at most one' is sufficient to describe the general form here.

Since cadd is an alias for 'at least 2 out of three are true', its negation is under focus here. (Contributed by Wolf Lammen, 23-Jun-2024.)

(¬ cadd(𝜑, 𝜓, 𝜒) ↔ if-(𝜑, (𝜓 𝜒), (𝜓𝜒)))
 
21.22.5  An alternative axiom ~ ax-13
 
Axiomax-wl-13v 37475* A version of ax13v 2375 with a distinctor instead of a distinct variable condition.

Had we additionally required 𝑥 and 𝑦 be distinct, too, this theorem would have been a direct consequence of ax-5 1907. So essentially this theorem states, that a distinct variable condition between set variables can be replaced with a distinctor expression. (Contributed by Wolf Lammen, 23-Jul-2021.)

(¬ ∀𝑥 𝑥 = 𝑦 → (𝑦 = 𝑧 → ∀𝑥 𝑦 = 𝑧))
 
Theoremwl-ax13lem1 37476* A version of ax-wl-13v 37475 with one distinct variable restriction dropped. For convenience, 𝑦 is kept on the right side of equations. This proof bases on ideas from NM, 24-Dec-2015. (Contributed by Wolf Lammen, 23-Jul-2021.)
(¬ ∀𝑥 𝑥 = 𝑦 → (𝑧 = 𝑦 → ∀𝑥 𝑧 = 𝑦))
 
21.22.6  Bootstrapping set theory with classes
 
Theoremwl-cleq-0 37477*
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 and the following texts should be read as explorations rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Preface

Three specific theorems are under focus in the following pages: df-cleq 2726, df-clel 2813, and df-clab 2712. Only technical concepts necessary to explain these will be introduced, along with a selection of supporting theorems. The three theorems are central to a bootstrapping process that introduces objects into set.mm. We will first examine how Metamath in general creates basic new ideas from scratch, and then look at how these methods are applied specifically to classes, capable of representing objects in set theory.

In Zermelo-Fraenkel set theory with the axiom of choice (ZFC), these three theorems are (more or less) independent of each other, which means they can be introduced in different orders. From my own experience, another order has pedagogical advantages: it helps grasping not only the overall concept better, but also the intricate details that I first found difficult to comprehend. Reordering theorems, though syntactically possible, sometimes may cause doubts when intermediate results are not strictly tied to ZFC only.

The purpose of set.mm is to provide a formal framework capable of proving the results of ZFC, provided that formulas are properly interpreted. In fact, there is freedom of interpretation. The database set.mm develops from the very beginning, where nothing is assumed or fixed, and gradually builts up to the full abstraction of ZFC. Along the way, results are only preliminary, and one may at any point branch off and pursue a different path toward another variant of set theory. This openess is already visible in axiom ax-mp 5, where the symbol can be understood as as implication, bi-conditional, or conjunction. The notation and symbol shapes are suggestive, but their interpretation is not mandatory. The point here is that Metamath, as a purely syntactic system, can sometimes allow freedoms, unavailable to semantically fixed systems, which presuppose only a single ultimate goal.

(Contributed by Wolf Lammen, 28-Sep-2025.)

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
Theoremwl-cleq-1 37478*
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 and the following texts should be read as explorations rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Grammars and Parsable contents

A Metamath program is a text-based tool. Its input consists of primarily of human-readable and editable text stored in *.mm files. For automated processing, these files follow a strict structure. This enables automated analysis of their contents, verification of proofs, proof assistance, and the generation of output files - for example, the HTML page of this dummy theorem. A set.mm file contains numerous such structured instructions serving these purposes.

This page provides a brief explanation of the general concepts behind structured text, as exemplified by set.mm. The study of structured text originated in linguistics, and later computer science formalized it further for text like data and program code. The rules describing such structures are collectively known as grammar. Metamath also introduces a grammar to support automation and establish a high degree of confidence in its correctness. It could have been described using the terminology of earlier scientific disciplines, but instead it uses its own language.

When a text exhibits a sufficiently regular structure, its form can be described by a set of syntax rules, or grammar. Such rules consist of terminal symbols (fixed, literal elements) and non-terminal symbols, which can recursively be expanded using the grammar's rewrite rules. A program component that applies a grammar to text is called a parser. The parser decomposes the text into smaller parts, called syntactic units, while often maintaining contextual information. These units may then be handed over to subsequent components for further processing, such as populating a database or generating output.

In these pages, we restrict our attention to strictly formatted material consisting of formulas with logical and mathematical content. These syntactic units are embedded in higher-level structures such as chapters, together with commands that, for example, control the HTML output.

Conceptually, the parsing process can be viewed as consisting of two stages. The top-level stage applies a simple built-in grammar to identify its structural units. Each unit is a text region marked on both sides with predefined tokens (in Metamath: keywords), beginning with the escape character "$". Text regions containing logical or mathematical formulas are then passed to a second-stage parser, which applies a different grammar. Unlike the first, this grammar is not built-in but is dynamically constructed.

In what follows, we will ignore the first stage of parsing, since its role is only to extract the relevant material embedded within text primarily intended for human readers.

(Contributed by Wolf Lammen, 18-Aug-2025.)

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
Theoremwl-cleq-2 37479*
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 and the following texts should be read as explorations rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Introducing a New Concept: Well-formed formulas

The parser that processes strictly formatted Metamath text with logical or mathematical content constructs its grammar dynamically. New syntax rules are added on the fly whenever they are needed to parse upcoming formulas. Only a minimal set of built-in rules - those required to introduce new grammar rules - is predefined; everything else must be supplied by set.mm itself as syntactic units identified by the first-stage parser. Text regions beginning with the tokens "$c" or "$v", for example, are part of such grammar extensions.

We will outline the extension process used when introducing an entirely new concept that cannot build on any prior material. As a simple example, we will trace here the steps involved in defining formulas, the expressions used for hypotheses and statements - a concept first-order logic needs from the very beginning to articulate its ideas.

1. Introduce a type code

To mark new formulas and variables later used in theorems, the constant "wff" is reserved. It abbreviates "well-formed formula", a term that already suggests that such formulas must be syntactically valid and therefore parseable to enable automatic processing.

2. Introduce variables

Variables with unique names such as 𝜑, 𝜓, ..., intended to later represent formulas of type "wff". In grammar terms, they correspond to non-terminal symbols. These variables are marked with the type "wff". Variables are fundamental in Metamath, since they enable substitution during proofs: variables of a particular type can be consistently replaced by any formula of the same type. In grammar terms, this corresponds to applying a rewrite rule. At this step, however, no rewrite rule exists; we can only substitute one "wff" variable for another. This suffices only for very elementary theorems such as idi 1.

3. Add primitive formulas

Rewrite rules describing primitive formulas of type "wff" are then added to the grammar. Typically, they describe an operator (a constant in the grammar) applied to one or more variables, possibly of different types (e.g. 𝑥𝜑, although at this stage only "wff" is available). Since variables are non-terminal symbols, more complex formulas can be constructed from primitive ones, by consistently replacing variables with any wff formula - whether involving the same operator or different ones introduced by other rewrite rules. Whenever such a replacement introduces variables again, they may in turn recursively be replaced.

If an operator takes two variables of type wff, it is called a binary connective in logic. The first such operator encountered is (𝜑𝜓). Based on its token, its intended meaning is material implication, though this interpretation is not fixed from the outset.

4. Specify the properties of primitive formulas

Once the biconditional connective is available for formulas, new connectives can be defined by specifying replacement formulas that rely solely on previously introduced material. Such definitions makes it possible to eliminate the definiens.

At the very beginning, however, this is not possible for well-formed formulas, since little or no prior material exists. Instead, the semantics of an expression such as (𝜑𝜓) are progressively constrained by axioms - that is, theorems without proof. The first such axiom for material implication is ax-mp 5, with additional axioms following later.

(Contributed by Wolf Lammen, 21-Aug-2025.)

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
Theoremwl-cleq-3 37480*
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 and the following texts should be read as explorations rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Introducing a New Concept: Classes

In wl-cleq-2 37479 we examined how the basic notion of a well-formed formula is introduced in set.mm. A similar process is used to add the notion of a class to Metamath. This process is somewhat more involved, since two parallel variants are established: sets and the broader notion of classes, which include sets (see 3a. below).

In Zermelo-Fraenkel set theory (ZF) classes will serve as a convenient shorthand that simplifies formulas and proofs. Ultimately, only sets - a part of all classes - are intended to exist as actual objects.

In the First Order Logic (FOL) portion of set.mm objects themselves are not used - only variables representing them. It is not even assumed that objects must be sets at all. In principle, the universe of discourse could consist of anything - vegetables, text strings, and so on. For this reason, the type code "setvar", used for object variables, is somewhat of a misnomer. Its final meaning - and the name that goes with it - becomes justified only in later developments.

We will now revisit the four basic steps presented in wl-cleq-2 37479, this time focusing on object variables and paying special attention to the additional complexities that arise from extending sets to classes.

1. Introduce type codes

1a. Reserve a type code for classes, specifically the grammar constant "class". Initially, this type code applies to class variables and will later, beyond these four steps, also be assigned to formulas that define specific classes, i.e. objects.

1b. Reserve a type code for set variables, represented by the grammar constant "setvar". The name itself indicates that this type code will never be assigned to a formula describing a specific set, but only to variables containing such objects.

2. Introduce variables

2a. Use variables with unique names such as 𝐴, 𝐵, ..., to represent classes. These class variables are assigned the type code "class", ensuring that only formulas of type "class" can be substituted for them during proofs.

2b. Use variables with unique names such as 𝑎, 𝑏 , ..., to represent sets. These variables are assigned the type code "setvar". During a substitution in a proof, a variable of type "setvar" may only be replaced with another variable of this type. No specific formula, or object, of this type exists.

3. Add primitive formulas

3a. Add the rewrite rule cv 1535 to set.mm, allowing variables of type "setvar" to also aquire type "class". In this way, a variable of "setvar" type can serve as a substitute for a class variable.

3b. Add the rewrite rules wcel 2105 and wceq 1536 to set.mm, making the formulas 𝐴𝐵 and 𝐴 = 𝐵 valid well-formed formulas (wff). Since variables of type "setvar" can be substituted for class variables, 𝑥𝑦 and 𝑥 = 𝑦 are also provably valid wff.

In the FOL part of set.mm, only these specific formulas play a role and are therefore treated as primitive there. The underlying universe may not contain sets, and the notion of a class is not even be required.

Additional mixed-type formulas, such as 𝑥𝐴, 𝐴𝑥, 𝑥 = 𝐴, and 𝐴 = 𝑥 exist. When the theory is later refined to distinguish between sets and classes, the results from FOL remain valid and naturally extend to these mixed cases. These cases will occasionally be examined individually in subsequent discussions.

4. Specify the properties of primitive formulas

In FOL in set.mm, the formulas 𝑥 = 𝑦 and 𝑥𝑦 cannot be derived from earlier material, and therefore cannot be defined. Instead, their fundamental properties are established through axioms, namely ax-6 1964 through ax-9 2115, ax-13 2374, and ax-ext 2705.

Similarly, axioms establish the properties of the primitive formulas 𝐴 = 𝐵 and 𝐴𝐵, ensuring that they extend the FOL counterparts 𝑥 = 𝑦 and 𝑥𝑦 in a consistent and meaningful way.

At the same time, a criterion must be developed to distinguish sets from classes. Since set variables can only be substituted by other set variables, equality must permit the assignment of class terms known to represent sets to those variables.

(Contributed by Wolf Lammen, 25-Aug-2025.)

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
Theoremwl-cleq-4 37481*
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 and the following texts should be read as explorations rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Semantics of Equality

In https://us.metamath.org/mpeuni/mmset.html#class some basic information is given about class variables, and what they are intended to represent. They range over so called class builders, i.e. definitions with type code "class". At this stage, only one such builder is explicitly available: cv 1535. Zermelo-Fraenkel set theory (ZF) introduces just one more in df-clab 2712.

Restricting ourselves to exactly these class builders is not necessary for fixing the general properties of equality between classes. Other models of set theory can still be supported at this point - even with an unlimited number of class builders. In line with the step-by-step approach of gradually closing in on ZF set theory, we introduce axioms of limited complexity, each addressing only a small number of properties.

1. **General properties of equality**

There is a broadly shared understanding of what equality between objects expresses, extending beyond mathematics or set theory. Equality must at least form an equivalence relation, where 𝑥, 𝑦, and 𝑧 are objects of the universe under consideration::

1a. Reflexivity 𝑥 = 𝑥

1b. Symmetry (𝑥 = 𝑦𝑦 = 𝑥

1c. Transitivity ((𝑥 = 𝑦𝑥 = 𝑧) → 𝑦 = 𝑧)

In addition equality must obey the Identity of Indiscernables (Leibniz's Law). It states that distinct, or unequal, objects cannot share all the same properties. In set.mm properties are expressed by formulas. Thus equal objects must always behave the same, yielding the same results when substituted in formulas.

2. **Equality in First Order Logic (FOL)**

Let us now see how FOL captures these principles. Several axioms center on equality, namely ax-6 1964, ax-7 2004, ax-8 2107, ax-9 2115 and ax-12 2174, and ax-13 . In paractice, restricted versions with distinct variable conditions are used: ax6v 1965, ax12v 2175. The unrestricted axioms together with axiom ax-13 2374 allow elimination of distinct variable conditions, but this gain is considered too minor to justify their routine use.

Equality in FOL is formalized as follows:

2a. Equality as an equivalence relation is essentially covered by ax-7 2004.

2b. For the primitive operator, Leibniz's Law is captured by ax-8 2107 and ax-9 2115.

2c. Its general form is stated in sbequ12 2248.

2d. Implicit substitution: assuming Leibniz's Law for a particular expression, there are theorems that extend its validity to other, derived expressions. Frequently, the derived expression introduces quantification over the original one.

3. **Equality between classes**

We require Leibniz's Law to hold for equality between classes. For a mixed expression 𝑥 = 𝐴 the sethood of 𝐴 should follow from that of 𝑥. Thus, the equation 𝑥 = 𝐴 can be regarded as a criterion for the sethood of 𝐴. In ZF, where only sets exist, this is expressed instead by 𝑥𝑥 = 𝐴 stating the existence of 𝐴 in the same fashion that the restricted axiom ax6ev 1966 does for set variables.

Equality between classes must still be an equivalence relation. It must also be conservative, meaning that the results described in 2. remain valid when both class variables in 𝐴 = 𝐵 are replaced by set variables. Assuming class variables are all sets, we require that ax6ev 1966, ax-7 , ax-8 , ax-9 and ax12v2 2176 are provable when free set variables are replaced by class variables. In this way, the assignment 𝑥 = 𝐴 can stand in for the syntactically impossible substitution of a set variable by a class variable, even if the class is known to contain a set.

Since in ZF we cannot quantify over a class variables, no pure class-based version of the quantified FOL axioms exist. Moreover, in ZF classes are not considered an integral part of the theory, so they need to be eliminable. This also impacts the treatment of equality if it is regarded as a primitive operation.

(Contributed by Wolf Lammen, 18-Sep-2025.)

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
Axiomax-wl-cleq 37482* 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 2726 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 2726 (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 2813 addresses this issue; df-cleq 2726 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 2757), reflexivity (eqid 2734) and symmetry (eqcom 2741). It also yields the class-level version of ax-ext 2705 (the backward direction of df-cleq 2726) holds.

If we assume 𝑥 = 𝐴 holds, then substituting the free set variable 𝑦 with 𝐴 in ax6ev 1966 and ax12v2 2176 yields provable theorems (see wl-isseteq 37485, and wl-ax12v2cl 37486). 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 2708. This shows that the class builder cv 1535 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 1536 and wcel 2105. 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 37479.

From this perspective, df-cleq 2726 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.)

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
Axiomax-wl-clel 37483* 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 2813 (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 37481, 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 2107 (see eleq2 2827) and ax-9 2115 (see eleq1 2826). Since ax-wl-cleq 37482 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 2813 by itself does not determine when a set is a member of a class. From this perspective, df-clel 2813 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 2712 fills this gap.

(Contributed by Wolf Lammen, 26-Aug-2025.)

(𝐴𝐵 ↔ ∃𝑥(𝑥 = 𝐴𝑥𝐵))
 
Theoremwl-df-clab 37484 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 2711, so it can consistently substitute for a class variable during the syntactic construction process.

**Eliminability**

The axioms ax-wl-cleq 37482 and ax-wl-clel 37483 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 1535 and df-clab 2712. 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 2728 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 2712 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 2712 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 2712 can legitimately be regarded as one.

For further material on the elimination of class abstractions, see BJ's work beginning with eliminable1 36841 and one comment in https://github.com/metamath/set.mm/pull/4971.

(Contributed by Wolf Lammen, 28-Aug-2025.)

(𝑥 ∈ {𝑦𝜑} ↔ [𝑥 / 𝑦]𝜑)
 
Theoremwl-isseteq 37485* A class equal to a set variable implies it is a set. Note that 𝐴 may be dependent on 𝑥. The consequent, resembling ax6ev 1966, is the accepted expression for the idea of a class being a set. Sometimes a simpler expression like the antecedent here, or in elisset 2820, is already sufficient to mark a class variable as a set. (Contributed by Wolf Lammen, 7-Sep-2025.)
(𝑥 = 𝐴 → ∃𝑦 𝑦 = 𝐴)
 
Theoremwl-ax12v2cl 37486* The class version of ax12v2 2176, 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 2175 is a specialization of ax12v2 2176. So any proof using ax12v 2175 will still hold if ax12v2 2176 is used instead.

Theorem ax12v2 2176 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 2174 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.)

(∃𝑦 𝑦 = 𝐴 → (𝑥 = 𝐴 → (𝜑 → ∀𝑥(𝑥 = 𝐴𝜑))))
 
21.22.7  Other stuff
 
Theoremwl-mps 37487 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.)
(𝜑 → (𝜓𝜒))    &   ((𝜑𝜒) → 𝜃)       ((𝜑𝜓) → 𝜃)
 
Theoremwl-syls1 37488 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.)
(𝜓𝜒)    &   ((𝜑𝜒) → 𝜃)       ((𝜑𝜓) → 𝜃)
 
Theoremwl-syls2 37489 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.)
(𝜑𝜓)    &   ((𝜑𝜒) → 𝜃)       ((𝜓𝜒) → 𝜃)
 
Theoremwl-embant 37490 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.)
𝜑    &   (𝜓𝜒)       ((𝜑𝜓) → 𝜒)
 
Theoremwl-orel12 37491 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.)
(((𝜑𝜓) ∧ (¬ 𝜑𝜒)) → (𝜓𝜒))
 
Theoremwl-cases2-dnf 37492 A particular instance of orddi 1011 and anddi 1012 converting between disjunctive and conjunctive normal forms, when both 𝜑 and ¬ 𝜑 appear. This theorem in fact rephrases cases2 1047, and is related to consensus 1052. I restate it here in DNF and CNF. The proof deliberately does not use df-ifp 1063 and dfifp4 1066, by which it can be shortened. (Contributed by Wolf Lammen, 21-Jun-2020.) (Proof modification is discouraged.)
(((𝜑𝜓) ∨ (¬ 𝜑𝜒)) ↔ ((¬ 𝜑𝜓) ∧ (𝜑𝜒)))
 
Theoremwl-cbvmotv 37493* 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.)
(∃*𝑥⊤ → ∃*𝑦⊤)
 
Theoremwl-moteq 37494 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.)
(∃*𝑥⊤ → 𝑦 = 𝑧)
 
Theoremwl-motae 37495 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.)
(∃*𝑢⊤ → ∀𝑥 𝑦 = 𝑧)
 
Theoremwl-moae 37496* 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 1964 in the proof, that ensures "at least one thing exists". For other equivalences see wl-euae 37497 and exists1 2658. Gerard Lang pointed out, that 𝑦𝑥𝑥 = 𝑦 with disjoint 𝑥 and 𝑦 (df-mo 2537, trut 1542) 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.)
(∃*𝑥⊤ ↔ ∀𝑥 𝑥 = 𝑦)
 
Theoremwl-euae 37497* Two ways to express "exactly one thing exists" . (Contributed by Wolf Lammen, 5-Mar-2023.)
(∃!𝑥⊤ ↔ ∀𝑥 𝑥 = 𝑦)
 
Theoremwl-nax6im 37498* 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 1959 requires us to formally assign a boolean value to an equation, say always false, unless you want to give up on exmid 894, for example. Whatever it is, we start out with the contraposition of ax-6 1964, 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.)
(¬ ∃𝑥 𝑥 = 𝑦𝜑)       (¬ ∃𝑥⊤ → 𝜑)
 
Theoremwl-hbae1 37499 This specialization of hbae 2433 does not depend on ax-11 2154. (Contributed by Wolf Lammen, 8-Aug-2021.)
(∀𝑥 𝑥 = 𝑦 → ∀𝑦𝑥 𝑥 = 𝑦)
 
Theoremwl-naevhba1v 37500* An instance of hbn1w 2043 applied to equality. (Contributed by Wolf Lammen, 7-Apr-2021.)
(¬ ∀𝑥 𝑥 = 𝑦 → ∀𝑥 ¬ ∀𝑥 𝑥 = 𝑦)
    < Previous  Next >

Page List
Jump to page: Contents  1 1-100 2 101-200 3 201-300 4 301-400 5 401-500 6 501-600 7 601-700 8 701-800 9 801-900 10 901-1000 11 1001-1100 12 1101-1200 13 1201-1300 14 1301-1400 15 1401-1500 16 1501-1600 17 1601-1700 18 1701-1800 19 1801-1900 20 1901-2000 21 2001-2100 22 2101-2200 23 2201-2300 24 2301-2400 25 2401-2500 26 2501-2600 27 2601-2700 28 2701-2800 29 2801-2900 30 2901-3000 31 3001-3100 32 3101-3200 33 3201-3300 34 3301-3400 35 3401-3500 36 3501-3600 37 3601-3700 38 3701-3800 39 3801-3900 40 3901-4000 41 4001-4100 42 4101-4200 43 4201-4300 44 4301-4400 45 4401-4500 46 4501-4600 47 4601-4700 48 4701-4800 49 4801-4900 50 4901-5000 51 5001-5100 52 5101-5200 53 5201-5300 54 5301-5400 55 5401-5500 56 5501-5600 57 5601-5700 58 5701-5800 59 5801-5900 60 5901-6000 61 6001-6100 62 6101-6200 63 6201-6300 64 6301-6400 65 6401-6500 66 6501-6600 67 6601-6700 68 6701-6800 69 6801-6900 70 6901-7000 71 7001-7100 72 7101-7200 73 7201-7300 74 7301-7400 75 7401-7500 76 7501-7600 77 7601-7700 78 7701-7800 79 7801-7900 80 7901-8000 81 8001-8100 82 8101-8200 83 8201-8300 84 8301-8400 85 8401-8500 86 8501-8600 87 8601-8700 88 8701-8800 89 8801-8900 90 8901-9000 91 9001-9100 92 9101-9200 93 9201-9300 94 9301-9400 95 9401-9500 96 9501-9600 97 9601-9700 98 9701-9800 99 9801-9900 100 9901-10000 101 10001-10100 102 10101-10200 103 10201-10300 104 10301-10400 105 10401-10500 106 10501-10600 107 10601-10700 108 10701-10800 109 10801-10900 110 10901-11000 111 11001-11100 112 11101-11200 113 11201-11300 114 11301-11400 115 11401-11500 116 11501-11600 117 11601-11700 118 11701-11800 119 11801-11900 120 11901-12000 121 12001-12100 122 12101-12200 123 12201-12300 124 12301-12400 125 12401-12500 126 12501-12600 127 12601-12700 128 12701-12800 129 12801-12900 130 12901-13000 131 13001-13100 132 13101-13200 133 13201-13300 134 13301-13400 135 13401-13500 136 13501-13600 137 13601-13700 138 13701-13800 139 13801-13900 140 13901-14000 141 14001-14100 142 14101-14200 143 14201-14300 144 14301-14400 145 14401-14500 146 14501-14600 147 14601-14700 148 14701-14800 149 14801-14900 150 14901-15000 151 15001-15100 152 15101-15200 153 15201-15300 154 15301-15400 155 15401-15500 156 15501-15600 157 15601-15700 158 15701-15800 159 15801-15900 160 15901-16000 161 16001-16100 162 16101-16200 163 16201-16300 164 16301-16400 165 16401-16500 166 16501-16600 167 16601-16700 168 16701-16800 169 16801-16900 170 16901-17000 171 17001-17100 172 17101-17200 173 17201-17300 174 17301-17400 175 17401-17500 176 17501-17600 177 17601-17700 178 17701-17800 179 17801-17900 180 17901-18000 181 18001-18100 182 18101-18200 183 18201-18300 184 18301-18400 185 18401-18500 186 18501-18600 187 18601-18700 188 18701-18800 189 18801-18900 190 18901-19000 191 19001-19100 192 19101-19200 193 19201-19300 194 19301-19400 195 19401-19500 196 19501-19600 197 19601-19700 198 19701-19800 199 19801-19900 200 19901-20000 201 20001-20100 202 20101-20200 203 20201-20300 204 20301-20400 205 20401-20500 206 20501-20600 207 20601-20700 208 20701-20800 209 20801-20900 210 20901-21000 211 21001-21100 212 21101-21200 213 21201-21300 214 21301-21400 215 21401-21500 216 21501-21600 217 21601-21700 218 21701-21800 219 21801-21900 220 21901-22000 221 22001-22100 222 22101-22200 223 22201-22300 224 22301-22400 225 22401-22500 226 22501-22600 227 22601-22700 228 22701-22800 229 22801-22900 230 22901-23000 231 23001-23100 232 23101-23200 233 23201-23300 234 23301-23400 235 23401-23500 236 23501-23600 237 23601-23700 238 23701-23800 239 23801-23900 240 23901-24000 241 24001-24100 242 24101-24200 243 24201-24300 244 24301-24400 245 24401-24500 246 24501-24600 247 24601-24700 248 24701-24800 249 24801-24900 250 24901-25000 251 25001-25100 252 25101-25200 253 25201-25300 254 25301-25400 255 25401-25500 256 25501-25600 257 25601-25700 258 25701-25800 259 25801-25900 260 25901-26000 261 26001-26100 262 26101-26200 263 26201-26300 264 26301-26400 265 26401-26500 266 26501-26600 267 26601-26700 268 26701-26800 269 26801-26900 270 26901-27000 271 27001-27100 272 27101-27200 273 27201-27300 274 27301-27400 275 27401-27500 276 27501-27600 277 27601-27700 278 27701-27800 279 27801-27900 280 27901-28000 281 28001-28100 282 28101-28200 283 28201-28300 284 28301-28400 285 28401-28500 286 28501-28600 287 28601-28700 288 28701-28800 289 28801-28900 290 28901-29000 291 29001-29100 292 29101-29200 293 29201-29300 294 29301-29400 295 29401-29500 296 29501-29600 297 29601-29700 298 29701-29800 299 29801-29900 300 29901-30000 301 30001-30100 302 30101-30200 303 30201-30300 304 30301-30400 305 30401-30500 306 30501-30600 307 30601-30700 308 30701-30800 309 30801-30900 310 30901-31000 311 31001-31100 312 31101-31200 313 31201-31300 314 31301-31400 315 31401-31500 316 31501-31600 317 31601-31700 318 31701-31800 319 31801-31900 320 31901-32000 321 32001-32100 322 32101-32200 323 32201-32300 324 32301-32400 325 32401-32500 326 32501-32600 327 32601-32700 328 32701-32800 329 32801-32900 330 32901-33000 331 33001-33100 332 33101-33200 333 33201-33300 334 33301-33400 335 33401-33500 336 33501-33600 337 33601-33700 338 33701-33800 339 33801-33900 340 33901-34000 341 34001-34100 342 34101-34200 343 34201-34300 344 34301-34400 345 34401-34500 346 34501-34600 347 34601-34700 348 34701-34800 349 34801-34900 350 34901-35000 351 35001-35100 352 35101-35200 353 35201-35300 354 35301-35400 355 35401-35500 356 35501-35600 357 35601-35700 358 35701-35800 359 35801-35900 360 35901-36000 361 36001-36100 362 36101-36200 363 36201-36300 364 36301-36400 365 36401-36500 366 36501-36600 367 36601-36700 368 36701-36800 369 36801-36900 370 36901-37000 371 37001-37100 372 37101-37200 373 37201-37300 374 37301-37400 375 37401-37500 376 37501-37600 377 37601-37700 378 37701-37800 379 37801-37900 380 37901-38000 381 38001-38100 382 38101-38200 383 38201-38300 384 38301-38400 385 38401-38500 386 38501-38600 387 38601-38700 388 38701-38800 389 38801-38900 390 38901-39000 391 39001-39100 392 39101-39200 393 39201-39300 394 39301-39400 395 39401-39500 396 39501-39600 397 39601-39700 398 39701-39800 399 39801-39900 400 39901-40000 401 40001-40100 402 40101-40200 403 40201-40300 404 40301-40400 405 40401-40500 406 40501-40600 407 40601-40700 408 40701-40800 409 40801-40900 410 40901-41000 411 41001-41100 412 41101-41200 413 41201-41300 414 41301-41400 415 41401-41500 416 41501-41600 417 41601-41700 418 41701-41800 419 41801-41900 420 41901-42000 421 42001-42100 422 42101-42200 423 42201-42300 424 42301-42400 425 42401-42500 426 42501-42600 427 42601-42700 428 42701-42800 429 42801-42900 430 42901-43000 431 43001-43100 432 43101-43200 433 43201-43300 434 43301-43400 435 43401-43500 436 43501-43600 437 43601-43700 438 43701-43800 439 43801-43900 440 43901-44000 441 44001-44100 442 44101-44200 443 44201-44300 444 44301-44400 445 44401-44500 446 44501-44600 447 44601-44700 448 44701-44800 449 44801-44900 450 44901-45000 451 45001-45100 452 45101-45200 453 45201-45300 454 45301-45400 455 45401-45500 456 45501-45600 457 45601-45700 458 45701-45800 459 45801-45900 460 45901-46000 461 46001-46100 462 46101-46200 463 46201-46300 464 46301-46400 465 46401-46500 466 46501-46600 467 46601-46700 468 46701-46800 469 46801-46900 470 46901-47000 471 47001-47100 472 47101-47200 473 47201-47300 474 47301-47400 475 47401-47500 476 47501-47600 477 47601-47700 478 47701-47800 479 47801-47900 480 47901-48000 481 48001-48100 482 48101-48200 483 48201-48300 484 48301-48400 485 48401-48500 486 48501-48600 487 48601-48700 488 48701-48800 489 48801-48900 490 48901-49000 491 49001-49035
  Copyright terms: Public domain < Previous  Next >