![]() |
Metamath
Proof Explorer Theorem List (p. 16 of 429) | < 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-27903) |
![]() (27904-29428) |
![]() (29429-42879) |
Type | Label | Description |
---|---|---|
Statement | ||
Theorem | nanbi1d 1501 | Introduce a right anti-conjunct to both sides of a logical equivalence. (Contributed by SF, 2-Jan-2018.) |
⊢ (𝜑 → (𝜓 ↔ 𝜒)) ⇒ ⊢ (𝜑 → ((𝜓 ⊼ 𝜃) ↔ (𝜒 ⊼ 𝜃))) | ||
Theorem | nanbi2d 1502 | Introduce a left anti-conjunct to both sides of a logical equivalence. (Contributed by SF, 2-Jan-2018.) |
⊢ (𝜑 → (𝜓 ↔ 𝜒)) ⇒ ⊢ (𝜑 → ((𝜃 ⊼ 𝜓) ↔ (𝜃 ⊼ 𝜒))) | ||
Theorem | nanbi12d 1503 | Join two logical equivalences with anti-conjunction. (Contributed by Scott Fenton, 2-Jan-2018.) |
⊢ (𝜑 → (𝜓 ↔ 𝜒)) & ⊢ (𝜑 → (𝜃 ↔ 𝜏)) ⇒ ⊢ (𝜑 → ((𝜓 ⊼ 𝜃) ↔ (𝜒 ⊼ 𝜏))) | ||
Syntax | wxo 1504 | Extend wff definition to include exclusive disjunction ('xor'). |
wff (𝜑 ⊻ 𝜓) | ||
Definition | df-xor 1505 | Define exclusive disjunction (logical 'xor'). Return true if either the left or right, but not both, are true. After we define the constant true ⊤ (df-tru 1526) and the constant false ⊥ (df-fal 1529), we will be able to prove these truth table values: ((⊤ ⊻ ⊤) ↔ ⊥) (truxortru 1568), ((⊤ ⊻ ⊥) ↔ ⊤) (truxorfal 1569), ((⊥ ⊻ ⊤) ↔ ⊤) (falxortru 1570), and ((⊥ ⊻ ⊥) ↔ ⊥) (falxorfal 1571). Contrast with ∧ (df-an 385), ∨ (df-or 384), → (wi 4), and ⊼ (df-nan 1488) . (Contributed by FL, 22-Nov-2010.) |
⊢ ((𝜑 ⊻ 𝜓) ↔ ¬ (𝜑 ↔ 𝜓)) | ||
Theorem | xnor 1506 | Two ways to write XNOR. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ ((𝜑 ↔ 𝜓) ↔ ¬ (𝜑 ⊻ 𝜓)) | ||
Theorem | xorcom 1507 | The connector ⊻ is commutative. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ ((𝜑 ⊻ 𝜓) ↔ (𝜓 ⊻ 𝜑)) | ||
Theorem | xorass 1508 | The connector ⊻ is associative. (Contributed by FL, 22-Nov-2010.) (Proof shortened by Andrew Salmon, 8-Jun-2011.) (Proof shortened by Wolf Lammen, 20-Jun-2020.) |
⊢ (((𝜑 ⊻ 𝜓) ⊻ 𝜒) ↔ (𝜑 ⊻ (𝜓 ⊻ 𝜒))) | ||
Theorem | excxor 1509 | This tautology shows that xor is really exclusive. (Contributed by FL, 22-Nov-2010.) |
⊢ ((𝜑 ⊻ 𝜓) ↔ ((𝜑 ∧ ¬ 𝜓) ∨ (¬ 𝜑 ∧ 𝜓))) | ||
Theorem | xor2 1510 | Two ways to express "exclusive or." (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ ((𝜑 ⊻ 𝜓) ↔ ((𝜑 ∨ 𝜓) ∧ ¬ (𝜑 ∧ 𝜓))) | ||
Theorem | xoror 1511 | XOR implies OR. (Contributed by BJ, 19-Apr-2019.) |
⊢ ((𝜑 ⊻ 𝜓) → (𝜑 ∨ 𝜓)) | ||
Theorem | xornan 1512 | XOR implies NAND. (Contributed by BJ, 19-Apr-2019.) |
⊢ ((𝜑 ⊻ 𝜓) → ¬ (𝜑 ∧ 𝜓)) | ||
Theorem | xornan2 1513 | XOR implies NAND (written with the ⊼ connector). (Contributed by BJ, 19-Apr-2019.) |
⊢ ((𝜑 ⊻ 𝜓) → (𝜑 ⊼ 𝜓)) | ||
Theorem | xorneg2 1514 | The connector ⊻ is negated under negation of one argument. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 27-Jun-2020.) |
⊢ ((𝜑 ⊻ ¬ 𝜓) ↔ ¬ (𝜑 ⊻ 𝜓)) | ||
Theorem | xorneg1 1515 | The connector ⊻ is negated under negation of one argument. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 27-Jun-2020.) |
⊢ ((¬ 𝜑 ⊻ 𝜓) ↔ ¬ (𝜑 ⊻ 𝜓)) | ||
Theorem | xorneg 1516 | The connector ⊻ is unchanged under negation of both arguments. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ ((¬ 𝜑 ⊻ ¬ 𝜓) ↔ (𝜑 ⊻ 𝜓)) | ||
Theorem | xorbi12i 1517 | Equality property for XOR. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (𝜑 ↔ 𝜓) & ⊢ (𝜒 ↔ 𝜃) ⇒ ⊢ ((𝜑 ⊻ 𝜒) ↔ (𝜓 ⊻ 𝜃)) | ||
Theorem | xorbi12d 1518 | Equality property for XOR. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (𝜑 → (𝜓 ↔ 𝜒)) & ⊢ (𝜑 → (𝜃 ↔ 𝜏)) ⇒ ⊢ (𝜑 → ((𝜓 ⊻ 𝜃) ↔ (𝜒 ⊻ 𝜏))) | ||
Theorem | anxordi 1519 | Conjunction distributes over exclusive-or. In intuitionistic logic this assertion is also true, even though xordi 955 does not necessarily hold, in part because the usual definition of xor is subtly different in intuitionistic logic. (Contributed by David A. Wheeler, 7-Oct-2018.) |
⊢ ((𝜑 ∧ (𝜓 ⊻ 𝜒)) ↔ ((𝜑 ∧ 𝜓) ⊻ (𝜑 ∧ 𝜒))) | ||
Theorem | xorexmid 1520 | Exclusive-or variant of the law of the excluded middle (exmid 430). This statement is ancient, going back to at least Stoic logic. This statement does not necessarily hold in intuitionistic logic. (Contributed by David A. Wheeler, 23-Feb-2019.) |
⊢ (𝜑 ⊻ ¬ 𝜑) | ||
Even though it isn't ordinarily part of propositional calculus, the universal quantifier ∀ is introduced here so that the soundness of definition df-tru 1526 can be checked by the same algorithm that is used for predicate calculus. Its first real use is in definition df-ex 1745 in the predicate calculus section below. For those who want propositional calculus to be self-contained i.e. to use wff variables only, the alternate definition dftru2 1531 may be adopted and this subsection moved down to the start of the subsection with wex 1744 below. However, the use of dftru2 1531 as a definition requires a more elaborate definition checking algorithm that we prefer to avoid. | ||
Syntax | wal 1521 | Extend wff definition to include the universal quantifier ('for all'). ∀𝑥𝜑 is read "𝜑 (phi) is true for all 𝑥." Typically, in its final application 𝜑 would be replaced with a wff containing a (free) occurrence of the variable 𝑥, for example 𝑥 = 𝑦. In a universe with a finite number of objects, "for all" is equivalent to a big conjunction (AND) with one wff for each possible case of 𝑥. When the universe is infinite (as with set theory), such a propositional-calculus equivalent is not possible because an infinitely long formula has no meaning, but conceptually the idea is the same. |
wff ∀𝑥𝜑 | ||
Even though it isn't ordinarily part of propositional calculus, the equality predicate = is introduced here so that the soundness of definition df-tru 1526 can be checked by the same algorithm as is used for predicate calculus. Its first real use is in theorem equs3 1932 in the predicate calculus section below. For those who want propositional calculus to be self-contained i.e. to use wff variables only, the alternate definition dftru2 1531 may be adopted and this subsection moved down to just above weq 1931 below. However, the use of dftru2 1531 as a definition requires a more elaborate definition checking algorithm that we prefer to avoid. | ||
Syntax | cv 1522 |
This syntax construction states that a variable 𝑥, which has been
declared to be a setvar variable by $f statement vx, is also a class
expression. This can be justified informally as follows. We know that
the class builder {𝑦 ∣ 𝑦 ∈ 𝑥} is a class by cab 2637.
Since (when
𝑦 is distinct from 𝑥) we
have 𝑥 =
{𝑦 ∣ 𝑦 ∈ 𝑥} by
cvjust 2646, we can argue that the syntax "class 𝑥 " can be viewed as
an abbreviation for "class {𝑦 ∣ 𝑦 ∈ 𝑥}". See the discussion
under the definition of class in [Jech] p.
4 showing that "Every set can
be considered to be a class."
While it is tempting and perhaps occasionally useful to view cv 1522 as a "type conversion" from a setvar variable to a class variable, keep in mind that cv 1522 is intrinsically no different from any other class-building syntax such as cab 2637, cun 3605, or c0 3948. For a general discussion of the theory of classes and the role of cv 1522, see mmset.html#class. (The description above applies to set theory, not predicate calculus. The purpose of introducing class 𝑥 here, and not in set theory where it belongs, is to allow us to express i.e. "prove" the weq 1931 of predicate calculus from the wceq 1523 of set theory, so that we don't overload the = connective with two syntax definitions. This is done to prevent ambiguity that would complicate some Metamath parsers.) |
class 𝑥 | ||
Syntax | wceq 1523 |
Extend wff definition to include class equality.
For a general discussion of the theory of classes, see mmset.html#class. (The purpose of introducing wff 𝐴 = 𝐵 here, and not in set theory where it belongs, is to allow us to express i.e. "prove" the weq 1931 of predicate calculus in terms of the wceq 1523 of set theory, so that we don't "overload" the = connective with two syntax definitions. This is done to prevent ambiguity that would complicate some Metamath parsers. For example, some parsers - although not the Metamath program - stumble on the fact that the = in 𝑥 = 𝑦 could be the = of either weq 1931 or wceq 1523, although mathematically it makes no difference. The class variables 𝐴 and 𝐵 are introduced temporarily for the purpose of this definition but otherwise not used in predicate calculus. See df-cleq 2644 for more information on the set theory usage of wceq 1523.) |
wff 𝐴 = 𝐵 | ||
Syntax | wtru 1524 | The constant ⊤ is a wff. |
wff ⊤ | ||
Theorem | trujust 1525 | Soundness justification theorem for df-tru 1526. (Contributed by Mario Carneiro, 17-Nov-2013.) (Revised by NM, 11-Jul-2019.) |
⊢ ((∀𝑥 𝑥 = 𝑥 → ∀𝑥 𝑥 = 𝑥) ↔ (∀𝑦 𝑦 = 𝑦 → ∀𝑦 𝑦 = 𝑦)) | ||
Definition | df-tru 1526 | Definition of the truth value "true", or "verum", denoted by ⊤. This is a tautology, as proved by tru 1527. In this definition, an instance of id 22 is used as the definiens, although any tautology, such as an axiom, can be used in its place. This particular id 22 instance was chosen so this definition can be checked by the same algorithm that is used for predicate calculus. This definition should be referenced directly only by tru 1527, and other proofs should depend on tru 1527 (directly or indirectly) instead of this definition, since there are many alternate ways to define ⊤. (Contributed by Anthony Hart, 13-Oct-2010.) (Revised by NM, 11-Jul-2019.) Use tru 1527 instead. (New usage is discouraged.) |
⊢ (⊤ ↔ (∀𝑥 𝑥 = 𝑥 → ∀𝑥 𝑥 = 𝑥)) | ||
Theorem | tru 1527 | The truth value ⊤ is provable. (Contributed by Anthony Hart, 13-Oct-2010.) |
⊢ ⊤ | ||
Syntax | wfal 1528 | The constant ⊥ is a wff. |
wff ⊥ | ||
Definition | df-fal 1529 | Definition of the truth value "false", or "falsum", denoted by ⊥. See also df-tru 1526. (Contributed by Anthony Hart, 22-Oct-2010.) |
⊢ (⊥ ↔ ¬ ⊤) | ||
Theorem | fal 1530 | The truth value ⊥ is refutable. (Contributed by Anthony Hart, 22-Oct-2010.) (Proof shortened by Mel L. O'Cat, 11-Mar-2012.) |
⊢ ¬ ⊥ | ||
Theorem | dftru2 1531 | An alternate definition of "true". (Contributed by Anthony Hart, 13-Oct-2010.) (Revised by BJ, 12-Jul-2019.) (New usage is discouraged.) |
⊢ (⊤ ↔ (𝜑 → 𝜑)) | ||
Theorem | trut 1532 | A proposition is equivalent to it being implied by ⊤. Closed form of trud 1533. Dual of dfnot 1542. It is to tbtru 1534 what a1bi 351 is to tbt 358. (Contributed by BJ, 26-Oct-2019.) |
⊢ (𝜑 ↔ (⊤ → 𝜑)) | ||
Theorem | trud 1533 | Eliminate ⊤ as an antecedent. A proposition implied by ⊤ is true. (Contributed by Mario Carneiro, 13-Mar-2014.) |
⊢ (⊤ → 𝜑) ⇒ ⊢ 𝜑 | ||
Theorem | tbtru 1534 | A proposition is equivalent to itself being equivalent to ⊤. (Contributed by Anthony Hart, 14-Aug-2011.) |
⊢ (𝜑 ↔ (𝜑 ↔ ⊤)) | ||
Theorem | nbfal 1535 | The negation of a proposition is equivalent to itself being equivalent to ⊥. (Contributed by Anthony Hart, 14-Aug-2011.) |
⊢ (¬ 𝜑 ↔ (𝜑 ↔ ⊥)) | ||
Theorem | bitru 1536 | A theorem is equivalent to truth. (Contributed by Mario Carneiro, 9-May-2015.) |
⊢ 𝜑 ⇒ ⊢ (𝜑 ↔ ⊤) | ||
Theorem | bifal 1537 | A contradiction is equivalent to falsehood. (Contributed by Mario Carneiro, 9-May-2015.) |
⊢ ¬ 𝜑 ⇒ ⊢ (𝜑 ↔ ⊥) | ||
Theorem | falim 1538 | The truth value ⊥ implies anything. Also called the "principle of explosion", or "ex falso [sequitur]] quodlibet" (Latin for "from falsehood, anything [follows]]"). (Contributed by FL, 20-Mar-2011.) (Proof shortened by Anthony Hart, 1-Aug-2011.) |
⊢ (⊥ → 𝜑) | ||
Theorem | falimd 1539 | The truth value ⊥ implies anything. (Contributed by Mario Carneiro, 9-Feb-2017.) |
⊢ ((𝜑 ∧ ⊥) → 𝜓) | ||
Theorem | a1tru 1540 | Anything implies ⊤. (Contributed by FL, 20-Mar-2011.) (Proof shortened by Anthony Hart, 1-Aug-2011.) |
⊢ (𝜑 → ⊤) | ||
Theorem | truan 1541 | True can be removed from a conjunction. (Contributed by FL, 20-Mar-2011.) (Proof shortened by Wolf Lammen, 21-Jul-2019.) |
⊢ ((⊤ ∧ 𝜑) ↔ 𝜑) | ||
Theorem | dfnot 1542 | Given falsum ⊥, we can define the negation of a wff 𝜑 as the statement that ⊥ follows from assuming 𝜑. (Contributed by Mario Carneiro, 9-Feb-2017.) (Proof shortened by Wolf Lammen, 21-Jul-2019.) |
⊢ (¬ 𝜑 ↔ (𝜑 → ⊥)) | ||
Theorem | inegd 1543 | Negation introduction rule from natural deduction. (Contributed by Mario Carneiro, 9-Feb-2017.) |
⊢ ((𝜑 ∧ 𝜓) → ⊥) ⇒ ⊢ (𝜑 → ¬ 𝜓) | ||
Theorem | efald 1544 | Deduction based on reductio ad absurdum. (Contributed by Mario Carneiro, 9-Feb-2017.) |
⊢ ((𝜑 ∧ ¬ 𝜓) → ⊥) ⇒ ⊢ (𝜑 → 𝜓) | ||
Theorem | pm2.21fal 1545 | If a wff and its negation are provable, then falsum is provable. (Contributed by Mario Carneiro, 9-Feb-2017.) |
⊢ (𝜑 → 𝜓) & ⊢ (𝜑 → ¬ 𝜓) ⇒ ⊢ (𝜑 → ⊥) | ||
Some sources define operations on true/false values using truth tables. These tables show the results of their operations for all possible combinations of true (⊤) and false (⊥). Here we show that our definitions and axioms produce equivalent results for ∧ (conjunction aka logical 'and') df-an 385, ∨ (disjunction aka logical inclusive 'or') df-or 384, → (implies) wi 4, ¬ (not) wn 3, ↔ (logical equivalence) df-bi 197, ⊼ (nand aka Sheffer stroke) df-nan 1488, and ⊻ (exclusive or) df-xor 1505. | ||
Theorem | truantru 1546 | A ∧ identity. (Contributed by Anthony Hart, 22-Oct-2010.) |
⊢ ((⊤ ∧ ⊤) ↔ ⊤) | ||
Theorem | truanfal 1547 | A ∧ identity. (Contributed by Anthony Hart, 22-Oct-2010.) |
⊢ ((⊤ ∧ ⊥) ↔ ⊥) | ||
Theorem | falantru 1548 | A ∧ identity. (Contributed by Anthony Hart, 22-Oct-2010.) |
⊢ ((⊥ ∧ ⊤) ↔ ⊥) | ||
Theorem | falanfal 1549 | A ∧ identity. (Contributed by Anthony Hart, 22-Oct-2010.) |
⊢ ((⊥ ∧ ⊥) ↔ ⊥) | ||
Theorem | truortru 1550 | A ∨ identity. (Contributed by Anthony Hart, 22-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) |
⊢ ((⊤ ∨ ⊤) ↔ ⊤) | ||
Theorem | truorfal 1551 | A ∨ identity. (Contributed by Anthony Hart, 22-Oct-2010.) |
⊢ ((⊤ ∨ ⊥) ↔ ⊤) | ||
Theorem | falortru 1552 | A ∨ identity. (Contributed by Anthony Hart, 22-Oct-2010.) |
⊢ ((⊥ ∨ ⊤) ↔ ⊤) | ||
Theorem | falorfal 1553 | A ∨ identity. (Contributed by Anthony Hart, 22-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) |
⊢ ((⊥ ∨ ⊥) ↔ ⊥) | ||
Theorem | truimtru 1554 | A → identity. (Contributed by Anthony Hart, 22-Oct-2010.) |
⊢ ((⊤ → ⊤) ↔ ⊤) | ||
Theorem | truimfal 1555 | A → identity. (Contributed by Anthony Hart, 22-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) |
⊢ ((⊤ → ⊥) ↔ ⊥) | ||
Theorem | falimtru 1556 | A → identity. (Contributed by Anthony Hart, 22-Oct-2010.) |
⊢ ((⊥ → ⊤) ↔ ⊤) | ||
Theorem | falimfal 1557 | A → identity. (Contributed by Anthony Hart, 22-Oct-2010.) |
⊢ ((⊥ → ⊥) ↔ ⊤) | ||
Theorem | nottru 1558 | A ¬ identity. (Contributed by Anthony Hart, 22-Oct-2010.) |
⊢ (¬ ⊤ ↔ ⊥) | ||
Theorem | notfal 1559 | A ¬ identity. (Contributed by Anthony Hart, 22-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) |
⊢ (¬ ⊥ ↔ ⊤) | ||
Theorem | trubitru 1560 | A ↔ identity. (Contributed by Anthony Hart, 22-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) |
⊢ ((⊤ ↔ ⊤) ↔ ⊤) | ||
Theorem | falbitru 1561 | A ↔ identity. (Contributed by Anthony Hart, 22-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) (Proof shortened by Wolf Lammen, 10-Jul-2020.) |
⊢ ((⊥ ↔ ⊤) ↔ ⊥) | ||
Theorem | trubifal 1562 | A ↔ identity. (Contributed by Anthony Hart, 22-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) (Proof shortened by Wolf Lammen, 10-Jul-2020.) |
⊢ ((⊤ ↔ ⊥) ↔ ⊥) | ||
Theorem | falbifal 1563 | A ↔ identity. (Contributed by Anthony Hart, 22-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) |
⊢ ((⊥ ↔ ⊥) ↔ ⊤) | ||
Theorem | trunantru 1564 | A ⊼ identity. (Contributed by Anthony Hart, 22-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) |
⊢ ((⊤ ⊼ ⊤) ↔ ⊥) | ||
Theorem | trunanfal 1565 | A ⊼ identity. (Contributed by Anthony Hart, 23-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) (Proof shortened by Wolf Lammen, 10-Jul-2020.) |
⊢ ((⊤ ⊼ ⊥) ↔ ⊤) | ||
Theorem | falnantru 1566 | A ⊼ identity. (Contributed by Anthony Hart, 23-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) |
⊢ ((⊥ ⊼ ⊤) ↔ ⊤) | ||
Theorem | falnanfal 1567 | A ⊼ identity. (Contributed by Anthony Hart, 22-Oct-2010.) (Proof shortened by Andrew Salmon, 13-May-2011.) |
⊢ ((⊥ ⊼ ⊥) ↔ ⊤) | ||
Theorem | truxortru 1568 | A ⊻ identity. (Contributed by David A. Wheeler, 8-May-2015.) |
⊢ ((⊤ ⊻ ⊤) ↔ ⊥) | ||
Theorem | truxorfal 1569 | A ⊻ identity. (Contributed by David A. Wheeler, 8-May-2015.) |
⊢ ((⊤ ⊻ ⊥) ↔ ⊤) | ||
Theorem | falxortru 1570 | A ⊻ identity. (Contributed by David A. Wheeler, 9-May-2015.) (Proof shortened by Wolf Lammen, 10-Jul-2020.) |
⊢ ((⊥ ⊻ ⊤) ↔ ⊤) | ||
Theorem | falxorfal 1571 | A ⊻ identity. (Contributed by David A. Wheeler, 9-May-2015.) |
⊢ ((⊥ ⊻ ⊥) ↔ ⊥) | ||
Propositional calculus deals with truth values, which can be interpreted as bits. Using this, we can define the half adder and the full adder in pure propositional calculus, and show their basic properties. The half adder adds two 1-bit numbers. Its two outputs are the "sum" S and the "carry" C. The real sum is then given by 2C+S. The sum and carry correspond respectively to the logical exclusive disjunction (df-xor 1505) and the logical conjunction (df-an 385). The full adder takes into account an "input carry", so it has three inputs and again two outputs, corresponding to the "sum" (df-had 1573) and "updated carry" (df-cad 1586). Here is a short description. We code the bit 0 by ⊥ and 1 by ⊤. Even though hadd and cadd are invariant under permutation of their arguments, assume for the sake of concreteness that 𝜑 (resp. 𝜓) is the i^th bit of the first (resp. second) number to add (with the convention that the i^th bit is the multiple of 2^i in the base-2 representation), and that 𝜒 is the i^th carry (with the convention that the 0^th carry is 0). Then, hadd(𝜑, 𝜓, 𝜒) gives the i^th bit of the sum, and cadd(𝜑, 𝜓, 𝜒) gives the (i+1)^th carry. Then, addition is performed by iteration from i = 0 to i = 1 + (max of the number of digits of the two summands) by "updating" the carry. | ||
Syntax | whad 1572 | Syntax for the "sum" output of the full adder. (Contributed by Mario Carneiro, 4-Sep-2016.) |
wff hadd(𝜑, 𝜓, 𝜒) | ||
Definition | df-had 1573 | Definition of the "sum" output of the full adder (triple exclusive disjunction, or XOR3). (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ⊻ 𝜓) ⊻ 𝜒)) | ||
Theorem | hadbi123d 1574 | Equality theorem for the adder sum. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (𝜑 → (𝜓 ↔ 𝜒)) & ⊢ (𝜑 → (𝜃 ↔ 𝜏)) & ⊢ (𝜑 → (𝜂 ↔ 𝜁)) ⇒ ⊢ (𝜑 → (hadd(𝜓, 𝜃, 𝜂) ↔ hadd(𝜒, 𝜏, 𝜁))) | ||
Theorem | hadbi123i 1575 | Equality theorem for the adder sum. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (𝜑 ↔ 𝜓) & ⊢ (𝜒 ↔ 𝜃) & ⊢ (𝜏 ↔ 𝜂) ⇒ ⊢ (hadd(𝜑, 𝜒, 𝜏) ↔ hadd(𝜓, 𝜃, 𝜂)) | ||
Theorem | hadass 1576 | Associative law for the adder sum. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ (𝜑 ⊻ (𝜓 ⊻ 𝜒))) | ||
Theorem | hadbi 1577 | The adder sum is the same as the triple biconditional. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ↔ 𝜓) ↔ 𝜒)) | ||
Theorem | hadcoma 1578 | Commutative law for the adder sum. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ hadd(𝜓, 𝜑, 𝜒)) | ||
Theorem | hadcomb 1579 | Commutative law for the adders sum. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ hadd(𝜑, 𝜒, 𝜓)) | ||
Theorem | hadrot 1580 | Rotation law for the adder sum. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ hadd(𝜓, 𝜒, 𝜑)) | ||
Theorem | hadnot 1581 | The adder sum distributes over negation. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 11-Jul-2020.) |
⊢ (¬ hadd(𝜑, 𝜓, 𝜒) ↔ hadd(¬ 𝜑, ¬ 𝜓, ¬ 𝜒)) | ||
Theorem | had1 1582 | If the first input is true, then the adder sum is equivalent to the biconditionality of the other two inputs. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 11-Jul-2020.) |
⊢ (𝜑 → (hadd(𝜑, 𝜓, 𝜒) ↔ (𝜓 ↔ 𝜒))) | ||
Theorem | had0 1583 | If the first input is false, then the adder sum is equivalent to the exclusive disjunction of the other two inputs. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 12-Jul-2020.) |
⊢ (¬ 𝜑 → (hadd(𝜑, 𝜓, 𝜒) ↔ (𝜓 ⊻ 𝜒))) | ||
Theorem | hadifp 1584 | The value of the adder sum is, if the first input is true, the biconditionality, and if the first input is false, the exclusive disjunction, of the other two inputs. (Contributed by BJ, 11-Aug-2020.) |
⊢ (hadd(𝜑, 𝜓, 𝜒) ↔ if-(𝜑, (𝜓 ↔ 𝜒), (𝜓 ⊻ 𝜒))) | ||
Syntax | wcad 1585 | Syntax for the "carry" output of the full adder. (Contributed by Mario Carneiro, 4-Sep-2016.) |
wff cadd(𝜑, 𝜓, 𝜒) | ||
Definition | df-cad 1586 | Definition of the "carry" output of the full adder. It is true when at least two arguments are true, so it is equal to the "majority" function on three variables. See cador 1587 and cadan 1588 for alternate definitions. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (cadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ∧ 𝜓) ∨ (𝜒 ∧ (𝜑 ⊻ 𝜓)))) | ||
Theorem | cador 1587 | The adder carry in disjunctive normal form. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 11-Jul-2020.) |
⊢ (cadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ∧ 𝜓) ∨ (𝜑 ∧ 𝜒) ∨ (𝜓 ∧ 𝜒))) | ||
Theorem | cadan 1588 | The adder carry in conjunctive normal form. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 25-Sep-2018.) |
⊢ (cadd(𝜑, 𝜓, 𝜒) ↔ ((𝜑 ∨ 𝜓) ∧ (𝜑 ∨ 𝜒) ∧ (𝜓 ∨ 𝜒))) | ||
Theorem | cadbi123d 1589 | Equality theorem for the adder carry. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (𝜑 → (𝜓 ↔ 𝜒)) & ⊢ (𝜑 → (𝜃 ↔ 𝜏)) & ⊢ (𝜑 → (𝜂 ↔ 𝜁)) ⇒ ⊢ (𝜑 → (cadd(𝜓, 𝜃, 𝜂) ↔ cadd(𝜒, 𝜏, 𝜁))) | ||
Theorem | cadbi123i 1590 | Equality theorem for the adder carry. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (𝜑 ↔ 𝜓) & ⊢ (𝜒 ↔ 𝜃) & ⊢ (𝜏 ↔ 𝜂) ⇒ ⊢ (cadd(𝜑, 𝜒, 𝜏) ↔ cadd(𝜓, 𝜃, 𝜂)) | ||
Theorem | cadcoma 1591 | Commutative law for the adder carry. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (cadd(𝜑, 𝜓, 𝜒) ↔ cadd(𝜓, 𝜑, 𝜒)) | ||
Theorem | cadcomb 1592 | Commutative law for the adder carry. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 11-Jul-2020.) |
⊢ (cadd(𝜑, 𝜓, 𝜒) ↔ cadd(𝜑, 𝜒, 𝜓)) | ||
Theorem | cadrot 1593 | Rotation law for the adder carry. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ (cadd(𝜑, 𝜓, 𝜒) ↔ cadd(𝜓, 𝜒, 𝜑)) | ||
Theorem | cadnot 1594 | The adder carry distributes over negation. (Contributed by Mario Carneiro, 4-Sep-2016.) (Proof shortened by Wolf Lammen, 11-Jul-2020.) |
⊢ (¬ cadd(𝜑, 𝜓, 𝜒) ↔ cadd(¬ 𝜑, ¬ 𝜓, ¬ 𝜒)) | ||
Theorem | cad1 1595 | If one input is true, then the adder carry is true exactly when at least one of the other two inputs is true. (Contributed by Mario Carneiro, 8-Sep-2016.) (Proof shortened by Wolf Lammen, 19-Jun-2020.) |
⊢ (𝜒 → (cadd(𝜑, 𝜓, 𝜒) ↔ (𝜑 ∨ 𝜓))) | ||
Theorem | cad0 1596 | If one input is false, then the adder carry is true exactly when both of the other two inputs are true. (Contributed by Mario Carneiro, 8-Sep-2016.) |
⊢ (¬ 𝜒 → (cadd(𝜑, 𝜓, 𝜒) ↔ (𝜑 ∧ 𝜓))) | ||
Theorem | cadifp 1597 | The value of the carry is, if the input carry is true, the disjunction, and if the input carry is false, the conjunction, of the other two inputs. (Contributed by BJ, 8-Oct-2019.) |
⊢ (cadd(𝜑, 𝜓, 𝜒) ↔ if-(𝜒, (𝜑 ∨ 𝜓), (𝜑 ∧ 𝜓))) | ||
Theorem | cad11 1598 | If (at least) two inputs are true, then the adder carry is true. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ ((𝜑 ∧ 𝜓) → cadd(𝜑, 𝜓, 𝜒)) | ||
Theorem | cadtru 1599 | The adder carry is true as soon as its first two inputs are the truth constant. (Contributed by Mario Carneiro, 4-Sep-2016.) |
⊢ cadd(⊤, ⊤, 𝜑) | ||
Minimal implicational calculus, or intuitionistic implicational calculus, or positive implicational calculus, is the implicational fragment of minimal calculus (which is also the implicational fragment of intuitionistic calculus and of positive calculus). It is sometimes called "C-pure intuitionism" since the letter C is sometimes used to denote implication, especially in prefix notation. It can be axiomatized by the inference rule of modus ponens ax-mp 5 together with the axioms { ax-1 6, ax-2 7 } (sometimes written KS), or with { imim1 83, ax-1 6, pm2.43 56 } (written B'KW), or with { imim2 58, pm2.04 90, ax-1 6, pm2.43 56 } (written BCKW), or with the single axiom minimp 1600. This section proves minimp 1600 from { ax-1 6, ax-2 7 }, and then the converse, due to Ivo Thomas. Sources for this section are the webpage https://web.ics.purdue.edu/~dulrich/C-pure-intuitionism-page.htm on Ted Ulrich's website, and the articles C. A. Meredith, A single axiom of positive logic, Journal of computing systems, vol. 1 (1953), 169--170, and C. A. Meredith, A. N. Prior, Notes on the axiomatics of the propositional calculus, Notre Dame Journal of Formal Logic, vol. 4 (1963), 171--187. We may use a compact notation for derivations known as the D-notation where "D" stands for "condensed Detachment". For instance, "D21" means detaching ax-1 6 from ax-2 7, that is, using modus ponens ax-mp 5 with ax-1 6 as minor premise and ax-2 7 as major premise. D-strings are accepted by the grammar Dstr := digit | "D" Dstr Dstr. (Contributed by BJ, 11-Apr-2021.) | ||
Theorem | minimp 1600 | A single axiom for minimal implicational calculus, due to Meredith. Other single axioms of the same length are known, but it is thought to be the minimal length. (Contributed by BJ, 4-Apr-2021.) |
⊢ (𝜑 → ((𝜓 → 𝜒) → (((𝜃 → 𝜓) → (𝜒 → 𝜏)) → (𝜓 → 𝜏)))) |
< Previous Next > |
Copyright terms: Public domain | < Previous Next > |