| Metamath
Proof Explorer Theorem List (p. 385 of 500) | < 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-30900) |
(30901-32423) |
(32424-49930) |
| Type | Label | Description |
|---|---|---|
| Statement | ||
| Theorem | relssinxpdmrn 38401 | Subset of restriction, special case. (Contributed by Peter Mazsa, 10-Apr-2023.) |
| ⊢ (Rel 𝑅 → (𝑅 ⊆ (𝑆 ∩ (dom 𝑅 × ran 𝑅)) ↔ 𝑅 ⊆ 𝑆)) | ||
| Theorem | cnvref4 38402 | Two ways to say that a relation is a subclass. (Contributed by Peter Mazsa, 11-Apr-2023.) |
| ⊢ (Rel 𝑅 → ((𝑅 ∩ (dom 𝑅 × ran 𝑅)) ⊆ (𝑆 ∩ (dom 𝑅 × ran 𝑅)) ↔ 𝑅 ⊆ 𝑆)) | ||
| Theorem | cnvref5 38403* | Two ways to say that a relation is a subclass of the identity relation. (Contributed by Peter Mazsa, 26-Jun-2019.) |
| ⊢ (Rel 𝑅 → (𝑅 ⊆ I ↔ ∀𝑥∀𝑦(𝑥𝑅𝑦 → 𝑥 = 𝑦))) | ||
| Theorem | ecin0 38404* | Two ways of saying that the coset of 𝐴 and the coset of 𝐵 have no elements in common. (Contributed by Peter Mazsa, 1-Dec-2018.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊) → (([𝐴]𝑅 ∩ [𝐵]𝑅) = ∅ ↔ ∀𝑥(𝐴𝑅𝑥 → ¬ 𝐵𝑅𝑥))) | ||
| Theorem | ecinn0 38405* | Two ways of saying that the coset of 𝐴 and the coset of 𝐵 have some elements in common. (Contributed by Peter Mazsa, 23-Jan-2019.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊) → (([𝐴]𝑅 ∩ [𝐵]𝑅) ≠ ∅ ↔ ∃𝑥(𝐴𝑅𝑥 ∧ 𝐵𝑅𝑥))) | ||
| Theorem | ineleq 38406* | Equivalence of restricted universal quantifications. (Contributed by Peter Mazsa, 29-May-2018.) |
| ⊢ (∀𝑥 ∈ 𝐴 ∀𝑦 ∈ 𝐵 (𝑥 = 𝑦 ∨ (𝐶 ∩ 𝐷) = ∅) ↔ ∀𝑥 ∈ 𝐴 ∀𝑧∀𝑦 ∈ 𝐵 ((𝑧 ∈ 𝐶 ∧ 𝑧 ∈ 𝐷) → 𝑥 = 𝑦)) | ||
| Theorem | inecmo 38407* | Equivalence of a double restricted universal quantification and a restricted "at most one" inside a universal quantification. (Contributed by Peter Mazsa, 29-May-2018.) |
| ⊢ (𝑥 = 𝑦 → 𝐵 = 𝐶) ⇒ ⊢ (Rel 𝑅 → (∀𝑥 ∈ 𝐴 ∀𝑦 ∈ 𝐴 (𝑥 = 𝑦 ∨ ([𝐵]𝑅 ∩ [𝐶]𝑅) = ∅) ↔ ∀𝑧∃*𝑥 ∈ 𝐴 𝐵𝑅𝑧)) | ||
| Theorem | inecmo2 38408* | Equivalence of a double restricted universal quantification and a restricted "at most one" inside a universal quantification. (Contributed by Peter Mazsa, 29-May-2018.) (Revised by Peter Mazsa, 2-Sep-2021.) |
| ⊢ ((∀𝑢 ∈ 𝐴 ∀𝑣 ∈ 𝐴 (𝑢 = 𝑣 ∨ ([𝑢]𝑅 ∩ [𝑣]𝑅) = ∅) ∧ Rel 𝑅) ↔ (∀𝑥∃*𝑢 ∈ 𝐴 𝑢𝑅𝑥 ∧ Rel 𝑅)) | ||
| Theorem | ineccnvmo 38409* | Equivalence of a double restricted universal quantification and a restricted "at most one" inside a universal quantification. (Contributed by Peter Mazsa, 2-Sep-2021.) |
| ⊢ (∀𝑦 ∈ 𝐵 ∀𝑧 ∈ 𝐵 (𝑦 = 𝑧 ∨ ([𝑦]◡𝐹 ∩ [𝑧]◡𝐹) = ∅) ↔ ∀𝑥∃*𝑦 ∈ 𝐵 𝑥𝐹𝑦) | ||
| Theorem | alrmomorn 38410 | Equivalence of an "at most one" and an "at most one" restricted to the range inside a universal quantification. (Contributed by Peter Mazsa, 3-Sep-2021.) |
| ⊢ (∀𝑥∃*𝑦 ∈ ran 𝑅 𝑥𝑅𝑦 ↔ ∀𝑥∃*𝑦 𝑥𝑅𝑦) | ||
| Theorem | alrmomodm 38411* | Equivalence of an "at most one" and an "at most one" restricted to the domain inside a universal quantification. (Contributed by Peter Mazsa, 5-Sep-2021.) |
| ⊢ (Rel 𝑅 → (∀𝑥∃*𝑢 ∈ dom 𝑅 𝑢𝑅𝑥 ↔ ∀𝑥∃*𝑢 𝑢𝑅𝑥)) | ||
| Theorem | ineccnvmo2 38412* | Equivalence of a double universal quantification restricted to the range and an "at most one" inside a universal quantification. (Contributed by Peter Mazsa, 4-Sep-2021.) |
| ⊢ (∀𝑥 ∈ ran 𝐹∀𝑦 ∈ ran 𝐹(𝑥 = 𝑦 ∨ ([𝑥]◡𝐹 ∩ [𝑦]◡𝐹) = ∅) ↔ ∀𝑢∃*𝑥 𝑢𝐹𝑥) | ||
| Theorem | inecmo3 38413* | Equivalence of a double universal quantification restricted to the domain and an "at most one" inside a universal quantification. (Contributed by Peter Mazsa, 5-Sep-2021.) |
| ⊢ ((∀𝑢 ∈ dom 𝑅∀𝑣 ∈ dom 𝑅(𝑢 = 𝑣 ∨ ([𝑢]𝑅 ∩ [𝑣]𝑅) = ∅) ∧ Rel 𝑅) ↔ (∀𝑥∃*𝑢 𝑢𝑅𝑥 ∧ Rel 𝑅)) | ||
| Theorem | moeu2 38414 | Uniqueness is equivalent to non-existence or unique existence. Alternate definition of the at-most-one quantifier, in terms of the existential quantifier and the unique existential quantifier. (Contributed by Peter Mazsa, 19-Nov-2024.) |
| ⊢ (∃*𝑥𝜑 ↔ (¬ ∃𝑥𝜑 ∨ ∃!𝑥𝜑)) | ||
| Theorem | mopickr 38415 | "At most one" picks a variable value, eliminating an existential quantifier. The proof begins with references *2.21 (pm2.21 123) and *14.26 (eupickbi 2633) from [WhiteheadRussell] p. 104 and p. 183. (Contributed by Peter Mazsa, 18-Nov-2024.) (Proof modification is discouraged.) |
| ⊢ ((∃*𝑥𝜓 ∧ ∃𝑥(𝜑 ∧ 𝜓)) → (𝜓 → 𝜑)) | ||
| Theorem | moantr 38416 | Sufficient condition for transitivity of conjunctions inside existential quantifiers. (Contributed by Peter Mazsa, 2-Oct-2018.) |
| ⊢ (∃*𝑥𝜓 → ((∃𝑥(𝜑 ∧ 𝜓) ∧ ∃𝑥(𝜓 ∧ 𝜒)) → ∃𝑥(𝜑 ∧ 𝜒))) | ||
| Theorem | brabidgaw 38417* | The law of concretion for a binary relation. Special case of brabga 5477. Version of brabidga 38418 with a disjoint variable condition, which does not require ax-13 2374. (Contributed by Peter Mazsa, 24-Nov-2018.) (Revised by GG, 2-Apr-2024.) |
| ⊢ 𝑅 = {〈𝑥, 𝑦〉 ∣ 𝜑} ⇒ ⊢ (𝑥𝑅𝑦 ↔ 𝜑) | ||
| Theorem | brabidga 38418 | The law of concretion for a binary relation. Special case of brabga 5477. Usage of this theorem is discouraged because it depends on ax-13 2374, see brabidgaw 38417 for a weaker version that does not require it. (Contributed by Peter Mazsa, 24-Nov-2018.) (New usage is discouraged.) |
| ⊢ 𝑅 = {〈𝑥, 𝑦〉 ∣ 𝜑} ⇒ ⊢ (𝑥𝑅𝑦 ↔ 𝜑) | ||
| Theorem | inxp2 38419* | Intersection with a Cartesian product. (Contributed by Peter Mazsa, 18-Jul-2019.) |
| ⊢ (𝑅 ∩ (𝐴 × 𝐵)) = {〈𝑥, 𝑦〉 ∣ ((𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐵) ∧ 𝑥𝑅𝑦)} | ||
| Theorem | opabf 38420 | A class abstraction of a collection of ordered pairs with a negated wff is the empty set. (Contributed by Peter Mazsa, 21-Oct-2019.) (Proof shortened by Thierry Arnoux, 18-Feb-2022.) |
| ⊢ ¬ 𝜑 ⇒ ⊢ {〈𝑥, 𝑦〉 ∣ 𝜑} = ∅ | ||
| Theorem | ec0 38421 | The empty-coset of a class is the empty set. (Contributed by Peter Mazsa, 19-May-2019.) |
| ⊢ [𝐴]∅ = ∅ | ||
| Theorem | brcnvin 38422 | Intersection with a converse, binary relation. (Contributed by Peter Mazsa, 24-Mar-2024.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊) → (𝐴(𝑅 ∩ ◡𝑆)𝐵 ↔ (𝐴𝑅𝐵 ∧ 𝐵𝑆𝐴))) | ||
| Theorem | ssdmral 38423* | Subclass of a domain. (Contributed by Peter Mazsa, 15-Sep-2018.) |
| ⊢ (𝐴 ⊆ dom 𝑅 ↔ ∀𝑥 ∈ 𝐴 ∃𝑦 𝑥𝑅𝑦) | ||
| Definition | df-xrn 38424 | Define the range Cartesian product of two classes. Definition from [Holmes] p. 40. Membership in this class is characterized by xrnss3v 38425 and brxrn 38427. This is Scott Fenton's df-txp 35917 with a different symbol, see https://github.com/metamath/set.mm/issues/2469 35917. (Contributed by Scott Fenton, 31-Mar-2012.) |
| ⊢ (𝐴 ⋉ 𝐵) = ((◡(1st ↾ (V × V)) ∘ 𝐴) ∩ (◡(2nd ↾ (V × V)) ∘ 𝐵)) | ||
| Theorem | xrnss3v 38425 | A range Cartesian product is a subset of the class of ordered triples. This is Scott Fenton's txpss3v 35941 with a different symbol, see https://github.com/metamath/set.mm/issues/2469 35941. (Contributed by Scott Fenton, 31-Mar-2012.) |
| ⊢ (𝐴 ⋉ 𝐵) ⊆ (V × (V × V)) | ||
| Theorem | xrnrel 38426 | A range Cartesian product is a relation. This is Scott Fenton's txprel 35942 with a different symbol, see https://github.com/metamath/set.mm/issues/2469 35942. (Contributed by Scott Fenton, 31-Mar-2012.) |
| ⊢ Rel (𝐴 ⋉ 𝐵) | ||
| Theorem | brxrn 38427 | Characterize a ternary relation over a range Cartesian product. Together with xrnss3v 38425, this characterizes elementhood in a range cross. (Contributed by Peter Mazsa, 27-Jun-2021.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊 ∧ 𝐶 ∈ 𝑋) → (𝐴(𝑅 ⋉ 𝑆)〈𝐵, 𝐶〉 ↔ (𝐴𝑅𝐵 ∧ 𝐴𝑆𝐶))) | ||
| Theorem | brxrn2 38428* | A characterization of the range Cartesian product. (Contributed by Peter Mazsa, 14-Oct-2020.) |
| ⊢ (𝐴 ∈ 𝑉 → (𝐴(𝑅 ⋉ 𝑆)𝐵 ↔ ∃𝑥∃𝑦(𝐵 = 〈𝑥, 𝑦〉 ∧ 𝐴𝑅𝑥 ∧ 𝐴𝑆𝑦))) | ||
| Theorem | dfxrn2 38429* | Alternate definition of the range Cartesian product. (Contributed by Peter Mazsa, 20-Feb-2022.) |
| ⊢ (𝑅 ⋉ 𝑆) = ◡{〈〈𝑥, 𝑦〉, 𝑢〉 ∣ (𝑢𝑅𝑥 ∧ 𝑢𝑆𝑦)} | ||
| Theorem | brxrncnvep 38430 | The range product with converse epsilon relation. (Contributed by Peter Mazsa, 22-Jun-2020.) (Revised by Peter Mazsa, 22-Nov-2025.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊 ∧ 𝐶 ∈ 𝑋) → (𝐴(𝑅 ⋉ ◡ E )〈𝐵, 𝐶〉 ↔ (𝐶 ∈ 𝐴 ∧ 𝐴𝑅𝐵))) | ||
| Theorem | dmxrn 38431 | Domain of the range product. (Contributed by Peter Mazsa, 19-Apr-2020.) (Revised by Peter Mazsa, 22-Nov-2025.) |
| ⊢ dom (𝑅 ⋉ 𝑆) = (dom 𝑅 ∩ dom 𝑆) | ||
| Theorem | dmcnvep 38432 | Domain of converse epsilon relation. (Contributed by Peter Mazsa, 30-Jan-2018.) (Revised by Peter Mazsa, 23-Nov-2025.) |
| ⊢ dom ◡ E = (V ∖ {∅}) | ||
| Theorem | dmxrncnvep 38433 | Domain of the range product with converse epsilon relation. (Contributed by Peter Mazsa, 23-Nov-2025.) |
| ⊢ dom (𝑅 ⋉ ◡ E ) = (dom 𝑅 ∖ {∅}) | ||
| Theorem | dmcnvepres 38434 | Domain of the restricted converse epsilon relation. (Contributed by Peter Mazsa, 28-Jan-2026.) |
| ⊢ dom (◡ E ↾ 𝐴) = (𝐴 ∖ {∅}) | ||
| Theorem | dmuncnvepres 38435 | Domain of the union with the converse epsilon, restricted. (Contributed by Peter Mazsa, 28-Jan-2026.) |
| ⊢ dom ((𝑅 ∪ ◡ E ) ↾ 𝐴) = (𝐴 ∩ (dom 𝑅 ∪ (V ∖ {∅}))) | ||
| Theorem | dmxrnuncnvepres 38436 | Domain of the range Cartesian product with the converse epsilon relation combined with the union with the converse epsilon, restricted. (Contributed by Peter Mazsa, 28-Jan-2026.) |
| ⊢ dom (((𝑅 ⋉ ◡ E ) ∪ ◡ E ) ↾ 𝐴) = (𝐴 ∖ {∅}) | ||
| Theorem | ecun 38437 | The union coset of 𝐴. (Contributed by Peter Mazsa, 28-Jan-2026.) |
| ⊢ (𝐴 ∈ 𝑉 → [𝐴](𝑅 ∪ 𝑆) = ([𝐴]𝑅 ∪ [𝐴]𝑆)) | ||
| Theorem | ecunres 38438 | The restricted union coset of 𝐵. (Contributed by Peter Mazsa, 28-Jan-2026.) |
| ⊢ (𝐵 ∈ 𝑉 → [𝐵]((𝑅 ∪ 𝑆) ↾ 𝐴) = ([𝐵](𝑅 ↾ 𝐴) ∪ [𝐵](𝑆 ↾ 𝐴))) | ||
| Theorem | ecuncnvepres 38439 | The restricted union with converse epsilon relation coset of 𝐵. (Contributed by Peter Mazsa, 28-Jan-2026.) |
| ⊢ (𝐵 ∈ 𝐴 → [𝐵]((𝑅 ∪ ◡ E ) ↾ 𝐴) = (𝐵 ∪ [𝐵]𝑅)) | ||
| Theorem | xrneq1 38440 | Equality theorem for the range Cartesian product. (Contributed by Peter Mazsa, 16-Dec-2020.) |
| ⊢ (𝐴 = 𝐵 → (𝐴 ⋉ 𝐶) = (𝐵 ⋉ 𝐶)) | ||
| Theorem | xrneq1i 38441 | Equality theorem for the range Cartesian product, inference form. (Contributed by Peter Mazsa, 16-Dec-2020.) |
| ⊢ 𝐴 = 𝐵 ⇒ ⊢ (𝐴 ⋉ 𝐶) = (𝐵 ⋉ 𝐶) | ||
| Theorem | xrneq1d 38442 | Equality theorem for the range Cartesian product, deduction form. (Contributed by Peter Mazsa, 7-Sep-2021.) |
| ⊢ (𝜑 → 𝐴 = 𝐵) ⇒ ⊢ (𝜑 → (𝐴 ⋉ 𝐶) = (𝐵 ⋉ 𝐶)) | ||
| Theorem | xrneq2 38443 | Equality theorem for the range Cartesian product. (Contributed by Peter Mazsa, 16-Dec-2020.) |
| ⊢ (𝐴 = 𝐵 → (𝐶 ⋉ 𝐴) = (𝐶 ⋉ 𝐵)) | ||
| Theorem | xrneq2i 38444 | Equality theorem for the range Cartesian product, inference form. (Contributed by Peter Mazsa, 16-Dec-2020.) |
| ⊢ 𝐴 = 𝐵 ⇒ ⊢ (𝐶 ⋉ 𝐴) = (𝐶 ⋉ 𝐵) | ||
| Theorem | xrneq2d 38445 | Equality theorem for the range Cartesian product, deduction form. (Contributed by Peter Mazsa, 7-Sep-2021.) |
| ⊢ (𝜑 → 𝐴 = 𝐵) ⇒ ⊢ (𝜑 → (𝐶 ⋉ 𝐴) = (𝐶 ⋉ 𝐵)) | ||
| Theorem | xrneq12 38446 | Equality theorem for the range Cartesian product. (Contributed by Peter Mazsa, 16-Dec-2020.) |
| ⊢ ((𝐴 = 𝐵 ∧ 𝐶 = 𝐷) → (𝐴 ⋉ 𝐶) = (𝐵 ⋉ 𝐷)) | ||
| Theorem | xrneq12i 38447 | Equality theorem for the range Cartesian product, inference form. (Contributed by Peter Mazsa, 16-Dec-2020.) |
| ⊢ 𝐴 = 𝐵 & ⊢ 𝐶 = 𝐷 ⇒ ⊢ (𝐴 ⋉ 𝐶) = (𝐵 ⋉ 𝐷) | ||
| Theorem | xrneq12d 38448 | Equality theorem for the range Cartesian product, deduction form. (Contributed by Peter Mazsa, 18-Dec-2021.) |
| ⊢ (𝜑 → 𝐴 = 𝐵) & ⊢ (𝜑 → 𝐶 = 𝐷) ⇒ ⊢ (𝜑 → (𝐴 ⋉ 𝐶) = (𝐵 ⋉ 𝐷)) | ||
| Theorem | elecxrn 38449* | Elementhood in the (𝑅 ⋉ 𝑆)-coset of 𝐴. (Contributed by Peter Mazsa, 18-Apr-2020.) (Revised by Peter Mazsa, 21-Sep-2021.) |
| ⊢ (𝐴 ∈ 𝑉 → (𝐵 ∈ [𝐴](𝑅 ⋉ 𝑆) ↔ ∃𝑥∃𝑦(𝐵 = 〈𝑥, 𝑦〉 ∧ 𝐴𝑅𝑥 ∧ 𝐴𝑆𝑦))) | ||
| Theorem | ecxrn 38450* | The (𝑅 ⋉ 𝑆)-coset of 𝐴. (Contributed by Peter Mazsa, 18-Apr-2020.) (Revised by Peter Mazsa, 21-Sep-2021.) |
| ⊢ (𝐴 ∈ 𝑉 → [𝐴](𝑅 ⋉ 𝑆) = {〈𝑦, 𝑧〉 ∣ (𝐴𝑅𝑦 ∧ 𝐴𝑆𝑧)}) | ||
| Theorem | relecxrn 38451 | The (𝑅 ⋉ 𝑆)-coset of a set is a relation. (Contributed by Peter Mazsa, 15-Oct-2020.) |
| ⊢ (𝐴 ∈ 𝑉 → Rel [𝐴](𝑅 ⋉ 𝑆)) | ||
| Theorem | ecxrn2 38452 | The (𝑅 ⋉ 𝑆)-coset of a set is the Cartesian product of its 𝑅-coset and 𝑆-coset. (Contributed by Peter Mazsa, 16-Oct-2020.) |
| ⊢ (𝐴 ∈ 𝑉 → [𝐴](𝑅 ⋉ 𝑆) = ([𝐴]𝑅 × [𝐴]𝑆)) | ||
| Theorem | ecxrncnvep 38453* | The (𝑅 ⋉ ◡ E )-coset of a set. (Contributed by Peter Mazsa, 22-May-2021.) |
| ⊢ (𝐴 ∈ 𝑉 → [𝐴](𝑅 ⋉ ◡ E ) = {〈𝑦, 𝑧〉 ∣ (𝑧 ∈ 𝐴 ∧ 𝐴𝑅𝑦)}) | ||
| Theorem | ecxrncnvep2 38454 | The (𝑅 ⋉ ◡ E )-coset of a set is the Cartesian product of its 𝑅-coset and the set. (Contributed by Peter Mazsa, 25-Jan-2026.) |
| ⊢ (𝐴 ∈ 𝑉 → [𝐴](𝑅 ⋉ ◡ E ) = ([𝐴]𝑅 × 𝐴)) | ||
| Theorem | disjressuc2 38455* | Double restricted quantification over the union of a set and its singleton. (Contributed by Peter Mazsa, 22-Aug-2023.) |
| ⊢ (𝐴 ∈ 𝑉 → (∀𝑢 ∈ (𝐴 ∪ {𝐴})∀𝑣 ∈ (𝐴 ∪ {𝐴})(𝑢 = 𝑣 ∨ ([𝑢]𝑅 ∩ [𝑣]𝑅) = ∅) ↔ (∀𝑢 ∈ 𝐴 ∀𝑣 ∈ 𝐴 (𝑢 = 𝑣 ∨ ([𝑢]𝑅 ∩ [𝑣]𝑅) = ∅) ∧ ∀𝑢 ∈ 𝐴 ([𝑢]𝑅 ∩ [𝐴]𝑅) = ∅))) | ||
| Theorem | disjecxrn 38456 | Two ways of saying that (𝑅 ⋉ 𝑆)-cosets are disjoint. (Contributed by Peter Mazsa, 19-Jun-2020.) (Revised by Peter Mazsa, 21-Aug-2023.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊) → (([𝐴](𝑅 ⋉ 𝑆) ∩ [𝐵](𝑅 ⋉ 𝑆)) = ∅ ↔ (([𝐴]𝑅 ∩ [𝐵]𝑅) = ∅ ∨ ([𝐴]𝑆 ∩ [𝐵]𝑆) = ∅))) | ||
| Theorem | disjecxrncnvep 38457 | Two ways of saying that cosets are disjoint, special case of disjecxrn 38456. (Contributed by Peter Mazsa, 12-Jul-2020.) (Revised by Peter Mazsa, 25-Aug-2023.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊) → (([𝐴](𝑅 ⋉ ◡ E ) ∩ [𝐵](𝑅 ⋉ ◡ E )) = ∅ ↔ ((𝐴 ∩ 𝐵) = ∅ ∨ ([𝐴]𝑅 ∩ [𝐵]𝑅) = ∅))) | ||
| Theorem | disjsuc2 38458* | Double restricted quantification over the union of a set and its singleton. (Contributed by Peter Mazsa, 22-Aug-2023.) |
| ⊢ (𝐴 ∈ 𝑉 → (∀𝑢 ∈ (𝐴 ∪ {𝐴})∀𝑣 ∈ (𝐴 ∪ {𝐴})(𝑢 = 𝑣 ∨ ([𝑢](𝑅 ⋉ ◡ E ) ∩ [𝑣](𝑅 ⋉ ◡ E )) = ∅) ↔ (∀𝑢 ∈ 𝐴 ∀𝑣 ∈ 𝐴 (𝑢 = 𝑣 ∨ ([𝑢](𝑅 ⋉ ◡ E ) ∩ [𝑣](𝑅 ⋉ ◡ E )) = ∅) ∧ ∀𝑢 ∈ 𝐴 ((𝑢 ∩ 𝐴) = ∅ ∨ ([𝑢]𝑅 ∩ [𝐴]𝑅) = ∅)))) | ||
| Theorem | xrninxp 38459* | Intersection of a range Cartesian product with a Cartesian product. (Contributed by Peter Mazsa, 7-Apr-2020.) |
| ⊢ ((𝑅 ⋉ 𝑆) ∩ (𝐴 × (𝐵 × 𝐶))) = ◡{〈〈𝑦, 𝑧〉, 𝑢〉 ∣ ((𝑦 ∈ 𝐵 ∧ 𝑧 ∈ 𝐶) ∧ (𝑢 ∈ 𝐴 ∧ 𝑢(𝑅 ⋉ 𝑆)〈𝑦, 𝑧〉))} | ||
| Theorem | xrninxp2 38460* | Intersection of a range Cartesian product with a Cartesian product. (Contributed by Peter Mazsa, 8-Apr-2020.) |
| ⊢ ((𝑅 ⋉ 𝑆) ∩ (𝐴 × (𝐵 × 𝐶))) = {〈𝑢, 𝑥〉 ∣ (𝑥 ∈ (𝐵 × 𝐶) ∧ (𝑢 ∈ 𝐴 ∧ 𝑢(𝑅 ⋉ 𝑆)𝑥))} | ||
| Theorem | xrninxpex 38461 | Sufficient condition for the intersection of a range Cartesian product with a Cartesian product to be a set. (Contributed by Peter Mazsa, 12-Apr-2020.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊 ∧ 𝐶 ∈ 𝑋) → ((𝑅 ⋉ 𝑆) ∩ (𝐴 × (𝐵 × 𝐶))) ∈ V) | ||
| Theorem | inxpxrn 38462 | Two ways to express the intersection of a range Cartesian product with a Cartesian product. (Contributed by Peter Mazsa, 10-Apr-2020.) |
| ⊢ ((𝑅 ∩ (𝐴 × 𝐵)) ⋉ (𝑆 ∩ (𝐴 × 𝐶))) = ((𝑅 ⋉ 𝑆) ∩ (𝐴 × (𝐵 × 𝐶))) | ||
| Theorem | br1cnvxrn2 38463* | The converse of a binary relation over a range Cartesian product. (Contributed by Peter Mazsa, 11-Jul-2021.) |
| ⊢ (𝐵 ∈ 𝑉 → (𝐴◡(𝑅 ⋉ 𝑆)𝐵 ↔ ∃𝑦∃𝑧(𝐴 = 〈𝑦, 𝑧〉 ∧ 𝐵𝑅𝑦 ∧ 𝐵𝑆𝑧))) | ||
| Theorem | elec1cnvxrn2 38464* | Elementhood in the converse range Cartesian product coset of 𝐴. (Contributed by Peter Mazsa, 11-Jul-2021.) |
| ⊢ (𝐵 ∈ 𝑉 → (𝐵 ∈ [𝐴]◡(𝑅 ⋉ 𝑆) ↔ ∃𝑦∃𝑧(𝐴 = 〈𝑦, 𝑧〉 ∧ 𝐵𝑅𝑦 ∧ 𝐵𝑆𝑧))) | ||
| Theorem | rnxrn 38465* | Range of the range Cartesian product of classes. (Contributed by Peter Mazsa, 1-Jun-2020.) |
| ⊢ ran (𝑅 ⋉ 𝑆) = {〈𝑥, 𝑦〉 ∣ ∃𝑢(𝑢𝑅𝑥 ∧ 𝑢𝑆𝑦)} | ||
| Theorem | rnxrnres 38466* | Range of a range Cartesian product with a restricted relation. (Contributed by Peter Mazsa, 5-Dec-2021.) |
| ⊢ ran (𝑅 ⋉ (𝑆 ↾ 𝐴)) = {〈𝑥, 𝑦〉 ∣ ∃𝑢 ∈ 𝐴 (𝑢𝑅𝑥 ∧ 𝑢𝑆𝑦)} | ||
| Theorem | rnxrncnvepres 38467* | Range of a range Cartesian product with a restriction of the converse epsilon relation. (Contributed by Peter Mazsa, 6-Dec-2021.) |
| ⊢ ran (𝑅 ⋉ (◡ E ↾ 𝐴)) = {〈𝑥, 𝑦〉 ∣ ∃𝑢 ∈ 𝐴 (𝑦 ∈ 𝑢 ∧ 𝑢𝑅𝑥)} | ||
| Theorem | rnxrnidres 38468* | Range of a range Cartesian product with a restriction of the identity relation. (Contributed by Peter Mazsa, 6-Dec-2021.) |
| ⊢ ran (𝑅 ⋉ ( I ↾ 𝐴)) = {〈𝑥, 𝑦〉 ∣ ∃𝑢 ∈ 𝐴 (𝑢 = 𝑦 ∧ 𝑢𝑅𝑥)} | ||
| Theorem | xrnres 38469 | Two ways to express restriction of range Cartesian product, see also xrnres2 38470, xrnres3 38471. (Contributed by Peter Mazsa, 5-Jun-2021.) |
| ⊢ ((𝑅 ⋉ 𝑆) ↾ 𝐴) = ((𝑅 ↾ 𝐴) ⋉ 𝑆) | ||
| Theorem | xrnres2 38470 | Two ways to express restriction of range Cartesian product, see also xrnres 38469, xrnres3 38471. (Contributed by Peter Mazsa, 6-Sep-2021.) |
| ⊢ ((𝑅 ⋉ 𝑆) ↾ 𝐴) = (𝑅 ⋉ (𝑆 ↾ 𝐴)) | ||
| Theorem | xrnres3 38471 | Two ways to express restriction of range Cartesian product, see also xrnres 38469, xrnres2 38470. (Contributed by Peter Mazsa, 28-Mar-2020.) |
| ⊢ ((𝑅 ⋉ 𝑆) ↾ 𝐴) = ((𝑅 ↾ 𝐴) ⋉ (𝑆 ↾ 𝐴)) | ||
| Theorem | xrnres4 38472 | Two ways to express restriction of range Cartesian product. (Contributed by Peter Mazsa, 29-Dec-2020.) |
| ⊢ ((𝑅 ⋉ 𝑆) ↾ 𝐴) = ((𝑅 ⋉ 𝑆) ∩ (𝐴 × (ran (𝑅 ↾ 𝐴) × ran (𝑆 ↾ 𝐴)))) | ||
| Theorem | xrnresex 38473 | Sufficient condition for a restricted range Cartesian product to be a set. (Contributed by Peter Mazsa, 16-Dec-2020.) (Revised by Peter Mazsa, 7-Sep-2021.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝑅 ∈ 𝑊 ∧ (𝑆 ↾ 𝐴) ∈ 𝑋) → (𝑅 ⋉ (𝑆 ↾ 𝐴)) ∈ V) | ||
| Theorem | xrnidresex 38474 | Sufficient condition for a range Cartesian product with restricted identity to be a set. (Contributed by Peter Mazsa, 31-Dec-2021.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝑅 ∈ 𝑊) → (𝑅 ⋉ ( I ↾ 𝐴)) ∈ V) | ||
| Theorem | xrncnvepresex 38475 | Sufficient condition for a range Cartesian product with restricted converse epsilon to be a set. (Contributed by Peter Mazsa, 16-Dec-2020.) (Revised by Peter Mazsa, 23-Sep-2021.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝑅 ∈ 𝑊) → (𝑅 ⋉ (◡ E ↾ 𝐴)) ∈ V) | ||
| Theorem | dmxrncnvepres 38476 | Domain of the range product with restricted converse epsilon relation. (Contributed by Peter Mazsa, 23-Nov-2025.) |
| ⊢ dom (𝑅 ⋉ (◡ E ↾ 𝐴)) = (dom (𝑅 ↾ 𝐴) ∖ {∅}) | ||
| Theorem | dmxrncnvepres2 38477 | Domain of the range product with restricted converse epsilon relation. (Contributed by Peter Mazsa, 29-Jan-2026.) |
| ⊢ dom (𝑅 ⋉ (◡ E ↾ 𝐴)) = (𝐴 ∩ (dom 𝑅 ∖ {∅})) | ||
| Theorem | eldmxrncnvepres 38478 | Element of the domain of the range product with restricted converse epsilon relation. (Contributed by Peter Mazsa, 23-Nov-2025.) |
| ⊢ (𝐵 ∈ 𝑉 → (𝐵 ∈ dom (𝑅 ⋉ (◡ E ↾ 𝐴)) ↔ (𝐵 ∈ 𝐴 ∧ 𝐵 ≠ ∅ ∧ [𝐵]𝑅 ≠ ∅))) | ||
| Theorem | eldmxrncnvepres2 38479* | Element of the domain of the range product with restricted converse epsilon relation. This identifies the domain of the pet 38969 span (𝑅 ⋉ (◡ E ↾ 𝐴)): a 𝐵 belongs to the domain of the span exactly when 𝐵 is in 𝐴 and has at least one 𝑥 ∈ 𝐵 and 𝑦 with 𝐵𝑅𝑦. (Contributed by Peter Mazsa, 23-Nov-2025.) |
| ⊢ (𝐵 ∈ 𝑉 → (𝐵 ∈ dom (𝑅 ⋉ (◡ E ↾ 𝐴)) ↔ (𝐵 ∈ 𝐴 ∧ ∃𝑥 𝑥 ∈ 𝐵 ∧ ∃𝑦 𝐵𝑅𝑦))) | ||
| Theorem | eceldmqsxrncnvepres 38480 | An (𝑅 ⋉ (◡ E ↾ 𝐴))-coset in its domain quotient. (Contributed by Peter Mazsa, 23-Nov-2025.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊 ∧ 𝑅 ∈ 𝑋) → ([𝐵](𝑅 ⋉ (◡ E ↾ 𝐴)) ∈ (dom (𝑅 ⋉ (◡ E ↾ 𝐴)) / (𝑅 ⋉ (◡ E ↾ 𝐴))) ↔ (𝐵 ∈ 𝐴 ∧ 𝐵 ≠ ∅ ∧ [𝐵]𝑅 ≠ ∅))) | ||
| Theorem | eceldmqsxrncnvepres2 38481* | An (𝑅 ⋉ (◡ E ↾ 𝐴))-coset in its domain quotient. In the pet 38969 span (𝑅 ⋉ (◡ E ↾ 𝐴)), a block [ B ] lies in the domain quotient exactly when its representative 𝐵 belongs to 𝐴 and actually fires at least one arrow (has some 𝑥 ∈ 𝐵 and some 𝑦 with 𝐵𝑅𝑦). (Contributed by Peter Mazsa, 23-Nov-2025.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊 ∧ 𝑅 ∈ 𝑋) → ([𝐵](𝑅 ⋉ (◡ E ↾ 𝐴)) ∈ (dom (𝑅 ⋉ (◡ E ↾ 𝐴)) / (𝑅 ⋉ (◡ E ↾ 𝐴))) ↔ (𝐵 ∈ 𝐴 ∧ ∃𝑥 𝑥 ∈ 𝐵 ∧ ∃𝑦 𝐵𝑅𝑦))) | ||
| Theorem | brin2 38482 | Binary relation on an intersection is a special case of binary relation on range Cartesian product. (Contributed by Peter Mazsa, 21-Aug-2021.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊) → (𝐴(𝑅 ∩ 𝑆)𝐵 ↔ 𝐴(𝑅 ⋉ 𝑆)〈𝐵, 𝐵〉)) | ||
| Theorem | brin3 38483 | Binary relation on an intersection is a special case of binary relation on range Cartesian product. (Contributed by Peter Mazsa, 21-Aug-2021.) (Avoid depending on this detail.) |
| ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊) → (𝐴(𝑅 ∩ 𝑆)𝐵 ↔ 𝐴(𝑅 ⋉ 𝑆){{𝐵}})) | ||
| Definition | df-rels 38484 |
Define the relations class. Proper class relations (like I, see
reli 5770) are not elements of it. The element of this
class and the
relation predicate are the same when 𝑅 is a set (see elrelsrel 38486).
The class of relations is a great tool we can use when we define classes of different relations as nullary class constants as required by the 2. point in our Guidelines https://us.metamath.org/mpeuni/mathbox.html 38486. When we want to define a specific class of relations as a nullary class constant, the appropriate method is the following: 1. We define the specific nullary class constant for general sets (see e.g. df-refs 38622), then 2. we get the required class of relations by the intersection of the class of general sets above with the class of relations df-rels 38484 (see df-refrels 38623 and the resulting dfrefrels2 38625 and dfrefrels3 38626). 3. Finally, in order to be able to work with proper classes (like iprc 7847) as well, we define the predicate of the relation (see df-refrel 38624) so that it is true for the relevant proper classes (see refrelid 38634), and that the element of the class of the required relations (e.g. elrefrels3 38631) and this predicate are the same in case of sets (see elrefrelsrel 38632). (Contributed by Peter Mazsa, 13-Jun-2018.) |
| ⊢ Rels = 𝒫 (V × V) | ||
| Theorem | elrels2 38485 | The element of the relations class (df-rels 38484) and the relation predicate (df-rel 5626) are the same when 𝑅 is a set. (Contributed by Peter Mazsa, 14-Jun-2018.) |
| ⊢ (𝑅 ∈ 𝑉 → (𝑅 ∈ Rels ↔ 𝑅 ⊆ (V × V))) | ||
| Theorem | elrelsrel 38486 | The element of the relations class (df-rels 38484) and the relation predicate are the same when 𝑅 is a set. (Contributed by Peter Mazsa, 24-Nov-2018.) |
| ⊢ (𝑅 ∈ 𝑉 → (𝑅 ∈ Rels ↔ Rel 𝑅)) | ||
| Theorem | elrelsrelim 38487 | The element of the relations class is a relation. (Contributed by Peter Mazsa, 20-Jul-2019.) |
| ⊢ (𝑅 ∈ Rels → Rel 𝑅) | ||
| Theorem | elrels5 38488 | Equivalent expressions for an element of the relations class. (Contributed by Peter Mazsa, 21-Jul-2021.) |
| ⊢ (𝑅 ∈ 𝑉 → (𝑅 ∈ Rels ↔ (𝑅 ↾ dom 𝑅) = 𝑅)) | ||
| Theorem | elrels6 38489 | Equivalent expressions for an element of the relations class. (Contributed by Peter Mazsa, 21-Jul-2021.) |
| ⊢ (𝑅 ∈ 𝑉 → (𝑅 ∈ Rels ↔ (𝑅 ∩ (dom 𝑅 × ran 𝑅)) = 𝑅)) | ||
| Definition | df-adjliftmap 38490* |
Define the adjoined lift map. Given a relation 𝑅 and a carrier/set
𝐴, we form the adjoined relation (𝑅 ∪ ◡ E ) (i.e., "follow
𝑅 or follow elements"),
restricted to 𝐴, and map each domain
element 𝑚 to its coset [𝑚] under that restricted
adjoined
relation. Thus, for 𝑚 in its domain, we have (𝑚 ∪ [𝑚]𝑅),
see dfadjliftmap2 38491.
Its key special case is successor: for 𝑅 = I and 𝐴 = dom I, or 𝐴 = V, the adjoined relation is ( I ∪ ◡ E ), and the coset becomes [𝑚]( I ∪ ◡ E ) = (𝑚 ∪ {𝑚}). So ( I AdjLiftMap dom I ) or ( I AdjLiftMap V) (see dfsucmap2 38497 and dfsucmap3 38496) are exactly the successor map 𝑚 ↦ suc 𝑚 (cf. dfsucmap4 38498), which is a prerequisite for accepting the adjoining lift as the right generalization of successor. A maximally generic form would be "( R F LiftMap A )" defined as (𝑚 ∈ dom ((𝑅𝐹◡ E ) ↾ 𝐴) ↦ [𝑚]((𝑅𝐹◡ E ) ↾ 𝐴)) where 𝐹 is an object-level binary operator on relations (used via df-ov 7355). However, ∪ and ⋉ are introduced in set.mm as class constructors (e.g. df-un 3903), not as an object-level binary function symbol 𝐹 that can be passed as a parameter. To make the generic 𝐹-pattern literally usable, we would need to reify union and ⋉ as function-objects, which is additional infrastructure. To avoid introducing operator-as-function objects solely to support 𝐹, we define: AdjLiftMap directly using df-un 3903, and BlockLiftMap directly using the existing ⋉ constructor dfxrn2 38429, so we treat any "generic 𝐹-LiftMap" as optional future generalization, not a dependency. We prefer to avoid defining too many concepts. For this reason, we will not introduce a named "adjoining relation", a named carrier "adjoining lift" "( R AdjLift A )", in place of ran (𝑅 AdjLiftMap 𝐴), which is (dom ((𝑅 ∪ ◡ E ) ↾ 𝐴) / ((𝑅 ∪ ◡ E ) ↾ 𝐴)), cf. dfqs2 42355, or the equilibrium condition "AdjLiftFix" , in place of {〈𝑟, 𝑎〉 ∣ (dom ((𝑅 ∪ ◡ E ) ↾ 𝐴) / ((𝑅 ∪ ◡ E ) ↾ 𝐴)) = 𝑎} (cf. its analog df-blockliftfix 38514 and dfblockliftfix2 38756). These are definable by simple expansions and/or domain-quotient theorems when needed. A "two-stage" construction is obtained by first forming the block relation (𝑅 ⋉ ◡ E ) and then adjoining elements as "BlockAdj" . Combined, it uses the relation ((𝑅 ⋉ ◡ E ) ∪ ◡ E ), which for 𝑚 in its domain (𝐴 ∖ {∅}) gives (𝑚 ∪ [𝑚](𝑅 ⋉ ◡ E )), yielding "BlockAdjLiftMap" (cf. blockadjliftmap 38492) and "BlockAdjLiftFix". We only introduce these if a downstream theorem actually requires them. (Contributed by Peter Mazsa, 24-Jan-2026.) |
| ⊢ (𝑅 AdjLiftMap 𝐴) = (𝑚 ∈ dom ((𝑅 ∪ ◡ E ) ↾ 𝐴) ↦ [𝑚]((𝑅 ∪ ◡ E ) ↾ 𝐴)) | ||
| Theorem | dfadjliftmap2 38491* | Alternate definition of the adjoined lift map. (Contributed by Peter Mazsa, 28-Jan-2026.) |
| ⊢ (𝑅 AdjLiftMap 𝐴) = (𝑚 ∈ (𝐴 ∩ (dom 𝑅 ∪ (V ∖ {∅}))) ↦ (𝑚 ∪ [𝑚]𝑅)) | ||
| Theorem | blockadjliftmap 38492* | A "two-stage" construction is obtained by first forming the block relation (𝑅 ⋉ ◡ E ) and then adjoining elements as "BlockAdj". Combined, it uses the relation ((𝑅 ⋉ ◡ E ) ∪ ◡ E ). (Contributed by Peter Mazsa, 28-Jan-2026.) |
| ⊢ ((𝑅 ⋉ ◡ E ) AdjLiftMap 𝐴) = {〈𝑚, 𝑛〉 ∣ (𝑚 ∈ (𝐴 ∖ {∅}) ∧ 𝑛 = (𝑚 ∪ ([𝑚]𝑅 × 𝑚)))} | ||
| Definition | df-blockliftmap 38493* |
Define the block lift map. Given a relation 𝑅 and a carrier/set
𝐴, we form the block relation (𝑅 ⋉
◡ E ) (i.e., "follow
both 𝑅 and element"), restricted to
𝐴
(or, equivalently, "follow
both 𝑅 and elements-of-A", cf. xrnres2 38470). Then map each domain
element 𝑚 to its coset [𝑚] under that restricted
block
relation.
For 𝑚 in the domain, which requires (𝑚 ∈ 𝐴 ∧ 𝑚 ≠ ∅ ∧ [𝑚]𝑅 ≠ ∅) (cf. eldmxrncnvepres 38478), the fiber has the product form [𝑚](𝑅 ⋉ ◡ E ) = ([𝑚]𝑅 × 𝑚), so the block relation lifts a block 𝑚 to the rectangular grid "external labels × internal members", see dfblockliftmap2 38494. Contrast: while the adjoined lift, via (𝑅 ∪ ◡ E ), attaches neighbors and members in a single relation (see dfadjliftmap2 38491), the block lift labels each internal member by each external neighbor. For the general case and a two-stage construction (first block lift, then adjoin membership), see the comments to df-adjliftmap 38490. For the equilibrium condition, see df-blockliftfix 38514 and dfblockliftfix2 38756. (Contributed by Peter Mazsa, 24-Jan-2026.) |
| ⊢ (𝑅 BlockLiftMap 𝐴) = (𝑚 ∈ dom (𝑅 ⋉ (◡ E ↾ 𝐴)) ↦ [𝑚](𝑅 ⋉ (◡ E ↾ 𝐴))) | ||
| Theorem | dfblockliftmap2 38494* | Alternate definition of the block lift map. (Contributed by Peter Mazsa, 29-Jan-2026.) |
| ⊢ (𝑅 BlockLiftMap 𝐴) = (𝑚 ∈ (𝐴 ∩ (dom 𝑅 ∖ {∅})) ↦ ([𝑚]𝑅 × 𝑚)) | ||
| Definition | df-sucmap 38495* |
Define the successor map, directly as the graph of the successor
operation, using only elementary set theory (ordered-pair class
abstraction). This avoids committing to any particular construction of
the successor function/class from other operators (e.g. a
union/composition presentation), while remaining provably equivalent to
those presentations (cf. dfsucmap2 38497 and dfsucmap3 38496 vs. df-succf 35935 and
dfsuccf2 36006). For maximum mappy shape, see dfsucmap4 38498.
We also treat the successor relation as the default shift relation for grading/tower arguments (cf. df-shiftstable 38515). Because it is used pervasively in shift-lift infrastructure, we adopt the short name SucMap rather than the fully systematic "SucAdjLiftMap". You may also define the predecessor relation as the converse graph "PreMap" as ◡ SucMap, which reverses successor edges ( cf. cnvopab 6088) and sends each successor to its (unique) predecessor when it exists. (Contributed by Peter Mazsa, 25-Jan-2026.) |
| ⊢ SucMap = {〈𝑚, 𝑛〉 ∣ suc 𝑚 = 𝑛} | ||
| Theorem | dfsucmap3 38496 | Alternate definition of the successor map. (Contributed by Peter Mazsa, 28-Jan-2026.) |
| ⊢ SucMap = ( I AdjLiftMap V) | ||
| Theorem | dfsucmap2 38497 | Alternate definition of the successor map. (Contributed by Peter Mazsa, 28-Jan-2026.) |
| ⊢ SucMap = ( I AdjLiftMap dom I ) | ||
| Theorem | dfsucmap4 38498 | Alternate definition of the successor map. (Contributed by Peter Mazsa, 28-Jan-2026.) |
| ⊢ SucMap = (𝑚 ∈ V ↦ suc 𝑚) | ||
| Theorem | brsucmap 38499 | Binary relation form of the successor map, general version. (Contributed by Peter Mazsa, 6-Jan-2026.) |
| ⊢ ((𝑀 ∈ 𝑉 ∧ 𝑁 ∈ 𝑊) → (𝑀 SucMap 𝑁 ↔ suc 𝑀 = 𝑁)) | ||
| Theorem | relsucmap 38500 | The successor map is a relation. (Contributed by Peter Mazsa, 7-Jan-2026.) |
| ⊢ Rel SucMap | ||
| < Previous Next > |
| Copyright terms: Public domain | < Previous Next > |