![]() |
Metamath
Proof Explorer Theorem List (p. 375 of 489) | < 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-30950) |
![]() (30951-32473) |
![]() (32474-48899) |
Type | Label | Description |
---|---|---|
Statement | ||
Theorem | wl-luk-pm2.27 37401 | 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.) |
⊢ (𝜑 → ((𝜑 → 𝜓) → 𝜓)) | ||
Theorem | wl-luk-com12 37402 | 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.) |
⊢ (𝜑 → (𝜓 → 𝜒)) ⇒ ⊢ (𝜓 → (𝜑 → 𝜒)) | ||
Theorem | wl-luk-pm2.21 37403 | 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.) |
⊢ (¬ 𝜑 → (𝜑 → 𝜓)) | ||
Theorem | wl-luk-con1i 37404 | 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.) |
⊢ (¬ 𝜑 → 𝜓) ⇒ ⊢ (¬ 𝜓 → 𝜑) | ||
Theorem | wl-luk-ja 37405 | 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.) |
⊢ (¬ 𝜑 → 𝜒) & ⊢ (𝜓 → 𝜒) ⇒ ⊢ ((𝜑 → 𝜓) → 𝜒) | ||
Theorem | wl-luk-imim2 37406 | 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.) |
⊢ ((𝜑 → 𝜓) → ((𝜒 → 𝜑) → (𝜒 → 𝜓))) | ||
Theorem | wl-luk-a1d 37407 | 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.) |
⊢ (𝜑 → 𝜓) ⇒ ⊢ (𝜑 → (𝜒 → 𝜓)) | ||
Theorem | wl-luk-ax2 37408 | ax-2 7 proved from Lukasiewicz's axioms. (Contributed by Wolf Lammen, 17-Dec-2018.) (New usage is discouraged.) (Proof modification is discouraged.) |
⊢ ((𝜑 → (𝜓 → 𝜒)) → ((𝜑 → 𝜓) → (𝜑 → 𝜒))) | ||
Theorem | wl-luk-id 37409 | 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.) |
⊢ (𝜑 → 𝜑) | ||
Theorem | wl-luk-notnotr 37410 | 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.) |
⊢ (¬ ¬ 𝜑 → 𝜑) | ||
Theorem | wl-luk-pm2.04 37411 | 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.) |
⊢ ((𝜑 → (𝜓 → 𝜒)) → (𝜓 → (𝜑 → 𝜒))) | ||
Theorem | wl-section-impchain 37412 |
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.) |
⊢ 𝜑 ⇒ ⊢ 𝜑 | ||
Theorem | wl-impchain-mp-x 37413 | 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.) |
⊢ ⊤ | ||
Theorem | wl-impchain-mp-0 37414 |
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.) |
⊢ 𝜓 & ⊢ (𝜓 → 𝜑) ⇒ ⊢ 𝜑 | ||
Theorem | wl-impchain-mp-1 37415 | This theorem is in fact a copy of wl-luk-syl 37390, 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.) |
⊢ (𝜒 → 𝜓) & ⊢ (𝜓 → 𝜑) ⇒ ⊢ (𝜒 → 𝜑) | ||
Theorem | wl-impchain-mp-2 37416 | This theorem is in fact a copy of wl-luk-imtrdi 37398, 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.) |
⊢ (𝜃 → (𝜒 → 𝜓)) & ⊢ (𝜓 → 𝜑) ⇒ ⊢ (𝜃 → (𝜒 → 𝜑)) | ||
Theorem | wl-impchain-com-1.x 37417 |
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 37413 series developed before. (Contributed by Wolf Lammen, 17-Nov-2019.) |
⊢ ⊤ | ||
Theorem | wl-impchain-com-1.1 37418 |
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 37419, for more see there. (Contributed by Wolf Lammen, 7-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.) |
⊢ (𝜓 → 𝜑) ⇒ ⊢ (𝜓 → 𝜑) | ||
Theorem | wl-impchain-com-1.2 37419 |
This theorem is in fact a copy of wl-luk-com12 37402, 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 37417 for more information how this proof is generated. (Contributed by Wolf Lammen, 7-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.) |
⊢ (𝜒 → (𝜓 → 𝜑)) ⇒ ⊢ (𝜓 → (𝜒 → 𝜑)) | ||
Theorem | wl-impchain-com-1.3 37420 |
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 37417 for more information how this proof is generated. (Contributed by Wolf Lammen, 7-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.) |
⊢ (𝜃 → (𝜒 → (𝜓 → 𝜑))) ⇒ ⊢ (𝜓 → (𝜒 → (𝜃 → 𝜑))) | ||
Theorem | wl-impchain-com-1.4 37421 |
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 37417 for more information how this proof is generated. (Contributed by Wolf Lammen, 7-Jul-2019.) (New usage is discouraged.) (Proof modification is discouraged.) |
⊢ (𝜂 → (𝜃 → (𝜒 → (𝜓 → 𝜑)))) ⇒ ⊢ (𝜓 → (𝜃 → (𝜒 → (𝜂 → 𝜑)))) | ||
Theorem | wl-impchain-com-n.m 37422 |
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 37417 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 37417 series. (Contributed by Wolf Lammen, 17-Nov-2019.) |
⊢ ⊤ | ||
Theorem | wl-impchain-com-2.3 37423 | This theorem is in fact a copy of com23 86. It starts a series of theorems named after wl-impchain-com-n.m 37422. For more information see there. (Contributed by Wolf Lammen, 12-Nov-2019.) (New usage is discouraged.) (Proof modification is discouraged.) |
⊢ (𝜃 → (𝜒 → (𝜓 → 𝜑))) ⇒ ⊢ (𝜃 → (𝜓 → (𝜒 → 𝜑))) | ||
Theorem | wl-impchain-com-2.4 37424 | This theorem is in fact a copy of com24 95. It is another instantiation of theorems named after wl-impchain-com-n.m 37422. For more information see there. (Contributed by Wolf Lammen, 17-Nov-2019.) (Proof modification is discouraged.) (New usage is discouraged.) |
⊢ (𝜂 → (𝜃 → (𝜒 → (𝜓 → 𝜑)))) ⇒ ⊢ (𝜂 → (𝜓 → (𝜒 → (𝜃 → 𝜑)))) | ||
Theorem | wl-impchain-com-3.2.1 37425 | 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.) |
⊢ (𝜃 → (𝜒 → (𝜓 → 𝜑))) ⇒ ⊢ (𝜓 → (𝜃 → (𝜒 → 𝜑))) | ||
Theorem | wl-impchain-a1-x 37426 |
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 37395, that
allows prepending an arbitrary antecedent to an implication chain. Using
our antecedent swapping theorems described in wl-impchain-com-n.m 37422, 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 37417 series developed before. (Contributed by Wolf Lammen, 20-Jun-2020.) |
⊢ ⊤ | ||
Theorem | wl-impchain-a1-1 37427 | 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.) |
⊢ 𝜑 ⇒ ⊢ (𝜓 → 𝜑) | ||
Theorem | wl-impchain-a1-2 37428 | 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.) |
⊢ (𝜑 → 𝜓) ⇒ ⊢ (𝜑 → (𝜒 → 𝜓)) | ||
Theorem | wl-impchain-a1-3 37429 | 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.) |
⊢ (𝜑 → (𝜓 → 𝜒)) ⇒ ⊢ (𝜑 → (𝜓 → (𝜃 → 𝜒))) | ||
Theorem | wl-ifp-ncond1 37430 | If one case of an if- condition is false, the other automatically follows. (Contributed by Wolf Lammen, 21-Jul-2024.) |
⊢ (¬ 𝜓 → (if-(𝜑, 𝜓, 𝜒) ↔ (¬ 𝜑 ∧ 𝜒))) | ||
Theorem | wl-ifp-ncond2 37431 | If one case of an if- condition is false, the other automatically follows. (Contributed by Wolf Lammen, 21-Jul-2024.) |
⊢ (¬ 𝜒 → (if-(𝜑, 𝜓, 𝜒) ↔ (𝜑 ∧ 𝜓))) | ||
Theorem | wl-ifpimpr 37432 | If one case of an if- condition is a consequence of the other, the expression in df-ifp 1064 can be shortened. (Contributed by Wolf Lammen, 12-Jun-2024.) |
⊢ ((𝜒 → 𝜓) → (if-(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ∧ 𝜓) ∨ 𝜒))) | ||
Theorem | wl-ifp4impr 37433 | If one case of an if- condition is a consequence of the other, the expression in dfifp4 1067 can be shortened. (Contributed by Wolf Lammen, 18-Jun-2024.) |
⊢ ((𝜒 → 𝜓) → (if-(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ∨ 𝜒) ∧ 𝜓))) | ||
Theorem | wl-df-3xor 37434 |
Alternative definition of whad 1590 based on hadifp 1602. See df-had 1591 to
learn how it is currently introduced. The only use case so far is being a
binary addition primitive for df-sad 16497. 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 37449). 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 1591, 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-(𝜑, ¬ (𝜓 ⊻ 𝜒), (𝜓 ⊻ 𝜒))) | ||
Theorem | wl-df3xor2 37435 | Alternative definition of wl-df-3xor 37434, using triple exclusive disjunction, or XOR3. You can add more input by appending each one with a ⊻. Copy of hadass 1594. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 1-May-2024.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ (𝜑 ⊻ (𝜓 ⊻ 𝜒))) | ||
Theorem | wl-df3xor3 37436 | Alternative form of wl-df3xor2 37435. Copy of df-had 1591. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 1-May-2024.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ⊻ 𝜓) ⊻ 𝜒)) | ||
Theorem | wl-3xortru 37437 | 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(𝜑, 𝜓, 𝜒) ↔ ¬ (𝜓 ⊻ 𝜒))) | ||
Theorem | wl-3xorfal 37438 | 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(𝜑, 𝜓, 𝜒) ↔ (𝜓 ⊻ 𝜒))) | ||
Theorem | wl-3xorbi 37439 | 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(𝜑, 𝜓, 𝜒) ↔ (𝜑 ↔ (𝜓 ↔ 𝜒))) | ||
Theorem | wl-3xorbi2 37440 | Alternative form of wl-3xorbi 37439. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 24-Apr-2024.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ↔ 𝜓) ↔ 𝜒)) | ||
Theorem | wl-3xorbi123d 37441 | Equivalence theorem for triple xor. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 24-Apr-2024.) |
⊢ (𝜑 → (𝜓 ↔ 𝜒)) & ⊢ (𝜑 → (𝜃 ↔ 𝜏)) & ⊢ (𝜑 → (𝜂 ↔ 𝜁)) ⇒ ⊢ (𝜑 → (hadd(𝜓, 𝜃, 𝜂) ↔ hadd(𝜒, 𝜏, 𝜁))) | ||
Theorem | wl-3xorbi123i 37442 | Equivalence theorem for triple xor. Copy of hadbi123i 1593. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (𝜓 ↔ 𝜒) & ⊢ (𝜃 ↔ 𝜏) & ⊢ (𝜂 ↔ 𝜁) ⇒ ⊢ (hadd(𝜓, 𝜃, 𝜂) ↔ hadd(𝜒, 𝜏, 𝜁)) | ||
Theorem | wl-3xorrot 37443 | Rotation law for triple xor. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 24-Apr-2024.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ hadd(𝜓, 𝜒, 𝜑)) | ||
Theorem | wl-3xorcoma 37444 | Commutative law for triple xor. Copy of hadcoma 1596. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 17-Dec-2023.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ hadd(𝜓, 𝜑, 𝜒)) | ||
Theorem | wl-3xorcomb 37445 | Commutative law for triple xor. (Contributed by Mario Carneiro, 4-Sep-2016.) df-had redefined. (Revised by Wolf Lammen, 24-Apr-2024.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ hadd(𝜑, 𝜒, 𝜓)) | ||
Theorem | wl-3xornot1 37446 | Flipping the first input flips the triple xor. wl-3xorrot 37443 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(¬ 𝜑, 𝜓, 𝜒)) | ||
Theorem | wl-3xornot 37447 | Triple xor distributes over negation. Copy of hadnot 1599. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 11-Jul-2020.) |
⊢ (¬ hadd(𝜑, 𝜓, 𝜒) ↔ hadd(¬ 𝜑, ¬ 𝜓, ¬ 𝜒)) | ||
Theorem | wl-1xor 37448 |
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-(𝜓, ¬ ⊥, ⊥) ↔ 𝜓) | ||
Theorem | wl-2xor 37449 |
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 37448). (Contributed by Wolf Lammen, 11-May-2024.) |
⊢ (if-(𝜑, ¬ 𝜓, 𝜓) ↔ (𝜑 ⊻ 𝜓)) | ||
Theorem | wl-df-3mintru2 37450 |
Alternative definition of wcad 1603. See df-cad 1604 to learn how it is
currently introduced. The only use case so far is being a binary addition
primitive for df-sad 16497. 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 1604 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 1088, and "(at least) 3 out of 3", expressed by triple conjunction df-3an 1089. 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 37457), and "2-mintru-1" (𝜓, 𝜒) ↔ (𝜓 ∨ 𝜒) (wl-2mintru1 37456). 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-(𝜑, (𝜓 ∨ 𝜒), (𝜓 ∧ 𝜒))) | ||
Theorem | wl-df2-3mintru2 37451 | The adder carry in disjunctive normal form. An alternative highly symmetric definition emphasizing the independence of order of the inputs 𝜑, 𝜓 and 𝜒. Copy of cador 1605. (Contributed by Mario Carneiro, 4-Sep-2016.) df-cad redefined. (Revised by Wolf Lammen, 12-Jun-2024.) |
⊢ (cadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ∧ 𝜓) ∨ (𝜑 ∧ 𝜒) ∨ (𝜓 ∧ 𝜒))) | ||
Theorem | wl-df3-3mintru2 37452 | The adder carry in conjunctive normal form. An alternative highly symmetric definition emphasizing the independence of order of the inputs 𝜑, 𝜓 and 𝜒. Copy of cadan 1606. (Contributed by Mario Carneiro, 4-Sep-2016.) df-cad redefined. (Revised by Wolf Lammen, 18-Jun-2024.) |
⊢ (cadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ∨ 𝜓) ∧ (𝜑 ∨ 𝜒) ∧ (𝜓 ∨ 𝜒))) | ||
Theorem | wl-df4-3mintru2 37453 | An alternative definition of the adder carry. Copy of df-cad 1604. (Contributed by Mario Carneiro, 4-Sep-2016.) df-cad redefined. (Revised by Wolf Lammen, 19-Jun-2024.) |
⊢ (cadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ∧ 𝜓) ∨ (𝜒 ∧ (𝜑 ⊻ 𝜓)))) | ||
Theorem | wl-1mintru1 37454 |
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-(𝜒, ⊤, ⊥) ↔ 𝜒) | ||
Theorem | wl-1mintru2 37455 |
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-(𝜒, ⊥, ⊥) ↔ ⊥) | ||
Theorem | wl-2mintru1 37456 |
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 37454 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-(𝜓, ⊤, 𝜒) ↔ (𝜓 ∨ 𝜒)) | ||
Theorem | wl-2mintru2 37457 |
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 37454 and wl-1mintru2 37455 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-(𝜓, 𝜒, ⊥) ↔ (𝜓 ∧ 𝜒)) | ||
Theorem | wl-df3maxtru1 37458 |
Assuming "(n+1)-maxtru1" ↔ ¬
"(n+1)-mintru-2", we can deduce from
the recursion formula given in wl-df-3mintru2 37450, 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-(𝜑, (𝜓 ⊽ 𝜒), (𝜓 ⊼ 𝜒))) | ||
Axiom | ax-wl-13v 37459* |
A version of ax13v 2381 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 1909. 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.) |
⊢ (¬ ∀𝑥 𝑥 = 𝑦 → (𝑦 = 𝑧 → ∀𝑥 𝑦 = 𝑧)) | ||
Theorem | wl-ax13lem1 37460* | A version of ax-wl-13v 37459 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.) |
⊢ (¬ ∀𝑥 𝑥 = 𝑦 → (𝑧 = 𝑦 → ∀𝑥 𝑧 = 𝑦)) | ||
Theorem | wl-mps 37461 | 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 37462 | 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 37463 | 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 37464 | 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 37465 | 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 37466 | A particular instance of orddi 1010 and anddi 1011 converting between disjunctive and conjunctive normal forms, when both 𝜑 and ¬ 𝜑 appear. This theorem in fact rephrases cases2 1048, and is related to consensus 1053. I restate it here in DNF and CNF. The proof deliberately does not use df-ifp 1064 and dfifp4 1067, by which it can be shortened. (Contributed by Wolf Lammen, 21-Jun-2020.) (Proof modification is discouraged.) |
⊢ (((𝜑 ∧ 𝜓) ∨ (¬ 𝜑 ∧ 𝜒)) ↔ ((¬ 𝜑 ∨ 𝜓) ∧ (𝜑 ∨ 𝜒))) | ||
Theorem | wl-cbvmotv 37467* | 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 37468 | 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 37469 | 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 37470* | 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 1967 in the proof, that ensures "at least one thing exists". For other equivalences see wl-euae 37471 and exists1 2664. Gerard Lang pointed out, that ∃𝑦∀𝑥𝑥 = 𝑦 with disjoint 𝑥 and 𝑦 (df-mo 2543, trut 1543) 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 37471* | Two ways to express "exactly one thing exists" . (Contributed by Wolf Lammen, 5-Mar-2023.) |
⊢ (∃!𝑥⊤ ↔ ∀𝑥 𝑥 = 𝑦) | ||
Theorem | wl-nax6im 37472* | 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 1962 requires us to formally assign a boolean value to an equation, say always false, unless you want to give up on exmid 893, for example. Whatever it is, we start out with the contraposition of ax-6 1967, 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 37473 | This specialization of hbae 2439 does not depend on ax-11 2158. (Contributed by Wolf Lammen, 8-Aug-2021.) |
⊢ (∀𝑥 𝑥 = 𝑦 → ∀𝑦∀𝑥 𝑥 = 𝑦) | ||
Theorem | wl-naevhba1v 37474* | An instance of hbn1w 2046 applied to equality. (Contributed by Wolf Lammen, 7-Apr-2021.) |
⊢ (¬ ∀𝑥 𝑥 = 𝑦 → ∀𝑥 ¬ ∀𝑥 𝑥 = 𝑦) | ||
Theorem | wl-spae 37475 |
Prove an instance of sp 2184 from ax-13 2380 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 2178. Note that this theorem is also provable from ax-12 2178 alone, so you can pick the axiom it is based on. Compare this result to 19.3v 1981 and spaev 2052 having distinct variable conditions, but a smaller footprint on axiom usage. (Contributed by Wolf Lammen, 5-Apr-2021.) |
⊢ (∀𝑥 𝑥 = 𝑦 → 𝑥 = 𝑦) | ||
Theorem | wl-speqv 37476* | Under the assumption ¬ 𝑥 = 𝑦 a specialized version of sp 2184 is provable from Tarski's FOL and ax13v 2381 only. Note that this reverts the implication in ax13lem1 2382, so in fact (¬ 𝑥 = 𝑦 → (∀𝑥𝑧 = 𝑦 ↔ 𝑧 = 𝑦)) holds. (Contributed by Wolf Lammen, 17-Apr-2021.) |
⊢ (¬ 𝑥 = 𝑦 → (∀𝑥 𝑧 = 𝑦 → 𝑧 = 𝑦)) | ||
Theorem | wl-19.8eqv 37477* | Under the assumption ¬ 𝑥 = 𝑦 a specialized version of 19.8a 2182 is provable from Tarski's FOL and ax13v 2381 only. Note that this reverts the implication in ax13lem2 2384, so in fact (¬ 𝑥 = 𝑦 → (∃𝑥𝑧 = 𝑦 ↔ 𝑧 = 𝑦)) holds. (Contributed by Wolf Lammen, 17-Apr-2021.) |
⊢ (¬ 𝑥 = 𝑦 → (𝑧 = 𝑦 → ∃𝑥 𝑧 = 𝑦)) | ||
Theorem | wl-19.2reqv 37478* | Under the assumption ¬ 𝑥 = 𝑦 the reverse direction of 19.2 1976 is provable from Tarski's FOL and ax13v 2381 only. Note that in conjunction with 19.2 1976 in fact (¬ 𝑥 = 𝑦 → (∀𝑥𝑧 = 𝑦 ↔ ∃𝑥𝑧 = 𝑦)) holds. (Contributed by Wolf Lammen, 17-Apr-2021.) |
⊢ (¬ 𝑥 = 𝑦 → (∃𝑥 𝑧 = 𝑦 → ∀𝑥 𝑧 = 𝑦)) | ||
Theorem | wl-nfalv 37479* | If 𝑥 is not present in 𝜑, it is not free in ∀𝑦𝜑. (Contributed by Wolf Lammen, 11-Jan-2020.) |
⊢ Ⅎ𝑥∀𝑦𝜑 | ||
Theorem | wl-nfimf1 37480 | An antecedent is irrelevant to a not-free property, if it always holds. I used this variant of nfim 1895 in dvelimdf 2457 to simplify the proof. (Contributed by Wolf Lammen, 14-Oct-2018.) |
⊢ (∀𝑥𝜑 → (Ⅎ𝑥(𝜑 → 𝜓) ↔ Ⅎ𝑥𝜓)) | ||
Theorem | wl-nfae1 37481 | Unlike nfae 2441, this specialized theorem avoids ax-11 2158. (Contributed by Wolf Lammen, 26-Jun-2019.) |
⊢ Ⅎ𝑥∀𝑦 𝑦 = 𝑥 | ||
Theorem | wl-nfnae1 37482 | Unlike nfnae 2442, this specialized theorem avoids ax-11 2158. (Contributed by Wolf Lammen, 27-Jun-2019.) |
⊢ Ⅎ𝑥 ¬ ∀𝑦 𝑦 = 𝑥 | ||
Theorem | wl-aetr 37483 | A transitive law for variable identifying expressions. (Contributed by Wolf Lammen, 30-Jun-2019.) |
⊢ (∀𝑥 𝑥 = 𝑦 → (∀𝑥 𝑥 = 𝑧 → ∀𝑦 𝑦 = 𝑧)) | ||
Theorem | wl-axc11r 37484 | Same as axc11r 2374, but using ax12 2431 instead of ax-12 2178 directly. This better reflects axiom usage in theorems dependent on it. (Contributed by NM, 25-Jul-2015.) Avoid direct use of ax-12 2178. (Revised by Wolf Lammen, 30-Mar-2024.) |
⊢ (∀𝑦 𝑦 = 𝑥 → (∀𝑥𝜑 → ∀𝑦𝜑)) | ||
Theorem | wl-dral1d 37485 | A version of dral1 2447 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 37498 and nf5di 2289 show that this is in fact pointless. (Contributed by Wolf Lammen, 28-Jul-2019.) |
⊢ Ⅎ𝑥𝜑 & ⊢ Ⅎ𝑦𝜑 & ⊢ (𝜑 → (𝑥 = 𝑦 → (𝜓 ↔ 𝜒))) ⇒ ⊢ (𝜑 → (∀𝑥 𝑥 = 𝑦 → (∀𝑥𝜓 ↔ ∀𝑦𝜒))) | ||
Theorem | wl-cbvalnaed 37486 | wl-cbvalnae 37487 with a context. (Contributed by Wolf Lammen, 28-Jul-2019.) |
⊢ Ⅎ𝑥𝜑 & ⊢ Ⅎ𝑦𝜑 & ⊢ (𝜑 → (¬ ∀𝑥 𝑥 = 𝑦 → Ⅎ𝑦𝜓)) & ⊢ (𝜑 → (¬ ∀𝑥 𝑥 = 𝑦 → Ⅎ𝑥𝜒)) & ⊢ (𝜑 → (𝑥 = 𝑦 → (𝜓 ↔ 𝜒))) ⇒ ⊢ (𝜑 → (∀𝑥𝜓 ↔ ∀𝑦𝜒)) | ||
Theorem | wl-cbvalnae 37487 | A more general version of cbval 2406 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 2456, nfsb2 2491 or dveeq1 2388. (Contributed by Wolf Lammen, 4-Jun-2019.) |
⊢ (¬ ∀𝑥 𝑥 = 𝑦 → Ⅎ𝑦𝜑) & ⊢ (¬ ∀𝑥 𝑥 = 𝑦 → Ⅎ𝑥𝜓) & ⊢ (𝑥 = 𝑦 → (𝜑 ↔ 𝜓)) ⇒ ⊢ (∀𝑥𝜑 ↔ ∀𝑦𝜓) | ||
Theorem | wl-exeq 37488 | The semantics of ∃𝑥𝑦 = 𝑧. (Contributed by Wolf Lammen, 27-Apr-2018.) |
⊢ (∃𝑥 𝑦 = 𝑧 ↔ (𝑦 = 𝑧 ∨ ∀𝑥 𝑥 = 𝑦 ∨ ∀𝑥 𝑥 = 𝑧)) | ||
Theorem | wl-aleq 37489 | The semantics of ∀𝑥𝑦 = 𝑧. (Contributed by Wolf Lammen, 27-Apr-2018.) |
⊢ (∀𝑥 𝑦 = 𝑧 ↔ (𝑦 = 𝑧 ∧ (∀𝑥 𝑥 = 𝑦 ↔ ∀𝑥 𝑥 = 𝑧))) | ||
Theorem | wl-nfeqfb 37490 | Extend nfeqf 2389 to an equivalence. (Contributed by Wolf Lammen, 31-Jul-2019.) |
⊢ (Ⅎ𝑥 𝑦 = 𝑧 ↔ (∀𝑥 𝑥 = 𝑦 ↔ ∀𝑥 𝑥 = 𝑧)) | ||
Theorem | wl-nfs1t 37491 | If 𝑦 is not free in 𝜑, 𝑥 is not free in [𝑦 / 𝑥]𝜑. Closed form of nfs1 2496. (Contributed by Wolf Lammen, 27-Jul-2019.) |
⊢ (Ⅎ𝑦𝜑 → Ⅎ𝑥[𝑦 / 𝑥]𝜑) | ||
Theorem | wl-equsalvw 37492* |
Version of equsalv 2268 with a disjoint variable condition, and of equsal 2425
with two disjoint variable conditions, which requires fewer axioms. See
also the dual form equsexvw 2004.
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 2024 and cbvalvw 2035 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 37493 | Deduction version of equsal 2425. (Contributed by Wolf Lammen, 27-Jul-2019.) |
⊢ Ⅎ𝑥𝜑 & ⊢ (𝜑 → Ⅎ𝑥𝜒) & ⊢ (𝜑 → (𝑥 = 𝑦 → (𝜓 ↔ 𝜒))) ⇒ ⊢ (𝜑 → (∀𝑥(𝑥 = 𝑦 → 𝜓) ↔ 𝜒)) | ||
Theorem | wl-equsaldv 37494* | Deduction version of equsal 2425. (Contributed by Wolf Lammen, 27-Jul-2019.) |
⊢ Ⅎ𝑥𝜑 & ⊢ (𝜑 → Ⅎ𝑥𝜒) & ⊢ (𝜑 → (𝑥 = 𝑦 → (𝜓 ↔ 𝜒))) ⇒ ⊢ (𝜑 → (∀𝑥(𝑥 = 𝑦 → 𝜓) ↔ 𝜒)) | ||
Theorem | wl-equsal 37495 | 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 37493 first, and then deriving more specialized versions wl-equsal 37495 and wl-equsal1t 37496 then is more efficient than the other way round, which is possible, too. See also equsal 2425. (Revised by Wolf Lammen, 27-Jul-2019.) (Proof modification is discouraged.) |
⊢ Ⅎ𝑥𝜓 & ⊢ (𝑥 = 𝑦 → (𝜑 ↔ 𝜓)) ⇒ ⊢ (∀𝑥(𝑥 = 𝑦 → 𝜑) ↔ 𝜓) | ||
Theorem | wl-equsal1t 37496 |
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 2425, spimt 2394 or sbft 2271, to which it is related. (Contributed by Wolf Lammen, 19-Aug-2018.) |
⊢ (Ⅎ𝑥𝜑 → (∀𝑥(𝑥 = 𝑦 → 𝜑) ↔ 𝜑)) | ||
Theorem | wl-equsalcom 37497 | This simple equivalence eases substitution of one expression for the other. (Contributed by Wolf Lammen, 1-Sep-2018.) |
⊢ (∀𝑥(𝑥 = 𝑦 → 𝜑) ↔ ∀𝑥(𝑦 = 𝑥 → 𝜑)) | ||
Theorem | wl-equsal1i 37498 | The antecedent 𝑥 = 𝑦 is irrelevant, if one or both setvar variables are not free in 𝜑. (Contributed by Wolf Lammen, 1-Sep-2018.) |
⊢ (Ⅎ𝑥𝜑 ∨ Ⅎ𝑦𝜑) & ⊢ (𝑥 = 𝑦 → 𝜑) ⇒ ⊢ 𝜑 | ||
Theorem | wl-sbid2ft 37499* | A more general version of sbid2vw 2260. (Contributed by Wolf Lammen, 14-May-2019.) |
⊢ (Ⅎ𝑥𝜑 → ([𝑦 / 𝑥][𝑥 / 𝑦]𝜑 ↔ 𝜑)) | ||
Theorem | wl-cbvalsbi 37500* | Change bounded variables in a special case. The reverse direction seems to involve ax-11 2158. My hope is that I will in some future be able to prove mo3 2567 with reversed quantifiers not using ax-11 2158. See also the remark in mo4 2569, which lead me to this effort. (Contributed by Wolf Lammen, 5-Mar-2024.) |
⊢ (∀𝑥𝜑 → ∀𝑦[𝑦 / 𝑥]𝜑) |
< Previous Next > |
Copyright terms: Public domain | < Previous Next > |