![]() |
Intuitionistic Logic Explorer Theorem List (p. 111 of 113) | < Previous Next > |
Bad symbols? Try the
GIF version. |
||
Mirrors > Metamath Home Page > ILE Home Page > Theorem List Contents > Recent Proofs This page: Page List |
Type | Label | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Statement | ||||||||||||||
Theorem | xpnnen 11001 | The Cartesian product of the set of positive integers with itself is equinumerous to the set of positive integers. (Contributed by NM, 1-Aug-2004.) | ||||||||||||
⊢ (ℕ × ℕ) ≈ ℕ | ||||||||||||||
Theorem | xpomen 11002 | The Cartesian product of omega (the set of ordinal natural numbers) with itself is equinumerous to omega. Exercise 1 of [Enderton] p. 133. (Contributed by NM, 23-Jul-2004.) | ||||||||||||
⊢ (ω × ω) ≈ ω | ||||||||||||||
Theorem | xpct 11003 | The cartesian product of two countable sets is countable. (Contributed by Thierry Arnoux, 24-Sep-2017.) | ||||||||||||
⊢ ((𝐴 ≼ ω ∧ 𝐵 ≼ ω) → (𝐴 × 𝐵) ≼ ω) | ||||||||||||||
Theorem | unennn 11004 | The union of two disjoint countably infinite sets is countably infinite. (Contributed by Jim Kingdon, 13-May-2022.) | ||||||||||||
⊢ ((𝐴 ≈ ℕ ∧ 𝐵 ≈ ℕ ∧ (𝐴 ∩ 𝐵) = ∅) → (𝐴 ∪ 𝐵) ≈ ℕ) | ||||||||||||||
Theorem | znnen 11005 | The set of integers and the set of positive integers are equinumerous. Exercise 1 of [Gleason] p. 140. (Contributed by NM, 31-Jul-2004.) | ||||||||||||
⊢ ℤ ≈ ℕ | ||||||||||||||
This section describes the conventions we use. However, these conventions often refer to existing mathematical practices, which are discussed in more detail in other references. The following sources lay out how mathematics is developed without the law of the excluded middle. Of course, there are a greater number of sources which assume excluded middle and most of what is in them applies here too (especially in a treatment such as ours which is built on first order logic and set theory, rather than, say, type theory). Studying how a topic is treated in the Metamath Proof Explorer and the references therein is often a good place to start (and is easy to compare with the Intuitionistic Logic Explorer). The textbooks provide a motivation for what we are doing, whereas Metamath lets you see in detail all hidden and implicit steps. Most standard theorems are accompanied by citations. Some closely followed texts include the following:
| ||||||||||||||
Theorem | conventions 11006 |
Unless there is a reason to diverge, we follow the conventions of the
Metamath Proof Explorer (aka "set.mm"). This list of conventions is
intended to be read in conjunction with the corresponding conventions in
the Metamath Proof Explorer, and only the differences are described
below.
Label naming conventions Here are a few of the label naming conventions:
The following table shows some commonly-used abbreviations in labels which are not found in the Metamath Proof Explorer, in alphabetical order. For each abbreviation we provide a mnenomic to help you remember it, the source theorem/assumption defining it, an expression showing what it looks like, whether or not it is a "syntax fragment" (an abbreviation that indicates a particular kind of syntax), and hyperlinks to label examples that use the abbreviation. The abbreviation is bolded if there is a df-NAME definition but the label fragment is not NAME.
(Contributed by Jim Kingdon, 24-Feb-2020.) | ||||||||||||
⊢ 𝜑 ⇒ ⊢ 𝜑 | ||||||||||||||
Theorem | ex-or 11007 | Example for ax-io 663. Example by David A. Wheeler. (Contributed by Mario Carneiro, 9-May-2015.) | ||||||||||||
⊢ (2 = 3 ∨ 4 = 4) | ||||||||||||||
Theorem | ex-an 11008 | Example for ax-ia1 104. Example by David A. Wheeler. (Contributed by Mario Carneiro, 9-May-2015.) | ||||||||||||
⊢ (2 = 2 ∧ 3 = 3) | ||||||||||||||
Theorem | 1kp2ke3k 11009 |
Example for df-dec 8787, 1000 + 2000 = 3000.
This proof disproves (by counterexample) the assertion of Hao Wang, who stated, "There is a theorem in the primitive notation of set theory that corresponds to the arithmetic theorem 1000 + 2000 = 3000. The formula would be forbiddingly long... even if (one) knows the definitions and is asked to simplify the long formula according to them, chances are he will make errors and arrive at some incorrect result." (Hao Wang, "Theory and practice in mathematics" , In Thomas Tymoczko, editor, New Directions in the Philosophy of Mathematics, pp 129-152, Birkauser Boston, Inc., Boston, 1986. (QA8.6.N48). The quote itself is on page 140.) This is noted in Metamath: A Computer Language for Pure Mathematics by Norman Megill (2007) section 1.1.3. Megill then states, "A number of writers have conveyed the impression that the kind of absolute rigor provided by Metamath is an impossible dream, suggesting that a complete, formal verification of a typical theorem would take millions of steps in untold volumes of books... These writers assume, however, that in order to achieve the kind of complete formal verification they desire one must break down a proof into individual primitive steps that make direct reference to the axioms. This is not necessary. There is no reason not to make use of previously proved theorems rather than proving them over and over... A hierarchy of theorems and definitions permits an exponential growth in the formula sizes and primitive proof steps to be described with only a linear growth in the number of symbols used. Of course, this is how ordinary informal mathematics is normally done anyway, but with Metamath it can be done with absolute rigor and precision." The proof here starts with (2 + 1) = 3, commutes it, and repeatedly multiplies both sides by ten. This is certainly longer than traditional mathematical proofs, e.g., there are a number of steps explicitly shown here to show that we're allowed to do operations such as multiplication. However, while longer, the proof is clearly a manageable size - even though every step is rigorously derived all the way back to the primitive notions of set theory and logic. And while there's a risk of making errors, the many independent verifiers make it much less likely that an incorrect result will be accepted. This proof heavily relies on the decimal constructor df-dec 8787 developed by Mario Carneiro in 2015. The underlying Metamath language has an intentionally very small set of primitives; it doesn't even have a built-in construct for numbers. Instead, the digits are defined using these primitives, and the decimal constructor is used to make it easy to express larger numbers as combinations of digits. (Contributed by David A. Wheeler, 29-Jun-2016.) (Shortened by Mario Carneiro using the arithmetic algorithm in mmj2, 30-Jun-2016.) | ||||||||||||
⊢ (;;;1000 + ;;;2000) = ;;;3000 | ||||||||||||||
Theorem | ex-fl 11010 | Example for df-fl 9580. Example by David A. Wheeler. (Contributed by Mario Carneiro, 18-Jun-2015.) | ||||||||||||
⊢ ((⌊‘(3 / 2)) = 1 ∧ (⌊‘-(3 / 2)) = -2) | ||||||||||||||
Theorem | ex-ceil 11011 | Example for df-ceil 9581. (Contributed by AV, 4-Sep-2021.) | ||||||||||||
⊢ ((⌈‘(3 / 2)) = 2 ∧ (⌈‘-(3 / 2)) = -1) | ||||||||||||||
Theorem | ex-fac 11012 | Example for df-fac 9983. (Contributed by AV, 4-Sep-2021.) | ||||||||||||
⊢ (!‘5) = ;;120 | ||||||||||||||
Theorem | ex-bc 11013 | Example for df-bc 10005. (Contributed by AV, 4-Sep-2021.) | ||||||||||||
⊢ (5C3) = ;10 | ||||||||||||||
Theorem | ex-dvds 11014 | Example for df-dvds 10591: 3 divides into 6. (Contributed by David A. Wheeler, 19-May-2015.) | ||||||||||||
⊢ 3 ∥ 6 | ||||||||||||||
Theorem | ex-gcd 11015 | Example for df-gcd 10733. (Contributed by AV, 5-Sep-2021.) | ||||||||||||
⊢ (-6 gcd 9) = 3 | ||||||||||||||
Theorem | mathbox 11016 |
(This theorem is a dummy placeholder for these guidelines. The name of
this theorem, "mathbox", is hard-coded into the Metamath
program to
identify the start of the mathbox section for web page generation.)
A "mathbox" is a user-contributed section that is maintained by its contributor independently from the main part of set.mm. For contributors: By making a contribution, you agree to release it into the public domain, according to the statement at the beginning of set.mm. Mathboxes are provided to help keep your work synchronized with changes in set.mm, but they shouldn't be depended on as a permanent archive. If you want to preserve your original contribution, it is your responsibility to keep your own copy of it along with the version of set.mm that works with it. Guidelines: 1. If at all possible, please use only nullary class constants for new definitions. 2. Try to follow the style of the rest of set.mm. Each $p and $a statement must be immediately preceded with the comment that will be shown on its web page description. The metamath program command "write source set.mm /rewrap" will take care of wrapping comment lines and indentation conventions. All mathbox content will be on public display and should hopefully reflect the overall quality of the website. 3. Before submitting a revised mathbox, please make sure it verifies against the current set.mm. 4. Mathboxes should be independent i.e. the proofs should verify with all other mathboxes removed. If you need a theorem from another mathbox, that is fine (and encouraged), but let me know, so I can move the theorem to the main section. One way avoid undesired accidental use of other mathbox theorems is to develop your mathbox using a modified set.mm that has mathboxes removed. Notes: 1. We may decide to move some theorems to the main part of set.mm for general use. 2. We may make changes to mathboxes to maintain the overall quality of set.mm. Normally we will let you know if a change might impact what you are working on. 3. If you use theorems from another user's mathbox, we don't provide assurance that they are based on correct or consistent $a statements. (If you find such a problem, please let us know so it can be corrected.) (Contributed by NM, 20-Feb-2007.) (New usage is discouraged.) | ||||||||||||
⊢ 𝜑 ⇒ ⊢ 𝜑 | ||||||||||||||
Theorem | nnexmid 11017 | Double negation of excluded middle. Intuitionistic logic refutes the negation of excluded middle (but, of course, does not prove excluded middle) for any formula. (Contributed by BJ, 9-Oct-2019.) | ||||||||||||
⊢ ¬ ¬ (𝜑 ∨ ¬ 𝜑) | ||||||||||||||
Theorem | nndc 11018 | Double negation of decidability of a formula. Intuitionistic logic refutes undecidability (but, of course, does not prove decidability) of any formula. (Contributed by BJ, 9-Oct-2019.) | ||||||||||||
⊢ ¬ ¬ DECID 𝜑 | ||||||||||||||
Theorem | dcdc 11019 | Decidability of a proposition is decidable if and only if that proposition is decidable. DECID is idempotent. (Contributed by BJ, 9-Oct-2019.) | ||||||||||||
⊢ (DECID DECID 𝜑 ↔ DECID 𝜑) | ||||||||||||||
Theorem | bj-ex 11020* | Existential generalization. (Contributed by BJ, 8-Dec-2019.) Proof modification is discouraged because there are shorter proofs, but using less basic results (like exlimiv 1532 and 19.9ht 1575 or 19.23ht 1429). (Proof modification is discouraged.) | ||||||||||||
⊢ (∃𝑥𝜑 → 𝜑) | ||||||||||||||
Theorem | bj-hbalt 11021 | Closed form of hbal 1409 (copied from set.mm). (Contributed by BJ, 2-May-2019.) | ||||||||||||
⊢ (∀𝑦(𝜑 → ∀𝑥𝜑) → (∀𝑦𝜑 → ∀𝑥∀𝑦𝜑)) | ||||||||||||||
Theorem | bj-nfalt 11022 | Closed form of nfal 1511 (copied from set.mm). (Contributed by BJ, 2-May-2019.) | ||||||||||||
⊢ (∀𝑥Ⅎ𝑦𝜑 → Ⅎ𝑦∀𝑥𝜑) | ||||||||||||||
Theorem | spimd 11023 | Deduction form of spim 1670. (Contributed by BJ, 17-Oct-2019.) | ||||||||||||
⊢ (𝜑 → Ⅎ𝑥𝜒) & ⊢ (𝜑 → ∀𝑥(𝑥 = 𝑦 → (𝜓 → 𝜒))) ⇒ ⊢ (𝜑 → (∀𝑥𝜓 → 𝜒)) | ||||||||||||||
Theorem | 2spim 11024* | Double substitution, as in spim 1670. (Contributed by BJ, 17-Oct-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝜒 & ⊢ Ⅎ𝑧𝜒 & ⊢ ((𝑥 = 𝑦 ∧ 𝑧 = 𝑡) → (𝜓 → 𝜒)) ⇒ ⊢ (∀𝑧∀𝑥𝜓 → 𝜒) | ||||||||||||||
Theorem | ch2var 11025* | Implicit substitution of 𝑦 for 𝑥 and 𝑡 for 𝑧 into a theorem. (Contributed by BJ, 17-Oct-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝜓 & ⊢ Ⅎ𝑧𝜓 & ⊢ ((𝑥 = 𝑦 ∧ 𝑧 = 𝑡) → (𝜑 ↔ 𝜓)) & ⊢ 𝜑 ⇒ ⊢ 𝜓 | ||||||||||||||
Theorem | ch2varv 11026* | Version of ch2var 11025 with non-freeness hypotheses replaced by DV conditions. (Contributed by BJ, 17-Oct-2019.) | ||||||||||||
⊢ ((𝑥 = 𝑦 ∧ 𝑧 = 𝑡) → (𝜑 ↔ 𝜓)) & ⊢ 𝜑 ⇒ ⊢ 𝜓 | ||||||||||||||
Theorem | bj-exlimmp 11027 | Lemma for bj-vtoclgf 11033. (Contributed by BJ, 21-Nov-2019.) (Proof modification is discouraged.) | ||||||||||||
⊢ Ⅎ𝑥𝜓 & ⊢ (𝜒 → 𝜑) ⇒ ⊢ (∀𝑥(𝜒 → (𝜑 → 𝜓)) → (∃𝑥𝜒 → 𝜓)) | ||||||||||||||
Theorem | bj-exlimmpi 11028 | Lemma for bj-vtoclgf 11033. (Contributed by BJ, 21-Nov-2019.) (Proof modification is discouraged.) | ||||||||||||
⊢ Ⅎ𝑥𝜓 & ⊢ (𝜒 → 𝜑) & ⊢ (𝜒 → (𝜑 → 𝜓)) ⇒ ⊢ (∃𝑥𝜒 → 𝜓) | ||||||||||||||
Theorem | bj-sbimedh 11029 | A strengthening of sbiedh 1714 (same proof). (Contributed by BJ, 16-Dec-2019.) | ||||||||||||
⊢ (𝜑 → ∀𝑥𝜑) & ⊢ (𝜑 → (𝜒 → ∀𝑥𝜒)) & ⊢ (𝜑 → (𝑥 = 𝑦 → (𝜓 → 𝜒))) ⇒ ⊢ (𝜑 → ([𝑦 / 𝑥]𝜓 → 𝜒)) | ||||||||||||||
Theorem | bj-sbimeh 11030 | A strengthening of sbieh 1717 (same proof). (Contributed by BJ, 16-Dec-2019.) | ||||||||||||
⊢ (𝜓 → ∀𝑥𝜓) & ⊢ (𝑥 = 𝑦 → (𝜑 → 𝜓)) ⇒ ⊢ ([𝑦 / 𝑥]𝜑 → 𝜓) | ||||||||||||||
Theorem | bj-sbime 11031 | A strengthening of sbie 1718 (same proof). (Contributed by BJ, 16-Dec-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝜓 & ⊢ (𝑥 = 𝑦 → (𝜑 → 𝜓)) ⇒ ⊢ ([𝑦 / 𝑥]𝜑 → 𝜓) | ||||||||||||||
Various utility theorems using FOL and extensionality. | ||||||||||||||
Theorem | bj-vtoclgft 11032 | Weakening two hypotheses of vtoclgf 2670. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝐴 & ⊢ Ⅎ𝑥𝜓 & ⊢ (𝑥 = 𝐴 → 𝜑) ⇒ ⊢ (∀𝑥(𝑥 = 𝐴 → (𝜑 → 𝜓)) → (𝐴 ∈ 𝑉 → 𝜓)) | ||||||||||||||
Theorem | bj-vtoclgf 11033 | Weakening two hypotheses of vtoclgf 2670. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝐴 & ⊢ Ⅎ𝑥𝜓 & ⊢ (𝑥 = 𝐴 → 𝜑) & ⊢ (𝑥 = 𝐴 → (𝜑 → 𝜓)) ⇒ ⊢ (𝐴 ∈ 𝑉 → 𝜓) | ||||||||||||||
Theorem | elabgf0 11034 | Lemma for elabgf 2748. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ (𝑥 = 𝐴 → (𝐴 ∈ {𝑥 ∣ 𝜑} ↔ 𝜑)) | ||||||||||||||
Theorem | elabgft1 11035 | One implication of elabgf 2748, in closed form. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝐴 & ⊢ Ⅎ𝑥𝜓 ⇒ ⊢ (∀𝑥(𝑥 = 𝐴 → (𝜑 → 𝜓)) → (𝐴 ∈ {𝑥 ∣ 𝜑} → 𝜓)) | ||||||||||||||
Theorem | elabgf1 11036 | One implication of elabgf 2748. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝐴 & ⊢ Ⅎ𝑥𝜓 & ⊢ (𝑥 = 𝐴 → (𝜑 → 𝜓)) ⇒ ⊢ (𝐴 ∈ {𝑥 ∣ 𝜑} → 𝜓) | ||||||||||||||
Theorem | elabgf2 11037 | One implication of elabgf 2748. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝐴 & ⊢ Ⅎ𝑥𝜓 & ⊢ (𝑥 = 𝐴 → (𝜓 → 𝜑)) ⇒ ⊢ (𝐴 ∈ 𝐵 → (𝜓 → 𝐴 ∈ {𝑥 ∣ 𝜑})) | ||||||||||||||
Theorem | elabf1 11038* | One implication of elabf 2749. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝜓 & ⊢ (𝑥 = 𝐴 → (𝜑 → 𝜓)) ⇒ ⊢ (𝐴 ∈ {𝑥 ∣ 𝜑} → 𝜓) | ||||||||||||||
Theorem | elabf2 11039* | One implication of elabf 2749. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝜓 & ⊢ 𝐴 ∈ V & ⊢ (𝑥 = 𝐴 → (𝜓 → 𝜑)) ⇒ ⊢ (𝜓 → 𝐴 ∈ {𝑥 ∣ 𝜑}) | ||||||||||||||
Theorem | elab1 11040* | One implication of elab 2750. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ (𝑥 = 𝐴 → (𝜑 → 𝜓)) ⇒ ⊢ (𝐴 ∈ {𝑥 ∣ 𝜑} → 𝜓) | ||||||||||||||
Theorem | elab2a 11041* | One implication of elab 2750. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ 𝐴 ∈ V & ⊢ (𝑥 = 𝐴 → (𝜓 → 𝜑)) ⇒ ⊢ (𝜓 → 𝐴 ∈ {𝑥 ∣ 𝜑}) | ||||||||||||||
Theorem | elabg2 11042* | One implication of elabg 2751. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ (𝑥 = 𝐴 → (𝜓 → 𝜑)) ⇒ ⊢ (𝐴 ∈ 𝑉 → (𝜓 → 𝐴 ∈ {𝑥 ∣ 𝜑})) | ||||||||||||||
Theorem | bj-rspgt 11043 | Restricted specialization, generalized. Weakens a hypothesis of rspccv 2711 and seems to have a shorter proof. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝐴 & ⊢ Ⅎ𝑥𝐵 & ⊢ Ⅎ𝑥𝜓 ⇒ ⊢ (∀𝑥(𝑥 = 𝐴 → (𝜑 → 𝜓)) → (∀𝑥 ∈ 𝐵 𝜑 → (𝐴 ∈ 𝐵 → 𝜓))) | ||||||||||||||
Theorem | bj-rspg 11044 | Restricted specialization, generalized. Weakens a hypothesis of rspccv 2711 and seems to have a shorter proof. (Contributed by BJ, 21-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝐴 & ⊢ Ⅎ𝑥𝐵 & ⊢ Ⅎ𝑥𝜓 & ⊢ (𝑥 = 𝐴 → (𝜑 → 𝜓)) ⇒ ⊢ (∀𝑥 ∈ 𝐵 𝜑 → (𝐴 ∈ 𝐵 → 𝜓)) | ||||||||||||||
Theorem | cbvrald 11045* | Rule used to change bound variables, using implicit substitution. (Contributed by BJ, 22-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝜑 & ⊢ Ⅎ𝑦𝜑 & ⊢ (𝜑 → Ⅎ𝑦𝜓) & ⊢ (𝜑 → Ⅎ𝑥𝜒) & ⊢ (𝜑 → (𝑥 = 𝑦 → (𝜓 ↔ 𝜒))) ⇒ ⊢ (𝜑 → (∀𝑥 ∈ 𝐴 𝜓 ↔ ∀𝑦 ∈ 𝐴 𝜒)) | ||||||||||||||
Theorem | bj-intabssel 11046 | Version of intss1 3680 using a class abstraction and explicit substitution. (Contributed by BJ, 29-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝐴 ⇒ ⊢ (𝐴 ∈ 𝑉 → ([𝐴 / 𝑥]𝜑 → ∩ {𝑥 ∣ 𝜑} ⊆ 𝐴)) | ||||||||||||||
Theorem | bj-intabssel1 11047 | Version of intss1 3680 using a class abstraction and implicit substitution. Closed form of intmin3 3692. (Contributed by BJ, 29-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝐴 & ⊢ Ⅎ𝑥𝜓 & ⊢ (𝑥 = 𝐴 → (𝜓 → 𝜑)) ⇒ ⊢ (𝐴 ∈ 𝑉 → (𝜓 → ∩ {𝑥 ∣ 𝜑} ⊆ 𝐴)) | ||||||||||||||
Theorem | bj-elssuniab 11048 | Version of elssuni 3658 using a class abstraction and explicit substitution. (Contributed by BJ, 29-Nov-2019.) | ||||||||||||
⊢ Ⅎ𝑥𝐴 ⇒ ⊢ (𝐴 ∈ 𝑉 → ([𝐴 / 𝑥]𝜑 → 𝐴 ⊆ ∪ {𝑥 ∣ 𝜑})) | ||||||||||||||
Theorem | bj-sseq 11049 | If two converse inclusions are characterized each by a formula, then equality is characterized by the conjunction of these formulas. (Contributed by BJ, 30-Nov-2019.) | ||||||||||||
⊢ (𝜑 → (𝜓 ↔ 𝐴 ⊆ 𝐵)) & ⊢ (𝜑 → (𝜒 ↔ 𝐵 ⊆ 𝐴)) ⇒ ⊢ (𝜑 → ((𝜓 ∧ 𝜒) ↔ 𝐴 = 𝐵)) | ||||||||||||||
The question of decidability is essential in intuitionistic logic. In intuitionistic set theories, it is natural to define decidability of a set (or class) as decidability of membership in it. One can parameterize this notion with another set (or class) since it is often important to assess decidability of membership in one class among elements of another class. Namely, one will say that "𝐴 is decidable in 𝐵 " if ∀𝑥 ∈ 𝐵DECID 𝑥 ∈ 𝐴 (see df-dcin 11051). Note the similarity with the definition of a bounded class as a class for which membership in it is a bounded proposition (df-bdc 11089). | ||||||||||||||
Syntax | wdcin 11050 | Syntax for decidability of a class in another. | ||||||||||||
wff 𝐴 DECIDin 𝐵 | ||||||||||||||
Definition | df-dcin 11051* | Define decidability of a class in another. (Contributed by BJ, 19-Feb-2022.) | ||||||||||||
⊢ (𝐴 DECIDin 𝐵 ↔ ∀𝑥 ∈ 𝐵 DECID 𝑥 ∈ 𝐴) | ||||||||||||||
Theorem | decidi 11052 | Property of being decidable in another class. (Contributed by BJ, 19-Feb-2022.) | ||||||||||||
⊢ (𝐴 DECIDin 𝐵 → (𝑋 ∈ 𝐵 → (𝑋 ∈ 𝐴 ∨ ¬ 𝑋 ∈ 𝐴))) | ||||||||||||||
Theorem | decidr 11053* | Sufficient condition for being decidable in another class. (Contributed by BJ, 19-Feb-2022.) | ||||||||||||
⊢ (𝜑 → (𝑥 ∈ 𝐵 → (𝑥 ∈ 𝐴 ∨ ¬ 𝑥 ∈ 𝐴))) ⇒ ⊢ (𝜑 → 𝐴 DECIDin 𝐵) | ||||||||||||||
Theorem | decidin 11054 | If A is a decidable subclass of B (meaning: it is a subclass of B and it is decidable in B), and B is decidable in C, then A is decidable in C. (Contributed by BJ, 19-Feb-2022.) | ||||||||||||
⊢ (𝜑 → 𝐴 ⊆ 𝐵) & ⊢ (𝜑 → 𝐴 DECIDin 𝐵) & ⊢ (𝜑 → 𝐵 DECIDin 𝐶) ⇒ ⊢ (𝜑 → 𝐴 DECIDin 𝐶) | ||||||||||||||
Theorem | uzdcinzz 11055 | An upperset of integers is decidable in the integers. Reformulation of eluzdc 9006. (Contributed by Jim Kingdon, 18-Apr-2020.) (Revised by BJ, 19-Feb-2022.) | ||||||||||||
⊢ (𝑀 ∈ ℤ → (ℤ≥‘𝑀) DECIDin ℤ) | ||||||||||||||
Theorem | sumdc2 11056* | Alternate proof of sumdc 10583, without DV condition on 𝑁, 𝑥 (longer because the statement is taylored to the proof sumdc 10583). (Contributed by BJ, 19-Feb-2022.) | ||||||||||||
⊢ (𝜑 → 𝑀 ∈ ℤ) & ⊢ (𝜑 → 𝐴 ⊆ (ℤ≥‘𝑀)) & ⊢ (𝜑 → ∀𝑥 ∈ (ℤ≥‘𝑀)DECID 𝑥 ∈ 𝐴) & ⊢ (𝜑 → 𝑁 ∈ ℤ) ⇒ ⊢ (𝜑 → DECID 𝑁 ∈ 𝐴) | ||||||||||||||
Theorem | djucllem 11057* | Lemma for djulcl 6664 and djurcl 6665. (Contributed by BJ, 4-Jul-2022.) | ||||||||||||
⊢ 𝑋 ∈ V & ⊢ 𝐹 = (𝑥 ∈ V ↦ 〈𝑋, 𝑥〉) ⇒ ⊢ (𝐴 ∈ 𝐵 → ((𝐹 ↾ 𝐵)‘𝐴) ∈ ({𝑋} × 𝐵)) | ||||||||||||||
Theorem | djulclALT 11058 | Shortening of djulcl 6664 using djucllem 11057. (Contributed by BJ, 4-Jul-2022.) (Proof modification is discouraged.) (New usage is discouraged.) | ||||||||||||
⊢ (𝐶 ∈ 𝐴 → ((inl ↾ 𝐴)‘𝐶) ∈ (𝐴 ⊔ 𝐵)) | ||||||||||||||
Theorem | djurclALT 11059 | Shortening of djurcl 6665 using djucllem 11057. (Contributed by BJ, 4-Jul-2022.) (Proof modification is discouraged.) (New usage is discouraged.) | ||||||||||||
⊢ (𝐶 ∈ 𝐵 → ((inr ↾ 𝐵)‘𝐶) ∈ (𝐴 ⊔ 𝐵)) | ||||||||||||||
This section develops constructive Zermelo--Fraenkel set theory (CZF) on top of intuitionistic logic. It is a constructive theory in the sense that its logic is intuitionistic and it is predicative. "Predicative" means that new sets can be constructed only from already constructed sets. In particular, the axiom of separation ax-sep 3925 is not predicative (because we cannot allow all formulas to define a subset) and is replaced in CZF by bounded separation ax-bdsep 11132. Because this axiom is weaker than full separation, the axiom of replacement or collection ax-coll 3922 of ZF and IZF has to be strengthened in CZF to the axiom of strong collection ax-strcoll 11234 (which is a theorem of IZF), and the axiom of infinity needs a more precise version, the von Neumann axiom of infinity ax-infvn 11193. Similarly, the axiom of powerset ax-pow 3977 is not predicative (checking whether a set is included in another requires to universally quantifier over that "not yet constructed" set) and is replaced in CZF by the axiom of fullness or the axiom of subset collection ax-sscoll 11239. In an intuitionistic context, the axiom of regularity is stated in IZF as well as in CZF as the axiom of set induction ax-setind 4319. It is sometimes interesting to study the weakening of CZF where that axiom is replaced by bounded set induction ax-bdsetind 11220. For more details on CZF, a useful set of notes is Peter Aczel and Michael Rathjen, CST Book draft. (available at http://www1.maths.leeds.ac.uk/~rathjen/book.pdf) and an interesting article is Michael Shulman, Comparing material and structural set theories, Annals of Pure and Applied Logic, Volume 170, Issue 4 (Apr. 2019), 465--504. (available at https://arxiv.org/abs/1808.05204) I also thank Michael Rathjen and Michael Shulman for useful hints in the formulation of some results. | ||||||||||||||
The present definition of bounded formulas emerged from a discussion on GitHub between Jim Kingdon, Mario Carneiro and I, started 23-Sept-2019 (see https://github.com/metamath/set.mm/issues/1173 and links therein). In order to state certain axiom schemes of Constructive Zermelo–Fraenkel (CZF) set theory, like the axiom scheme of bounded (or restricted, or Δ0) separation, it is necessary to distinguish certain formulas, called bounded (or restricted, or Δ0) formulas. The necessity of considering bounded formulas also arises in several theories of bounded arithmetic, both classical or intuitonistic, for instance to state the axiom scheme of Δ0-induction. To formalize this in Metamath, there are several choices to make. A first choice is to either create a new type for bounded formulas, or to create a predicate on formulas that indicates whether they are bounded. In the first case, one creates a new type "wff0" with a new set of metavariables (ph0 ...) and an axiom "$a wff ph0 " ensuring that bounded formulas are formulas, so that one can reuse existing theorems, and then axioms take the form "$a wff0 ( ph0 -> ps0 )", etc. In the second case, one introduces a predicate "BOUNDED " with the intended meaning that "BOUNDED 𝜑 " is a formula meaning that 𝜑 is a bounded formula. We choose the second option, since the first would complicate the grammar, risking to make it ambiguous. (TODO: elaborate.) A second choice is to view "bounded" either as a syntactic or a semantic property. For instance, ∀𝑥⊤ is not syntactically bounded since it has an unbounded universal quantifier, but it is semantically bounded since it is equivalent to ⊤ which is bounded. We choose the second option, so that formulas using defined symbols can be proved bounded. A third choice is in the form of the axioms, either in closed form or in inference form. One cannot state all the axioms in closed form, especially ax-bd0 11061. Indeed, if we posited it in closed form, then we could prove for instance ⊢ (𝜑 → BOUNDED 𝜑) and ⊢ (¬ 𝜑 → BOUNDED 𝜑) which is problematic (with the law of excluded middle, this would entail that all formulas are bounded, but even without it, too many formulas could be proved bounded...). (TODO: elaborate.) Having ax-bd0 11061 in inference form ensures that a formula can be proved bounded only if it is equivalent *for all values of the free variables* to a syntactically bounded one. The other axioms (ax-bdim 11062 through ax-bdsb 11070) can be written either in closed or inference form. The fact that ax-bd0 11061 is an inference is enough to ensure that the closed forms cannot be "exploited" to prove that some unbounded formulas are bounded. (TODO: check.) However, we state all the axioms in inference form to make it clear that we do not exploit any over-permissiveness. Finally, note that our logic has no terms, only variables. Therefore, we cannot prove for instance that 𝑥 ∈ ω is a bounded formula. However, since ω can be defined as "the 𝑦 such that PHI" a proof using the fact that 𝑥 ∈ ω is bounded can be converted to a proof in iset.mm by replacing ω with 𝑦 everywhere and prepending the antecedent PHI, since 𝑥 ∈ 𝑦 is bounded by ax-bdel 11069. For a similar method, see bj-omtrans 11208. Note that one cannot add an axiom ⊢ BOUNDED 𝑥 ∈ 𝐴 since by bdph 11098 it would imply that every formula is bounded. | ||||||||||||||
Syntax | wbd 11060 | Syntax for the predicate BOUNDED. | ||||||||||||
wff BOUNDED 𝜑 | ||||||||||||||
Axiom | ax-bd0 11061 | If two formulas are equivalent, then boundedness of one implies boundedness of the other. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ (𝜑 ↔ 𝜓) ⇒ ⊢ (BOUNDED 𝜑 → BOUNDED 𝜓) | ||||||||||||||
Axiom | ax-bdim 11062 | An implication between two bounded formulas is bounded. (Contributed by BJ, 25-Sep-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 & ⊢ BOUNDED 𝜓 ⇒ ⊢ BOUNDED (𝜑 → 𝜓) | ||||||||||||||
Axiom | ax-bdan 11063 | The conjunction of two bounded formulas is bounded. (Contributed by BJ, 25-Sep-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 & ⊢ BOUNDED 𝜓 ⇒ ⊢ BOUNDED (𝜑 ∧ 𝜓) | ||||||||||||||
Axiom | ax-bdor 11064 | The disjunction of two bounded formulas is bounded. (Contributed by BJ, 25-Sep-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 & ⊢ BOUNDED 𝜓 ⇒ ⊢ BOUNDED (𝜑 ∨ 𝜓) | ||||||||||||||
Axiom | ax-bdn 11065 | The negation of a bounded formula is bounded. (Contributed by BJ, 25-Sep-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 ⇒ ⊢ BOUNDED ¬ 𝜑 | ||||||||||||||
Axiom | ax-bdal 11066* | A bounded universal quantification of a bounded formula is bounded. Note the DV condition on 𝑥, 𝑦. (Contributed by BJ, 25-Sep-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 ⇒ ⊢ BOUNDED ∀𝑥 ∈ 𝑦 𝜑 | ||||||||||||||
Axiom | ax-bdex 11067* | A bounded existential quantification of a bounded formula is bounded. Note the DV condition on 𝑥, 𝑦. (Contributed by BJ, 25-Sep-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 ⇒ ⊢ BOUNDED ∃𝑥 ∈ 𝑦 𝜑 | ||||||||||||||
Axiom | ax-bdeq 11068 | An atomic formula is bounded (equality predicate). (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝑥 = 𝑦 | ||||||||||||||
Axiom | ax-bdel 11069 | An atomic formula is bounded (membership predicate). (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝑥 ∈ 𝑦 | ||||||||||||||
Axiom | ax-bdsb 11070 | A formula resulting from proper substitution in a bounded formula is bounded. This probably cannot be proved from the other axioms, since neither the definiens in df-sb 1690, nor probably any other equivalent formula, is syntactically bounded. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 ⇒ ⊢ BOUNDED [𝑦 / 𝑥]𝜑 | ||||||||||||||
Theorem | bdeq 11071 | Equality property for the predicate BOUNDED. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ (𝜑 ↔ 𝜓) ⇒ ⊢ (BOUNDED 𝜑 ↔ BOUNDED 𝜓) | ||||||||||||||
Theorem | bd0 11072 | A formula equivalent to a bounded one is bounded. See also bd0r 11073. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 & ⊢ (𝜑 ↔ 𝜓) ⇒ ⊢ BOUNDED 𝜓 | ||||||||||||||
Theorem | bd0r 11073 | A formula equivalent to a bounded one is bounded. Stated with a commuted (compared with bd0 11072) biconditional in the hypothesis, to work better with definitions (𝜓 is the definiendum that one wants to prove bounded). (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 & ⊢ (𝜓 ↔ 𝜑) ⇒ ⊢ BOUNDED 𝜓 | ||||||||||||||
Theorem | bdbi 11074 | A biconditional between two bounded formulas is bounded. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 & ⊢ BOUNDED 𝜓 ⇒ ⊢ BOUNDED (𝜑 ↔ 𝜓) | ||||||||||||||
Theorem | bdstab 11075 | Stability of a bounded formula is bounded. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 ⇒ ⊢ BOUNDED STAB 𝜑 | ||||||||||||||
Theorem | bddc 11076 | Decidability of a bounded formula is bounded. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 ⇒ ⊢ BOUNDED DECID 𝜑 | ||||||||||||||
Theorem | bd3or 11077 | A disjunction of three bounded formulas is bounded. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 & ⊢ BOUNDED 𝜓 & ⊢ BOUNDED 𝜒 ⇒ ⊢ BOUNDED (𝜑 ∨ 𝜓 ∨ 𝜒) | ||||||||||||||
Theorem | bd3an 11078 | A conjunction of three bounded formulas is bounded. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 & ⊢ BOUNDED 𝜓 & ⊢ BOUNDED 𝜒 ⇒ ⊢ BOUNDED (𝜑 ∧ 𝜓 ∧ 𝜒) | ||||||||||||||
Theorem | bdth 11079 | A truth (a (closed) theorem) is a bounded formula. (Contributed by BJ, 6-Oct-2019.) | ||||||||||||
⊢ 𝜑 ⇒ ⊢ BOUNDED 𝜑 | ||||||||||||||
Theorem | bdtru 11080 | The truth value ⊤ is bounded. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED ⊤ | ||||||||||||||
Theorem | bdfal 11081 | The truth value ⊥ is bounded. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED ⊥ | ||||||||||||||
Theorem | bdnth 11082 | A falsity is a bounded formula. (Contributed by BJ, 6-Oct-2019.) | ||||||||||||
⊢ ¬ 𝜑 ⇒ ⊢ BOUNDED 𝜑 | ||||||||||||||
Theorem | bdnthALT 11083 | Alternate proof of bdnth 11082 not using bdfal 11081. Then, bdfal 11081 can be proved from this theorem, using fal 1294. The total number of proof steps would be 17 (for bdnthALT 11083) + 3 = 20, which is more than 8 (for bdfal 11081) + 9 (for bdnth 11082) = 17. (Contributed by BJ, 6-Oct-2019.) (Proof modification is discouraged.) (New usage is discouraged.) | ||||||||||||
⊢ ¬ 𝜑 ⇒ ⊢ BOUNDED 𝜑 | ||||||||||||||
Theorem | bdxor 11084 | The exclusive disjunction of two bounded formulas is bounded. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 & ⊢ BOUNDED 𝜓 ⇒ ⊢ BOUNDED (𝜑 ⊻ 𝜓) | ||||||||||||||
Theorem | bj-bdcel 11085* | Boundedness of a membership formula. (Contributed by BJ, 8-Dec-2019.) | ||||||||||||
⊢ BOUNDED 𝑦 = 𝐴 ⇒ ⊢ BOUNDED 𝐴 ∈ 𝑥 | ||||||||||||||
Theorem | bdab 11086 | Membership in a class defined by class abstraction using a bounded formula, is a bounded formula. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 ⇒ ⊢ BOUNDED 𝑥 ∈ {𝑦 ∣ 𝜑} | ||||||||||||||
Theorem | bdcdeq 11087 | Conditional equality of a bounded formula is a bounded formula. (Contributed by BJ, 16-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 ⇒ ⊢ BOUNDED CondEq(𝑥 = 𝑦 → 𝜑) | ||||||||||||||
In line with our definitions of classes as extensions of predicates, it is useful to define a predicate for bounded classes, which is done in df-bdc 11089. Note that this notion is only a technical device which can be used to shorten proofs of (semantic) boundedness of formulas. As will be clear by the end of this subsection (see for instance bdop 11123), one can prove the boundedness of any concrete term using only setvars and bounded formulas, for instance, ⊢ BOUNDED 𝜑 ⇒ ⊢ BOUNDED 〈{𝑥 ∣ 𝜑}, ({𝑦, suc 𝑧} × 〈𝑡, ∅〉)〉. The proofs are long since one has to prove boundedness at each step of the construction, without being able to prove general theorems like ⊢ BOUNDED 𝐴 ⇒ ⊢ BOUNDED {𝐴}. | ||||||||||||||
Syntax | wbdc 11088 | Syntax for the predicate BOUNDED. | ||||||||||||
wff BOUNDED 𝐴 | ||||||||||||||
Definition | df-bdc 11089* | Define a bounded class as one such that membership in this class is a bounded formula. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ (BOUNDED 𝐴 ↔ ∀𝑥BOUNDED 𝑥 ∈ 𝐴) | ||||||||||||||
Theorem | bdceq 11090 | Equality property for the predicate BOUNDED. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ 𝐴 = 𝐵 ⇒ ⊢ (BOUNDED 𝐴 ↔ BOUNDED 𝐵) | ||||||||||||||
Theorem | bdceqi 11091 | A class equal to a bounded one is bounded. Note the use of ax-ext 2067. See also bdceqir 11092. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝐴 & ⊢ 𝐴 = 𝐵 ⇒ ⊢ BOUNDED 𝐵 | ||||||||||||||
Theorem | bdceqir 11092 | A class equal to a bounded one is bounded. Stated with a commuted (compared with bdceqi 11091) equality in the hypothesis, to work better with definitions (𝐵 is the definiendum that one wants to prove bounded; see comment of bd0r 11073). (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝐴 & ⊢ 𝐵 = 𝐴 ⇒ ⊢ BOUNDED 𝐵 | ||||||||||||||
Theorem | bdel 11093* | The belonging of a setvar in a bounded class is a bounded formula. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ (BOUNDED 𝐴 → BOUNDED 𝑥 ∈ 𝐴) | ||||||||||||||
Theorem | bdeli 11094* | Inference associated with bdel 11093. Its converse is bdelir 11095. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝐴 ⇒ ⊢ BOUNDED 𝑥 ∈ 𝐴 | ||||||||||||||
Theorem | bdelir 11095* | Inference associated with df-bdc 11089. Its converse is bdeli 11094. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝑥 ∈ 𝐴 ⇒ ⊢ BOUNDED 𝐴 | ||||||||||||||
Theorem | bdcv 11096 | A setvar is a bounded class. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝑥 | ||||||||||||||
Theorem | bdcab 11097 | A class defined by class abstraction using a bounded formula is bounded. (Contributed by BJ, 6-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 ⇒ ⊢ BOUNDED {𝑥 ∣ 𝜑} | ||||||||||||||
Theorem | bdph 11098 | A formula which defines (by class abstraction) a bounded class is bounded. (Contributed by BJ, 6-Oct-2019.) | ||||||||||||
⊢ BOUNDED {𝑥 ∣ 𝜑} ⇒ ⊢ BOUNDED 𝜑 | ||||||||||||||
Theorem | bds 11099* | Boundedness of a formula resulting from implicit substitution in a bounded formula. Note that the proof does not use ax-bdsb 11070; therefore, using implicit instead of explicit substitution when boundedness is important, one might avoid using ax-bdsb 11070. (Contributed by BJ, 19-Nov-2019.) | ||||||||||||
⊢ BOUNDED 𝜑 & ⊢ (𝑥 = 𝑦 → (𝜑 ↔ 𝜓)) ⇒ ⊢ BOUNDED 𝜓 | ||||||||||||||
Theorem | bdcrab 11100* | A class defined by restricted abstraction from a bounded class and a bounded formula is bounded. (Contributed by BJ, 3-Oct-2019.) | ||||||||||||
⊢ BOUNDED 𝐴 & ⊢ BOUNDED 𝜑 ⇒ ⊢ BOUNDED {𝑥 ∈ 𝐴 ∣ 𝜑} |
< Previous Next > |
Copyright terms: Public domain | < Previous Next > |