Metamath Proof Explorer Home Metamath Proof Explorer
Most Recent Proofs
 
Mirrors  >  Home  >  MPE Home  >  Th. List  >  Recent ILE Most Recent             Other  >  MM 100

Most recent proofs    These are the 100 (Unicode, GIF) or 1000 (Unicode, GIF) most recent proofs in the set.mm database for the Metamath Proof Explorer (and the Hilbert Space Explorer). The set.mm database is maintained on GitHub with master (stable) and develop (development) versions. This page was created from develop commit 212ee7d9, also available here: set.mm (43MB) or set.mm.bz2 (compressed, 13MB).

The original proofs of theorems with recently shortened proofs can often be found by appending "OLD" to the theorem name, for example 19.43OLD for 19.43. The "OLD" versions are usually deleted after a year.

Other links    Email: Norm Megill.    Mailing list: Metamath Google Group Updated 7-Dec-2021 .    Contributing: How can I contribute to Metamath?    Syndication: RSS feed (courtesy of Dan Getz)    Related wikis: Ghilbert site; Ghilbert Google Group.

Recent news items    (7-Aug-2021) Version 0.198 of the metamath program fixes a bug in "write source ... /rewrap" that prevented end-of-sentence punctuation from appearing in column 79, causing some rewrapped lines to be shorter than necessary. Because this affects about 2000 lines in set.mm, you should use version 0.198 or later for rewrapping before submitting to GitHub.

(7-May-2021) Mario Carneiro has written a Metamath verifier in Lean.

(5-May-2021) Marnix Klooster has written a Metamath verifier in Zig.

(24-Mar-2021) Metamath was mentioned in a couple of articles about OpenAI: Researchers find that large language models struggle with math and What Is GPT-F?.

(26-Dec-2020) Version 0.194 of the metamath program adds the keyword "htmlexturl" to the $t comment to specify external versions of theorem pages. This keyward has been added to set.mm, and you must update your local copy of set.mm for "verify markup" to pass with the new program version.

(19-Dec-2020) Aleksandr A. Adamov has translated the Wikipedia Metamath page into Russian.

(19-Nov-2020) Eric Schmidt's checkmm.cpp was used as a test case for C'est, "a non-standard version of the C++20 standard library, with enhanced support for compile-time evaluation." See C++20 Compile-time Metamath Proof Verification using C'est.

(10-Nov-2020) Filip Cernatescu has updated the XPuzzle (Android app) to version 1.2. XPuzzle is a puzzle with math formulas derived from the Metamath system. At the bottom of the web page is a link to the Google Play Store, where the app can be found.

(7-Nov-2020) Richard Penner created a cross-reference guide between Frege's logic notation and the notation used by set.mm.

(4-Sep-2020) Version 0.192 of the metamath program adds the qualifier '/extract' to 'write source'. See 'help write source' and also this Google Group post.

(23-Aug-2020) Version 0.188 of the metamath program adds keywords Conclusion, Fact, Introduction, Paragraph, Scolia, Scolion, Subsection, and Table to bibliographic references. See 'help write bibliography' for the complete current list.

   Older news...

Color key:   Metamath Proof Explorer  Metamath Proof Explorer   Hilbert Space Explorer  Hilbert Space Explorer   User Mathboxes  User Mathboxes  

Last updated on 15-Nov-2025 at 5:21 AM ET.
Recent Additions to the Metamath Proof Explorer   Notes (last updated 7-Dec-2020 )
DateLabelDescription
Theorem
 
13-Nov-2025lamberte 46856 A value of Lambert W (product logarithm) function at e. (Contributed by Ender Ting, 13-Nov-2025.)
𝑅 = (𝑥 ∈ ℂ ↦ (𝑥 · (exp‘𝑥)))       e𝑅1
 
13-Nov-2025lambert0 46855 A value of Lambert W (product logarithm) function at zero. (Contributed by Ender Ting, 13-Nov-2025.)
𝑅 = (𝑥 ∈ ℂ ↦ (𝑥 · (exp‘𝑥)))       0𝑅0
 
9-Nov-2025cos9thpiminplylem2 33752 The polynomial ((𝑋↑3) + ((-3 · 𝑋) + 1)) has no rational roots. (Contributed by Thierry Arnoux, 9-Nov-2025.)
(𝜑𝑋 ∈ ℚ)       (𝜑 → ((𝑋↑3) + ((-3 · 𝑋) + 1)) ≠ 0)
 
9-Nov-2025cos9thpiminplylem1 33751 The polynomial ((𝑋↑3) + ((-3 · (𝑋↑2)) + 1)) has no integer roots. (Contributed by Thierry Arnoux, 9-Nov-2025.)
(𝜑𝑋 ∈ ℤ)       (𝜑 → ((𝑋↑3) + ((-3 · (𝑋↑2)) + 1)) ≠ 0)
 
9-Nov-2025oexpled 32763 Odd power monomials are monotonic. (Contributed by Thierry Arnoux, 9-Nov-2025.)
(𝜑𝐴 ∈ ℝ)    &   (𝜑𝐵 ∈ ℝ)    &   (𝜑𝑁 ∈ ℕ)    &   (𝜑 → ¬ 2 ∥ 𝑁)    &   (𝜑𝐴𝐵)       (𝜑 → (𝐴𝑁) ≤ (𝐵𝑁))
 
9-Nov-2025expevenpos 32762 Even powers are positive. (Contributed by Thierry Arnoux, 9-Nov-2025.)
(𝜑𝐴 ∈ ℝ)    &   (𝜑𝑁 ∈ ℕ0)    &   (𝜑 → 2 ∥ 𝑁)       (𝜑 → 0 ≤ (𝐴𝑁))
 
9-Nov-2025elq2 32727 Elementhood in the rational numbers, providing the canonical representation. (Contributed by Thierry Arnoux, 9-Nov-2025.)
(𝑄 ∈ ℚ → ∃𝑝 ∈ ℤ ∃𝑞 ∈ ℕ (𝑄 = (𝑝 / 𝑞) ∧ (𝑝 gcd 𝑞) = 1))
 
9-Nov-2025receqid 32658 Real numbers equal to their own reciprocal have absolute value 1. (Contributed by Thierry Arnoux, 9-Nov-2025.)
(𝜑𝐴 ∈ ℝ)    &   (𝜑𝐴 ≠ 0)       (𝜑 → ((1 / 𝐴) = 𝐴 ↔ (abs‘𝐴) = 1))
 
9-Nov-2025sgnval2 32648 Value of the signum of a real number, expresssed using absolute value. (Contributed by Thierry Arnoux, 9-Nov-2025.)
((𝐴 ∈ ℝ ∧ 𝐴 ≠ 0) → (sgn‘𝐴) = (𝐴 / (abs‘𝐴)))
 
7-Nov-2025imasubc3 48966 An image of a functor injective on objects is a subcategory. Remark 4.2(3) of [Adamek] p. 48. (Contributed by Zhi Wang, 7-Nov-2025.)
𝑆 = (𝐹𝐴)    &   𝐻 = (Hom ‘𝐷)    &   𝐾 = (𝑥𝑆, 𝑦𝑆 𝑝 ∈ ((𝐹 “ {𝑥}) × (𝐹 “ {𝑦}))((𝐺𝑝) “ (𝐻𝑝)))    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   (𝜑 → Fun 𝐹)       (𝜑𝐾 ∈ (Subcat‘𝐸))
 
7-Nov-2025imaf1co 48965 An image of a functor whose object part is injective preserves the composition. (Contributed by Zhi Wang, 7-Nov-2025.)
𝑆 = (𝐹𝐴)    &   𝐻 = (Hom ‘𝐷)    &   𝐾 = (𝑥𝑆, 𝑦𝑆 𝑝 ∈ ((𝐹 “ {𝑥}) × (𝐹 “ {𝑦}))((𝐺𝑝) “ (𝐻𝑝)))    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &    = (comp‘𝐸)    &   (𝜑𝐹:𝐵1-1𝐶)    &   (𝜑𝑋𝑆)    &   (𝜑𝑌𝑆)    &   (𝜑𝑍𝑆)    &   (𝜑𝑀 ∈ (𝑋𝐾𝑌))    &   (𝜑𝑁 ∈ (𝑌𝐾𝑍))       (𝜑 → (𝑁(⟨𝑋, 𝑌 𝑍)𝑀) ∈ (𝑋𝐾𝑍))
 
7-Nov-2025imaid 48964 An image of a functor preserves the identity morphism. (Contributed by Zhi Wang, 7-Nov-2025.)
𝑆 = (𝐹𝐴)    &   𝐻 = (Hom ‘𝐷)    &   𝐾 = (𝑥𝑆, 𝑦𝑆 𝑝 ∈ ((𝐹 “ {𝑥}) × (𝐹 “ {𝑦}))((𝐺𝑝) “ (𝐻𝑝)))    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   𝐼 = (Id‘𝐸)    &   (𝜑𝑋𝑆)       (𝜑 → (𝐼𝑋) ∈ (𝑋𝐾𝑋))
 
7-Nov-2025imassc 48963 An image of a functor satisfies the subcategory subset relation. (Contributed by Zhi Wang, 7-Nov-2025.)
𝑆 = (𝐹𝐴)    &   𝐻 = (Hom ‘𝐷)    &   𝐾 = (𝑥𝑆, 𝑦𝑆 𝑝 ∈ ((𝐹 “ {𝑥}) × (𝐹 “ {𝑦}))((𝐺𝑝) “ (𝐻𝑝)))    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   𝐽 = (Homf𝐸)       (𝜑𝐾cat 𝐽)
 
7-Nov-2025imasubc2 48962 An image of a full functor is a (full) subcategory. Remark 4.2(3) of [Adamek] p. 48. (Contributed by Zhi Wang, 7-Nov-2025.)
𝑆 = (𝐹𝐴)    &   𝐻 = (Hom ‘𝐷)    &   𝐾 = (𝑥𝑆, 𝑦𝑆 𝑝 ∈ ((𝐹 “ {𝑥}) × (𝐹 “ {𝑦}))((𝐺𝑝) “ (𝐻𝑝)))    &   (𝜑𝐹(𝐷 Full 𝐸)𝐺)       (𝜑𝐾 ∈ (Subcat‘𝐸))
 
7-Nov-2025imasubc 48961 An image of a full functor is a full subcategory. Remark 4.2(3) of [Adamek] p. 48. (Contributed by Zhi Wang, 7-Nov-2025.)
𝑆 = (𝐹𝐴)    &   𝐻 = (Hom ‘𝐷)    &   𝐾 = (𝑥𝑆, 𝑦𝑆 𝑝 ∈ ((𝐹 “ {𝑥}) × (𝐹 “ {𝑦}))((𝐺𝑝) “ (𝐻𝑝)))    &   (𝜑𝐹(𝐷 Full 𝐸)𝐺)    &   𝐶 = (Base‘𝐸)    &   𝐽 = (Homf𝐸)       (𝜑 → (𝐾 Fn (𝑆 × 𝑆) ∧ 𝑆𝐶 ∧ (𝐽 ↾ (𝑆 × 𝑆)) = 𝐾))
 
7-Nov-2025imasubc3lem2 48960 Lemma for imasubc3 48966. (Contributed by Zhi Wang, 7-Nov-2025.)
𝑆 = (𝐹𝐴)    &   (𝜑𝐹:𝐵1-1𝐶)    &   (𝜑𝑋𝑆)    &   (𝜑𝑌𝑆)    &   (𝜑𝐹𝑉)    &   𝐾 = (𝑥𝑆, 𝑦𝑆 𝑝 ∈ ((𝐹 “ {𝑥}) × (𝐹 “ {𝑦}))((𝐺𝑝) “ (𝐻𝑝)))       (𝜑 → (𝑋𝐾𝑌) = (((𝐹𝑋)𝐺(𝐹𝑌)) “ ((𝐹𝑋)𝐻(𝐹𝑌))))
 
7-Nov-2025imasubc3lem1 48959 Lemma for imasubc3 48966. (Contributed by Zhi Wang, 7-Nov-2025.)
𝑆 = (𝐹𝐴)    &   (𝜑𝐹:𝐵1-1𝐶)    &   (𝜑𝑋𝑆)       (𝜑 → ({(𝐹𝑋)} = (𝐹 “ {𝑋}) ∧ (𝐹‘(𝐹𝑋)) = 𝑋 ∧ (𝐹𝑋) ∈ 𝐵))
 
7-Nov-2025imasubclem3 48958 Lemma for imasubc 48961. (Contributed by Zhi Wang, 7-Nov-2025.)
(𝜑𝐹𝑉)    &   (𝜑𝐺𝑊)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐵)    &   𝐾 = (𝑥𝐴, 𝑦𝐵 𝑧 ∈ ((𝐹 “ {𝑥}) × (𝐺 “ {𝑦}))((𝐻𝐶) “ 𝐷))       (𝜑 → (𝑋𝐾𝑌) = 𝑧 ∈ ((𝐹 “ {𝑋}) × (𝐺 “ {𝑌}))((𝐻𝐶) “ 𝐷))
 
7-Nov-2025imasubclem2 48957 Lemma for imasubc 48961. (Contributed by Zhi Wang, 7-Nov-2025.)
(𝜑𝐹𝑉)    &   (𝜑𝐺𝑊)    &   𝐾 = (𝑦𝑋, 𝑧𝑌 𝑥 ∈ ((𝐹𝐴) × (𝐺𝐵))((𝐻𝐶) “ 𝐷))       (𝜑𝐾 Fn (𝑋 × 𝑌))
 
7-Nov-2025inisegn0a 48708 The inverse image of a singleton subset of an image is non-empty. (Contributed by Zhi Wang, 7-Nov-2025.)
(𝐴 ∈ (𝐹𝐵) → (𝐹 “ {𝐴}) ≠ ∅)
 
6-Nov-2025cnelsubc 49342 Remark 4.2(2) of [Adamek] p. 48. There exists a category satisfying all conditions for a subcategory but the compatibility of identity morphisms. Therefore such condition in df-subc 17812 is necessary. A stronger statement than nelsubc3 48932. (Contributed by Zhi Wang, 6-Nov-2025.)
𝑐 ∈ Cat ∃𝑗𝑠(𝑗 Fn (𝑠 × 𝑠) ∧ (𝑗cat (Homf𝑐) ∧ ¬ ∀𝑥𝑠 ((Id‘𝑐)‘𝑥) ∈ (𝑥𝑗𝑥) ∧ (𝑐cat 𝑗) ∈ Cat))
 
6-Nov-2025cnelsubclem 49341 Lemma for cnelsubc 49342. (Contributed by Zhi Wang, 6-Nov-2025.)
𝐽 ∈ V    &   𝑆 ∈ V    &   (𝐶 ∈ Cat ∧ 𝐽 Fn (𝑆 × 𝑆) ∧ (𝐽cat (Homf𝐶) ∧ ¬ ∀𝑥𝑆 ((Id‘𝐶)‘𝑥) ∈ (𝑥𝐽𝑥) ∧ (𝐶cat 𝐽) ∈ Cat))       𝑐 ∈ Cat ∃𝑗𝑠(𝑗 Fn (𝑠 × 𝑠) ∧ (𝑗cat (Homf𝑐) ∧ ¬ ∀𝑥𝑠 ((Id‘𝑐)‘𝑥) ∈ (𝑥𝑗𝑥) ∧ (𝑐cat 𝑗) ∈ Cat))
 
6-Nov-2025setc1onsubc 49340 Construct a category with one object and two morphisms and prove that category (SetCat‘1o) satisfies all conditions for a subcategory but the compatibility of identity morphisms, showing the necessity of the latter condition in defining a subcategory. Exercise 4A of [Adamek] p. 58. (Contributed by Zhi Wang, 6-Nov-2025.)
𝐶 = {⟨(Base‘ndx), {∅}⟩, ⟨(Hom ‘ndx), {⟨∅, ∅, 2o⟩}⟩, ⟨(comp‘ndx), {⟨⟨∅, ∅⟩, ∅, · ⟩}⟩}    &    · = (𝑓 ∈ 2o, 𝑔 ∈ 2o ↦ (𝑓𝑔))    &   𝐸 = (SetCat‘1o)    &   𝐽 = (Homf𝐸)    &   𝑆 = 1o    &   𝐻 = (Homf𝐶)    &    1 = (Id‘𝐶)    &   𝐷 = (𝐶cat 𝐽)       (𝐶 ∈ Cat ∧ 𝐽 Fn (𝑆 × 𝑆) ∧ (𝐽cat 𝐻 ∧ ¬ ∀𝑥𝑆 ( 1𝑥) ∈ (𝑥𝐽𝑥) ∧ 𝐷 ∈ Cat))
 
6-Nov-2025fulltermc2 49258 Given a full functor to a terminal category, the source category must not have empty hom-sets. (Contributed by Zhi Wang, 17-Oct-2025.) (Proof shortened by Zhi Wang, 6-Nov-2025.)
𝐵 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &   (𝜑𝐷 ∈ TermCat)    &   (𝜑𝐹(𝐶 Full 𝐷)𝐺)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)       (𝜑 → ¬ (𝑋𝐻𝑌) = ∅)
 
6-Nov-2025imasubclem1 48956 Lemma for imasubc 48961. (Contributed by Zhi Wang, 6-Nov-2025.)
(𝜑𝐹𝑉)    &   (𝜑𝐺𝑊)       (𝜑 𝑥 ∈ ((𝐹𝐴) × (𝐺𝐵))((𝐻𝐶) “ 𝐷) ∈ V)
 
6-Nov-2025resccat 48935 A class 𝐶 restricted by the hom-sets of another set 𝐸, whose base is a subset of the base of 𝐶 and whose composition is compatible with 𝐶, is a category iff 𝐸 is a category. Note that the compatibility condition "resccat.1" can be weakened by removing 𝑥𝑆 because 𝑓 ∈ (𝑥𝐽𝑦) implies these. (Contributed by Zhi Wang, 6-Nov-2025.)
𝐷 = (𝐶cat 𝐽)    &   𝐵 = (Base‘𝐶)    &   𝑆 = (Base‘𝐸)    &   𝐽 = (Homf𝐸)    &    · = (comp‘𝐶)    &    = (comp‘𝐸)    &   (((𝜑 ∧ (𝑥𝑆𝑦𝑆𝑧𝑆)) ∧ (𝑓 ∈ (𝑥𝐽𝑦) ∧ 𝑔 ∈ (𝑦𝐽𝑧))) → (𝑔(⟨𝑥, 𝑦· 𝑧)𝑓) = (𝑔(⟨𝑥, 𝑦 𝑧)𝑓))    &   (𝜑𝐸𝑉)    &   (𝜑𝑆𝐵)       (𝜑 → (𝐷 ∈ Cat ↔ 𝐸 ∈ Cat))
 
6-Nov-2025resccatlem 48934 Lemma for resccat 48935. (Contributed by Zhi Wang, 6-Nov-2025.)
𝐷 = (𝐶cat 𝐽)    &   𝐵 = (Base‘𝐶)    &   𝑆 = (Base‘𝐸)    &   𝐽 = (Homf𝐸)    &    · = (comp‘𝐶)    &    = (comp‘𝐸)    &   (((𝜑 ∧ (𝑥𝑆𝑦𝑆𝑧𝑆)) ∧ (𝑓 ∈ (𝑥𝐽𝑦) ∧ 𝑔 ∈ (𝑦𝐽𝑧))) → (𝑔(⟨𝑥, 𝑦· 𝑧)𝑓) = (𝑔(⟨𝑥, 𝑦 𝑧)𝑓))    &   (𝜑𝐸𝑉)    &   (𝜑𝑆𝐵)    &   (𝜑𝐶𝑈)       (𝜑 → (𝐷 ∈ Cat ↔ 𝐸 ∈ Cat))
 
6-Nov-2025ssccatid 48933 A category 𝐶 restricted by 𝐽 is a category if all of the following are satisfied: a) the base is a subset of base of 𝐶, b) all hom-sets are subsets of hom-sets of 𝐶, c) it has identity morphisms for all objects, d) the composition under 𝐶 is closed in 𝐽. But 𝐽 might not be a subcategory of 𝐶 (see cnelsubc 49342). (Contributed by Zhi Wang, 6-Nov-2025.)
𝐻 = (Homf𝐶)    &   𝐷 = (𝐶cat 𝐽)    &    · = (comp‘𝐶)    &   (𝜑𝐽cat 𝐻)    &   (𝜑𝐽 Fn (𝑆 × 𝑆))    &   (𝜑𝐶 ∈ Cat)    &   ((𝜑𝑦𝑆) → 1 ∈ (𝑦𝐽𝑦))    &   ((𝜑 ∧ (𝑎𝑆𝑏𝑆𝑚 ∈ (𝑎𝐽𝑏))) → ( 1 (⟨𝑎, 𝑏· 𝑏)𝑚) = 𝑚)    &   ((𝜑 ∧ (𝑎𝑆𝑏𝑆𝑚 ∈ (𝑎𝐽𝑏))) → (𝑚(⟨𝑎, 𝑎· 𝑏) 1 ) = 𝑚)    &   ((𝜑 ∧ (𝑥𝑆𝑦𝑆𝑧𝑆) ∧ (𝑓 ∈ (𝑥𝐽𝑦) ∧ 𝑔 ∈ (𝑦𝐽𝑧))) → (𝑔(⟨𝑥, 𝑦· 𝑧)𝑓) ∈ (𝑥𝐽𝑧))       (𝜑 → (𝐷 ∈ Cat ∧ (Id‘𝐷) = (𝑦𝑆1 )))
 
6-Nov-2025iineqconst2 48696 Indexed intersection of identical classes. (Contributed by Zhi Wang, 6-Nov-2025.)
((𝐴 ≠ ∅ ∧ ∀𝑥𝐴 𝐵 = 𝐶) → 𝑥𝐴 𝐵 = 𝐶)
 
6-Nov-2025iuneqconst2 48695 Indexed union of identical classes. (Contributed by Zhi Wang, 6-Nov-2025.)
((𝐴 ≠ ∅ ∧ ∀𝑥𝐴 𝐵 = 𝐶) → 𝑥𝐴 𝐵 = 𝐶)
 
6-Nov-2025permaxinf2 44972 The Axiom of Infinity ax-inf2 9648 holds in permutation models. Part of Exercise II.9.2 of [Kunen2] p. 148. (Contributed by Eric Schmidt, 6-Nov-2025.)
𝐹:V–1-1-onto→V    &   𝑅 = (𝐹 ∘ E )       𝑥(∃𝑦(𝑦𝑅𝑥 ∧ ∀𝑧 ¬ 𝑧𝑅𝑦) ∧ ∀𝑦(𝑦𝑅𝑥 → ∃𝑧(𝑧𝑅𝑥 ∧ ∀𝑤(𝑤𝑅𝑧 ↔ (𝑤𝑅𝑦𝑤 = 𝑦)))))
 
6-Nov-2025permaxinf2lem 44971 Lemma for permaxinf2 44972. (Contributed by Eric Schmidt, 6-Nov-2025.)
𝐹:V–1-1-onto→V    &   𝑅 = (𝐹 ∘ E )    &   𝑍 = (rec((𝑣 ∈ V ↦ (𝐹‘((𝐹𝑣) ∪ {𝑣}))), (𝐹‘∅)) “ ω)       𝑥(∃𝑦(𝑦𝑅𝑥 ∧ ∀𝑧 ¬ 𝑧𝑅𝑦) ∧ ∀𝑦(𝑦𝑅𝑥 → ∃𝑧(𝑧𝑅𝑥 ∧ ∀𝑤(𝑤𝑅𝑧 ↔ (𝑤𝑅𝑦𝑤 = 𝑦)))))
 
6-Nov-2025permaxun 44970 The Axiom of Union ax-un 7724 holds in permutation models. Part of Exercise II.9.2 of [Kunen2] p. 148. (Contributed by Eric Schmidt, 6-Nov-2025.)
𝐹:V–1-1-onto→V    &   𝑅 = (𝐹 ∘ E )       𝑦𝑧(∃𝑤(𝑧𝑅𝑤𝑤𝑅𝑥) → 𝑧𝑅𝑦)
 
6-Nov-2025permaxpr 44969 The Axiom of Pairing ax-pr 5400 holds in permutation models. Part of Exercise II.9.2 of [Kunen2] p. 148. (Contributed by Eric Schmidt, 6-Nov-2025.)
𝐹:V–1-1-onto→V    &   𝑅 = (𝐹 ∘ E )       𝑧𝑤((𝑤 = 𝑥𝑤 = 𝑦) → 𝑤𝑅𝑧)
 
6-Nov-2025permaxpow 44968 The Axiom of Power Sets ax-pow 5333 holds in permutation models. Part of Exercise II.9.2 of [Kunen2] p. 148. (Contributed by Eric Schmidt, 6-Nov-2025.)
𝐹:V–1-1-onto→V    &   𝑅 = (𝐹 ∘ E )       𝑦𝑧(∀𝑤(𝑤𝑅𝑧𝑤𝑅𝑥) → 𝑧𝑅𝑦)
 
6-Nov-2025permaxnul 44967 The Null Set Axiom ax-nul 5274 holds in permutation models. Part of Exercise II.9.2 of [Kunen2] p. 148. (Contributed by Eric Schmidt, 6-Nov-2025.)
𝐹:V–1-1-onto→V    &   𝑅 = (𝐹 ∘ E )       𝑥𝑦 ¬ 𝑦𝑅𝑥
 
6-Nov-2025permaxsep 44966 The Axiom of Separation ax-sep 5264 holds in permutation models. Part of Exercise II.9.2 of [Kunen2] p. 148.

Note that, to prove that an instance of Separation holds in the model, 𝜑 would need have all instances of replaced with 𝑅. But this still results in an instance of this theorem, so we do establish that Separation holds. (Contributed by Eric Schmidt, 6-Nov-2025.)

𝐹:V–1-1-onto→V    &   𝑅 = (𝐹 ∘ E )       𝑦𝑥(𝑥𝑅𝑦 ↔ (𝑥𝑅𝑧𝜑))
 
6-Nov-2025permaxrep 44965 The Axiom of Replacement ax-rep 5247 holds in permutation models. Part of Exercise II.9.2 of [Kunen2] p. 148.

Note that, to prove that an instance of Replacement holds in the model, 𝜑 would need have all instances of replaced with 𝑅. But this still results in an instance of this theorem, so we do establish that Replacement holds. (Contributed by Eric Schmidt, 6-Nov-2025.)

𝐹:V–1-1-onto→V    &   𝑅 = (𝐹 ∘ E )       (∀𝑤𝑦𝑧(∀𝑦𝜑𝑧 = 𝑦) → ∃𝑦𝑧(𝑧𝑅𝑦 ↔ ∃𝑤(𝑤𝑅𝑥 ∧ ∀𝑦𝜑)))
 
6-Nov-2025permaxext 44964 The Axiom of Extensionality ax-ext 2706 holds in permutation models. Part of Exercise II.9.2 of [Kunen2] p. 148. (Contributed by Eric Schmidt, 6-Nov-2025.)
𝐹:V–1-1-onto→V    &   𝑅 = (𝐹 ∘ E )       (∀𝑧(𝑧𝑅𝑥𝑧𝑅𝑦) → 𝑥 = 𝑦)
 
6-Nov-2025brpermmodelcnv 44963 Ordinary membership expressed in terms of the permutation model's membership relation. (Contributed by Eric Schmidt, 6-Nov-2025.)
𝐹:V–1-1-onto→V    &   𝑅 = (𝐹 ∘ E )    &   𝐴 ∈ V    &   𝐵 ∈ V       (𝐴𝑅(𝐹𝐵) ↔ 𝐴𝐵)
 
6-Nov-2025brpermmodel 44962 The membership relation in a permutation model. We use a permutation 𝐹 of the universe to define a relation 𝑅 that serves as the membership relation in our model. The conclusion of this theorem is Definition II.9.1 of [Kunen2] p. 148. All the axioms of ZFC except for Regularity hold in permutation models, and Regularity will be false if 𝐹 is chosen appropriately. Thus, permutation models can be used to show that Regularity does not follow from the other axioms (with the usual proviso that the axioms are consistent). (Contributed by Eric Schmidt, 6-Nov-2025.)
𝐹:V–1-1-onto→V    &   𝑅 = (𝐹 ∘ E )    &   𝐴 ∈ V    &   𝐵 ∈ V       (𝐴𝑅𝐵𝐴 ∈ (𝐹𝐵))
 
6-Nov-2025orbitclmpt 44917 Version of orbitcl 44916 using maps-to notation. (Contributed by Eric Schmidt, 6-Nov-2025.)
𝑥𝐵    &   𝑥𝐷    &   𝑍 = (rec((𝑥 ∈ V ↦ 𝐶), 𝐴) “ ω)    &   (𝑥 = 𝐵𝐶 = 𝐷)       ((𝐵𝑍𝐷𝑉) → 𝐷𝑍)
 
6-Nov-2025orbitcl 44916 The orbit under a function is closed under the function. (Contributed by Eric Schmidt, 6-Nov-2025.)
(𝐵 ∈ (rec(𝐹, 𝐴) “ ω) → (𝐹𝐵) ∈ (rec(𝐹, 𝐴) “ ω))
 
6-Nov-2025orbitinit 44915 A set is contained in its orbit. (Contributed by Eric Schmidt, 6-Nov-2025.)
(𝐴𝑉𝐴 ∈ (rec(𝐹, 𝐴) “ ω))
 
6-Nov-2025orbitex 44914 Orbits exist. Given a set 𝐴 and a function 𝐹, the orbit of 𝐴 under 𝐹 is the smallest set 𝑍 such that 𝐴𝑍 and 𝑍 is closed under 𝐹. (Contributed by Eric Schmidt, 6-Nov-2025.)
(rec(𝐹, 𝐴) “ ω) ∈ V
 
6-Nov-2025constrsqrtcl 33748 Constructible numbers are closed under taking the square root. This is not generally the case for the cubic root operation, see 2sqr3nconstr 33750. (Proposed by Saveliy Skresanov, 3-Nov-2025.) (Contributed by Thierry Arnoux, 6-Nov-2025.)
(𝜑𝑋 ∈ Constr)       (𝜑 → (√‘𝑋) ∈ Constr)
 
6-Nov-2025constrabscl 33747 Constructible numbers are closed under absolute value (modulus). (Contributed by Thierry Arnoux, 6-Nov-2025.)
(𝜑𝑋 ∈ Constr)       (𝜑 → (abs‘𝑋) ∈ Constr)
 
5-Nov-2025ranup 49377 The universal property of the right Kan extension; expressed explicitly. (Contributed by Zhi Wang, 5-Nov-2025.)
𝑆 = (𝐶 FuncCat 𝐸)    &   𝑀 = (𝐷 Nat 𝐸)    &   𝑁 = (𝐶 Nat 𝐸)    &    = (comp‘𝑆)    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))    &   (𝜑𝐿 ∈ (𝐷 Func 𝐸))    &   (𝜑𝐴 ∈ ((𝐿func 𝐹)𝑁𝑋))       (𝜑 → (𝐿(𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋)𝐴 ↔ ∀𝑙 ∈ (𝐷 Func 𝐸)∀𝑎 ∈ ((𝑙func 𝐹)𝑁𝑋)∃!𝑏 ∈ (𝑙𝑀𝐿)𝑎 = (𝐴(⟨(𝑙func 𝐹), (𝐿func 𝐹)⟩ 𝑋)(𝑏 ∘ (1st𝐹)))))
 
5-Nov-2025incat 49339 Constructing a category with at most one object and at most two morphisms. If 𝑋 is a set then 𝐶 is the category 𝐴 in Exercise 3G of [Adamek] p. 45. (Contributed by Zhi Wang, 5-Nov-2025.)
𝐶 = {⟨(Base‘ndx), {𝑋}⟩, ⟨(Hom ‘ndx), {⟨𝑋, 𝑋, 𝐻⟩}⟩, ⟨(comp‘ndx), {⟨⟨𝑋, 𝑋⟩, 𝑋, · ⟩}⟩}    &   𝐻 = {𝐹, 𝐺}    &    · = (𝑓𝐻, 𝑔𝐻 ↦ (𝑓𝑔))       ((𝐹𝐺𝐺𝑉) → (𝐶 ∈ Cat ∧ (Id‘𝐶) = (𝑦 ∈ {𝑋} ↦ 𝐺)))
 
5-Nov-20252arwcat 49338 The condition for a structure with at most one object and at most two morphisms being a category. "2arwcat.2" to "2arwcat.5" are also necessary conditions if 𝑋, 0, and 1 are all sets, due to catlid 17682, catrid 17683, and catcocl 17684. (Contributed by Zhi Wang, 5-Nov-2025.)
(𝜑 → {𝑋} = (Base‘𝐶))    &   (𝜑𝐻 = (Hom ‘𝐶))    &   (𝜑· = (comp‘𝐶))    &   (𝑋𝐻𝑋) = { 0 , 1 }    &   (𝜑 → ( 1 (⟨𝑋, 𝑋· 𝑋) 1 ) = 1 )    &   (𝜑 → ( 1 (⟨𝑋, 𝑋· 𝑋) 0 ) = 0 )    &   (𝜑 → ( 0 (⟨𝑋, 𝑋· 𝑋) 1 ) = 0 )    &   (𝜑 → ( 0 (⟨𝑋, 𝑋· 𝑋) 0 ) ∈ { 0 , 1 })       (𝜑 → (𝐶 ∈ Cat ∧ (Id‘𝐶) = (𝑦 ∈ {𝑋} ↦ 1 )))
 
5-Nov-20252arwcatlem5 49337 Lemma for 2arwcat 49338. (Contributed by Zhi Wang, 5-Nov-2025.)
(𝜑 → ( 1 · 0 ) = 0 )    &   (𝜑 → ( 0 · 1 ) = 0 )    &   (𝜑 → ( 0 · 0 ) ∈ { 0 , 1 })       (𝜑 → (( 0 · 0 ) · 0 ) = ( 0 · ( 0 · 0 )))
 
5-Nov-20252arwcatlem4 49336 Lemma for 2arwcat 49338. (Contributed by Zhi Wang, 5-Nov-2025.)
(𝜑𝐴 = 𝑋)    &   (𝜑𝐵 = 𝑌)    &   (𝜑𝐶 = 𝑍)    &   (𝜑 → (𝐹 = 0𝐹 = 1 ))    &   (𝜑 → ( 1 (⟨𝑋, 𝑌· 𝑍) 1 ) = 1 )    &   (𝜑 → ( 0 (⟨𝑋, 𝑌· 𝑍) 1 ) = 0 )    &   (𝜑 → ( 1 (⟨𝑋, 𝑌· 𝑍) 0 ) = 0 )    &   (𝜑 → ( 0 (⟨𝑋, 𝑌· 𝑍) 0 ) ∈ { 0 , 1 })    &   (𝜑 → (𝐺 = 0𝐺 = 1 ))       (𝜑 → (𝐺(⟨𝐴, 𝐵· 𝐶)𝐹) ∈ { 0 , 1 })
 
5-Nov-20252arwcatlem3 49335 Lemma for 2arwcat 49338. (Contributed by Zhi Wang, 5-Nov-2025.)
(𝜑𝐴 = 𝑋)    &   (𝜑𝐵 = 𝑌)    &   (𝜑𝐶 = 𝑍)    &   (𝜑 → (𝐹 = 0𝐹 = 1 ))    &   (𝜑 → ( 1 (⟨𝑋, 𝑌· 𝑍) 1 ) = 1 )    &   (𝜑 → ( 0 (⟨𝑋, 𝑌· 𝑍) 1 ) = 0 )       (𝜑 → (𝐹(⟨𝐴, 𝐵· 𝐶) 1 ) = 𝐹)
 
5-Nov-20252arwcatlem2 49334 Lemma for 2arwcat 49338. (Contributed by Zhi Wang, 5-Nov-2025.)
(𝜑𝐴 = 𝑋)    &   (𝜑𝐵 = 𝑌)    &   (𝜑𝐶 = 𝑍)    &   (𝜑 → (𝐹 = 0𝐹 = 1 ))    &   (𝜑 → ( 1 (⟨𝑋, 𝑌· 𝑍) 1 ) = 1 )    &   (𝜑 → ( 1 (⟨𝑋, 𝑌· 𝑍) 0 ) = 0 )       (𝜑 → ( 1 (⟨𝐴, 𝐵· 𝐶)𝐹) = 𝐹)
 
5-Nov-20252arwcatlem1 49333 Lemma for 2arwcat 49338. (Contributed by Zhi Wang, 5-Nov-2025.)
(𝑋𝐻𝑋) = { 0 , 1 }       ((((𝑥 = 𝑋𝑦 = 𝑋) ∧ (𝑧 = 𝑋𝑤 = 𝑋)) ∧ ((𝑓 = 0𝑓 = 1 ) ∧ (𝑔 = 0𝑔 = 1 ) ∧ (𝑘 = 0𝑘 = 1 ))) ↔ ((𝑥 ∈ {𝑋} ∧ 𝑦 ∈ {𝑋}) ∧ (𝑧 ∈ {𝑋} ∧ 𝑤 ∈ {𝑋}) ∧ (𝑓 ∈ (𝑥𝐻𝑦) ∧ 𝑔 ∈ (𝑦𝐻𝑧) ∧ 𝑘 ∈ (𝑧𝐻𝑤))))
 
5-Nov-2025catcofval 49011 Composition of the category structure. (Contributed by Zhi Wang, 5-Nov-2025.)
𝐶 = {⟨(Base‘ndx), 𝐵⟩, ⟨(Hom ‘ndx), 𝐻⟩, ⟨(comp‘ndx), · ⟩}    &    · ∈ V        · = (comp‘𝐶)
 
5-Nov-2025cathomfval 49010 The hom-sets of the category structure. (Contributed by Zhi Wang, 5-Nov-2025.)
𝐶 = {⟨(Base‘ndx), 𝐵⟩, ⟨(Hom ‘ndx), 𝐻⟩, ⟨(comp‘ndx), · ⟩}    &   𝐻 ∈ V       𝐻 = (Hom ‘𝐶)
 
5-Nov-2025catbas 49009 The base of the category structure. (Contributed by Zhi Wang, 5-Nov-2025.)
𝐶 = {⟨(Base‘ndx), 𝐵⟩, ⟨(Hom ‘ndx), 𝐻⟩, ⟨(comp‘ndx), · ⟩}    &   𝐵 ∈ V       𝐵 = (Base‘𝐶)
 
5-Nov-2025upciclem1 48967 Lemma for upcic 48971, upeu 48972, and upeu2 48973. (Contributed by Zhi Wang, 16-Sep-2025.) (Proof shortened by Zhi Wang, 5-Nov-2025.)
(𝜑 → ∀𝑦𝐵𝑛 ∈ (𝑍𝐽(𝐹𝑦))∃!𝑘 ∈ (𝑋𝐻𝑦)𝑛 = (((𝑋𝐺𝑦)‘𝑘)(⟨𝑍, (𝐹𝑋)⟩𝑂(𝐹𝑦))𝑀))    &   (𝜑𝑌𝐵)    &   (𝜑𝑁 ∈ (𝑍𝐽(𝐹𝑌)))       (𝜑 → ∃!𝑙 ∈ (𝑋𝐻𝑌)𝑁 = (((𝑋𝐺𝑌)‘𝑙)(⟨𝑍, (𝐹𝑋)⟩𝑂(𝐹𝑌))𝑀))
 
5-Nov-2025nelsubc3 48932 Remark 4.2(2) of [Adamek] p. 48. There exists a set satisfying all conditions for a subcategory but the existence of identity morphisms. Therefore such condition in df-subc 17812 is necessary.

Note that this theorem cheated a little bit because (𝐶cat 𝐽) is not a category. In fact (𝐶cat 𝐽) ∈ Cat is a stronger statement than the condition (d) of Definition 4.1(1) of [Adamek] p. 48, as stated here (see the proof of issubc3 17849). To construct such a category, see setc1onsubc 49340 and cnelsubc 49342. (Contributed by Zhi Wang, 5-Nov-2025.)

𝑐 ∈ Cat ∃𝑗𝑠(𝑗 Fn (𝑠 × 𝑠) ∧ (𝑗cat (Homf𝑐) ∧ (¬ ∀𝑥𝑠 ((Id‘𝑐)‘𝑥) ∈ (𝑥𝑗𝑥) ∧ ∀𝑥𝑠𝑦𝑠𝑧𝑠𝑓 ∈ (𝑥𝑗𝑦)∀𝑔 ∈ (𝑦𝑗𝑧)(𝑔(⟨𝑥, 𝑦⟩(comp‘𝑐)𝑧)𝑓) ∈ (𝑥𝑗𝑧))))
 
5-Nov-2025nelsubc3lem 48931 Lemma for nelsubc3 48932. (Contributed by Zhi Wang, 5-Nov-2025.)
𝐶 ∈ Cat    &   𝐽 ∈ V    &   𝑆 ∈ V    &   (𝐽 Fn (𝑆 × 𝑆) ∧ (𝐽cat (Homf𝐶) ∧ (¬ ∀𝑥𝑆 ((Id‘𝐶)‘𝑥) ∈ (𝑥𝐽𝑥) ∧ ∀𝑥𝑆𝑦𝑆𝑧𝑆𝑓 ∈ (𝑥𝐽𝑦)∀𝑔 ∈ (𝑦𝐽𝑧)(𝑔(⟨𝑥, 𝑦⟩(comp‘𝐶)𝑧)𝑓) ∈ (𝑥𝐽𝑧))))       𝑐 ∈ Cat ∃𝑗𝑠(𝑗 Fn (𝑠 × 𝑠) ∧ (𝑗cat (Homf𝑐) ∧ (¬ ∀𝑥𝑠 ((Id‘𝑐)‘𝑥) ∈ (𝑥𝑗𝑥) ∧ ∀𝑥𝑠𝑦𝑠𝑧𝑠𝑓 ∈ (𝑥𝑗𝑦)∀𝑔 ∈ (𝑦𝑗𝑧)(𝑔(⟨𝑥, 𝑦⟩(comp‘𝑐)𝑧)𝑓) ∈ (𝑥𝑗𝑧))))
 
5-Nov-2025nelsubc2 48930 An empty "hom-set" for non-empty base is not a subcategory. (Contributed by Zhi Wang, 5-Nov-2025.)
𝐵 = (Base‘𝐶)    &   (𝜑𝑆𝐵)    &   (𝜑𝑆 ≠ ∅)    &   (𝜑𝐽 = ((𝑆 × 𝑆) × {∅}))    &   (𝜑𝐶 ∈ Cat)       (𝜑 → ¬ 𝐽 ∈ (Subcat‘𝐶))
 
5-Nov-2025nelsubc 48929 An empty "hom-set" for non-empty base satisfies all conditions for a subcategory but the existence of identity morphisms. (Contributed by Zhi Wang, 5-Nov-2025.)
𝐵 = (Base‘𝐶)    &   (𝜑𝑆𝐵)    &   (𝜑𝑆 ≠ ∅)    &   (𝜑𝐽 = ((𝑆 × 𝑆) × {∅}))    &   𝐻 = (Homf𝐶)    &    1 = (Id‘𝐶)    &    · = (comp‘𝐶)       (𝜑 → (𝐽 Fn (𝑆 × 𝑆) ∧ (𝐽cat 𝐻 ∧ (¬ ∀𝑥𝑆 ( 1𝑥) ∈ (𝑥𝐽𝑥) ∧ ∀𝑥𝑆𝑦𝑆𝑧𝑆𝑓 ∈ (𝑥𝐽𝑦)∀𝑔 ∈ (𝑦𝐽𝑧)(𝑔(⟨𝑥, 𝑦· 𝑧)𝑓) ∈ (𝑥𝐽𝑧)))))
 
5-Nov-2025nelsubclem 48928 Lemma for nelsubc 48929. (Contributed by Zhi Wang, 5-Nov-2025.)
𝐵 = (Base‘𝐶)    &   (𝜑𝑆𝐵)    &   (𝜑𝑆 ≠ ∅)    &   (𝜑𝐽 = ((𝑆 × 𝑆) × {∅}))    &   𝐻 = (Homf𝐶)       (𝜑 → (𝐽 Fn (𝑆 × 𝑆) ∧ (𝐽cat 𝐻 ∧ (¬ ∀𝑥𝑆 𝐼 ∈ (𝑥𝐽𝑥) ∧ ∀𝑥𝑆𝑦𝑆𝑧𝑆𝑓 ∈ (𝑥𝐽𝑦)𝜓))))
 
5-Nov-2025constrresqrtcl 33746 If a positive real number 𝑋 is constructible, then, so is its square root. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(𝜑𝑋 ∈ Constr)    &   (𝜑𝑋 ∈ ℝ)    &   (𝜑 → 0 ≤ 𝑋)       (𝜑 → (√‘𝑋) ∈ Constr)
 
5-Nov-2025constrfld 33745 The constructible numbers form a field. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(ℂflds Constr) ∈ Field
 
5-Nov-2025constrsdrg 33744 Constructible numbers form a subfield of the complex numbers. (Contributed by Thierry Arnoux, 5-Nov-2025.)
Constr ∈ (SubDRing‘ℂfld)
 
5-Nov-2025constrinvcl 33742 Constructible numbers are closed under complex inverse. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(𝜑𝑋 ∈ Constr)    &   (𝜑𝑋 ≠ 0)       (𝜑 → (1 / 𝑋) ∈ Constr)
 
5-Nov-2025constrreinvcl 33741 If a real number 𝑋 is constructible, then, so is its inverse. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(𝜑𝑋 ∈ Constr)    &   (𝜑𝑋 ≠ 0)    &   (𝜑𝑋 ∈ ℝ)       (𝜑 → (1 / 𝑋) ∈ Constr)
 
5-Nov-2025constrmulcl 33740 Constructible numbers are closed under complex multiplication. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(𝜑𝑋 ∈ Constr)    &   (𝜑𝑌 ∈ Constr)       (𝜑 → (𝑋 · 𝑌) ∈ Constr)
 
5-Nov-2025constrimcl 33739 Constructible numbers are closed under taking the imaginary part. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(𝜑𝑋 ∈ Constr)       (𝜑 → (ℑ‘𝑋) ∈ Constr)
 
5-Nov-2025constrrecl 33738 Constructible numbers are closed under taking the real part. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(𝜑𝑋 ∈ Constr)       (𝜑 → (ℜ‘𝑋) ∈ Constr)
 
5-Nov-2025constrcjcl 33737 Constructible numbers are closed under complex conjugate. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(𝜑𝑋 ∈ Constr)       (𝜑 → (∗‘𝑋) ∈ Constr)
 
5-Nov-2025argcj 32662 The argument of the conjugate of a complex number 𝐴. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(𝜑𝐴 ∈ ℂ)    &   (𝜑𝐴 ≠ 0)    &   (𝜑 → ¬ -𝐴 ∈ ℝ+)       (𝜑 → (ℑ‘(log‘(∗‘𝐴))) = -(ℑ‘(log‘𝐴)))
 
5-Nov-2025arginv 32661 The argument of the inverse of a complex number 𝐴. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(𝜑𝐴 ∈ ℂ)    &   (𝜑𝐴 ≠ 0)    &   (𝜑 → ¬ -𝐴 ∈ ℝ+)       (𝜑 → (ℑ‘(log‘(1 / 𝐴))) = -(ℑ‘(log‘𝐴)))
 
5-Nov-2025efiargd 32660 The exponential of the "arg" function ℑ ∘ log, deduction version. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(𝜑𝐴 ∈ ℂ)    &   (𝜑𝐴 ≠ 0)       (𝜑 → (exp‘(i · (ℑ‘(log‘𝐴)))) = (𝐴 / (abs‘𝐴)))
 
5-Nov-2025binom2subadd 32655 The difference of the squares of the sum and difference of two complex numbers 𝐴 and 𝐵. (Contributed by Thierry Arnoux, 5-Nov-2025.)
(𝜑𝐴 ∈ ℂ)    &   (𝜑𝐵 ∈ ℂ)       (𝜑 → (((𝐴 + 𝐵)↑2) − ((𝐴𝐵)↑2)) = (4 · (𝐴 · 𝐵)))
 
4-Nov-2025lanup 49376 The universal property of the left Kan extension; expressed explicitly. (Contributed by Zhi Wang, 4-Nov-2025.)
𝑆 = (𝐶 FuncCat 𝐸)    &   𝑀 = (𝐷 Nat 𝐸)    &   𝑁 = (𝐶 Nat 𝐸)    &    = (comp‘𝑆)    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))    &   (𝜑𝐿 ∈ (𝐷 Func 𝐸))    &   (𝜑𝐴 ∈ (𝑋𝑁(𝐿func 𝐹)))       (𝜑 → (𝐿(𝐹(⟨𝐶, 𝐷⟩Lan𝐸)𝑋)𝐴 ↔ ∀𝑙 ∈ (𝐷 Func 𝐸)∀𝑎 ∈ (𝑋𝑁(𝑙func 𝐹))∃!𝑏 ∈ (𝐿𝑀𝑙)𝑎 = ((𝑏 ∘ (1st𝐹))(⟨𝑋, (𝐿func 𝐹)⟩ (𝑙func 𝐹))𝐴)))
 
4-Nov-2025ranrcl5 49375 The second component of a right Kan extension is a natural transformation. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝐿(𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋)𝐴)    &   𝑁 = (𝐶 Nat 𝐸)       (𝜑𝐴 ∈ ((𝐿func 𝐹)𝑁𝑋))
 
4-Nov-2025ranrcl4 49374 The first component of a right Kan extension is a functor. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝐿(𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋)𝐴)       (𝜑𝐿 ∈ (𝐷 Func 𝐸))
 
4-Nov-2025ranrcl4lem 49373 Lemma for ranrcl4 49374 and ranrcl5 49375. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝐿(𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋)𝐴)       (𝜑 → (⟨𝐷, 𝐸⟩ −∘F 𝐹) = ⟨(1st ‘(⟨𝐷, 𝐸⟩ −∘F 𝐹)), (2nd ‘(⟨𝐷, 𝐸⟩ −∘F 𝐹))⟩)
 
4-Nov-2025ranrcl3 49372 Reverse closure for right Kan extensions. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝐿(𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋)𝐴)       (𝜑𝑋 ∈ (𝐶 Func 𝐸))
 
4-Nov-2025ranrcl2 49371 Reverse closure for right Kan extensions. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝐿(𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋)𝐴)       (𝜑𝐹 ∈ (𝐶 Func 𝐷))
 
4-Nov-2025lanrcl5 49370 The second component of a left Kan extension is a natural transformation. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝐿(𝐹(⟨𝐶, 𝐷⟩Lan𝐸)𝑋)𝐴)    &   𝑁 = (𝐶 Nat 𝐸)       (𝜑𝐴 ∈ (𝑋𝑁(𝐿func 𝐹)))
 
4-Nov-2025lanrcl4 49369 The first component of a left Kan extension is a functor. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝐿(𝐹(⟨𝐶, 𝐷⟩Lan𝐸)𝑋)𝐴)       (𝜑𝐿 ∈ (𝐷 Func 𝐸))
 
4-Nov-2025lanrcl3 49368 Reverse closure for left Kan extensions. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝐿(𝐹(⟨𝐶, 𝐷⟩Lan𝐸)𝑋)𝐴)       (𝜑𝑋 ∈ (𝐶 Func 𝐸))
 
4-Nov-2025lanrcl2 49367 Reverse closure for left Kan extensions. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝐿(𝐹(⟨𝐶, 𝐷⟩Lan𝐸)𝑋)𝐴)       (𝜑𝐹 ∈ (𝐶 Func 𝐷))
 
4-Nov-2025ranval2 49366 The set of right Kan extensions is the set of universal pairs. Therefore, the explicit universal property can be recovered by oppcup2 49004 and oppcup3lem 49002. (Contributed by Zhi Wang, 4-Nov-2025.)
𝑂 = (oppCat‘(𝐷 FuncCat 𝐸))    &   𝑃 = (oppCat‘(𝐶 FuncCat 𝐸))    &   (𝜑 → (⟨𝐷, 𝐸⟩ −∘F 𝐹) = ⟨𝐽, 𝐾⟩)    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))       (𝜑 → (𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋) = (⟨𝐽, tpos 𝐾⟩(𝑂UP𝑃)𝑋))
 
4-Nov-2025isran2 49365 A right Kan extension is a universal pair. (Contributed by Zhi Wang, 4-Nov-2025.)
𝑂 = (oppCat‘(𝐷 FuncCat 𝐸))    &   𝑃 = (oppCat‘(𝐶 FuncCat 𝐸))    &   (𝜑 → (⟨𝐷, 𝐸⟩ −∘F 𝐹) = ⟨𝐽, 𝐾⟩)    &   (𝜑𝐿(𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋)𝐴)       (𝜑𝐿(⟨𝐽, tpos 𝐾⟩(𝑂UP𝑃)𝑋)𝐴)
 
4-Nov-2025isran 49364 A right Kan extension is a universal pair. (Contributed by Zhi Wang, 4-Nov-2025.)
𝑂 = (oppCat‘(𝐷 FuncCat 𝐸))    &   𝑃 = (oppCat‘(𝐶 FuncCat 𝐸))    &   (𝜑 → (⟨𝐷, 𝐸⟩ −∘F 𝐹) = ⟨𝐽, 𝐾⟩)    &   (𝜑𝐿 ∈ (𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋))       (𝜑𝐿 ∈ (⟨𝐽, tpos 𝐾⟩(𝑂UP𝑃)𝑋))
 
4-Nov-2025islan2 49362 A left Kan extension is a universal pair. (Contributed by Zhi Wang, 4-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   𝑆 = (𝐶 FuncCat 𝐸)    &   𝐾 = (⟨𝐷, 𝐸⟩ −∘F 𝐹)       (𝐿(𝐹(⟨𝐶, 𝐷⟩Lan𝐸)𝑋)𝐴𝐿(𝐾(𝑅UP𝑆)𝑋)𝐴)
 
4-Nov-2025relran 49360 The set of right Kan extensions is a relation. (Contributed by Zhi Wang, 4-Nov-2025.)
Rel (𝐹(𝑃Ran𝐸)𝑋)
 
4-Nov-2025ranrcl 49358 Reverse closure for right Kan extensions. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝐿 ∈ (𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋) → (𝐹 ∈ (𝐶 Func 𝐷) ∧ 𝑋 ∈ (𝐶 Func 𝐸)))
 
4-Nov-2025ranval 49356 Value of the set of right Kan extensions. (Contributed by Zhi Wang, 4-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   𝑆 = (𝐶 FuncCat 𝐸)    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))    &   (𝜑𝑋 ∈ (𝐶 Func 𝐸))    &   (𝜑 → (⟨𝐷, 𝐸⟩ −∘F 𝐹) = ⟨𝐽, 𝐾⟩)    &   𝑂 = (oppCat‘𝑅)    &   𝑃 = (oppCat‘𝑆)       (𝜑 → (𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋) = (⟨𝐽, tpos 𝐾⟩(𝑂UP𝑃)𝑋))
 
4-Nov-2025reldmran2 49354 The domain of (𝑃Ran𝐸) is a relation. (Contributed by Zhi Wang, 4-Nov-2025.)
Rel dom (𝑃Ran𝐸)
 
4-Nov-2025ranfval 49352 Value of the function generating the set of right Kan extensions. (Contributed by Zhi Wang, 4-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   𝑆 = (𝐶 FuncCat 𝐸)    &   (𝜑𝐶𝑈)    &   (𝜑𝐷𝑉)    &   (𝜑𝐸𝑊)    &   𝑂 = (oppCat‘𝑅)    &   𝑃 = (oppCat‘𝑆)       (𝜑 → (⟨𝐶, 𝐷⟩Ran𝐸) = (𝑓 ∈ (𝐶 Func 𝐷), 𝑥 ∈ (𝐶 Func 𝐸) ↦ ((oppFunc‘(⟨𝐷, 𝐸⟩ −∘F 𝑓))(𝑂UP𝑃)𝑥)))
 
4-Nov-2025reldmran 49350 The domain of Ran is a relation. (Contributed by Zhi Wang, 4-Nov-2025.)
Rel dom Ran
 
4-Nov-2025ranfn 49348 Ran is a function on ((V × V) × V). (Contributed by Zhi Wang, 4-Nov-2025.)
Ran Fn ((V × V) × V)
 
4-Nov-2025df-ran 49346 Definition of the (local) right Kan extension. Given a functor 𝐹:𝐶𝐷 and a functor 𝑋:𝐶𝐸, the set (𝐹(⟨𝐶, 𝐷⟩Ran𝐸)𝑋) consists of right Kan extensions of 𝑋 along 𝐹, which are universal pairs from the pre-composition functor given by 𝐹 to 𝑋 (ranval2 49366). The definition in § 3 of Chapter X in p. 236 of Mac Lane, Saunders, Categories for the Working Mathematician, 2nd Edition, Springer Science+Business Media, New York, (1998) [QA169.M33 1998]; available at https://math.mit.edu/~hrm/palestine/maclane-categories.pdf 49366 (retrieved 3 Nov 2025).

A right Kan extension is in the form of 𝐿, 𝐴 where the first component is a functor 𝐿:𝐷𝐸 (ranrcl4 49374) and the second component is a natural transformation 𝐴:𝐿𝐹𝑋 (ranrcl5 49375) where 𝐿𝐹 is the composed functor. Intuitively, the first component 𝐿 can be regarded as the result of a "inverse" of pre-composition; the source category is "extended" along 𝐶𝐷.

The right Kan extension is a generalization of many categorical concepts such as limit. In § 7 of Chapter X of Categories for the Working Mathematician, it is concluded that "the notion of Kan extensions subsumes all the other fundamental concepts of category theory".

This definition was chosen over the other version in the commented out section due to its better reverse closure property.

See df-lan 49345 for the dual concept.

(Contributed by Zhi Wang, 4-Nov-2025.)

Ran = (𝑝 ∈ (V × V), 𝑒 ∈ V ↦ (1st𝑝) / 𝑐(2nd𝑝) / 𝑑(𝑓 ∈ (𝑐 Func 𝑑), 𝑥 ∈ (𝑐 Func 𝑒) ↦ ((oppFunc‘(⟨𝑑, 𝑒⟩ −∘F 𝑓))((oppCat‘(𝑑 FuncCat 𝑒))UP(oppCat‘(𝑐 FuncCat 𝑒)))𝑥)))
 
4-Nov-2025prcoffunca2 49160 The pre-composition functor is a functor. (Contributed by Zhi Wang, 4-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   (𝜑𝐸 ∈ Cat)    &   𝑆 = (𝐶 FuncCat 𝐸)    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))    &   (𝜑 → (⟨𝐷, 𝐸⟩ −∘F 𝐹) = ⟨𝐾, 𝐿⟩)       (𝜑𝐾(𝑅 Func 𝑆)𝐿)
 
4-Nov-2025prcofelvv 49153 The pre-composition functor is an ordered pair. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝐹𝑈)    &   (𝜑𝑃𝑉)       (𝜑 → (𝑃 −∘F 𝐹) ∈ (V × V))
 
4-Nov-2025oppcup3 49005 The universal property for the universal pair 𝑋, 𝑀 from a functor to an object, expressed explicitly. (Contributed by Zhi Wang, 4-Nov-2025.)
𝐵 = (Base‘𝐷)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &    = (comp‘𝐸)    &   𝑂 = (oppCat‘𝐷)    &   𝑃 = (oppCat‘𝐸)    &   (𝜑𝑋(⟨𝐹, 𝑇⟩(𝑂UP𝑃)𝑊)𝑀)    &   (𝜑 → tpos 𝑇 = 𝐺)    &   (𝜑𝑌𝐵)    &   (𝜑𝑁 ∈ ((𝐹𝑌)𝐽𝑊))       (𝜑 → ∃!𝑘 ∈ (𝑌𝐻𝑋)𝑁 = (𝑀(⟨(𝐹𝑌), (𝐹𝑋)⟩ 𝑊)((𝑌𝐺𝑋)‘𝑘)))
 
4-Nov-2025oppcup2 49004 The universal property for the universal pair 𝑋, 𝑀 from a functor to an object, expressed explicitly. (Contributed by Zhi Wang, 4-Nov-2025.)
𝐵 = (Base‘𝐷)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &    = (comp‘𝐸)    &   𝑂 = (oppCat‘𝐷)    &   𝑃 = (oppCat‘𝐸)    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   (𝜑𝑋(⟨𝐹, tpos 𝐺⟩(𝑂UP𝑃)𝑊)𝑀)       (𝜑 → ∀𝑦𝐵𝑔 ∈ ((𝐹𝑦)𝐽𝑊)∃!𝑘 ∈ (𝑦𝐻𝑋)𝑔 = (𝑀(⟨(𝐹𝑦), (𝐹𝑋)⟩ 𝑊)((𝑦𝐺𝑋)‘𝑘)))
 
4-Nov-2025oppcup3lem 49002 Lemma for oppcup3 49005. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑 → ∀𝑦𝐵𝑛 ∈ ((𝐹𝑦)𝐽𝑍)∃!𝑘 ∈ (𝑦𝐻𝑋)𝑛 = (𝑀(⟨(𝐹𝑦), (𝐹𝑋)⟩𝑂𝑍)((𝑦𝐺𝑋)‘𝑘)))    &   (𝜑𝑌𝐵)    &   (𝜑𝑁 ∈ ((𝐹𝑌)𝐽𝑍))       (𝜑 → ∃!𝑙 ∈ (𝑌𝐻𝑋)𝑁 = (𝑀(⟨(𝐹𝑌), (𝐹𝑋)⟩𝑂𝑍)((𝑌𝐺𝑋)‘𝑙)))
 
4-Nov-2025oppcuprcl2 49001 Reverse closure for the class of universal property in opposite categories. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝑋(⟨𝐹, 𝐺⟩(𝑂UP𝑃)𝑊)𝑀)    &   𝑃 = (oppCat‘𝐸)    &   𝑂 = (oppCat‘𝐷)    &   (𝜑𝐷𝑈)    &   (𝜑𝐸𝑉)    &   (𝜑 → tpos 𝐺 = 𝐻)       (𝜑𝐹(𝐷 Func 𝐸)𝐻)
 
4-Nov-2025oppcuprcl5 49000 Reverse closure for the class of universal property in opposite categories. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝑋(⟨𝐹, 𝐺⟩(𝑂UP𝑃)𝑊)𝑀)    &   𝑃 = (oppCat‘𝐸)    &   𝐽 = (Hom ‘𝐸)       (𝜑𝑀 ∈ ((𝐹𝑋)𝐽𝑊))
 
4-Nov-2025oppcuprcl3 48999 Reverse closure for the class of universal property in opposite categories. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝑋(⟨𝐹, 𝐺⟩(𝑂UP𝑃)𝑊)𝑀)    &   𝑃 = (oppCat‘𝐸)    &   𝐶 = (Base‘𝐸)       (𝜑𝑊𝐶)
 
4-Nov-2025oppcuprcl4 48998 Reverse closure for the class of universal property in opposite categories. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝑋(⟨𝐹, 𝐺⟩(𝑂UP𝑃)𝑊)𝑀)    &   𝑂 = (oppCat‘𝐷)    &   𝐵 = (Base‘𝐷)       (𝜑𝑋𝐵)
 
4-Nov-2025uptpos 48997 Rewrite the predicate of universal property in the form of opposite functor. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝑋(⟨𝐹, 𝐺⟩(𝑂UP𝑃)𝑊)𝑀)    &   (𝜑 → tpos 𝐺 = 𝐻)       (𝜑𝑋(⟨𝐹, tpos 𝐻⟩(𝑂UP𝑃)𝑊)𝑀)
 
4-Nov-2025uptposlem 48996 Lemma for uptpos 48997. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝜑𝑋(⟨𝐹, 𝐺⟩(𝑂UP𝑃)𝑊)𝑀)    &   (𝜑 → tpos 𝐺 = 𝐻)       (𝜑 → tpos 𝐻 = 𝐺)
 
4-Nov-2025funcoppc3 48955 A functor on opposite categories yields a functor on the original categories. (Contributed by Zhi Wang, 4-Nov-2025.)
𝑂 = (oppCat‘𝐶)    &   𝑃 = (oppCat‘𝐷)    &   (𝜑𝐶𝑉)    &   (𝜑𝐷𝑊)    &   (𝜑𝐹(𝑂 Func 𝑃)tpos 𝐺)    &   (𝜑𝐺 Fn (𝐴 × 𝐵))       (𝜑𝐹(𝐶 Func 𝐷)𝐺)
 
4-Nov-2025funcoppc2 48954 A functor on opposite categories yields a functor on the original categories. (Contributed by Zhi Wang, 4-Nov-2025.)
𝑂 = (oppCat‘𝐶)    &   𝑃 = (oppCat‘𝐷)    &   (𝜑𝐶𝑉)    &   (𝜑𝐷𝑊)    &   (𝜑𝐹(𝑂 Func 𝑃)𝐺)       (𝜑𝐹(𝐶 Func 𝐷)tpos 𝐺)
 
4-Nov-2025oppfoppc 48953 The opposite functor is a functor on opposite categories. (Contributed by Zhi Wang, 4-Nov-2025.)
𝑂 = (oppCat‘𝐶)    &   𝑃 = (oppCat‘𝐷)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)       (𝜑 → (𝐹oppFunc𝐺) ∈ (𝑂 Func 𝑃))
 
4-Nov-2025oppfval 48952 Value of the opposite functor. (Contributed by Zhi Wang, 4-Nov-2025.)
(𝐹(𝐶 Func 𝐷)𝐺 → (𝐹oppFunc𝐺) = ⟨𝐹, tpos 𝐺⟩)
 
4-Nov-2025df-oppf 48951 Definition of the operation generating opposite functors. Definition 3.41 of [Adamek] p. 39. The object part of the functor is unchanged while the morphism part is transposed due to reversed direction of arrows in the opposite category. The opposite functor is a functor on opposite categories (oppfoppc 48953). (Contributed by Zhi Wang, 4-Nov-2025.)
oppFunc = (𝑓 ∈ V, 𝑔 ∈ V ↦ ⟨𝑓, tpos 𝑔⟩)
 
3-Nov-2025lanval2 49363 The set of left Kan extensions is the set of universal pairs. Therefore, the explicit universal property can be recovered by isup2 48993 and upciclem1 48967. (Contributed by Zhi Wang, 3-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   𝑆 = (𝐶 FuncCat 𝐸)    &   𝐾 = (⟨𝐷, 𝐸⟩ −∘F 𝐹)       (𝐹 ∈ (𝐶 Func 𝐷) → (𝐹(⟨𝐶, 𝐷⟩Lan𝐸)𝑋) = (𝐾(𝑅UP𝑆)𝑋))
 
3-Nov-2025islan 49361 A left Kan extension is a universal pair. (Contributed by Zhi Wang, 3-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   𝑆 = (𝐶 FuncCat 𝐸)    &   𝐾 = (⟨𝐷, 𝐸⟩ −∘F 𝐹)       (𝐿 ∈ (𝐹(⟨𝐶, 𝐷⟩Lan𝐸)𝑋) → 𝐿 ∈ (𝐾(𝑅UP𝑆)𝑋))
 
3-Nov-2025rellan 49359 The set of left Kan extensions is a relation. (Contributed by Zhi Wang, 3-Nov-2025.)
Rel (𝐹(𝑃Lan𝐸)𝑋)
 
3-Nov-2025lanrcl 49357 Reverse closure for left Kan extensions. (Contributed by Zhi Wang, 3-Nov-2025.)
(𝐿 ∈ (𝐹(⟨𝐶, 𝐷⟩Lan𝐸)𝑋) → (𝐹 ∈ (𝐶 Func 𝐷) ∧ 𝑋 ∈ (𝐶 Func 𝐸)))
 
3-Nov-2025lanval 49355 Value of the set of left Kan extensions. (Contributed by Zhi Wang, 3-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   𝑆 = (𝐶 FuncCat 𝐸)    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))    &   (𝜑𝑋 ∈ (𝐶 Func 𝐸))    &   (𝜑 → (⟨𝐷, 𝐸⟩ −∘F 𝐹) = 𝐾)       (𝜑 → (𝐹(⟨𝐶, 𝐷⟩Lan𝐸)𝑋) = (𝐾(𝑅UP𝑆)𝑋))
 
3-Nov-2025reldmlan2 49353 The domain of (𝑃Lan𝐸) is a relation. (Contributed by Zhi Wang, 3-Nov-2025.)
Rel dom (𝑃Lan𝐸)
 
3-Nov-2025lanfval 49351 Value of the function generating the set of left Kan extensions. (Contributed by Zhi Wang, 3-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   𝑆 = (𝐶 FuncCat 𝐸)    &   (𝜑𝐶𝑈)    &   (𝜑𝐷𝑉)    &   (𝜑𝐸𝑊)       (𝜑 → (⟨𝐶, 𝐷⟩Lan𝐸) = (𝑓 ∈ (𝐶 Func 𝐷), 𝑥 ∈ (𝐶 Func 𝐸) ↦ ((⟨𝐷, 𝐸⟩ −∘F 𝑓)(𝑅UP𝑆)𝑥)))
 
3-Nov-2025reldmlan 49349 The domain of Lan is a relation. (Contributed by Zhi Wang, 3-Nov-2025.)
Rel dom Lan
 
3-Nov-2025lanfn 49347 Lan is a function on ((V × V) × V). (Contributed by Zhi Wang, 3-Nov-2025.)
Lan Fn ((V × V) × V)
 
3-Nov-2025df-lan 49345 Definition of the (local) left Kan extension. Given a functor 𝐹:𝐶𝐷 and a functor 𝑋:𝐶𝐸, the set (𝐹(⟨𝐶, 𝐷⟩Lan𝐸)𝑋) consists of left Kan extensions of 𝑋 along 𝐹, which are universal pairs from 𝑋 to the pre-composition functor given by 𝐹 (lanval2 49363). See also § 3 of Chapter X in p. 240 of Mac Lane, Saunders, Categories for the Working Mathematician, 2nd Edition, Springer Science+Business Media, New York, (1998) [QA169.M33 1998]; available at https://math.mit.edu/~hrm/palestine/maclane-categories.pdf 49363 (retrieved 3 Nov 2025).

A left Kan extension is in the form of 𝐿, 𝐴 where the first component is a functor 𝐿:𝐷𝐸 (lanrcl4 49369) and the second component is a natural transformation 𝐴:𝑋𝐿𝐹 (lanrcl5 49370) where 𝐿𝐹 is the composed functor. Intuitively, the first component 𝐿 can be regarded as the result of a "inverse" of pre-composition; the source category is "extended" along 𝐶𝐷.

The left Kan extension is a generalization of many categorical concepts such as colimit. In § 7 of Chapter X of Categories for the Working Mathematician, it is concluded that "the notion of Kan extensions subsumes all the other fundamental concepts of category theory".

This definition was chosen over the other version in the commented out section due to its better reverse closure property.

See df-ran 49346 for the dual concept.

(Contributed by Zhi Wang, 3-Nov-2025.)

Lan = (𝑝 ∈ (V × V), 𝑒 ∈ V ↦ (1st𝑝) / 𝑐(2nd𝑝) / 𝑑(𝑓 ∈ (𝑐 Func 𝑑), 𝑥 ∈ (𝑐 Func 𝑒) ↦ ((⟨𝑑, 𝑒⟩ −∘F 𝑓)((𝑑 FuncCat 𝑒)UP(𝑐 FuncCat 𝑒))𝑥)))
 
3-Nov-2025prcof22a 49165 The morphism part of the pre-composition functor. (Contributed by Zhi Wang, 3-Nov-2025.)
𝑁 = (𝐷 Nat 𝐸)    &   (𝜑𝐴 ∈ (𝐾𝑁𝐿))    &   (𝜑 → (2nd ‘(⟨𝐷, 𝐸⟩ −∘F 𝐹)) = 𝑃)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))       (𝜑 → (((𝐾𝑃𝐿)‘𝐴)‘𝑋) = (𝐴‘((1st𝐹)‘𝑋)))
 
3-Nov-2025prcof21a 49164 The morphism part of the pre-composition functor. (Contributed by Zhi Wang, 3-Nov-2025.)
𝑁 = (𝐷 Nat 𝐸)    &   (𝜑𝐴 ∈ (𝐾𝑁𝐿))    &   (𝜑 → (2nd ‘(⟨𝐷, 𝐸⟩ −∘F 𝐹)) = 𝑃)    &   (𝜑𝐹𝑈)       (𝜑 → ((𝐾𝑃𝐿)‘𝐴) = (𝐴 ∘ (1st𝐹)))
 
3-Nov-2025prcof2 49163 The morphism part of the pre-composition functor. (Contributed by Zhi Wang, 3-Nov-2025.)
𝑁 = (𝐷 Nat 𝐸)    &   (𝜑𝐾 ∈ (𝐷 Func 𝐸))    &   (𝜑𝐿 ∈ (𝐷 Func 𝐸))    &   (𝜑 → (2nd ‘(⟨𝐷, 𝐸⟩ −∘F𝐹, 𝐺⟩)) = 𝑃)    &   Rel 𝑅    &   (𝜑𝐹𝑅𝐺)       (𝜑 → (𝐾𝑃𝐿) = (𝑎 ∈ (𝐾𝑁𝐿) ↦ (𝑎𝐹)))
 
3-Nov-2025prcof2a 49162 The morphism part of the pre-composition functor. (Contributed by Zhi Wang, 3-Nov-2025.)
𝑁 = (𝐷 Nat 𝐸)    &   (𝜑𝐾 ∈ (𝐷 Func 𝐸))    &   (𝜑𝐿 ∈ (𝐷 Func 𝐸))    &   (𝜑 → (2nd ‘(⟨𝐷, 𝐸⟩ −∘F 𝐹)) = 𝑃)    &   (𝜑𝐹𝑈)       (𝜑 → (𝐾𝑃𝐿) = (𝑎 ∈ (𝐾𝑁𝐿) ↦ (𝑎 ∘ (1st𝐹))))
 
3-Nov-2025prcof1 49161 The object part of the pre-composition functor. (Contributed by Zhi Wang, 3-Nov-2025.)
(𝜑𝐾 ∈ (𝐷 Func 𝐸))    &   (𝜑 → (1st ‘(⟨𝐷, 𝐸⟩ −∘F 𝐹)) = 𝑂)       (𝜑 → (𝑂𝐾) = (𝐾func 𝐹))
 
3-Nov-2025cicerALT 48907 Isomorphism is an equivalence relation on objects of a category. Remark 3.16 in [Adamek] p. 29. (Contributed by AV, 5-Apr-2020.) (Proof shortened by Zhi Wang, 3-Nov-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
(𝐶 ∈ Cat → ( ≃𝑐𝐶) Er (Base‘𝐶))
 
3-Nov-2025isofnALT 48895 The function value of the function returning the isomorphisms of a category is a function over the Cartesian square of the base set of the category. (Contributed by AV, 5-Apr-2020.) (Proof shortened by Zhi Wang, 3-Nov-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
(𝐶 ∈ Cat → (Iso‘𝐶) Fn ((Base‘𝐶) × (Base‘𝐶)))
 
3-Nov-2025zconstr 33733 Integers are constructible. (Contributed by Thierry Arnoux, 3-Nov-2025.)
(𝜑𝑋 ∈ ℤ)       (𝜑𝑋 ∈ Constr)
 
2-Nov-2025prcoffunca 49159 The pre-composition functor is a functor. (Contributed by Zhi Wang, 2-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   (𝜑𝐸 ∈ Cat)    &   𝑆 = (𝐶 FuncCat 𝐸)    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))       (𝜑 → (⟨𝐷, 𝐸⟩ −∘F 𝐹) ∈ (𝑅 Func 𝑆))
 
2-Nov-2025prcoffunc 49158 The pre-composition functor is a functor. (Contributed by Zhi Wang, 2-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   (𝜑𝐸 ∈ Cat)    &   𝑆 = (𝐶 FuncCat 𝐸)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)       (𝜑 → (⟨𝐷, 𝐸⟩ −∘F𝐹, 𝐺⟩) ∈ (𝑅 Func 𝑆))
 
2-Nov-2025prcoftposcurfucoa 49157 The pre-composition functor is the transposed curry of the functor composition bifunctor. (Contributed by Zhi Wang, 2-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   (𝜑𝐸 ∈ Cat)    &   𝑄 = (𝐶 FuncCat 𝐷)    &   (𝜑 = (⟨𝑄, 𝑅⟩ curryF ((⟨𝐶, 𝐷⟩ ∘F 𝐸) ∘func (𝑄swapF𝑅))))    &   (𝜑𝑀 = ((1st )‘𝐹))    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))       (𝜑 → (⟨𝐷, 𝐸⟩ −∘F 𝐹) = 𝑀)
 
2-Nov-2025prcoftposcurfuco 49156 The pre-composition functor is the transposed curry of the functor composition bifunctor. (Contributed by Zhi Wang, 2-Nov-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   (𝜑𝐸 ∈ Cat)    &   𝑄 = (𝐶 FuncCat 𝐷)    &   (𝜑 = (⟨𝑄, 𝑅⟩ curryF ((⟨𝐶, 𝐷⟩ ∘F 𝐸) ∘func (𝑄swapF𝑅))))    &   (𝜑𝑀 = ((1st )‘⟨𝐹, 𝐺⟩))    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)       (𝜑 → (⟨𝐷, 𝐸⟩ −∘F𝐹, 𝐺⟩) = 𝑀)
 
2-Nov-2025reldmprcof2 49155 The domain of the morphism part of the pre-composition functor is a relation. (Contributed by Zhi Wang, 2-Nov-2025.)
Rel dom (2nd ‘(𝑃 −∘F 𝐹))
 
2-Nov-2025reldmprcof1 49154 The domain of the object part of the pre-composition functor is a relation. (Contributed by Zhi Wang, 2-Nov-2025.)
Rel dom (1st ‘(𝑃 −∘F 𝐹))
 
2-Nov-2025prcofval 49152 Value of the pre-composition functor. (Contributed by Zhi Wang, 2-Nov-2025.)
𝐵 = (𝐷 Func 𝐸)    &   𝑁 = (𝐷 Nat 𝐸)    &   (𝜑𝐷𝑉)    &   (𝜑𝐸𝑊)    &   Rel 𝑅    &   (𝜑𝐹𝑅𝐺)       (𝜑 → (⟨𝐷, 𝐸⟩ −∘F𝐹, 𝐺⟩) = ⟨(𝑘𝐵 ↦ (𝑘func𝐹, 𝐺⟩)), (𝑘𝐵, 𝑙𝐵 ↦ (𝑎 ∈ (𝑘𝑁𝑙) ↦ (𝑎𝐹)))⟩)
 
2-Nov-2025prcofvala 49151 Value of the pre-composition functor. (Contributed by Zhi Wang, 2-Nov-2025.)
𝐵 = (𝐷 Func 𝐸)    &   𝑁 = (𝐷 Nat 𝐸)    &   (𝜑𝐷𝑉)    &   (𝜑𝐸𝑊)    &   (𝜑𝐹𝑈)       (𝜑 → (⟨𝐷, 𝐸⟩ −∘F 𝐹) = ⟨(𝑘𝐵 ↦ (𝑘func 𝐹)), (𝑘𝐵, 𝑙𝐵 ↦ (𝑎 ∈ (𝑘𝑁𝑙) ↦ (𝑎 ∘ (1st𝐹))))⟩)
 
2-Nov-2025prcofvalg 49150 Value of the pre-composition functor. (Contributed by Zhi Wang, 2-Nov-2025.)
𝐵 = (𝐷 Func 𝐸)    &   𝑁 = (𝐷 Nat 𝐸)    &   (𝜑𝐹𝑈)    &   (𝜑𝑃𝑉)    &   (𝜑 → (1st𝑃) = 𝐷)    &   (𝜑 → (2nd𝑃) = 𝐸)       (𝜑 → (𝑃 −∘F 𝐹) = ⟨(𝑘𝐵 ↦ (𝑘func 𝐹)), (𝑘𝐵, 𝑙𝐵 ↦ (𝑎 ∈ (𝑘𝑁𝑙) ↦ (𝑎 ∘ (1st𝐹))))⟩)
 
2-Nov-2025reldmprcof 49149 The domain of −∘F is a relation. (Contributed by Zhi Wang, 2-Nov-2025.)
Rel dom −∘F
 
2-Nov-2025df-prcof 49148 Definition of pre-composition functors. The object part of the pre-composition functor given by 𝐹 pre-composes a functor with 𝐹; the morphism part pre-composes a natural transformation with the object part of 𝐹, in terms of function composition. Comments before the definition in § 3 of Chapter X in p. 236 of Mac Lane, Saunders, Categories for the Working Mathematician, 2nd Edition, Springer Science+Business Media, New York, (1998) [QA169.M33 1998]; available at https://math.mit.edu/~hrm/palestine/maclane-categories.pdf (retrieved 3 Nov 2025). The notation −∘F is inspired by this page: https://1lab.dev/Cat.Functor.Compose.html.

The pre-composition functor can also be defined as a transposed curry of the functor composition bifunctor (precofval3 49145). But such definition requires an explicit third category. prcoftposcurfuco 49156 and prcoftposcurfucoa 49157 prove the equivalence. (Contributed by Zhi Wang, 2-Nov-2025.)

−∘F = (𝑝 ∈ V, 𝑓 ∈ V ↦ (1st𝑝) / 𝑑(2nd𝑝) / 𝑒(𝑑 Func 𝑒) / 𝑏⟨(𝑘𝑏 ↦ (𝑘func 𝑓)), (𝑘𝑏, 𝑙𝑏 ↦ (𝑎 ∈ (𝑘(𝑑 Nat 𝑒)𝑙) ↦ (𝑎 ∘ (1st𝑓))))⟩)
 
2-Nov-2025constrremulcl 33736 If two real numbers 𝑋 and 𝑌 are constructible, then, so is their product. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝑋 ∈ Constr)    &   (𝜑𝑌 ∈ Constr)    &   (𝜑𝑋 ∈ ℝ)    &   (𝜑𝑌 ∈ ℝ)       (𝜑 → (𝑋 · 𝑌) ∈ Constr)
 
2-Nov-2025iconstr 33735 The imaginary unit i is constructible. (Contributed by Thierry Arnoux, 2-Nov-2025.)
i ∈ Constr
 
2-Nov-2025constrdircl 33734 Constructible numbers are closed under taking the point on the unit circle having the same argument. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝑋 ∈ Constr)    &   (𝜑𝑋 ≠ 0)       (𝜑 → (𝑋 / (abs‘𝑋)) ∈ Constr)
 
2-Nov-2025constrnegcl 33732 Constructible numbers are closed under additive inverse. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝑋 ∈ Constr)       (𝜑 → -𝑋 ∈ Constr)
 
2-Nov-2025constraddcl 33731 Constructive numbers are closed under complex addition. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝑋 ∈ Constr)    &   (𝜑𝑌 ∈ Constr)       (𝜑 → (𝑋 + 𝑌) ∈ Constr)
 
2-Nov-2025nn0constr 33730 Nonnegative integers are constructible. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝑁 ∈ ℕ0)       (𝜑𝑁 ∈ Constr)
 
2-Nov-2025constrcn 33729 Constructible numbers are complex numbers. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝑋 ∈ Constr)       (𝜑𝑋 ∈ ℂ)
 
2-Nov-2025constrcccl 33727 Constructible numbers are closed under circle-circle intersections. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝐴 ∈ Constr)    &   (𝜑𝐵 ∈ Constr)    &   (𝜑𝐶 ∈ Constr)    &   (𝜑𝐷 ∈ Constr)    &   (𝜑𝐸 ∈ Constr)    &   (𝜑𝐹 ∈ Constr)    &   (𝜑𝑋 ∈ ℂ)    &   (𝜑𝐴𝐷)    &   (𝜑 → (abs‘(𝑋𝐴)) = (abs‘(𝐵𝐶)))    &   (𝜑 → (abs‘(𝑋𝐷)) = (abs‘(𝐸𝐹)))       (𝜑𝑋 ∈ Constr)
 
2-Nov-2025constrlccl 33726 Constructible numbers are closed under line-circle intersections. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝐴 ∈ Constr)    &   (𝜑𝐵 ∈ Constr)    &   (𝜑𝐺 ∈ Constr)    &   (𝜑𝐸 ∈ Constr)    &   (𝜑𝐹 ∈ Constr)    &   (𝜑𝑇 ∈ ℝ)    &   (𝜑𝑋 ∈ ℂ)    &   (𝜑𝑋 = (𝐴 + (𝑇 · (𝐵𝐴))))    &   (𝜑 → (abs‘(𝑋𝐺)) = (abs‘(𝐸𝐹)))       (𝜑𝑋 ∈ Constr)
 
2-Nov-2025constrllcl 33725 Constructible numbers are closed under line-line intersections. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝐴 ∈ Constr)    &   (𝜑𝐵 ∈ Constr)    &   (𝜑𝐺 ∈ Constr)    &   (𝜑𝐷 ∈ Constr)    &   (𝜑𝑇 ∈ ℝ)    &   (𝜑𝑅 ∈ ℝ)    &   (𝜑𝑋 ∈ ℂ)    &   (𝜑𝑋 = (𝐴 + (𝑇 · (𝐵𝐴))))    &   (𝜑𝑋 = (𝐺 + (𝑅 · (𝐷𝐺))))    &   (𝜑 → (ℑ‘((∗‘(𝐵𝐴)) · (𝐷𝐺))) ≠ 0)       (𝜑𝑋 ∈ Constr)
 
2-Nov-2025constrcbvlem 33724 Technical lemma for eliminating the hypothesis of constr0 33706 and co. (Contributed by Thierry Arnoux, 2-Nov-2025.)
rec((𝑧 ∈ V ↦ {𝑦 ∈ ℂ ∣ (∃𝑖𝑧𝑗𝑧𝑘𝑧𝑙𝑧𝑜 ∈ ℝ ∃𝑝 ∈ ℝ (𝑦 = (𝑖 + (𝑜 · (𝑗𝑖))) ∧ 𝑦 = (𝑘 + (𝑝 · (𝑙𝑘))) ∧ (ℑ‘((∗‘(𝑗𝑖)) · (𝑙𝑘))) ≠ 0) ∨ ∃𝑖𝑧𝑗𝑧𝑘𝑧𝑚𝑧𝑞𝑧𝑜 ∈ ℝ (𝑦 = (𝑖 + (𝑜 · (𝑗𝑖))) ∧ (abs‘(𝑦𝑘)) = (abs‘(𝑚𝑞))) ∨ ∃𝑖𝑧𝑗𝑧𝑘𝑧𝑙𝑧𝑚𝑧𝑞𝑧 (𝑖𝑙 ∧ (abs‘(𝑦𝑖)) = (abs‘(𝑗𝑘)) ∧ (abs‘(𝑦𝑙)) = (abs‘(𝑚𝑞))))}), {0, 1}) = rec((𝑠 ∈ V ↦ {𝑥 ∈ ℂ ∣ (∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑡 ∈ ℝ ∃𝑟 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ 𝑥 = (𝑐 + (𝑟 · (𝑑𝑐))) ∧ (ℑ‘((∗‘(𝑏𝑎)) · (𝑑𝑐))) ≠ 0) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑒𝑠𝑓𝑠𝑡 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ (abs‘(𝑥𝑐)) = (abs‘(𝑒𝑓))) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑒𝑠𝑓𝑠 (𝑎𝑑 ∧ (abs‘(𝑥𝑎)) = (abs‘(𝑏𝑐)) ∧ (abs‘(𝑥𝑑)) = (abs‘(𝑒𝑓))))}), {0, 1})
 
2-Nov-2025constrcccllem 33723 Constructible numbers are closed under circle-circle intersections. (Contributed by Thierry Arnoux, 2-Nov-2025.)
𝐶 = rec((𝑠 ∈ V ↦ {𝑥 ∈ ℂ ∣ (∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑡 ∈ ℝ ∃𝑟 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ 𝑥 = (𝑐 + (𝑟 · (𝑑𝑐))) ∧ (ℑ‘((∗‘(𝑏𝑎)) · (𝑑𝑐))) ≠ 0) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑒𝑠𝑓𝑠𝑡 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ (abs‘(𝑥𝑐)) = (abs‘(𝑒𝑓))) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑒𝑠𝑓𝑠 (𝑎𝑑 ∧ (abs‘(𝑥𝑎)) = (abs‘(𝑏𝑐)) ∧ (abs‘(𝑥𝑑)) = (abs‘(𝑒𝑓))))}), {0, 1})    &   (𝜑𝐴 ∈ Constr)    &   (𝜑𝐵 ∈ Constr)    &   (𝜑𝐺 ∈ Constr)    &   (𝜑𝐷 ∈ Constr)    &   (𝜑𝐸 ∈ Constr)    &   (𝜑𝐹 ∈ Constr)    &   (𝜑𝑋 ∈ ℂ)    &   (𝜑𝐴𝐷)    &   (𝜑 → (abs‘(𝑋𝐴)) = (abs‘(𝐵𝐺)))    &   (𝜑 → (abs‘(𝑋𝐷)) = (abs‘(𝐸𝐹)))       (𝜑𝑋 ∈ Constr)
 
2-Nov-2025constrlccllem 33722 Constructible numbers are closed under line-circle intersections. (Contributed by Thierry Arnoux, 2-Nov-2025.)
𝐶 = rec((𝑠 ∈ V ↦ {𝑥 ∈ ℂ ∣ (∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑡 ∈ ℝ ∃𝑟 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ 𝑥 = (𝑐 + (𝑟 · (𝑑𝑐))) ∧ (ℑ‘((∗‘(𝑏𝑎)) · (𝑑𝑐))) ≠ 0) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑒𝑠𝑓𝑠𝑡 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ (abs‘(𝑥𝑐)) = (abs‘(𝑒𝑓))) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑒𝑠𝑓𝑠 (𝑎𝑑 ∧ (abs‘(𝑥𝑎)) = (abs‘(𝑏𝑐)) ∧ (abs‘(𝑥𝑑)) = (abs‘(𝑒𝑓))))}), {0, 1})    &   (𝜑𝐴 ∈ Constr)    &   (𝜑𝐵 ∈ Constr)    &   (𝜑𝐺 ∈ Constr)    &   (𝜑𝐸 ∈ Constr)    &   (𝜑𝐹 ∈ Constr)    &   (𝜑𝑇 ∈ ℝ)    &   (𝜑𝑋 ∈ ℂ)    &   (𝜑𝑋 = (𝐴 + (𝑇 · (𝐵𝐴))))    &   (𝜑 → (abs‘(𝑋𝐺)) = (abs‘(𝐸𝐹)))       (𝜑𝑋 ∈ Constr)
 
2-Nov-2025constrllcllem 33721 Constructible numbers are closed under line-line intersections. (Contributed by Thierry Arnoux, 2-Nov-2025.)
𝐶 = rec((𝑠 ∈ V ↦ {𝑥 ∈ ℂ ∣ (∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑡 ∈ ℝ ∃𝑟 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ 𝑥 = (𝑐 + (𝑟 · (𝑑𝑐))) ∧ (ℑ‘((∗‘(𝑏𝑎)) · (𝑑𝑐))) ≠ 0) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑒𝑠𝑓𝑠𝑡 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ (abs‘(𝑥𝑐)) = (abs‘(𝑒𝑓))) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑒𝑠𝑓𝑠 (𝑎𝑑 ∧ (abs‘(𝑥𝑎)) = (abs‘(𝑏𝑐)) ∧ (abs‘(𝑥𝑑)) = (abs‘(𝑒𝑓))))}), {0, 1})    &   (𝜑𝐴 ∈ Constr)    &   (𝜑𝐵 ∈ Constr)    &   (𝜑𝐺 ∈ Constr)    &   (𝜑𝐷 ∈ Constr)    &   (𝜑𝑇 ∈ ℝ)    &   (𝜑𝑅 ∈ ℝ)    &   (𝜑𝑋 ∈ ℂ)    &   (𝜑𝑋 = (𝐴 + (𝑇 · (𝐵𝐴))))    &   (𝜑𝑋 = (𝐺 + (𝑅 · (𝐷𝐺))))    &   (𝜑 → (ℑ‘((∗‘(𝐵𝐴)) · (𝐷𝐺))) ≠ 0)       (𝜑𝑋 ∈ Constr)
 
2-Nov-2025constrfiss 33720 For any finite set 𝐴 of constructible numbers, there is a 𝑛 -th step (𝐶𝑛) containing all numbers in 𝐴. (Contributed by Thierry Arnoux, 2-Nov-2025.)
𝐶 = rec((𝑠 ∈ V ↦ {𝑥 ∈ ℂ ∣ (∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑡 ∈ ℝ ∃𝑟 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ 𝑥 = (𝑐 + (𝑟 · (𝑑𝑐))) ∧ (ℑ‘((∗‘(𝑏𝑎)) · (𝑑𝑐))) ≠ 0) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑒𝑠𝑓𝑠𝑡 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ (abs‘(𝑥𝑐)) = (abs‘(𝑒𝑓))) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑒𝑠𝑓𝑠 (𝑎𝑑 ∧ (abs‘(𝑥𝑎)) = (abs‘(𝑏𝑐)) ∧ (abs‘(𝑥𝑑)) = (abs‘(𝑒𝑓))))}), {0, 1})    &   (𝜑𝐴 ⊆ Constr)    &   (𝜑𝐴 ∈ Fin)       (𝜑 → ∃𝑛 ∈ ω 𝐴 ⊆ (𝐶𝑛))
 
2-Nov-2025pythagreim 32659 A simplified version of the Pythagorean theorem, where the points 𝐴 and 𝐵 respectively lie on the imaginary and real axes, and the right angle is at the origin. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝐴 ∈ ℝ)    &   (𝜑𝐵 ∈ ℝ)       (𝜑 → ((abs‘(𝐵 − (i · 𝐴)))↑2) = ((𝐴↑2) + (𝐵↑2)))
 
2-Nov-2025tpsscd 32456 If an ordered triple is a subset of a class, the third element of the triple is an element of that class. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝐶𝑉)    &   (𝜑 → {𝐴, 𝐵, 𝐶} ⊆ 𝐷)       (𝜑𝐶𝐷)
 
2-Nov-2025tpssbd 32455 If an ordered triple is a subset of a class, the second element of the triple is an element of that class. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝐵𝑉)    &   (𝜑 → {𝐴, 𝐵, 𝐶} ⊆ 𝐷)       (𝜑𝐵𝐷)
 
2-Nov-2025tpssad 32454 If an ordered triple is a subset of a class, the first element of the triple is an element of that class. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝐴𝑉)    &   (𝜑 → {𝐴, 𝐵, 𝐶} ⊆ 𝐷)       (𝜑𝐴𝐷)
 
2-Nov-2025tpssd 32453 Deduction version of tpssi : An unordered triple of elements of a class is a subset of that class. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝐴𝐷)    &   (𝜑𝐵𝐷)    &   (𝜑𝐶𝐷)       (𝜑 → {𝐴, 𝐵, 𝐶} ⊆ 𝐷)
 
2-Nov-2025tpssg 32452 An unordered triple of elements of a class is a subset of the class. (Contributed by Thierry Arnoux, 2-Nov-2025.)
((𝐴𝑉𝐵𝑊𝐶𝑋) → ((𝐴𝐷𝐵𝐷𝐶𝐷) ↔ {𝐴, 𝐵, 𝐶} ⊆ 𝐷))
 
2-Nov-2025prssbd 32445 If a pair is a subset of a class, the second element of the pair is an element of that class. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝐵𝑉)    &   (𝜑 → {𝐴, 𝐵} ⊆ 𝐶)       (𝜑𝐵𝐶)
 
2-Nov-2025prssad 32444 If a pair is a subset of a class, the first element of the pair is an element of that class. (Contributed by Thierry Arnoux, 2-Nov-2025.)
(𝜑𝐴𝑉)    &   (𝜑 → {𝐴, 𝐵} ⊆ 𝐶)       (𝜑𝐴𝐶)
 
1-Nov-2025iinfconstbas 48927 The discrete category is the indexed intersection of all subcategories with the same base. (Contributed by Zhi Wang, 1-Nov-2025.)
𝐽 = (𝑥𝑆, 𝑦𝑆 ↦ if(𝑥 = 𝑦, {(𝐼𝑥)}, ∅))    &   𝐵 = (Base‘𝐶)    &   𝐼 = (Id‘𝐶)    &   (𝜑𝑆𝐵)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐴 = ((Subcat‘𝐶) ∩ {𝑗𝑗 Fn (𝑆 × 𝑆)}))       (𝜑𝐽 = (𝑧 𝐴 dom 𝐴 (𝑧)))
 
1-Nov-2025iinfconstbaslem 48926 Lemma for iinfconstbas 48927. (Contributed by Zhi Wang, 1-Nov-2025.)
𝐽 = (𝑥𝑆, 𝑦𝑆 ↦ if(𝑥 = 𝑦, {(𝐼𝑥)}, ∅))    &   𝐵 = (Base‘𝐶)    &   𝐼 = (Id‘𝐶)    &   (𝜑𝑆𝐵)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐴 = ((Subcat‘𝐶) ∩ {𝑗𝑗 Fn (𝑆 × 𝑆)}))       (𝜑𝐽𝐴)
 
1-Nov-2025discsubc 48925 A discrete category, whose only morphisms are the identity morphisms, is a subcategory. (Contributed by Zhi Wang, 1-Nov-2025.)
𝐽 = (𝑥𝑆, 𝑦𝑆 ↦ if(𝑥 = 𝑦, {(𝐼𝑥)}, ∅))    &   𝐵 = (Base‘𝐶)    &   𝐼 = (Id‘𝐶)    &   (𝜑𝑆𝐵)    &   (𝜑𝐶 ∈ Cat)       (𝜑𝐽 ∈ (Subcat‘𝐶))
 
1-Nov-2025discsubclem 48924 Lemma for discsubc 48925. (Contributed by Zhi Wang, 1-Nov-2025.)
𝐽 = (𝑥𝑆, 𝑦𝑆 ↦ if(𝑥 = 𝑦, {(𝐼𝑥)}, ∅))       𝐽 Fn (𝑆 × 𝑆)
 
1-Nov-2025dmdm 48914 The double domain of a function on a Cartesian square. (Contributed by Zhi Wang, 1-Nov-2025.)
(𝐴 Fn (𝐵 × 𝐵) → 𝐵 = dom dom 𝐴)
 
1-Nov-2025ixpv 48759 Infinite Cartesian product of the universal class is the set of functions with a fixed domain. (Contributed by Zhi Wang, 1-Nov-2025.)
X𝑥𝐴 V = {𝑓𝑓 Fn 𝐴}
 
1-Nov-2025iinglb 48694 The indexed intersection is the the greatest lower bound if it exists. (Contributed by Zhi Wang, 1-Nov-2025.)
(𝜑𝑋𝐴)    &   ((𝜑𝑥 = 𝑋) → 𝐵 = 𝐶)    &   ((𝜑𝑥𝐴) → 𝐶𝐵)       (𝜑 𝑥𝐴 𝐵 = 𝐶)
 
1-Nov-2025iunlub 48693 The indexed union is the the lowest upper bound if it exists. (Contributed by Zhi Wang, 1-Nov-2025.)
(𝜑𝑋𝐴)    &   ((𝜑𝑥 = 𝑋) → 𝐵 = 𝐶)    &   ((𝜑𝑥𝐴) → 𝐵𝐶)       (𝜑 𝑥𝐴 𝐵 = 𝐶)
 
1-Nov-2025iuneq0 48691 An indexed union is empty iff all indexed classes are empty. (Contributed by Zhi Wang, 1-Nov-2025.)
(∀𝑥𝐴 𝐵 = ∅ ↔ 𝑥𝐴 𝐵 = ∅)
 
31-Oct-2025infsubc2d 48923 The intersection of two subcategories is a subcategory. (Contributed by Zhi Wang, 31-Oct-2025.)
(𝜑𝐻 Fn (𝑆 × 𝑆))    &   (𝜑𝐽 Fn (𝑇 × 𝑇))    &   (𝜑𝐻 ∈ (Subcat‘𝐶))    &   (𝜑𝐽 ∈ (Subcat‘𝐶))       (𝜑 → (𝑥 ∈ (𝑆𝑇), 𝑦 ∈ (𝑆𝑇) ↦ ((𝑥𝐻𝑦) ∩ (𝑥𝐽𝑦))) ∈ (Subcat‘𝐶))
 
31-Oct-2025infsubc2 48922 The intersection of two subcategories is a subcategory. (Contributed by Zhi Wang, 31-Oct-2025.)
((𝐴 ∈ (Subcat‘𝐶) ∧ 𝐵 ∈ (Subcat‘𝐶)) → (𝑥 ∈ (dom dom 𝐴 ∩ dom dom 𝐵), 𝑦 ∈ (dom dom 𝐴 ∩ dom dom 𝐵) ↦ ((𝑥𝐴𝑦) ∩ (𝑥𝐵𝑦))) ∈ (Subcat‘𝐶))
 
31-Oct-2025infsubc 48921 The intersection of two subcategories is a subcategory. (Contributed by Zhi Wang, 31-Oct-2025.)
((𝐴 ∈ (Subcat‘𝐶) ∧ 𝐵 ∈ (Subcat‘𝐶)) → (𝑥 ∈ (dom 𝐴 ∩ dom 𝐵) ↦ ((𝐴𝑥) ∩ (𝐵𝑥))) ∈ (Subcat‘𝐶))
 
31-Oct-2025iinfprg 48920 Indexed intersection of functions with an unordered pair index. (Contributed by Zhi Wang, 31-Oct-2025.)
((𝐴𝑉𝐵𝑊) → (𝑥 ∈ (dom 𝐴 ∩ dom 𝐵) ↦ ((𝐴𝑥) ∩ (𝐵𝑥))) = (𝑥 𝑦 ∈ {𝐴, 𝐵}dom 𝑦 𝑦 ∈ {𝐴, 𝐵} (𝑦𝑥)))
 
31-Oct-2025iinfsubc 48919 Indexed intersection of subcategories is a subcategory. (Contributed by Zhi Wang, 31-Oct-2025.)
(𝜑𝐴 ≠ ∅)    &   ((𝜑𝑥𝐴) → 𝐻 ∈ (Subcat‘𝐶))    &   (𝜑𝐾 = (𝑦 𝑥𝐴 dom 𝐻 𝑥𝐴 (𝐻𝑦)))       (𝜑𝐾 ∈ (Subcat‘𝐶))
 
31-Oct-2025iinfssc 48918 Indexed intersection of subcategories is a subcategory (the category-agnostic version). (Contributed by Zhi Wang, 31-Oct-2025.)
(𝜑𝐴 ≠ ∅)    &   ((𝜑𝑥𝐴) → 𝐻cat 𝐽)    &   (𝜑𝐾 = (𝑦 𝑥𝐴 dom 𝐻 𝑥𝐴 (𝐻𝑦)))       (𝜑𝐾cat 𝐽)
 
31-Oct-2025iinfssclem3 48917 Lemma for iinfssc 48918. (Contributed by Zhi Wang, 31-Oct-2025.)
(𝜑𝐴 ≠ ∅)    &   ((𝜑𝑥𝐴) → 𝐻cat 𝐽)    &   (𝜑𝐾 = (𝑦 𝑥𝐴 dom 𝐻 𝑥𝐴 (𝐻𝑦)))    &   ((𝜑𝑥𝐴) → 𝑆 = dom dom 𝐻)    &   𝑥𝜑    &   (𝜑𝑋 𝑥𝐴 𝑆)    &   (𝜑𝑌 𝑥𝐴 𝑆)       (𝜑 → (𝑋𝐾𝑌) = 𝑥𝐴 (𝑋𝐻𝑌))
 
31-Oct-2025iinfssclem2 48916 Lemma for iinfssc 48918. (Contributed by Zhi Wang, 31-Oct-2025.)
(𝜑𝐴 ≠ ∅)    &   ((𝜑𝑥𝐴) → 𝐻cat 𝐽)    &   (𝜑𝐾 = (𝑦 𝑥𝐴 dom 𝐻 𝑥𝐴 (𝐻𝑦)))    &   ((𝜑𝑥𝐴) → 𝑆 = dom dom 𝐻)    &   𝑥𝜑       (𝜑𝐾 Fn ( 𝑥𝐴 𝑆 × 𝑥𝐴 𝑆))
 
31-Oct-2025iinfssclem1 48915 Lemma for iinfssc 48918. (Contributed by Zhi Wang, 31-Oct-2025.)
(𝜑𝐴 ≠ ∅)    &   ((𝜑𝑥𝐴) → 𝐻cat 𝐽)    &   (𝜑𝐾 = (𝑦 𝑥𝐴 dom 𝐻 𝑥𝐴 (𝐻𝑦)))    &   ((𝜑𝑥𝐴) → 𝑆 = dom dom 𝐻)    &   𝑥𝜑       (𝜑𝐾 = (𝑧 𝑥𝐴 𝑆, 𝑤 𝑥𝐴 𝑆 𝑥𝐴 (𝑧𝐻𝑤)))
 
31-Oct-2025squeezedltsq 46854 If a real value is squeezed between two others, its square is less than square of at least one of them. Deduction form. (Contributed by Ender Ting, 31-Oct-2025.)
(𝜑𝐴 ∈ ℝ)    &   (𝜑𝐵 ∈ ℝ)    &   (𝜑𝐶 ∈ ℝ)    &   (𝜑𝐴 < 𝐵)    &   (𝜑𝐵 < 𝐶)       (𝜑 → ((𝐵 · 𝐵) < (𝐴 · 𝐴) ∨ (𝐵 · 𝐵) < (𝐶 · 𝐶)))
 
30-Oct-2025dmrnxp 48709 A Cartesian product is the Cartesian product of its domain and range. (Contributed by Zhi Wang, 30-Oct-2025.)
(𝑅 = (𝐴 × 𝐵) → 𝑅 = (dom 𝑅 × ran 𝑅))
 
30-Oct-2025intxp 48704 Intersection of Cartesian products is the Cartesian product of intersection of domains and ranges. See also inxp 5809 and iinxp 48703. (Contributed by Zhi Wang, 30-Oct-2025.)
(𝜑𝐴 ≠ ∅)    &   ((𝜑𝑥𝐴) → 𝑥 = (dom 𝑥 × ran 𝑥))    &   𝑋 = 𝑥𝐴 dom 𝑥    &   𝑌 = 𝑥𝐴 ran 𝑥       (𝜑 𝐴 = (𝑋 × 𝑌))
 
30-Oct-2025iinxp 48703 Indexed intersection of Cartesian products is the Cartesian product of indexed intersections. See also inxp 5809 and intxp 48704. (Contributed by Zhi Wang, 30-Oct-2025.)
(𝐴 ≠ ∅ → 𝑥𝐴 (𝐵 × 𝐶) = ( 𝑥𝐴 𝐵 × 𝑥𝐴 𝐶))
 
30-Oct-2025iineq0 48692 An indexed intersection is empty if one of the intersected classes is empty. (Contributed by Zhi Wang, 30-Oct-2025.)
(∃𝑥𝐴 𝐵 = ∅ → 𝑥𝐴 𝐵 = ∅)
 
27-Oct-2025oppczeroo 49017 Zero objects are zero in the opposite category. Remark 7.8 of [Adamek] p. 103. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝐼 ∈ (ZeroO‘𝐶) ↔ 𝐼 ∈ (ZeroO‘(oppCat‘𝐶)))
 
27-Oct-2025oppcciceq 48913 The opposite category has the same isomorphic objects as the original category. (Contributed by Zhi Wang, 27-Oct-2025.)
𝑂 = (oppCat‘𝐶)       ( ≃𝑐𝐶) = ( ≃𝑐𝑂)
 
27-Oct-2025oppccicb 48912 Isomorphic objects are isomorphic in the opposite category. (Contributed by Zhi Wang, 27-Oct-2025.)
𝑂 = (oppCat‘𝐶)       (𝑅( ≃𝑐𝐶)𝑆𝑅( ≃𝑐𝑂)𝑆)
 
27-Oct-2025cicpropd 48911 Two structures with the same base, hom-sets and composition operation have the same isomorphic objects. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))       (𝜑 → ( ≃𝑐𝐶) = ( ≃𝑐𝐷))
 
27-Oct-2025cicpropdlem 48910 Lemma for cicpropd 48911. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))       ((𝜑𝑃 ∈ ( ≃𝑐𝐶)) → 𝑃 ∈ ( ≃𝑐𝐷))
 
27-Oct-2025cic1st2ndbr 48909 Rewrite the predicate of isomorphic objects with separated parts. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝑃 ∈ ( ≃𝑐𝐶) → (1st𝑃)( ≃𝑐𝐶)(2nd𝑃))
 
27-Oct-2025cic1st2nd 48908 Reconstruction of a pair of isomorphic objects in terms of its ordered pair components. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝑃 ∈ ( ≃𝑐𝐶) → 𝑃 = ⟨(1st𝑃), (2nd𝑃)⟩)
 
27-Oct-2025relcic 48906 The set of isomorphic objects is a relation. Simplifies cicer 17806 (see cicerALT 48907). (Contributed by Zhi Wang, 27-Oct-2025.)
(𝐶 ∈ Cat → Rel ( ≃𝑐𝐶))
 
27-Oct-2025isopropd 48902 Two structures with the same base, hom-sets and composition operation have the same isomorphisms. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))       (𝜑 → (Iso‘𝐶) = (Iso‘𝐷))
 
27-Oct-2025isopropdlem 48901 Lemma for isopropd 48902. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))       ((𝜑𝑃 ∈ (Iso‘𝐶)) → 𝑃 ∈ (Iso‘𝐷))
 
27-Oct-2025invpropd 48900 Two structures with the same base, hom-sets and composition operation have the same inverses. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))       (𝜑 → (Inv‘𝐶) = (Inv‘𝐷))
 
27-Oct-2025invpropdlem 48899 Lemma for invpropd 48900. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))       ((𝜑𝑃 ∈ (Inv‘𝐶)) → 𝑃 ∈ (Inv‘𝐷))
 
27-Oct-2025sectpropd 48898 Two structures with the same base, hom-sets and composition operation have the same sections. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))       (𝜑 → (Sect‘𝐶) = (Sect‘𝐷))
 
27-Oct-2025sectpropdlem 48897 Lemma for sectpropd 48898. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))       ((𝜑𝑃 ∈ (Sect‘𝐶)) → 𝑃 ∈ (Sect‘𝐷))
 
27-Oct-2025isofval2 48896 Function value of the function returning the isomorphisms of a category. (Contributed by Zhi Wang, 27-Oct-2025.)
𝐵 = (Base‘𝐶)    &   𝑁 = (Inv‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   𝐼 = (Iso‘𝐶)       (𝜑𝐼 = (𝑥𝐵, 𝑦𝐵 ↦ dom (𝑥𝑁𝑦)))
 
27-Oct-2025invfn 48894 The function value of the function returning the inverses of a category is a function over the Cartesian square of the base set of the category. Simplifies isofn 17775 (see isofnALT 48895). (Contributed by Zhi Wang, 27-Oct-2025.)
(𝐶 ∈ Cat → (Inv‘𝐶) Fn ((Base‘𝐶) × (Base‘𝐶)))
 
27-Oct-2025sectfn 48893 The function value of the function returning the sections of a category is a function over the Cartesian square of the base set of the category. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝐶 ∈ Cat → (Sect‘𝐶) Fn ((Base‘𝐶) × (Base‘𝐶)))
 
27-Oct-2025eloprab1st2nd 48737 Reconstruction of a nested ordered pair in terms of its ordered pair components. (Contributed by Zhi Wang, 27-Oct-2025.)
(𝐴 ∈ {⟨⟨𝑥, 𝑦⟩, 𝑧⟩ ∣ 𝜑} → 𝐴 = ⟨⟨(1st ‘(1st𝐴)), (2nd ‘(1st𝐴))⟩, (2nd𝐴)⟩)
 
27-Oct-2025invffval 17758 Value of the inverse relation. (Contributed by Mario Carneiro, 2-Jan-2017.) Removed redundant hypotheses. (Revised by Zhi Wang, 27-Oct-2025.)
𝐵 = (Base‘𝐶)    &   𝑁 = (Inv‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   𝑆 = (Sect‘𝐶)       (𝜑𝑁 = (𝑥𝐵, 𝑦𝐵 ↦ ((𝑥𝑆𝑦) ∩ (𝑦𝑆𝑥))))
 
27-Oct-2025sectffval 17750 Value of the section operation. (Contributed by Mario Carneiro, 2-Jan-2017.) Removed redundant hypotheses. (Revised by Zhi Wang, 27-Oct-2025.)
𝐵 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &    · = (comp‘𝐶)    &    1 = (Id‘𝐶)    &   𝑆 = (Sect‘𝐶)    &   (𝜑𝐶 ∈ Cat)       (𝜑𝑆 = (𝑥𝐵, 𝑦𝐵 ↦ {⟨𝑓, 𝑔⟩ ∣ ((𝑓 ∈ (𝑥𝐻𝑦) ∧ 𝑔 ∈ (𝑦𝐻𝑥)) ∧ (𝑔(⟨𝑥, 𝑦· 𝑥)𝑓) = ( 1𝑥))}))
 
26-Oct-2025termccisoeu 49263 The isomorphism between terminal categories is unique. (Contributed by Zhi Wang, 26-Oct-2025.)
𝐶 = (CatCat‘𝑈)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝑋 ∈ TermCat)    &   (𝜑𝑌 ∈ TermCat)       (𝜑 → ∃!𝑓 𝑓 ∈ (𝑋(Iso‘𝐶)𝑌))
 
26-Oct-2025termcciso 49262 A category is isomorphic to a terminal category iff it itself is terminal. (Contributed by Zhi Wang, 26-Oct-2025.)
𝐶 = (CatCat‘𝑈)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝑋 ∈ TermCat)       (𝜑 → (𝑌 ∈ TermCat ↔ 𝑋( ≃𝑐𝐶)𝑌))
 
26-Oct-2025zeroopropd 49025 Two structures with the same base, hom-sets and composition operation have the same zero objects. (Contributed by Zhi Wang, 26-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))       (𝜑 → (ZeroO‘𝐶) = (ZeroO‘𝐷))
 
26-Oct-2025termopropd 49024 Two structures with the same base, hom-sets and composition operation have the same terminal objects. (Contributed by Zhi Wang, 26-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))       (𝜑 → (TermO‘𝐶) = (TermO‘𝐷))
 
26-Oct-2025zeroopropdlem 49022 Lemma for zeroopropd 49025. (Contributed by Zhi Wang, 26-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))    &   (𝜑 → ¬ 𝐶 ∈ V)       (𝜑 → (ZeroO‘𝐶) = (ZeroO‘𝐷))
 
26-Oct-2025termopropdlem 49021 Lemma for termopropd 49024. (Contributed by Zhi Wang, 26-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))    &   (𝜑 → ¬ 𝐶 ∈ V)       (𝜑 → (TermO‘𝐶) = (TermO‘𝐷))
 
26-Oct-2025initopropdlem 49020 Lemma for initopropd 49023. (Contributed by Zhi Wang, 26-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))    &   (𝜑 → ¬ 𝐶 ∈ V)       (𝜑 → (InitO‘𝐶) = (InitO‘𝐷))
 
26-Oct-2025initopropdlemlem 49019 Lemma for initopropdlem 49020, termopropdlem 49021, and zeroopropdlem 49022. (Contributed by Zhi Wang, 26-Oct-2025.)
𝐹 Fn 𝑋    &   (𝜑 → ¬ 𝐴𝑌)    &   𝑋𝑌    &   ((𝜑𝐵𝑋) → (𝐹𝐵) = ∅)       (𝜑 → (𝐹𝐴) = (𝐹𝐵))
 
26-Oct-2025termoeu2 49018 Terminal objects are essentially unique; if 𝐴 is a terminal object, then so is every object that is isomorphic to 𝐴. (Contributed by Zhi Wang, 26-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐴 ∈ (TermO‘𝐶))    &   (𝜑𝐴( ≃𝑐𝐶)𝐵)       (𝜑𝐵 ∈ (TermO‘𝐶))
 
26-Oct-2025oppctermo 49016 Terminal objects are initial in the opposite category. Comments before Definition 7.4 in [Adamek] p. 102. (Contributed by Zhi Wang, 26-Oct-2025.)
(𝐼 ∈ (TermO‘𝐶) ↔ 𝐼 ∈ (InitO‘(oppCat‘𝐶)))
 
26-Oct-2025oppccic 48905 Isomorphic objects are isomorphic in the opposite category. (Contributed by Zhi Wang, 26-Oct-2025.)
𝑂 = (oppCat‘𝐶)    &   (𝜑𝑅( ≃𝑐𝐶)𝑆)       (𝜑𝑅( ≃𝑐𝑂)𝑆)
 
26-Oct-2025cicrcl2 48904 Isomorphism implies the structure being a category. (Contributed by Zhi Wang, 26-Oct-2025.)
(𝑅( ≃𝑐𝐶)𝑆𝐶 ∈ Cat)
 
26-Oct-2025cicfn 48903 𝑐 is a function on Cat. (Contributed by Zhi Wang, 26-Oct-2025.)
𝑐 Fn Cat
 
26-Oct-2025tcfr 44922 A set is well-founded if and only if its transitive closure is well-founded by . This characterization of well-founded sets is that in Definition I.9.20 of [Kunen2] p. 53. (Contributed by Eric Schmidt, 26-Oct-2025.)
𝐴 ∈ V       (𝐴 (𝑅1 “ On) ↔ E Fr (TC‘𝐴))
 
26-Oct-2025trfr 44921 A transitive class well-founded by is a subclass of the class of well-founded sets. Part of Lemma I.9.21 of [Kunen2] p. 53. (Contributed by Eric Schmidt, 26-Oct-2025.)
((Tr 𝐴 ∧ E Fr 𝐴) → 𝐴 (𝑅1 “ On))
 
26-Oct-20252sqr3nconstr 33750 Doubling the cube is an impossible construction, i.e. the cube root of 2 is not constructible with straightedge and compass. Given a cube of edge of length one, a cube of double volume would have an edge of length (2↑𝑐(1 / 3)), however that number is not constructible. This is the first part of Metamath 100 proof #8. (Contributed by Thierry Arnoux and Saveliy Skresanov, 26-Oct-2025.)
(2↑𝑐(1 / 3)) ∉ Constr
 
26-Oct-2025constrcon 33743 Contradiction of constructibility: If a complex number 𝐴 has minimal polynomial 𝐹 over of a degree that is not a power of 2, then 𝐴 is not constructible. (Contributed by Thierry Arnoux, 26-Oct-2025.)
𝐷 = (deg1‘(ℂflds ℚ))    &   𝑀 = (ℂfld minPoly ℚ)    &   (𝜑𝐴 ∈ ℂ)    &   (𝜑𝐹 = (𝑀𝐴))    &   (𝜑 → (𝐷𝐹) ∈ ℕ0)    &   ((𝜑𝑛 ∈ ℕ0) → (𝐷𝐹) ≠ (2↑𝑛))       (𝜑 → ¬ 𝐴 ∈ Constr)
 
26-Oct-2025constrext2chn 33728 If a constructible number generates some subfield 𝐿 of , then the degree of the extension of 𝐿 over is a power of two. (Contributed by Thierry Arnoux, 26-Oct-2025.)
𝑄 = (ℂflds ℚ)    &   𝐿 = (ℂflds 𝑆)    &   𝑆 = (ℂfld fldGen (ℚ ∪ {𝐴}))    &   (𝜑𝐴 ∈ Constr)       (𝜑 → ∃𝑛 ∈ ℕ0 (𝐿[:]𝑄) = (2↑𝑛))
 
26-Oct-2025constrext2chnlem 33719 Lemma for constrext2chn 33728. (Contributed by Thierry Arnoux, 26-Oct-2025.)
𝐶 = rec((𝑠 ∈ V ↦ {𝑥 ∈ ℂ ∣ (∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑡 ∈ ℝ ∃𝑟 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ 𝑥 = (𝑐 + (𝑟 · (𝑑𝑐))) ∧ (ℑ‘((∗‘(𝑏𝑎)) · (𝑑𝑐))) ≠ 0) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑒𝑠𝑓𝑠𝑡 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ (abs‘(𝑥𝑐)) = (abs‘(𝑒𝑓))) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑒𝑠𝑓𝑠 (𝑎𝑑 ∧ (abs‘(𝑥𝑎)) = (abs‘(𝑏𝑐)) ∧ (abs‘(𝑥𝑑)) = (abs‘(𝑒𝑓))))}), {0, 1})    &   𝐸 = (ℂflds 𝑒)    &   𝐹 = (ℂflds 𝑓)    &    < = {⟨𝑓, 𝑒⟩ ∣ (𝐸/FldExt𝐹 ∧ (𝐸[:]𝐹) = 2)}    &   (𝜑𝑁 ∈ ω)    &   𝑄 = (ℂflds ℚ)    &   𝐿 = (ℂflds (ℂfld fldGen (ℚ ∪ {𝐴})))    &   (𝜑𝐴 ∈ Constr)       (𝜑 → ∃𝑛 ∈ ℕ0 (𝐿[:]𝑄) = (2↑𝑛))
 
26-Oct-2025minplyelirng 33684 If the minimial polynomial 𝐹 of an element 𝑋 of a field 𝑅 has nonnegative degree, then 𝑋 is integral. (Contributed by Thierry Arnoux, 26-Oct-2025.)
𝐵 = (Base‘𝑅)    &   𝑀 = (𝑅 minPoly 𝑆)    &   𝐷 = (deg1‘(𝑅s 𝑆))    &   (𝜑𝑅 ∈ Field)    &   (𝜑𝑆 ∈ (SubDRing‘𝑅))    &   (𝜑𝐴𝐵)    &   (𝜑 → (𝐷‘(𝑀𝐴)) ∈ ℕ0)       (𝜑𝐴 ∈ (𝑅 IntgRing 𝑆))
 
26-Oct-2025minplynzm1p 33683 If a minimal polynomial is nonzero, then it is monic. (Contributed by Thierry Arnoux, 26-Oct-2025.)
𝐵 = (Base‘𝐸)    &   𝑍 = (0g‘(Poly1𝐸))    &   (𝜑𝐸 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐸))    &   𝑀 = (𝐸 minPoly 𝐹)    &   (𝜑𝐴𝐵)    &   (𝜑 → (𝑀𝐴) ≠ 𝑍)    &   𝑈 = (Monic1p‘(𝐸s 𝐹))       (𝜑 → (𝑀𝐴) ∈ 𝑈)
 
26-Oct-2025fldextsdrg 33631 Deduce sub-division-ring from field extension. (Contributed by Thierry Arnoux, 26-Oct-2025.)
𝐵 = (Base‘𝐹)    &   (𝜑𝐸/FldExt𝐹)       (𝜑𝐵 ∈ (SubDRing‘𝐸))
 
26-Oct-2025sdrgfldext 33627 A field 𝐸 and any sub-division-ring 𝐹 of 𝐸 form a field extension. (Contributed by Thierry Arnoux, 26-Oct-2025.)
𝐵 = (Base‘𝐸)    &   (𝜑𝐸 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐸))       (𝜑𝐸/FldExt(𝐸s 𝐹))
 
26-Oct-2025subsdrg 33229 A subring of a sub-division-ring is a sub-division-ring. See also subsubrg 20545. (Contributed by Thierry Arnoux, 26-Oct-2025.)
𝑆 = (𝑅s 𝐴)    &   (𝜑𝐴 ∈ (SubDRing‘𝑅))       (𝜑 → (𝐵 ∈ (SubDRing‘𝑆) ↔ (𝐵 ∈ (SubDRing‘𝑅) ∧ 𝐵𝐴)))
 
26-Oct-2025hashne0 32726 Deduce that the size of a set is not zero. (Contributed by Thierry Arnoux, 26-Oct-2025.)
(𝜑𝐴𝑉)    &   (𝜑𝐴 ≠ ∅)       (𝜑 → 0 < (♯‘𝐴))
 
26-Oct-2025xnn0nnd 32687 Conditions for an extended nonnegative integer to be a positive integer. (Contributed by Thierry Arnoux, 26-Oct-2025.)
(𝜑𝑁 ∈ ℕ0*)    &   (𝜑𝑁 ∈ ℝ)    &   (𝜑 → 0 < 𝑁)       (𝜑𝑁 ∈ ℕ)
 
26-Oct-2025xnn0nn0d 32686 Conditions for an extended nonnegative integer to be a nonnegative integer. (Contributed by Thierry Arnoux, 26-Oct-2025.)
(𝜑𝑁 ∈ ℕ0*)    &   (𝜑𝑁 ∈ ℝ)       (𝜑𝑁 ∈ ℕ0)
 
26-Oct-2025rexmul2 32667 If the result 𝐴 of an extended real multiplication is real, then its first factor 𝐵 is also real. See also rexmul 13280. (Contributed by Thierry Arnoux, 26-Oct-2025.)
(𝜑𝐴 ∈ ℝ)    &   (𝜑𝐵 ∈ ℝ*)    &   (𝜑𝐶 ∈ ℝ*)    &   (𝜑 → 0 < 𝐶)    &   (𝜑𝐴 = (𝐵 ·e 𝐶))       (𝜑𝐵 ∈ ℝ)
 
26-Oct-2025ee4anv 2351 Distribute two pairs of existential quantifiers over a conjunction. For a version requiring fewer axioms but with additional disjoint variable conditions, see 4exdistrv 1955. (Contributed by NM, 31-Jul-1995.) Remove disjoint variable conditions on 𝑦, 𝑧 and 𝑥, 𝑤. (Revised by Eric Schmidt, 26-Oct-2025.)
(∃𝑥𝑦𝑧𝑤(𝜑𝜓) ↔ (∃𝑥𝑦𝜑 ∧ ∃𝑧𝑤𝜓))
 
23-Oct-2025termcterm2 49260 A terminal object of the category of small categories is a terminal category. (Contributed by Zhi Wang, 18-Oct-2025.) (Proof shortened by Zhi Wang, 23-Oct-2025.)
𝐸 = (CatCat‘𝑈)    &   (𝜑 → (𝑈 ∩ TermCat) ≠ ∅)    &   (𝜑𝐶 ∈ (TermO‘𝐸))       (𝜑𝐶 ∈ TermCat)
 
23-Oct-2025dftermo4 49248 An alternate definition of df-termo 17985 using universal property. See also the "Equivalent formulations" section of https://en.wikipedia.org/wiki/Initial_and_terminal_objects 17985. (Contributed by Zhi Wang, 23-Oct-2025.)
TermO = (𝑐 ∈ Cat ↦ (oppCat‘𝑐) / 𝑜(SetCat‘1o) / 𝑑((1st ‘(𝑑Δfunc𝑜))‘∅) / 𝑓dom (𝑓(𝑜UP𝑑)∅))
 
23-Oct-2025dfinito4 49247 An alternate definition of df-inito 17984 using universal property. See also the "Equivalent formulations" section of https://en.wikipedia.org/wiki/Initial_and_terminal_objects 17984. (Contributed by Zhi Wang, 23-Oct-2025.)
InitO = (𝑐 ∈ Cat ↦ (SetCat‘1o) / 𝑑((1st ‘(𝑑Δfunc𝑐))‘∅) / 𝑓dom (𝑓(𝑐UP𝑑)∅))
 
23-Oct-2025isinito3 49246 The predicate "is an initial object" of a category, using universal property. (Contributed by Zhi Wang, 23-Oct-2025.)
1 = (SetCat‘1o)    &   𝐹 = ((1st ‘( 1 Δfunc𝐶))‘∅)       (𝐼 ∈ (InitO‘𝐶) ↔ 𝐼 ∈ dom (𝐹(𝐶UP 1 )∅))
 
23-Oct-2025isinito2 49245 The predicate "is an initial object" of a category, using universal property. (Contributed by Zhi Wang, 23-Oct-2025.)
1 = (SetCat‘1o)    &   𝐹 = ((1st ‘( 1 Δfunc𝐶))‘∅)       (𝐼 ∈ (InitO‘𝐶) ↔ 𝐼(𝐹(𝐶UP 1 )∅)∅)
 
23-Oct-2025isinito2lem 49244 The predicate "is an initial object" of a category, using universal property. (Contributed by Zhi Wang, 23-Oct-2025.)
1 = (SetCat‘1o)    &   𝐹 = ((1st ‘( 1 Δfunc𝐶))‘∅)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐼 ∈ (Base‘𝐶))       (𝜑 → (𝐼 ∈ (InitO‘𝐶) ↔ 𝐼(𝐹(𝐶UP 1 )∅)∅))
 
23-Oct-2025initopropd 49023 Two structures with the same base, hom-sets and composition operation have the same initial objects. (Contributed by Zhi Wang, 23-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))       (𝜑 → (InitO‘𝐶) = (InitO‘𝐷))
 
23-Oct-2025oppcinito 49015 Initial objects are terminal in the opposite category. (Contributed by Zhi Wang, 23-Oct-2025.)
(𝐼 ∈ (InitO‘𝐶) ↔ 𝐼 ∈ (TermO‘(oppCat‘𝐶)))
 
23-Oct-2025zeroo2 49014 A zero object is an object in the base set. (Contributed by Zhi Wang, 23-Oct-2025.)
𝐵 = (Base‘𝐶)       (𝑂 ∈ (ZeroO‘𝐶) → 𝑂𝐵)
 
23-Oct-2025termoo2 49013 A terminal object is an object in the base set. (Contributed by Zhi Wang, 23-Oct-2025.)
𝐵 = (Base‘𝐶)       (𝑂 ∈ (TermO‘𝐶) → 𝑂𝐵)
 
23-Oct-2025initoo2 49012 An initial object is an object in the base set. (Contributed by Zhi Wang, 23-Oct-2025.)
𝐵 = (Base‘𝐶)       (𝑂 ∈ (InitO‘𝐶) → 𝑂𝐵)
 
23-Oct-2025up1st2nd2 48988 Rewrite the universal property predicate with separated parts. (Contributed by Zhi Wang, 23-Oct-2025.)
(𝜑𝑋 ∈ (𝐹(𝐷UP𝐸)𝑊))       (𝜑 → (1st𝑋)(𝐹(𝐷UP𝐸)𝑊)(2nd𝑋))
 
23-Oct-2025up1st2ndb 48987 Combine/separate parts in the universal property predicate. (Contributed by Zhi Wang, 23-Oct-2025.)
(𝜑𝐹 ∈ (𝐷 Func 𝐸))       (𝜑 → (𝑋(𝐹(𝐷UP𝐸)𝑊)𝑀𝑋(⟨(1st𝐹), (2nd𝐹)⟩(𝐷UP𝐸)𝑊)𝑀))
 
23-Oct-2025up1st2ndr 48986 Combine separated parts in the universal property predicate. (Contributed by Zhi Wang, 23-Oct-2025.)
(𝜑𝐹 ∈ (𝐷 Func 𝐸))    &   (𝜑𝑋(⟨(1st𝐹), (2nd𝐹)⟩(𝐷UP𝐸)𝑊)𝑀)       (𝜑𝑋(𝐹(𝐷UP𝐸)𝑊)𝑀)
 
23-Oct-2025up1st2nd 48985 Rewrite the universal property predicate with separated parts. (Contributed by Zhi Wang, 23-Oct-2025.)
(𝜑𝑋(𝐹(𝐷UP𝐸)𝑊)𝑀)       (𝜑𝑋(⟨(1st𝐹), (2nd𝐹)⟩(𝐷UP𝐸)𝑊)𝑀)
 
23-Oct-2025oppccatb 48885 An opposite category is a category. (Contributed by Zhi Wang, 23-Oct-2025.)
𝑂 = (oppCat‘𝐶)    &   (𝜑𝐶𝑉)       (𝜑 → (𝐶 ∈ Cat ↔ 𝑂 ∈ Cat))
 
23-Oct-2025homf0 48878 The base is empty iff the functionalized Hom-set operation is empty. (Contributed by Zhi Wang, 23-Oct-2025.)
((Base‘𝐶) = ∅ ↔ (Homf𝐶) = ∅)
 
22-Oct-2025mndtchom 49322 The only hom-set of the category built from a monoid is the base set of the monoid. (Contributed by Zhi Wang, 22-Sep-2024.) (Proof shortened by Zhi Wang, 22-Oct-2025.)
(𝜑𝐶 = (MndToCat‘𝑀))    &   (𝜑𝑀 ∈ Mnd)    &   (𝜑𝐵 = (Base‘𝐶))    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝐻 = (Hom ‘𝐶))       (𝜑 → (𝑋𝐻𝑌) = (Base‘𝑀))
 
22-Oct-2025funcsetc1o 49243 Value of the functor to the trivial category. The converse is also true because 𝐹 would be the empty set if 𝐶 were not a category; and the empty set cannot equal an ordered pair of two sets. (Contributed by Zhi Wang, 22-Oct-2025.)
1 = (SetCat‘1o)    &   𝐹 = ((1st ‘( 1 Δfunc𝐶))‘∅)    &   (𝜑𝐶 ∈ Cat)    &   𝐵 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)       (𝜑𝐹 = ⟨(𝐵 × 1o), (𝑥𝐵, 𝑦𝐵 ↦ ((𝑥𝐻𝑦) × 1o))⟩)
 
22-Oct-2025funcsetc1ocl 49242 The functor to the trivial category. The converse is also true due to reverse closure. (Contributed by Zhi Wang, 22-Oct-2025.)
1 = (SetCat‘1o)    &   𝐹 = ((1st ‘( 1 Δfunc𝐶))‘∅)    &   (𝜑𝐶 ∈ Cat)       (𝜑𝐹 ∈ (𝐶 Func 1 ))
 
22-Oct-2025setc1oid 49241 The identity morphism of the trivial category. (Contributed by Zhi Wang, 22-Oct-2025.)
1 = (SetCat‘1o)    &   𝐼 = (Id‘ 1 )       (𝐼‘∅) = ∅
 
22-Oct-2025setc1ocofval 49240 Composition in the trivial category. (Contributed by Zhi Wang, 22-Oct-2025.)
1 = (SetCat‘1o)       {⟨⟨∅, ∅⟩, ∅, {⟨∅, ∅, ∅⟩}⟩} = (comp‘ 1 )
 
22-Oct-2025setc1ohomfval 49239 Set of morphisms of the trivial category. (Contributed by Zhi Wang, 22-Oct-2025.)
1 = (SetCat‘1o)       {⟨∅, ∅, 1o⟩} = (Hom ‘ 1 )
 
22-Oct-2025setc1obas 49238 The base of the trivial category. (Contributed by Zhi Wang, 22-Oct-2025.)
1 = (SetCat‘1o)       1o = (Base‘ 1 )
 
22-Oct-2025ovsn2 48731 The operation value of a singleton of an ordered triple is the last member. (Contributed by Zhi Wang, 22-Oct-2025.)
𝐶 ∈ V       (𝐴{⟨𝐴, 𝐵, 𝐶⟩}𝐵) = 𝐶
 
22-Oct-2025ovsn 48730 The operation value of a singleton of a nested ordered pair is the last member. (Contributed by Zhi Wang, 22-Oct-2025.)
𝐶 ∈ V       (𝐴{⟨⟨𝐴, 𝐵⟩, 𝐶⟩}𝐵) = 𝐶
 
22-Oct-2025ovsng2 48729 The operation value of a singleton of an ordered triple is the last member. (Contributed by Zhi Wang, 22-Oct-2025.)
(𝐶𝑉 → (𝐴{⟨𝐴, 𝐵, 𝐶⟩}𝐵) = 𝐶)
 
22-Oct-2025ovsng 48728 The operation value of a singleton of a nested ordered pair is the last member. (Contributed by Zhi Wang, 22-Oct-2025.)
(𝐶𝑉 → (𝐴{⟨⟨𝐴, 𝐵⟩, 𝐶⟩}𝐵) = 𝐶)
 
22-Oct-2025dfbi1ALTb 44900 Further shorten dfbi1ALTa 44898 using simprimi 44899. (Contributed by Eric Schmidt, 22-Oct-2025.) (New usage is discouraged.) (Proof modification is discouraged.)
((𝜑𝜓) ↔ ¬ ((𝜑𝜓) → ¬ (𝜓𝜑)))
 
22-Oct-2025simprimi 44899 Inference associated with simprim 166. Proved exactly as step 11 is obtained from step 4 in dfbi1ALTa 44898. (Contributed by Eric Schmidt, 22-Oct-2025.) (New usage is discouraged.) (Proof modification is discouraged.)
¬ (𝜑 → ¬ 𝜓)       𝜓
 
22-Oct-2025dfbi1ALTa 44898 Version of dfbi1ALT 214 using for step 2 and shortened using a1i 11, a2i 14, and con4i 114. (Contributed by Eric Schmidt, 22-Oct-2025.) (New usage is discouraged.) (Proof modification is discouraged.)
((𝜑𝜓) ↔ ¬ ((𝜑𝜓) → ¬ (𝜓𝜑)))
 
22-Oct-20259ne0 42244 The number 9 is nonzero. (Contributed by SN, 22-Oct-2025.)
9 ≠ 0
 
22-Oct-20258ne0 42243 The number 8 is nonzero. (Contributed by SN, 22-Oct-2025.)
8 ≠ 0
 
22-Oct-20257ne0 42242 The number 7 is nonzero. (Contributed by SN, 22-Oct-2025.)
7 ≠ 0
 
22-Oct-20256ne0 42241 The number 6 is nonzero. (Contributed by SN, 22-Oct-2025.)
6 ≠ 0
 
22-Oct-20255ne0 42240 The number 5 is nonzero. (Contributed by SN, 22-Oct-2025.)
5 ≠ 0
 
22-Oct-2025halfpm6th 12456 One half plus or minus one sixth. (Contributed by Paul Chapman, 17-Jan-2008.) (Proof shortened by SN, 22-Oct-2025.)
(((1 / 2) − (1 / 6)) = (1 / 3) ∧ ((1 / 2) + (1 / 6)) = (2 / 3))
 
22-Oct-20251mhlfehlf 12453 Prove that 1 - 1/2 = 1/2. (Contributed by David A. Wheeler, 4-Jan-2017.) (Proof shortened by SN, 22-Oct-2025.)
(1 − (1 / 2)) = (1 / 2)
 
21-Oct-2025diagcic 49286 Any category 𝐶 is isomorphic to the category of functors from a terminal category to 𝐶. See also the "Properties" section of https://ncatlab.org/nlab/show/terminal+category. Therefore the number of categories isomorphic to a non-empty category is at least the number of singletons, so large (snnex 7747) that these isomorphic categories form a proper class. (Contributed by Zhi Wang, 21-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ TermCat)    &   𝑄 = (𝐷 FuncCat 𝐶)    &   𝐸 = (CatCat‘𝑈)    &   (𝜑𝑈𝑉)    &   (𝜑𝐶𝑈)    &   (𝜑𝑄𝑈)       (𝜑𝐶( ≃𝑐𝐸)𝑄)
 
21-Oct-2025diagciso 49285 The diagonal functor is an isomorphism from a category 𝐶 to the category of functors from a terminal category to 𝐶.

It is provable that the inverse of the diagonal functor is the mapped object by the transposed curry of (𝐷 evalF 𝐶), i.e., ran (1st ‘(⟨𝐷, 𝑄⟩ curryF ((𝐷 evalF 𝐶) func (𝐷swapF𝑄)))).

(Contributed by Zhi Wang, 21-Oct-2025.)

(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ TermCat)    &   𝑄 = (𝐷 FuncCat 𝐶)    &   𝐸 = (CatCat‘𝑈)    &   (𝜑𝑈𝑉)    &   (𝜑𝐶𝑈)    &   (𝜑𝑄𝑈)    &   𝐼 = (Iso‘𝐸)    &   𝐿 = (𝐶Δfunc𝐷)       (𝜑𝐿 ∈ (𝐶𝐼𝑄))
 
21-Oct-2025diagffth 49284 The diagonal functor is a fully faithful functor from a category 𝐶 to the category of functors from a terminal category to 𝐶. (Contributed by Zhi Wang, 21-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ TermCat)    &   𝑄 = (𝐷 FuncCat 𝐶)    &   𝐿 = (𝐶Δfunc𝐷)       (𝜑𝐿 ∈ ((𝐶 Full 𝑄) ∩ (𝐶 Faith 𝑄)))
 
21-Oct-2025diag2f1o 49283 If 𝐷 is terminal, the morphism part of a diagonal functor is bijective functions from hom-sets into sets of natural transformations. (Contributed by Zhi Wang, 21-Oct-2025.)
𝐿 = (𝐶Δfunc𝐷)    &   𝐴 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐴)    &   𝑁 = (𝐷 Nat 𝐶)    &   (𝜑𝐷 ∈ TermCat)    &   (𝜑𝐶 ∈ Cat)       (𝜑 → (𝑋(2nd𝐿)𝑌):(𝑋𝐻𝑌)–1-1-onto→(((1st𝐿)‘𝑋)𝑁((1st𝐿)‘𝑌)))
 
21-Oct-2025diag2f1olem 49282 Lemma for diag2f1o 49283. (Contributed by Zhi Wang, 21-Oct-2025.)
𝐿 = (𝐶Δfunc𝐷)    &   𝐴 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐴)    &   𝑁 = (𝐷 Nat 𝐶)    &   (𝜑𝐷 ∈ TermCat)    &   (𝜑𝑀 ∈ (((1st𝐿)‘𝑋)𝑁((1st𝐿)‘𝑌)))    &   𝐵 = (Base‘𝐷)    &   (𝜑𝑍𝐵)    &   𝐹 = (𝑀𝑍)       (𝜑 → (𝐹 ∈ (𝑋𝐻𝑌) ∧ 𝑀 = ((𝑋(2nd𝐿)𝑌)‘𝐹)))
 
21-Oct-2025termcnatval 49281 Value of natural transformations for a terminal category. (Contributed by Zhi Wang, 21-Oct-2025.)
(𝜑𝐶 ∈ TermCat)    &   𝑁 = (𝐶 Nat 𝐷)    &   (𝜑𝐴 ∈ (𝐹𝑁𝐺))    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   𝑅 = (𝐴𝑋)       (𝜑𝐴 = {⟨𝑋, 𝑅⟩})
 
21-Oct-2025diag1f1o 49280 The object part of the diagonal functor is a bijection if 𝐷 is terminal. So any functor from a terminal category is one-to-one correspondent to an object of the target base. (Contributed by Zhi Wang, 21-Oct-2025.)
𝐴 = (Base‘𝐶)    &   (𝜑𝐷 ∈ TermCat)    &   (𝜑𝐶 ∈ Cat)    &   𝐿 = (𝐶Δfunc𝐷)       (𝜑 → (1st𝐿):𝐴1-1-onto→(𝐷 Func 𝐶))
 
21-Oct-2025diag1f1olem 49279 To any functor from a terminal category can an object in the target base be assigned. (Contributed by Zhi Wang, 21-Oct-2025.)
𝐴 = (Base‘𝐶)    &   (𝜑𝐷 ∈ TermCat)    &   (𝜑𝐾 ∈ (𝐷 Func 𝐶))    &   𝐵 = (Base‘𝐷)    &   (𝜑𝑌𝐵)    &   𝑋 = ((1st𝐾)‘𝑌)    &   𝐿 = (𝐶Δfunc𝐷)       (𝜑 → (𝑋𝐴𝐾 = ((1st𝐿)‘𝑋)))
 
21-Oct-2025termchom2 49235 The hom-set of a terminal category is a singleton of the identity morphism. (Contributed by Zhi Wang, 21-Oct-2025.)
(𝜑𝐶 ∈ TermCat)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   𝐻 = (Hom ‘𝐶)    &    1 = (Id‘𝐶)    &   (𝜑𝑍𝐵)       (𝜑 → (𝑋𝐻𝑌) = {( 1𝑍)})
 
21-Oct-2025diag2f1 49083 If 𝐵 is non-empty, the morphism part of a diagonal functor is injective functions from hom-sets into sets of natural transformations. (Contributed by Zhi Wang, 21-Oct-2025.)
𝐿 = (𝐶Δfunc𝐷)    &   𝐴 = (Base‘𝐶)    &   𝐵 = (Base‘𝐷)    &   𝐻 = (Hom ‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐴)    &   (𝜑𝐵 ≠ ∅)    &   𝑁 = (𝐷 Nat 𝐶)       (𝜑 → (𝑋(2nd𝐿)𝑌):(𝑋𝐻𝑌)–1-1→(((1st𝐿)‘𝑋)𝑁((1st𝐿)‘𝑌)))
 
21-Oct-2025diag2f1lem 49082 Lemma for diag2f1 49083. The converse is trivial (fveq2 6873). (Contributed by Zhi Wang, 21-Oct-2025.)
𝐿 = (𝐶Δfunc𝐷)    &   𝐴 = (Base‘𝐶)    &   𝐵 = (Base‘𝐷)    &   𝐻 = (Hom ‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐴)    &   (𝜑𝐵 ≠ ∅)    &   (𝜑𝐹 ∈ (𝑋𝐻𝑌))    &   (𝜑𝐺 ∈ (𝑋𝐻𝑌))       (𝜑 → (((𝑋(2nd𝐿)𝑌)‘𝐹) = ((𝑋(2nd𝐿)𝑌)‘𝐺) → 𝐹 = 𝐺))
 
21-Oct-2025fnsnb 7154 A function whose domain is a singleton can be represented as a singleton of an ordered pair. (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) Revised to add reverse implication. (Revised by NM, 29-Dec-2018.) (Proof shortened by Zhi Wang, 21-Oct-2025.)
𝐴 ∈ V       (𝐹 Fn {𝐴} ↔ 𝐹 = {⟨𝐴, (𝐹𝐴)⟩})
 
21-Oct-2025fnsnbg 7153 A function's domain is a singleton iff the function is a singleton. (Contributed by Steven Nguyen, 18-Aug-2023.) Relax condition for being in the universal class. (Revised by Zhi Wang, 21-Oct-2025.)
(𝐴𝑉 → (𝐹 Fn {𝐴} ↔ 𝐹 = {⟨𝐴, (𝐹𝐴)⟩}))
 
20-Oct-2025termcnex 49314 The class of all terminal categories is a proper class. Therefore both the class of all thin categories and the class of all categories are proper classes. Note that snnex 7747 is equivalent to sngl V ∉ V. (Contributed by Zhi Wang, 20-Oct-2025.)
TermCat ∉ V
 
20-Oct-2025basrestermcfo 49313 The base function restricted to the class of terminal categories maps the class of terminal categories onto the class of singletons. (Contributed by Zhi Wang, 20-Oct-2025.)
(Base ↾ TermCat):TermCat–onto→{𝑏 ∣ ∃𝑥 𝑏 = {𝑥}}
 
20-Oct-2025discsnterm 49312 A discrete category (a category whose only morphisms are the identity morphisms) with a singlegon base is terminal. (Contributed by Zhi Wang, 20-Oct-2025.)
𝐾 = {⟨(Base‘ndx), 𝐵⟩, ⟨(le‘ndx), ( I ↾ 𝐵)⟩}    &   𝐶 = (ProsetToCat‘𝐾)       (∃𝑥 𝐵 = {𝑥} → 𝐶 ∈ TermCat)
 
20-Oct-2025discthin 49311 A discrete category (a category whose only morphisms are the identity morphisms) is thin. (Contributed by Zhi Wang, 20-Oct-2025.)
𝐾 = {⟨(Base‘ndx), 𝐵⟩, ⟨(le‘ndx), ( I ↾ 𝐵)⟩}    &   𝐶 = (ProsetToCat‘𝐾)       (𝐵𝑉𝐶 ∈ ThinCat)
 
20-Oct-2025discbas 49310 A discrete category (a category whose only morphisms are the identity morphisms) can be constructed for any base set. (Contributed by Zhi Wang, 20-Oct-2025.)
𝐾 = {⟨(Base‘ndx), 𝐵⟩, ⟨(le‘ndx), ( I ↾ 𝐵)⟩}    &   𝐶 = (ProsetToCat‘𝐾)       (𝐵𝑉𝐵 = (Base‘𝐶))
 
20-Oct-2025basrestermcfolem 49309 An element of the class of singlegons is a singlegon. The converse (discsntermlem 49308) also holds. This is trivial if 𝐵 is 𝑏 (abid 2716). (Contributed by Zhi Wang, 20-Oct-2025.)
(𝐵 ∈ {𝑏 ∣ ∃𝑥 𝑏 = {𝑥}} → ∃𝑥 𝐵 = {𝑥})
 
20-Oct-2025discsntermlem 49308 A singlegon is an element of the class of singlegons. The converse (basrestermcfolem 49309) also holds. This is trivial if 𝐵 is 𝑏 (abid 2716). (Contributed by Zhi Wang, 20-Oct-2025.)
(∃𝑥 𝐵 = {𝑥} → 𝐵 ∈ {𝑏 ∣ ∃𝑥 𝑏 = {𝑥}})
 
20-Oct-2025termcfuncval 49278 The value of a functor from a terminal category. (Contributed by Zhi Wang, 20-Oct-2025.)
𝐴 = (Base‘𝐶)    &   (𝜑𝐷 ∈ TermCat)    &   (𝜑𝐾 ∈ (𝐷 Func 𝐶))    &   𝐵 = (Base‘𝐷)    &   (𝜑𝑌𝐵)    &   𝑋 = ((1st𝐾)‘𝑌)    &    1 = (Id‘𝐶)    &   𝐼 = (Id‘𝐷)       (𝜑 → (𝑋𝐴𝐾 = ⟨{⟨𝑌, 𝑋⟩}, {⟨⟨𝑌, 𝑌⟩, {⟨(𝐼𝑌), ( 1𝑋)⟩}⟩}⟩))
 
20-Oct-2025dftermc3 49277 Alternate definition of TermCat. See also df-termc 49220, dftermc2 49266. (Contributed by Zhi Wang, 20-Oct-2025.)
TermCat = {𝑐 ∣ (Arrow‘𝑐) ≈ 1o}
 
20-Oct-2025arweutermc 49276 If a structure has a unique disjointified arrow, then the structure is a terminal category. (Contributed by Zhi Wang, 20-Oct-2025.)
(∃!𝑎 𝑎 ∈ (Arrow‘𝐶) → 𝐶 ∈ TermCat)
 
20-Oct-2025arweuthinc 49275 If a structure has a unique disjointified arrow, then the structure is a thin category. (Contributed by Zhi Wang, 20-Oct-2025.)
(∃!𝑎 𝑎 ∈ (Arrow‘𝐶) → 𝐶 ∈ ThinCat)
 
20-Oct-2025termcarweu 49274 There exists a unique disjointified arrow in a terminal category. (Contributed by Zhi Wang, 20-Oct-2025.)
(𝐶 ∈ TermCat → ∃!𝑎 𝑎 ∈ (Arrow‘𝐶))
 
20-Oct-2025euendfunc2 49273 If there exists a unique endofunctor (a functor from a category to itself) for a category, then it is either initial (empty) or terminal. (Contributed by Zhi Wang, 20-Oct-2025.)
((𝐶 Func 𝐶) ≈ 1o → ((Base‘𝐶) = ∅ ∨ 𝐶 ∈ TermCat))
 
20-Oct-2025euendfunc 49272 If there exists a unique endofunctor (a functor from a category to itself) for a non-empty category, then the category is terminal. This partially explains why two categories are sufficient in termc2 49264. (Contributed by Zhi Wang, 20-Oct-2025.)
(𝜑 → ∃!𝑓 𝑓 ∈ (𝐶 Func 𝐶))    &   𝐵 = (Base‘𝐶)    &   (𝜑𝐵 ≠ ∅)       (𝜑𝐶 ∈ TermCat)
 
20-Oct-2025termc2 49264 If there exists a unique functor from both the category itself and the trivial category, then the category is terminal. Note that the converse also holds, so that it is a biconditional. See the proof of termc 49265 for hints. See also eufunc 49268 and euendfunc2 49273 for some insights on why two categories are sufficient. (Contributed by Zhi Wang, 18-Oct-2025.) (Proof shortened by Zhi Wang, 20-Oct-2025.)
(∀𝑑 ∈ ({𝐶, (SetCat‘1o)} ∩ Cat)∃!𝑓 𝑓 ∈ (𝑑 Func 𝐶) → 𝐶 ∈ TermCat)
 
20-Oct-2025termchom 49234 The hom-set of a terminal category is a singleton of the identity morphism. (Contributed by Zhi Wang, 20-Oct-2025.)
(𝜑𝐶 ∈ TermCat)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   𝐻 = (Hom ‘𝐶)    &    1 = (Id‘𝐶)       (𝜑 → (𝑋𝐻𝑌) = {( 1𝑋)})
 
20-Oct-2025termcbas2 49228 The base of a terminal category is given by its object. (Contributed by Zhi Wang, 20-Oct-2025.)
(𝜑𝐶 ∈ TermCat)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)       (𝜑𝐵 = {𝑋})
 
20-Oct-2025thinchom 49176 A non-empty hom-set of a thin category is given by its element. (Contributed by Zhi Wang, 20-Oct-2025.)
(𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝐹 ∈ (𝑋𝐻𝑌))    &   𝐵 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &   (𝜑𝐶 ∈ ThinCat)       (𝜑 → (𝑋𝐻𝑌) = {𝐹})
 
20-Oct-2025precoffunc 49146 The pre-composition functor, expressed explicitly, is a functor. (Contributed by Zhi Wang, 11-Oct-2025.) (Proof shortened by Zhi Wang, 20-Oct-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   𝐵 = (𝐷 Func 𝐸)    &   𝑁 = (𝐷 Nat 𝐸)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐸 ∈ Cat)    &   (𝜑𝐾 = (𝑔𝐵 ↦ (𝑔func𝐹, 𝐺⟩)))    &   (𝜑𝐿 = (𝑔𝐵, 𝐵 ↦ (𝑎 ∈ (𝑔𝑁) ↦ (𝑎𝐹))))    &   𝑆 = (𝐶 FuncCat 𝐸)       (𝜑𝐾(𝑅 Func 𝑆)𝐿)
 
20-Oct-2025precofval3 49145 Value of the pre-composition functor as a transposed curry of the functor composition bifunctor. (Contributed by Zhi Wang, 20-Oct-2025.)
𝑅 = (𝐷 FuncCat 𝐸)    &   𝐵 = (𝐷 Func 𝐸)    &   𝑁 = (𝐷 Nat 𝐸)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐸 ∈ Cat)    &   (𝜑𝐾 = (𝑔𝐵 ↦ (𝑔func𝐹, 𝐺⟩)))    &   (𝜑𝐿 = (𝑔𝐵, 𝐵 ↦ (𝑎 ∈ (𝑔𝑁) ↦ (𝑎𝐹))))    &   𝑄 = (𝐶 FuncCat 𝐷)    &   (𝜑 = (⟨𝑄, 𝑅⟩ curryF ((⟨𝐶, 𝐷⟩ ∘F 𝐸) ∘func (𝑄swapF𝑅))))    &   (𝜑𝑀 = ((1st )‘⟨𝐹, 𝐺⟩))       (𝜑 → ⟨𝐾, 𝐿⟩ = 𝑀)
 
20-Oct-2025prsnex 48849 The class of preordered sets is a proper class. (Contributed by Zhi Wang, 20-Oct-2025.)
Proset ∉ V
 
20-Oct-2025posnex 48848 The class of posets is a proper class. (Contributed by Zhi Wang, 20-Oct-2025.)
Poset ∉ V
 
20-Oct-2025basresprsfo 48847 The base function restricted to the class of preordered sets maps the class of preordered sets onto the universal class. (Contributed by Zhi Wang, 20-Oct-2025.)
(Base ↾ Proset ): Proset –onto→V
 
20-Oct-2025basresposfo 48846 The base function restricted to the class of posets maps the class of posets onto the universal class. (Contributed by Zhi Wang, 20-Oct-2025.)
(Base ↾ Poset):Poset–onto→V
 
20-Oct-2025exbasprs 48845 There exists a preordered set for any base set. (Contributed by Zhi Wang, 20-Oct-2025.)
(𝐵𝑉 → ∃𝑘 ∈ Proset 𝐵 = (Base‘𝑘))
 
20-Oct-2025exbaspos 48844 There exists a poset for any base set. (Contributed by Zhi Wang, 20-Oct-2025.)
(𝐵𝑉 → ∃𝑘 ∈ Poset 𝐵 = (Base‘𝑘))
 
20-Oct-2025resipos 48843 A set equipped with an order where no distinct elements are comparable is a poset. (Contributed by Zhi Wang, 20-Oct-2025.)
𝐾 = {⟨(Base‘ndx), 𝐵⟩, ⟨(le‘ndx), ( I ↾ 𝐵)⟩}       (𝐵𝑉𝐾 ∈ Poset)
 
20-Oct-2025resiposbas 48842 Construct a poset (resipos 48843) for any base set. (Contributed by Zhi Wang, 20-Oct-2025.)
𝐾 = {⟨(Base‘ndx), 𝐵⟩, ⟨(le‘ndx), ( I ↾ 𝐵)⟩}       (𝐵𝑉𝐵 = (Base‘𝐾))
 
20-Oct-2025slotresfo 48767 The condition of a structure component extractor restricted to a class being a surjection. This combined with fonex 48736 can be used to prove a class being proper. (Contributed by Zhi Wang, 20-Oct-2025.)
𝐸 Fn V    &   (𝑘𝐴 → (𝐸𝑘) ∈ 𝑉)    &   (𝑏𝑉𝐾𝐴)    &   (𝑏𝑉𝑏 = (𝐸𝐾))       (𝐸𝐴):𝐴onto𝑉
 
20-Oct-2025fonex 48736 The domain of a surjection is a proper class if the range is a proper class as well. Can be used to prove that if a structure component extractor restricted to a class maps onto a proper class, then the class is a proper class as well. (Contributed by Zhi Wang, 20-Oct-2025.)
𝐵 ∉ V    &   𝐹:𝐴onto𝐵       𝐴 ∉ V
 
19-Oct-2025idfudiag1 49271 If the identity functor of a category is the same as a constant functor to the category, then the category is terminal. (Contributed by Zhi Wang, 19-Oct-2025.)
𝐼 = (idfunc𝐶)    &   𝐿 = (𝐶Δfunc𝐶)    &   (𝜑𝐶 ∈ Cat)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   𝐾 = ((1st𝐿)‘𝑋)    &   (𝜑𝐼 = 𝐾)       (𝜑𝐶 ∈ TermCat)
 
19-Oct-2025idfudiag1bas 49270 If the identity functor of a category is the same as a constant functor to the category, then the base is a singleton. (Contributed by Zhi Wang, 19-Oct-2025.)
𝐼 = (idfunc𝐶)    &   𝐿 = (𝐶Δfunc𝐶)    &   (𝜑𝐶 ∈ Cat)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   𝐾 = ((1st𝐿)‘𝑋)    &   (𝜑𝐼 = 𝐾)       (𝜑𝐵 = {𝑋})
 
19-Oct-2025idfudiag1lem 49269 Lemma for idfudiag1bas 49270 and idfudiag1 49271. (Contributed by Zhi Wang, 19-Oct-2025.)
(𝜑 → ( I ↾ 𝐴) = (𝐴 × {𝐵}))    &   (𝜑𝐴 ≠ ∅)       (𝜑𝐴 = {𝐵})
 
19-Oct-2025eufunc 49268 If there exists a unique functor from a non-empty category, then the base of the target category is a singleton. (Contributed by Zhi Wang, 19-Oct-2025.)
(𝜑 → ∃!𝑓 𝑓 ∈ (𝐶 Func 𝐷))    &   𝐴 = (Base‘𝐶)    &   (𝜑𝐴 ≠ ∅)    &   𝐵 = (Base‘𝐷)       (𝜑 → ∃!𝑥 𝑥𝐵)
 
19-Oct-2025eufunclem 49267 If there exists a unique functor from a non-empty category, then the base of the target category is at most a singleton. (Contributed by Zhi Wang, 19-Oct-2025.)
(𝜑 → ∃!𝑓 𝑓 ∈ (𝐶 Func 𝐷))    &   𝐴 = (Base‘𝐶)    &   (𝜑𝐴 ≠ ∅)    &   𝐵 = (Base‘𝐷)       (𝜑𝐵 ≼ 1o)
 
19-Oct-2025diag1f1 49081 The object part of the diagonal functor is 1-1 if 𝐵 is non-empty. (Contributed by Zhi Wang, 19-Oct-2025.)
𝐿 = (𝐶Δfunc𝐷)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝐴 = (Base‘𝐶)    &   𝐵 = (Base‘𝐷)    &   (𝜑𝐵 ≠ ∅)       (𝜑 → (1st𝐿):𝐴1-1→(𝐷 Func 𝐶))
 
19-Oct-2025diag1f1lem 49080 The object part of the diagonal functor is 1-1 if 𝐵 is non-empty. Note that (𝜑 → (𝑀 = 𝑁𝑋 = 𝑌)) also holds because of diag1f1 49081 and f1fveq 7251. (Contributed by Zhi Wang, 19-Oct-2025.)
𝐿 = (𝐶Δfunc𝐷)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝐴 = (Base‘𝐶)    &   𝐵 = (Base‘𝐷)    &   (𝜑𝐵 ≠ ∅)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐴)    &   𝑀 = ((1st𝐿)‘𝑋)    &   𝑁 = ((1st𝐿)‘𝑌)       (𝜑 → (𝑀 = 𝑁𝑋 = 𝑌))
 
19-Oct-2025diag1a 49079 The constant functor of 𝑋. (Contributed by Zhi Wang, 19-Oct-2025.)
𝐿 = (𝐶Δfunc𝐷)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝐴 = (Base‘𝐶)    &   (𝜑𝑋𝐴)    &   𝐾 = ((1st𝐿)‘𝑋)    &   𝐵 = (Base‘𝐷)    &   𝐽 = (Hom ‘𝐷)    &    1 = (Id‘𝐶)       (𝜑𝐾 = ⟨(𝐵 × {𝑋}), (𝑦𝐵, 𝑧𝐵 ↦ ((𝑦𝐽𝑧) × {( 1𝑋)}))⟩)
 
19-Oct-2025func0g2 48948 The source cateogry of a functor to the empty category must be empty as well. (Contributed by Zhi Wang, 19-Oct-2025.)
𝐴 = (Base‘𝐶)    &   𝐵 = (Base‘𝐷)    &   (𝜑𝐵 = ∅)    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))       (𝜑𝐴 = ∅)
 
19-Oct-2025func0g 48947 The source cateogry of a functor to the empty category must be empty as well. (Contributed by Zhi Wang, 19-Oct-2025.)
𝐴 = (Base‘𝐶)    &   𝐵 = (Base‘𝐷)    &   (𝜑𝐵 = ∅)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)       (𝜑𝐴 = ∅)
 
19-Oct-2025func1st2nd 48936 Rewrite the functor predicate with separated parts. (Contributed by Zhi Wang, 19-Oct-2025.)
(𝜑𝐹 ∈ (𝐶 Func 𝐷))       (𝜑 → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
 
19-Oct-2025wfac8prim 44961 The class of well-founded sets 𝑊 models the Axiom of Choice. Since the previous theorems show that all the ZF axioms hold in 𝑊, we may use any statement that ZF proves is equivalent to Choice to prove this. We use ac8prim 44950. Part of Corollary II.2.12 of [Kunen2] p. 114. (Contributed by Eric Schmidt, 19-Oct-2025.)
𝑊 = (𝑅1 “ On)       𝑥𝑊 ((∀𝑧𝑊 (𝑧𝑥 → ∃𝑤𝑊 𝑤𝑧) ∧ ∀𝑧𝑊𝑤𝑊 ((𝑧𝑥𝑤𝑥) → (¬ 𝑧 = 𝑤 → ∀𝑦𝑊 (𝑦𝑧 → ¬ 𝑦𝑤)))) → ∃𝑦𝑊𝑧𝑊 (𝑧𝑥 → ∃𝑤𝑊𝑣𝑊 ((𝑣𝑧𝑣𝑦) ↔ 𝑣 = 𝑤)))
 
19-Oct-2025wfaxinf2 44960 The class of well-founded sets models the Axiom of Infinity ax-inf2 9648. Part of Corollary II.2.12 of [Kunen2] p. 114. (Contributed by Eric Schmidt, 19-Oct-2025.)
𝑊 = (𝑅1 “ On)       𝑥𝑊 (∃𝑦𝑊 (𝑦𝑥 ∧ ∀𝑧𝑊 ¬ 𝑧𝑦) ∧ ∀𝑦𝑊 (𝑦𝑥 → ∃𝑧𝑊 (𝑧𝑥 ∧ ∀𝑤𝑊 (𝑤𝑧 ↔ (𝑤𝑦𝑤 = 𝑦)))))
 
19-Oct-2025wfaxreg 44959 The class of well-founded sets models the Axiom of Regularity ax-reg 9599. Part of Corollary II.2.5 of [Kunen2] p. 112. (Contributed by Eric Schmidt, 19-Oct-2025.)
𝑊 = (𝑅1 “ On)       𝑥𝑊 (∃𝑦𝑊 𝑦𝑥 → ∃𝑦𝑊 (𝑦𝑥 ∧ ∀𝑧𝑊 (𝑧𝑦 → ¬ 𝑧𝑥)))
 
19-Oct-2025wfaxun 44958 The class of well-founded sets models the Axiom of Union ax-un 7724. Part of Corollary II.2.5 of [Kunen2] p. 112. (Contributed by Eric Schmidt, 19-Oct-2025.)
𝑊 = (𝑅1 “ On)       𝑥𝑊𝑦𝑊𝑧𝑊 (∃𝑤𝑊 (𝑧𝑤𝑤𝑥) → 𝑧𝑦)
 
19-Oct-2025wfaxpow 44956 The class of well-founded sets models the Axioms of Power Sets. Part of Corollary II.2.9 of [Kunen2] p. 113. (Contributed by Eric Schmidt, 19-Oct-2025.)
𝑊 = (𝑅1 “ On)       𝑥𝑊𝑦𝑊𝑧𝑊 (∀𝑤𝑊 (𝑤𝑧𝑤𝑥) → 𝑧𝑦)
 
19-Oct-2025wfaxnul 44955 The class of well-founded sets models the Null Set Axiom ax-nul 5274. (Contributed by Eric Schmidt, 19-Oct-2025.)
𝑊 = (𝑅1 “ On)       𝑥𝑊𝑦𝑊 ¬ 𝑦𝑥
 
19-Oct-2025modelac8prim 44951 If 𝑀 is a transitive class, then the following are equivalent. (1) Every nonempty set 𝑥𝑀 of pairwise disjoint nonempty sets has a choice set in 𝑀. (2) The class 𝑀 models the Axiom of Choice, in the form ac8prim 44950.

Lemma II.2.11(7) of [Kunen2] p. 114. Kunen has the additional hypotheses that the Extensionality, Separation, Pairing, and Union axioms are true in 𝑀. This, apparently, is because Kunen's statement of the Axiom of Choice uses defined notions, including and , and these axioms guarantee that these notions are well-defined. When we state the axiom using primitives only, the need for these hypotheses disappears. (Contributed by Eric Schmidt, 19-Oct-2025.)

(Tr 𝑀 → (∀𝑥𝑀 ((∀𝑧𝑥 𝑧 ≠ ∅ ∧ ∀𝑧𝑥𝑤𝑥 (𝑧𝑤 → (𝑧𝑤) = ∅)) → ∃𝑦𝑀𝑧𝑥 ∃!𝑣 𝑣 ∈ (𝑧𝑦)) ↔ ∀𝑥𝑀 ((∀𝑧𝑀 (𝑧𝑥 → ∃𝑤𝑀 𝑤𝑧) ∧ ∀𝑧𝑀𝑤𝑀 ((𝑧𝑥𝑤𝑥) → (¬ 𝑧 = 𝑤 → ∀𝑦𝑀 (𝑦𝑧 → ¬ 𝑦𝑤)))) → ∃𝑦𝑀𝑧𝑀 (𝑧𝑥 → ∃𝑤𝑀𝑣𝑀 ((𝑣𝑧𝑣𝑦) ↔ 𝑣 = 𝑤)))))
 
19-Oct-2025ac8prim 44950 ac8 10499 expanded into primitives. (Contributed by Eric Schmidt, 19-Oct-2025.)
((∀𝑧(𝑧𝑥 → ∃𝑤 𝑤𝑧) ∧ ∀𝑧𝑤((𝑧𝑥𝑤𝑥) → (¬ 𝑧 = 𝑤 → ∀𝑦(𝑦𝑧 → ¬ 𝑦𝑤)))) → ∃𝑦𝑧(𝑧𝑥 → ∃𝑤𝑣((𝑣𝑧𝑣𝑦) ↔ 𝑣 = 𝑤)))
 
19-Oct-2025dfac5prim 44949 dfac5 10136 expanded into primitives. (Contributed by Eric Schmidt, 19-Oct-2025.)
(CHOICE ↔ ∀𝑥((∀𝑧(𝑧𝑥 → ∃𝑤 𝑤𝑧) ∧ ∀𝑧𝑤((𝑧𝑥𝑤𝑥) → (¬ 𝑧 = 𝑤 → ∀𝑦(𝑦𝑧 → ¬ 𝑦𝑤)))) → ∃𝑦𝑧(𝑧𝑥 → ∃𝑤𝑣((𝑣𝑧𝑣𝑦) ↔ 𝑣 = 𝑤))))
 
19-Oct-2025omelaxinf2 44948 A transitive class that contains ω models the Axiom of Infinity ax-inf2 9648. Lemma II.2.11(7) of [Kunen2] p. 114. Kunen has the additional hypotheses that the Extensionality, Separation, Pairing, and Union axioms are true in 𝑀. This, apparently, is because Kunen's statement of the Axiom of Infinity uses the defined notions and suc, and these axioms guarantee that these notions are well-defined. When we state the axiom using primitives only, the need for these hypotheses disappears.

The antecedent of this theorem is not enough to guarantee that the class models the alternate axiom ax-inf 9645. (Contributed by Eric Schmidt, 19-Oct-2025.)

((Tr 𝑀 ∧ ω ∈ 𝑀) → ∃𝑥𝑀 (∃𝑦𝑀 (𝑦𝑥 ∧ ∀𝑧𝑀 ¬ 𝑧𝑦) ∧ ∀𝑦𝑀 (𝑦𝑥 → ∃𝑧𝑀 (𝑧𝑥 ∧ ∀𝑤𝑀 (𝑤𝑧 ↔ (𝑤𝑦𝑤 = 𝑦))))))
 
19-Oct-2025omssaxinf2 44947 A class that contains all ordinals up to and including ω models the Axiom of Infinity ax-inf2 9648. The antecedent of this theorem is not enough to guarantee that the class models the alternate axiom ax-inf 9645. (Contributed by Eric Schmidt, 19-Oct-2025.)
((ω ⊆ 𝑀 ∧ ω ∈ 𝑀) → ∃𝑥𝑀 (∃𝑦𝑀 (𝑦𝑥 ∧ ∀𝑧𝑀 ¬ 𝑧𝑦) ∧ ∀𝑦𝑀 (𝑦𝑥 → ∃𝑧𝑀 (𝑧𝑥 ∧ ∀𝑤𝑀 (𝑤𝑧 ↔ (𝑤𝑦𝑤 = 𝑦))))))
 
19-Oct-2025sswfaxreg 44946 A subclass of the class of well-founded sets models the Axiom of Regularity ax-reg 9599. Lemma II.2.4(2) of [Kunen2] p. 111. (Contributed by Eric Schmidt, 19-Oct-2025.)
(𝑀 (𝑅1 “ On) → ∀𝑥𝑀 (∃𝑦𝑀 𝑦𝑥 → ∃𝑦𝑀 (𝑦𝑥 ∧ ∀𝑧𝑀 (𝑧𝑦 → ¬ 𝑧𝑥))))
 
19-Oct-2025pwclaxpow 44943 Suppose 𝑀 is a transitive class that is closed under power sets intersected with 𝑀. Then, 𝑀 models the Axiom of Power Sets ax-pow 5333. One direction of Lemma II.2.8 of [Kunen2] p. 113. (Contributed by Eric Schmidt, 19-Oct-2025.)
((Tr 𝑀 ∧ ∀𝑥𝑀 (𝒫 𝑥𝑀) ∈ 𝑀) → ∀𝑥𝑀𝑦𝑀𝑧𝑀 (∀𝑤𝑀 (𝑤𝑧𝑤𝑥) → 𝑧𝑦))
 
19-Oct-20250elaxnul 44942 A class that contains the empty set models the Null Set Axiom ax-nul 5274. (Contributed by Eric Schmidt, 19-Oct-2025.)
(∅ ∈ 𝑀 → ∃𝑥𝑀𝑦𝑀 ¬ 𝑦𝑥)
 
19-Oct-2025n0abso 44935 Nonemptiness is absolute for transitive models. Compare Example I.16.3 of [Kunen2] p. 96 and the following discussion. (Contributed by Eric Schmidt, 19-Oct-2025.)
((Tr 𝑀𝐴𝑀) → (𝐴 ≠ ∅ ↔ ∃𝑥𝑀 𝑥𝐴))
 
19-Oct-2025disjabso 44934 Disjointness is absolute for transitive models. Compare Example I.16.3 of [Kunen2] p. 96 and the following discussion. (Contributed by Eric Schmidt, 19-Oct-2025.)
((Tr 𝑀𝐴𝑀) → ((𝐴𝐵) = ∅ ↔ ∀𝑥𝑀 (𝑥𝐴 → ¬ 𝑥𝐵)))
 
19-Oct-2025ssabso 44933 The notion "𝑥 is a subset of 𝑦 " is absolute for transitive models. Compare Example I.16.3 of [Kunen2] p. 96 and the following discussion. (Contributed by Eric Schmidt, 19-Oct-2025.)
((Tr 𝑀𝐴𝑀) → (𝐴𝐵 ↔ ∀𝑥𝑀 (𝑥𝐴𝑥𝐵)))
 
19-Oct-2025rexabsobidv 44932 Formula-building lemma for proving absoluteness results. (Contributed by Eric Schmidt, 19-Oct-2025.)
(𝜑 → Tr 𝑀)    &   (𝜑 → (𝜓𝜒))       ((𝜑𝐴𝑀) → (∃𝑥𝐴 𝜓 ↔ ∃𝑥𝑀 (𝑥𝐴𝜒)))
 
19-Oct-2025ralabsobidv 44931 Formula-building lemma for proving absoluteness results. (Contributed by Eric Schmidt, 19-Oct-2025.)
(𝜑 → Tr 𝑀)    &   (𝜑 → (𝜓𝜒))       ((𝜑𝐴𝑀) → (∀𝑥𝐴 𝜓 ↔ ∀𝑥𝑀 (𝑥𝐴𝜒)))
 
19-Oct-2025rexabsod 44930 Deduction form of rexabso 44928. (Contributed by Eric Schmidt, 19-Oct-2025.)
(𝜑 → Tr 𝑀)       ((𝜑𝐴𝑀) → (∃𝑥𝐴 𝜓 ↔ ∃𝑥𝑀 (𝑥𝐴𝜓)))
 
19-Oct-2025ralabsod 44929 Deduction form of ralabso 44927. (Contributed by Eric Schmidt, 19-Oct-2025.)
(𝜑 → Tr 𝑀)       ((𝜑𝐴𝑀) → (∀𝑥𝐴 𝜓 ↔ ∀𝑥𝑀 (𝑥𝐴𝜓)))
 
19-Oct-2025rexabso 44928 Simplification of restricted quantification in a transitive class. When 𝜑 is quantifier-free, this shows that the formula 𝑥𝑦𝜑 is absolute for transitive models, which is a particular case of Lemma I.16.2 of [Kunen2] p. 95. (Contributed by Eric Schmidt, 19-Oct-2025.)
((Tr 𝑀𝐴𝑀) → (∃𝑥𝐴 𝜑 ↔ ∃𝑥𝑀 (𝑥𝐴𝜑)))
 
19-Oct-2025ralabso 44927 Simplification of restricted quantification in a transitive class. When 𝜑 is quantifier-free, this shows that the formula 𝑥𝑦𝜑 is absolute for transitive models, which is a particular case of Lemma I.16.2 of [Kunen2] p. 95. (Contributed by Eric Schmidt, 19-Oct-2025.)
((Tr 𝑀𝐴𝑀) → (∀𝑥𝐴 𝜑 ↔ ∀𝑥𝑀 (𝑥𝐴𝜑)))
 
19-Oct-2025rext0 44897 Nonempty existential quantification of a theorem is true. (Contributed by Eric Schmidt, 19-Oct-2025.)
𝜑       (∃𝑥𝐴 𝜑𝐴 ≠ ∅)
 
19-Oct-2025constrextdg2 33718 Any step (𝐶𝑁) of the construction of constructible numbers is contained in the last field of a tower of quadratic field extensions starting with . (Contributed by Thierry Arnoux, 19-Oct-2025.)
𝐶 = rec((𝑠 ∈ V ↦ {𝑥 ∈ ℂ ∣ (∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑡 ∈ ℝ ∃𝑟 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ 𝑥 = (𝑐 + (𝑟 · (𝑑𝑐))) ∧ (ℑ‘((∗‘(𝑏𝑎)) · (𝑑𝑐))) ≠ 0) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑒𝑠𝑓𝑠𝑡 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ (abs‘(𝑥𝑐)) = (abs‘(𝑒𝑓))) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑒𝑠𝑓𝑠 (𝑎𝑑 ∧ (abs‘(𝑥𝑎)) = (abs‘(𝑏𝑐)) ∧ (abs‘(𝑥𝑑)) = (abs‘(𝑒𝑓))))}), {0, 1})    &   𝐸 = (ℂflds 𝑒)    &   𝐹 = (ℂflds 𝑓)    &    < = {⟨𝑓, 𝑒⟩ ∣ (𝐸/FldExt𝐹 ∧ (𝐸[:]𝐹) = 2)}    &   (𝜑𝑁 ∈ ω)       (𝜑 → ∃𝑣 ∈ ( < Chain(SubDRing‘ℂfld))((𝑣‘0) = ℚ ∧ (𝐶𝑁) ⊆ (lastS‘𝑣)))
 
19-Oct-2025constrextdg2lem 33717 Lemma for constrextdg2 33718 (Contributed by Thierry Arnoux, 19-Oct-2025.)
𝐶 = rec((𝑠 ∈ V ↦ {𝑥 ∈ ℂ ∣ (∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑡 ∈ ℝ ∃𝑟 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ 𝑥 = (𝑐 + (𝑟 · (𝑑𝑐))) ∧ (ℑ‘((∗‘(𝑏𝑎)) · (𝑑𝑐))) ≠ 0) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑒𝑠𝑓𝑠𝑡 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ (abs‘(𝑥𝑐)) = (abs‘(𝑒𝑓))) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑒𝑠𝑓𝑠 (𝑎𝑑 ∧ (abs‘(𝑥𝑎)) = (abs‘(𝑏𝑐)) ∧ (abs‘(𝑥𝑑)) = (abs‘(𝑒𝑓))))}), {0, 1})    &   𝐸 = (ℂflds 𝑒)    &   𝐹 = (ℂflds 𝑓)    &    < = {⟨𝑓, 𝑒⟩ ∣ (𝐸/FldExt𝐹 ∧ (𝐸[:]𝐹) = 2)}    &   (𝜑𝑁 ∈ ω)    &   (𝜑𝑅 ∈ ( < Chain(SubDRing‘ℂfld)))    &   (𝜑 → (𝑅‘0) = ℚ)    &   (𝜑 → (𝐶𝑁) ⊆ (lastS‘𝑅))       (𝜑 → ∃𝑣 ∈ ( < Chain(SubDRing‘ℂfld))((𝑣‘0) = ℚ ∧ (𝐶‘suc 𝑁) ⊆ (lastS‘𝑣)))
 
19-Oct-2025isconstr 33705 Property of being a constructible number. (Contributed by Thierry Arnoux, 19-Oct-2025.)
𝐶 = rec((𝑠 ∈ V ↦ {𝑥 ∈ ℂ ∣ (∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑡 ∈ ℝ ∃𝑟 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ 𝑥 = (𝑐 + (𝑟 · (𝑑𝑐))) ∧ (ℑ‘((∗‘(𝑏𝑎)) · (𝑑𝑐))) ≠ 0) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑒𝑠𝑓𝑠𝑡 ∈ ℝ (𝑥 = (𝑎 + (𝑡 · (𝑏𝑎))) ∧ (abs‘(𝑥𝑐)) = (abs‘(𝑒𝑓))) ∨ ∃𝑎𝑠𝑏𝑠𝑐𝑠𝑑𝑠𝑒𝑠𝑓𝑠 (𝑎𝑑 ∧ (abs‘(𝑥𝑎)) = (abs‘(𝑏𝑐)) ∧ (abs‘(𝑥𝑑)) = (abs‘(𝑒𝑓))))}), {0, 1})       (𝐴 ∈ Constr ↔ ∃𝑚 ∈ ω 𝐴 ∈ (𝐶𝑚))
 
19-Oct-2025fldext2chn 33697 In a non-empty chain 𝑇 of quadratic field extensions, the degree of the final extension is always a power of two. (Contributed by Thierry Arnoux, 19-Oct-2025.)
𝐸 = (𝑊s 𝑒)    &   𝐹 = (𝑊s 𝑓)    &    < = {⟨𝑓, 𝑒⟩ ∣ (𝐸/FldExt𝐹 ∧ (𝐸[:]𝐹) = 2)}    &   (𝜑𝑇 ∈ ( < Chain(SubDRing‘𝑊)))    &   (𝜑𝑊 ∈ Field)    &   (𝜑 → (𝑊s (𝑇‘0)) = 𝑄)    &   (𝜑 → (𝑊s (lastS‘𝑇)) = 𝐿)    &   (𝜑 → 0 < (♯‘𝑇))       (𝜑 → (𝐿/FldExt𝑄 ∧ ∃𝑛 ∈ ℕ0 (𝐿[:]𝑄) = (2↑𝑛)))
 
19-Oct-2025fldext2rspun 33658 Given two field extensions 𝐼 / 𝐾 and 𝐽 / 𝐾, 𝐼 / 𝐾 being a quadratic extension, and the degree of 𝐽 / 𝐾 being a power of 2, the degree of the extension 𝐸 / 𝐾 is a power of 2 , 𝐸 being the composite field 𝐼𝐽. (Contributed by Thierry Arnoux, 19-Oct-2025.)
𝐾 = (𝐿s 𝐹)    &   𝐼 = (𝐿s 𝐺)    &   𝐽 = (𝐿s 𝐻)    &   (𝜑𝐿 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐼))    &   (𝜑𝐹 ∈ (SubDRing‘𝐽))    &   (𝜑𝐺 ∈ (SubDRing‘𝐿))    &   (𝜑𝐻 ∈ (SubDRing‘𝐿))    &   (𝜑𝑁 ∈ ℕ0)    &   (𝜑 → (𝐼[:]𝐾) = 2)    &   (𝜑 → (𝐽[:]𝐾) = (2↑𝑁))    &   𝐸 = (𝐿s (𝐿 fldGen (𝐺𝐻)))       (𝜑 → ∃𝑛 ∈ ℕ0 (𝐸[:]𝐾) = (2↑𝑛))
 
19-Oct-2025fldextrspundgdvds 33657 Given two finite extensions 𝐼 / 𝐾 and 𝐽 / 𝐾 of the same field 𝐾, the degree of the extension 𝐼 / 𝐾 divides the degree of the extension 𝐸 / 𝐾, 𝐸 being the composite field 𝐼𝐽. (Contributed by Thierry Arnoux, 19-Oct-2025.)
𝐾 = (𝐿s 𝐹)    &   𝐼 = (𝐿s 𝐺)    &   𝐽 = (𝐿s 𝐻)    &   (𝜑𝐿 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐼))    &   (𝜑𝐹 ∈ (SubDRing‘𝐽))    &   (𝜑𝐺 ∈ (SubDRing‘𝐿))    &   (𝜑𝐻 ∈ (SubDRing‘𝐿))    &   (𝜑 → (𝐽[:]𝐾) ∈ ℕ0)    &   𝐸 = (𝐿s (𝐿 fldGen (𝐺𝐻)))    &   (𝜑 → (𝐼[:]𝐾) ∈ ℕ)       (𝜑 → (𝐼[:]𝐾) ∥ (𝐸[:]𝐾))
 
19-Oct-2025fldextrspundgdvdslem 33656 Lemma for fldextrspundgdvds 33657. (Contributed by Thierry Arnoux, 19-Oct-2025.)
𝐾 = (𝐿s 𝐹)    &   𝐼 = (𝐿s 𝐺)    &   𝐽 = (𝐿s 𝐻)    &   (𝜑𝐿 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐼))    &   (𝜑𝐹 ∈ (SubDRing‘𝐽))    &   (𝜑𝐺 ∈ (SubDRing‘𝐿))    &   (𝜑𝐻 ∈ (SubDRing‘𝐿))    &   (𝜑 → (𝐽[:]𝐾) ∈ ℕ0)    &   𝐸 = (𝐿s (𝐿 fldGen (𝐺𝐻)))    &   (𝜑 → (𝐼[:]𝐾) ∈ ℕ)       (𝜑 → (𝐸[:]𝐼) ∈ ℕ0)
 
19-Oct-2025fldextrspundglemul 33655 Given two field extensions 𝐼 / 𝐾 and 𝐽 / 𝐾 of the same field 𝐾, 𝐽 / 𝐾 being finite, and the composiste field 𝐸 = 𝐼𝐽, the degree of the extension of the composite field 𝐸 / 𝐾 is at most the product of the field extension degrees of 𝐼 / 𝐾 and 𝐽 / 𝐾. (Contributed by Thierry Arnoux, 19-Oct-2025.)
𝐾 = (𝐿s 𝐹)    &   𝐼 = (𝐿s 𝐺)    &   𝐽 = (𝐿s 𝐻)    &   (𝜑𝐿 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐼))    &   (𝜑𝐹 ∈ (SubDRing‘𝐽))    &   (𝜑𝐺 ∈ (SubDRing‘𝐿))    &   (𝜑𝐻 ∈ (SubDRing‘𝐿))    &   (𝜑 → (𝐽[:]𝐾) ∈ ℕ0)    &   𝐸 = (𝐿s (𝐿 fldGen (𝐺𝐻)))       (𝜑 → (𝐸[:]𝐾) ≤ ((𝐼[:]𝐾) ·e (𝐽[:]𝐾)))
 
19-Oct-2025fldsdrgfldext2 33639 A sub-sub-division-ring of a field forms a field extension. (Contributed by Thierry Arnoux, 19-Oct-2025.)
𝐺 = (𝐹s 𝐴)    &   (𝜑𝐹 ∈ Field)    &   (𝜑𝐴 ∈ (SubDRing‘𝐹))    &   (𝜑𝐵 ∈ (SubDRing‘𝐺))    &   𝐻 = (𝐹s 𝐵)       (𝜑𝐺/FldExt𝐻)
 
19-Oct-2025fldsdrgfldext 33638 A sub-division-ring of a field forms a field extension. (Contributed by Thierry Arnoux, 19-Oct-2025.)
𝐺 = (𝐹s 𝐴)    &   (𝜑𝐹 ∈ Field)    &   (𝜑𝐴 ∈ (SubDRing‘𝐹))       (𝜑𝐹/FldExt𝐺)
 
19-Oct-2025qfld 33228 The field of rational numbers is a field. (Contributed by Thierry Arnoux, 19-Oct-2025.)
𝑄 = (ℂflds ℚ)       𝑄 ∈ Field
 
19-Oct-2025chnccats1 32933 Extend a chain with a single element. (Contributed by Thierry Arnoux, 19-Oct-2025.)
(𝜑𝑋𝐴)    &   (𝜑𝑇 ∈ ( < Chain𝐴))    &   (𝜑 → (𝑇 = ∅ ∨ (lastS‘𝑇) < 𝑋))       (𝜑 → (𝑇 ++ ⟨“𝑋”⟩) ∈ ( < Chain𝐴))
 
19-Oct-2025s1chn 32928 A singleton word is always a chain. (Contributed by Thierry Arnoux, 19-Oct-2025.)
(𝜑𝑋𝐴)       (𝜑 → ⟨“𝑋”⟩ ∈ ( < Chain𝐴))
 
19-Oct-20252exple2exp 32761 If a nonnegative integer 𝑋 is a multiple of a power of two, but less than the next power of two, it is itself a power of two. (Contributed by Thierry Arnoux, 19-Oct-2025.)
(𝜑𝑋 ∈ ℕ)    &   (𝜑𝐾 ∈ ℕ0)    &   (𝜑 → (2↑𝐾) ∥ 𝑋)    &   (𝜑𝑋 ≤ (2↑(𝐾 + 1)))       (𝜑 → ∃𝑛 ∈ ℕ0 𝑋 = (2↑𝑛))
 
19-Oct-2025elfzodif0 32708 If an integer 𝑀 is in an open interval starting at 0, except 0, then (𝑀 − 1) is also in that interval. (Contributed by Thierry Arnoux, 19-Oct-2025.)
(𝜑𝑀 ∈ ((0..^𝑁) ∖ {0}))    &   (𝜑𝑁 ∈ ℕ0)       (𝜑 → (𝑀 − 1) ∈ (0..^𝑁))
 
19-Oct-2025syl22anbrc 32370 Syllogism inference. (Contributed by Thierry Arnoux, 19-Oct-2025.)
(𝜑𝜓)    &   (𝜑𝜒)    &   (𝜑𝜃)    &   (𝜑𝜏)    &   (𝜂 ↔ ((𝜓𝜒) ∧ (𝜃𝜏)))       (𝜑𝜂)
 
18-Oct-2025dftermc2 49266 Alternate definition of TermCat. See also df-termc 49220 and dftermc3 49277. (Contributed by Zhi Wang, 18-Oct-2025.)
TermCat = {𝑐 ∣ ∀𝑑 ∈ Cat ∃!𝑓 𝑓 ∈ (𝑑 Func 𝑐)}
 
18-Oct-2025termc 49265 Alternate definition of TermCat. See also df-termc 49220. (Contributed by Zhi Wang, 18-Oct-2025.)
(𝐶 ∈ TermCat ↔ ∀𝑑 ∈ Cat ∃!𝑓 𝑓 ∈ (𝑑 Func 𝐶))
 
18-Oct-2025termcterm3 49261 In the category of small categories, a terminal object is equivalent to a terminal category. (Contributed by Zhi Wang, 18-Oct-2025.)
𝐸 = (CatCat‘𝑈)    &   (𝜑𝑈𝑉)    &   (𝜑𝐶𝑈)    &   (𝜑 → (SetCat‘1o) ∈ 𝑈)       (𝜑 → (𝐶 ∈ TermCat ↔ 𝐶 ∈ (TermO‘𝐸)))
 
18-Oct-2025setc1oterm 49237 The category (SetCat‘1o), i.e., the trivial category, is terminal. (Contributed by Zhi Wang, 18-Oct-2025.)
(SetCat‘1o) ∈ TermCat
 
18-Oct-2025setcsnterm 49236 The category of one set, either a singleton set or an empty set, is terminal. (Contributed by Zhi Wang, 18-Oct-2025.)
(SetCat‘{{𝐴}}) ∈ TermCat
 
18-Oct-2025thincciso4 49206 Two isomorphic categories are either both thin or neither. Note that "thincciso2.u" is redundant thanks to elbasfv 17221. (Contributed by Zhi Wang, 18-Oct-2025.)
𝐶 = (CatCat‘𝑈)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑈𝑉)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝑋( ≃𝑐𝐶)𝑌)       (𝜑 → (𝑋 ∈ ThinCat ↔ 𝑌 ∈ ThinCat))
 
18-Oct-2025thincciso3 49205 Categories isomorphic to a thin category are thin. Example 3.26(2) of [Adamek] p. 33. Note that "thincciso2.u" is redundant thanks to elbasfv 17221. (Contributed by Zhi Wang, 18-Oct-2025.)
𝐶 = (CatCat‘𝑈)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑈𝑉)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   𝐼 = (Iso‘𝐶)    &   (𝜑𝐹 ∈ (𝑋𝐼𝑌))    &   (𝜑𝑋 ∈ ThinCat)       (𝜑𝑌 ∈ ThinCat)
 
18-Oct-2025thincciso2 49204 Categories isomorphic to a thin category are thin. Example 3.26(2) of [Adamek] p. 33. Note that "thincciso2.u" is redundant thanks to elbasfv 17221. (Contributed by Zhi Wang, 18-Oct-2025.)
𝐶 = (CatCat‘𝑈)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑈𝑉)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   𝐼 = (Iso‘𝐶)    &   (𝜑𝐹 ∈ (𝑋𝐼𝑌))    &   (𝜑𝑌 ∈ ThinCat)       (𝜑𝑋 ∈ ThinCat)
 
17-Oct-2025termcterm 49259 A terminal category is a terminal object of the category of small categories. (Contributed by Zhi Wang, 17-Oct-2025.)
𝐸 = (CatCat‘𝑈)    &   (𝜑𝑈𝑉)    &   (𝜑𝐶𝑈)    &   (𝜑𝐶 ∈ TermCat)       (𝜑𝐶 ∈ (TermO‘𝐸))
 
17-Oct-2025fulltermc 49257 A functor to a terminal category is full iff all hom-sets of the source category are non-empty. (Contributed by Zhi Wang, 17-Oct-2025.)
𝐵 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &   (𝜑𝐷 ∈ TermCat)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)       (𝜑 → (𝐹(𝐶 Full 𝐷)𝐺 ↔ ∀𝑥𝐵𝑦𝐵 ¬ (𝑥𝐻𝑦) = ∅))
 
17-Oct-2025functermceu 49256 There exists a unique functor to a terminal category. (Contributed by Zhi Wang, 17-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ TermCat)       (𝜑 → ∃!𝑓 𝑓 ∈ (𝐶 Func 𝐷))
 
17-Oct-2025functermc2 49255 Functor to a terminal category. (Contributed by Zhi Wang, 17-Oct-2025.)
(𝜑𝐷 ∈ Cat)    &   (𝜑𝐸 ∈ TermCat)    &   𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝐹 = (𝐵 × 𝐶)    &   𝐺 = (𝑥𝐵, 𝑦𝐵 ↦ ((𝑥𝐻𝑦) × ((𝐹𝑥)𝐽(𝐹𝑦))))       (𝜑 → (𝐷 Func 𝐸) = {⟨𝐹, 𝐺⟩})
 
17-Oct-2025functermc 49254 Functor to a terminal category. (Contributed by Zhi Wang, 17-Oct-2025.)
(𝜑𝐷 ∈ Cat)    &   (𝜑𝐸 ∈ TermCat)    &   𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝐹 = (𝐵 × 𝐶)    &   𝐺 = (𝑥𝐵, 𝑦𝐵 ↦ ((𝑥𝐻𝑦) × ((𝐹𝑥)𝐽(𝐹𝑦))))       (𝜑 → (𝐾(𝐷 Func 𝐸)𝐿 ↔ (𝐾 = 𝐹𝐿 = 𝐺)))
 
17-Oct-2025functermclem 49253 Lemma for functermc 49254. (Contributed by Zhi Wang, 17-Oct-2025.)
((𝜑𝐾𝑅𝐿) → 𝐾 = 𝐹)    &   (𝜑 → (𝐹𝑅𝐿𝐿 = 𝐺))       (𝜑 → (𝐾𝑅𝐿 ↔ (𝐾 = 𝐹𝐿 = 𝐺)))
 
17-Oct-2025termchomn0 49230 All hom-sets of a terminal category are non-empty. (Contributed by Zhi Wang, 17-Oct-2025.)
(𝜑𝐶 ∈ TermCat)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   𝐻 = (Hom ‘𝐶)       (𝜑 → ¬ (𝑋𝐻𝑌) = ∅)
 
17-Oct-2025diag1 49078 The constant functor of 𝑋. (Contributed by Zhi Wang, 17-Oct-2025.)
𝐿 = (𝐶Δfunc𝐷)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝐴 = (Base‘𝐶)    &   (𝜑𝑋𝐴)    &   𝐾 = ((1st𝐿)‘𝑋)    &   𝐵 = (Base‘𝐷)    &   𝐽 = (Hom ‘𝐷)    &    1 = (Id‘𝐶)       (𝜑𝐾 = ⟨(𝑦𝐵𝑋), (𝑦𝐵, 𝑧𝐵 ↦ (𝑓 ∈ (𝑦𝐽𝑧) ↦ ( 1𝑋)))⟩)
 
17-Oct-20250func 48945 The functor from the empty category. (Contributed by Zhi Wang, 7-Oct-2025.) (Proof shortened by Zhi Wang, 17-Oct-2025.)
(𝜑𝐶 ∈ Cat)       (𝜑 → (∅ Func 𝐶) = {⟨∅, ∅⟩})
 
17-Oct-20250funcg 48943 The functor from the empty category. Corollary of Definition 3.47 of [Adamek] p. 40, Definition 7.1 of [Adamek] p. 101, Example 3.3(4.c) of [Adamek] p. 24, and Example 7.2(3) of [Adamek] p. 101. (Contributed by Zhi Wang, 17-Oct-2025.)
(𝜑𝐶𝑉)    &   (𝜑 → ∅ = (Base‘𝐶))    &   (𝜑𝐷 ∈ Cat)       (𝜑 → (𝐶 Func 𝐷) = {⟨∅, ∅⟩})
 
17-Oct-20250funcg2 48942 The functor from the empty category. (Contributed by Zhi Wang, 17-Oct-2025.)
(𝜑𝐶𝑉)    &   (𝜑 → ∅ = (Base‘𝐶))    &   (𝜑𝐷 ∈ Cat)       (𝜑 → (𝐹(𝐶 Func 𝐷)𝐺 ↔ (𝐹 = ∅ ∧ 𝐺 = ∅)))
 
17-Oct-20250funcglem 48941 Lemma for 0funcg 48943. (Contributed by Zhi Wang, 17-Oct-2025.)
(𝜑 → (𝜓 ↔ (𝜒𝜃𝜏)))    &   (𝜑 → (𝜒𝜂))    &   (𝜑 → (𝜃𝜁))    &   (𝜑𝜏)       (𝜑 → (𝜓 ↔ (𝜂𝜁)))
 
16-Oct-2025oppcterm 49252 The opposite category of a terminal category is a terminal category. (Contributed by Zhi Wang, 16-Oct-2025.)
𝑂 = (oppCat‘𝐶)    &   (𝜑𝐶 ∈ TermCat)       (𝜑𝑂 ∈ TermCat)
 
16-Oct-2025oppctermco 49251 The opposite category of a terminal category has the same base, hom-sets and composition operation as the original category. Note that 𝐶 = 𝑂 cannot be proved because 𝐶 might not even be a function. For example, let 𝐶 be ({⟨(Base‘ndx), {∅}⟩, ⟨(Hom ‘ndx), ((V × V) × {{∅}})⟩} ∪ {⟨(comp‘ndx), {∅}⟩, ⟨(comp‘ndx), 2o⟩}); it should be a terminal category, but the opposite category is not itself. See the definitions df-oppc 17711 and df-sets 17170. (Contributed by Zhi Wang, 16-Oct-2025.)
𝑂 = (oppCat‘𝐶)    &   (𝜑𝐶 ∈ TermCat)       (𝜑 → (compf𝐶) = (compf𝑂))
 
16-Oct-2025oppctermhom 49250 The opposite category of a terminal category has the same base and hom-sets as the original category. (Contributed by Zhi Wang, 16-Oct-2025.)
𝑂 = (oppCat‘𝐶)    &   (𝜑𝐶 ∈ TermCat)       (𝜑 → (Homf𝐶) = (Homf𝑂))
 
16-Oct-2025termcpropd 49249 Two structures with the same base, hom-sets and composition operation are either both terminal categories or neither. (Contributed by Zhi Wang, 16-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))    &   (𝜑𝐶𝑉)    &   (𝜑𝐷𝑊)       (𝜑 → (𝐶 ∈ TermCat ↔ 𝐷 ∈ TermCat))
 
16-Oct-2025termcid2 49233 The morphism of a terminal category is an identity morphism. (Contributed by Zhi Wang, 16-Oct-2025.)
(𝜑𝐶 ∈ TermCat)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   𝐻 = (Hom ‘𝐶)    &   (𝜑𝐹 ∈ (𝑋𝐻𝑌))    &    1 = (Id‘𝐶)       (𝜑𝐹 = ( 1𝑌))
 
16-Oct-2025termcid 49232 The morphism of a terminal category is an identity morphism. (Contributed by Zhi Wang, 16-Oct-2025.)
(𝜑𝐶 ∈ TermCat)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   𝐻 = (Hom ‘𝐶)    &   (𝜑𝐹 ∈ (𝑋𝐻𝑌))    &    1 = (Id‘𝐶)       (𝜑𝐹 = ( 1𝑋))
 
16-Oct-2025termchommo 49231 All morphisms of a terminal category are identical. (Contributed by Zhi Wang, 16-Oct-2025.)
(𝜑𝐶 ∈ TermCat)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   𝐻 = (Hom ‘𝐶)    &   (𝜑𝐹 ∈ (𝑋𝐻𝑌))    &   (𝜑𝑍𝐵)    &   (𝜑𝑊𝐵)    &   (𝜑𝐺 ∈ (𝑍𝐻𝑊))       (𝜑𝐹 = 𝐺)
 
16-Oct-2025termcbasmo 49229 Two objects in a terminal category are identical. (Contributed by Zhi Wang, 16-Oct-2025.)
(𝜑𝐶 ∈ TermCat)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)       (𝜑𝑋 = 𝑌)
 
16-Oct-2025termcbas 49227 The base of a terminal category is a singleton. (Contributed by Zhi Wang, 16-Oct-2025.)
(𝜑𝐶 ∈ TermCat)    &   𝐵 = (Base‘𝐶)       (𝜑 → ∃𝑥 𝐵 = {𝑥})
 
16-Oct-2025termccd 49226 A terminal category is a category (deduction form). (Contributed by Zhi Wang, 16-Oct-2025.)
(𝜑𝐶 ∈ TermCat)       (𝜑𝐶 ∈ Cat)
 
16-Oct-2025termcthind 49225 A terminal category is a thin category (deduction form). (Contributed by Zhi Wang, 16-Oct-2025.)
(𝜑𝐶 ∈ TermCat)       (𝜑𝐶 ∈ ThinCat)
 
16-Oct-2025termcthin 49224 A terminal category is a thin category. (Contributed by Zhi Wang, 16-Oct-2025.)
(𝐶 ∈ TermCat → 𝐶 ∈ ThinCat)
 
16-Oct-2025istermc3 49223 The predicate "is a terminal category". A terminal category is a thin category whose base set is equinumerous to 1o. Consider en1b 9034, map1 9049, and euen1b 9037. (Contributed by Zhi Wang, 16-Oct-2025.)
𝐵 = (Base‘𝐶)       (𝐶 ∈ TermCat ↔ (𝐶 ∈ ThinCat ∧ 𝐵 ≈ 1o))
 
16-Oct-2025istermc2 49222 The predicate "is a terminal category". A terminal category is a thin category with exactly one object. (Contributed by Zhi Wang, 16-Oct-2025.)
𝐵 = (Base‘𝐶)       (𝐶 ∈ TermCat ↔ (𝐶 ∈ ThinCat ∧ ∃!𝑥 𝑥𝐵))
 
16-Oct-2025istermc 49221 The predicate "is a terminal category". A terminal category is a thin category with a singleton base set. (Contributed by Zhi Wang, 16-Oct-2025.)
𝐵 = (Base‘𝐶)       (𝐶 ∈ TermCat ↔ (𝐶 ∈ ThinCat ∧ ∃𝑥 𝐵 = {𝑥}))
 
16-Oct-2025df-termc 49220 Definition of the proper class (termcnex 49314) of terminal categories, or final categories, i.e., categories with exactly one object and exactly one morphism, the latter of which is an identity morphism (termcid 49232). These are exactly the thin categories with a singleton base set. Example 3.3(4.c) of [Adamek] p. 24.

As the name indicates, TermCat is the class of all terminal objects in the category of small categories (termcterm3 49261). TermCat is also the class of categories to which all categories have exactly one functor (dftermc2 49266). See also dftermc3 49277 where TermCat is defined as categories with exactly one disjointified arrow.

Unlike https://ncatlab.org/nlab/show/terminal+category 49277, we reserve the term "trivial category" for (SetCat‘1o), justified by setc1oterm 49237.

Followed directly from the definition, terminal categories are thin (termcthin 49224). The opposite category of a terminal category is "almost" itself (oppctermco 49251). Any category 𝐶 is isomorphic to the category of functors from a terminal category to the category 𝐶 (diagcic 49286).

Having defined the terminal category, we can then use it to define the universal property of initial (dfinito4 49247) and terminal objects (dftermo4 49248). The universal properties provide an alternate proof of initoeu1 18011, termoeu1 18018, initoeu2 18016, and termoeu2 49018. Since terminal categories are terminal objects, all terminal categories are mutually isomorphic (termcciso 49262).

The dual concept is the initial category, or the empty category (Example 7.2(3) of [Adamek] p. 101). See 0catg 17687, 0thincg 49207, and 0funcg 48943.

(Contributed by Zhi Wang, 16-Oct-2025.)

TermCat = {𝑐 ∈ ThinCat ∣ ∃𝑥(Base‘𝑐) = {𝑥}}
 
16-Oct-2025functhincfun 49198 A functor to a thin category is determined entirely by the object part. (Contributed by Zhi Wang, 16-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ ThinCat)       (𝜑 → Fun (𝐶 Func 𝐷))
 
16-Oct-2025thincpropd 49191 Two structures with the same base, hom-sets and composition operation are either both thin categories or neither. (Contributed by Zhi Wang, 16-Oct-2025.)
(𝜑 → (Homf𝐶) = (Homf𝐷))    &   (𝜑 → (compf𝐶) = (compf𝐷))    &   (𝜑𝐶𝑉)    &   (𝜑𝐷𝑊)       (𝜑 → (𝐶 ∈ ThinCat ↔ 𝐷 ∈ ThinCat))
 
16-Oct-2025oppcthinendcALT 49190 Alternate proof of oppcthinendc 49189. (Contributed by Zhi Wang, 16-Oct-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
𝑂 = (oppCat‘𝐶)    &   (𝜑𝐶 ∈ ThinCat)    &   𝐵 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &   ((𝜑 ∧ (𝑥𝐵𝑦𝐵)) → (𝑥𝑦 → (𝑥𝐻𝑦) = ∅))       (𝜑 → (compf𝐶) = (compf𝑂))
 
16-Oct-2025oppcthinendc 49189 The opposite category of a thin category whose morphisms are all endomorphisms has the same base, hom-sets (oppcendc 48887) and composition operation as the original category. (Contributed by Zhi Wang, 16-Oct-2025.)
𝑂 = (oppCat‘𝐶)    &   (𝜑𝐶 ∈ ThinCat)    &   𝐵 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &   ((𝜑 ∧ (𝑥𝐵𝑦𝐵)) → (𝑥𝑦 → (𝑥𝐻𝑦) = ∅))       (𝜑 → (compf𝐶) = (compf𝑂))
 
16-Oct-2025oppcthinco 49188 If the opposite category of a thin category has the same base and hom-sets as the original category, then it has the same composition operation as the original category. (Contributed by Zhi Wang, 16-Oct-2025.)
𝑂 = (oppCat‘𝐶)    &   (𝜑𝐶 ∈ ThinCat)    &   (𝜑 → (Homf𝐶) = (Homf𝑂))       (𝜑 → (compf𝐶) = (compf𝑂))
 
16-Oct-2025reldmup2 48982 The domain of (𝐷UP𝐸) is a relation. (Contributed by Zhi Wang, 16-Oct-2025.)
Rel dom (𝐷UP𝐸)
 
16-Oct-2025oppcmndc 48888 The opposite category of a category whose base set is a singleton or an empty set has the same base and hom-sets as the original category. (Contributed by Zhi Wang, 16-Oct-2025.)
𝑂 = (oppCat‘𝐶)    &   𝐵 = (Base‘𝐶)    &   (𝜑𝐵 = {𝑋})       (𝜑 → (Homf𝐶) = (Homf𝑂))
 
16-Oct-2025oppcendc 48887 The opposite category of a category whose morphisms are all endomorphisms has the same base and hom-sets as the original category. (Contributed by Zhi Wang, 16-Oct-2025.)
𝑂 = (oppCat‘𝐶)    &   𝐵 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &   ((𝜑 ∧ (𝑥𝐵𝑦𝐵)) → (𝑥𝑦 → (𝑥𝐻𝑦) = ∅))       (𝜑 → (Homf𝐶) = (Homf𝑂))
 
16-Oct-2025oppcmndclem 48886 Lemma for oppcmndc 48888. Everything is true for two distinct elements in a singleton or an empty set (since it is impossible). Note that if this theorem and oppcendc 48887 are in ¬ 𝑥 = 𝑦 form, then both proofs should be one step shorter. (Contributed by Zhi Wang, 16-Oct-2025.)
(𝜑𝐵 = {𝐴})       ((𝜑 ∧ (𝑋𝐵𝑌𝐵)) → (𝑋𝑌𝜓))
 
16-Oct-2025psdmvr 22094 The partial derivative of a variable is the Kronecker delta if(𝑋 = 𝑌, 1 , 0 ). (Contributed by SN, 16-Oct-2025.)
𝑆 = (𝐼 mPwSer 𝑅)    &    0 = (0g𝑆)    &    1 = (1r𝑆)    &   𝑉 = (𝐼 mVar 𝑅)    &   (𝜑𝐼𝑊)    &   (𝜑𝑅 ∈ Ring)    &   (𝜑𝑋𝐼)    &   (𝜑𝑌𝐼)       (𝜑 → (((𝐼 mPSDer 𝑅)‘𝑋)‘(𝑉𝑌)) = if(𝑋 = 𝑌, 1 , 0 ))
 
16-Oct-2025ringidcld 20213 The unity element of a ring belongs to the base set of the ring, deduction version. (Contributed by SN, 16-Oct-2025.)
𝐵 = (Base‘𝑅)    &    1 = (1r𝑅)    &   (𝜑𝑅 ∈ Ring)       (𝜑1𝐵)
 
16-Oct-2025caofidlcan 7704 Transfer a cancellation/identity law to the function operation. (Contributed by SN, 16-Oct-2025.)
(𝜑𝐴𝑉)    &   (𝜑𝐹:𝐴𝑆)    &   (𝜑𝐺:𝐴𝑆)    &   ((𝜑 ∧ (𝑥𝑆𝑦𝑆)) → ((𝑥𝑅𝑦) = 𝑦𝑥 = 0 ))       (𝜑 → ((𝐹f 𝑅𝐺) = 𝐺𝐹 = (𝐴 × { 0 })))
 
16-Oct-2025ifmpt2v 7504 Move a conditional inside and outside a function in maps-to notation. (Contributed by SN, 16-Oct-2025.)
(𝑥𝐴 ↦ if(𝜑, 𝐵, 𝐶)) = if(𝜑, (𝑥𝐴𝐵), (𝑥𝐴𝐶))
 
16-Oct-2025iftrueb 4511 When the branches are not equal, an "if" condition results in the first branch if and only if its condition is true. (Contributed by SN, 16-Oct-2025.)
(𝐴𝐵 → (if(𝜑, 𝐴, 𝐵) = 𝐴𝜑))
 
15-Oct-2025elxpcbasex2 49030 A non-empty base set of the product category indicates the existence of the second factor of the product category. (Contributed by Zhi Wang, 8-Oct-2025.) (Proof shortened by SN, 15-Oct-2025.)
𝑇 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑇)    &   (𝜑𝑋𝐵)       (𝜑𝐷 ∈ V)
 
15-Oct-2025elxpcbasex1 49028 A non-empty base set of the product category indicates the existence of the first factor of the product category. (Contributed by Zhi Wang, 8-Oct-2025.) (Proof shortened by SN, 15-Oct-2025.)
𝑇 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑇)    &   (𝜑𝑋𝐵)       (𝜑𝐶 ∈ V)
 
15-Oct-2025reldmxpcALT 49027 Alternate proof of reldmxpc 49026. (Contributed by Zhi Wang, 15-Oct-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
Rel dom ×c
 
15-Oct-2025reldmxpc 49026 The binary product of categories is a proper operator, so it can be used with ovprc1 7439, elbasov 17222, strov2rcl 17223, and so on. See reldmxpcALT 49027 for an alternate proof with less "essential steps" but more "bytes". (Proposed by SN, 15-Oct-2025.) (Contributed by Zhi Wang, 15-Oct-2025.)
Rel dom ×c
 
14-Oct-2025exbiii 42190 Inference associated with exbii 1847. Weaker version of eximii 1836. (Contributed by SN, 14-Oct-2025.)
𝑥𝜑    &   (𝜑𝜓)       𝑥𝜓
 
14-Oct-2025jarrii 42185 Inference associated with jarri 107. A consequence of ax-mp 5 and ax-1 6. (Contributed by SN, 14-Oct-2025.)
𝜓    &   ((𝜑𝜓) → 𝜒)       𝜒
 
14-Oct-2025rexss 4032 Restricted existential quantification on a subset in terms of superset. (Contributed by Stefan O'Rear, 3-Apr-2015.) Avoid axioms. (Revised by SN, 14-Oct-2025.)
(𝐴𝐵 → (∃𝑥𝐴 𝜑 ↔ ∃𝑥𝐵 (𝑥𝐴𝜑)))
 
14-Oct-2025ralss 4031 Restricted universal quantification on a subset in terms of superset. (Contributed by Stefan O'Rear, 3-Apr-2015.) Avoid axioms. (Revised by SN, 14-Oct-2025.)
(𝐴𝐵 → (∀𝑥𝐴 𝜑 ↔ ∀𝑥𝐵 (𝑥𝐴𝜑)))
 
13-Oct-2025wl-cleq-6 37448
Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong. This text should be read as an exploration rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Eliminability of Classes

One requirement of Zermelo-Fraenkel set theory (ZF) is that it can be formulated entirely without referring to classes. Since set.mm implements ZF, it must therefore be possible to eliminate all classes from its formalization.

Eliminating Variables of Propositional Logic

Classical propositional logic concerns statements that are either true or false. For example, "A minute has 60 seconds" is such a statement, as is "English is not a language". Our development of propositional logic applies to all such statements, regardless of their subject matter. Any particular topic, or universe of discourse is encompassed by the general theorems of propositional logic.

In ZF, however, the objects of study are sets - mathematical entities. The flexibility of propsitional variables is not required here. Instead, ZF introduces two primitive connectives between sets: 𝑥 = 𝑦 and 𝑥𝑦. ZF is concerned only with logical schemata constructed solely from these primitives. Thus, before we can eliminate classes, we must first eliminate propositional variables like 𝜑 and 𝜓. We will describe this process constructively.

We begin by restricting ourselves to propositional schemata that consist only of the primitives of ZF, without any propositional variables. Extending this step to first-order Logic (FOL) - by introducing quantifiers - yields the fundamental predicates of ZF, that is, the basic formulas expressible within it.

For convenience, we may again allow propositional variables, but under the strict assumption that they always represent fundamental predicates of ZF.

Predicates of level 0 are exactly of this kind: no classes occurs in them, and they can be reduced directly to fundamental predicates in ZF.

Introducing eliminable classes

The following construction is inspired by a paragraph in Azriel Levy's "Basic set theory" concerning eliminable classes.

A class can only occur in combination with one of the operators = or . This applies in particular to class abstractions, which are the only kind of classes permtted in this step of extending level-0 predicates in ZF. The definitions df-cleq 2726 and df-clel 2808 show that equality and membership ultimately reduce to expressions of the form 𝑥𝐴. For a class abstraction {𝑦𝜑}, the resulting term amounts to [𝑥 / 𝑦]𝜑. If 𝜑 is a level-0 predicate, then this too is a level-0 expression - fully compatible with ZF.

A level-1 class abstraction is a class {𝑦𝜑} where 𝜑 is a level-0 predicate. A level-1 class abstraction can occur in an equality or membership relation with another level-1 class abstractions or a set variable, and such terms reduce to fundamental predicates. Predicates of either level-0, or containing level-1 class abstractions are called level-1 predicates. After eliminating all level-1 abstractions from such a predicate a level-0 expression is the result.

Analoguously, we can define level-2 class abstractions, where the predicate 𝜑 in {𝑦𝜑} is a level-1 predicate. Again, 𝑥 ∈ {𝑦𝜑} reduces to a level-1 expression, which in turn can be reduced to a level-0 one. By similar reasoning, equality and membership between at most level-2 class abstractions also reduce to level-0 expressions. A predicate containing at most level-2 class abstractions is called a level-2 predicate.

This iterative construction process can be continued to define a predicate of any level. They can be reduced to fundamental predicates in ZF.

Introducing eliminable class variables

We have seen that propositional variables must be restricted to representing only primitive connectives to maintain compatibility with ZF. Similarly, class variables can be restricted to representing class abstractions of finite level. Such class variables are eliminable, and even definitions like df-un 3929 (𝐴𝐵) introduce no difficulty, since the resulting union remains of finite level.

Limitations of eliminable class variables

Where does this construction reach its limits?

1. Infinite constructions. Suppose we wish to add up an infinite series of real numbers, where each term defines its successor using a class abstraction one level higher than that of the previous term. Such a summation introduces terms of arbitrary high level. While each individual term remains reducable in ZF, the infinite sum expression may not be reducable without special care.

2. Class builders. Every class builder other than cv 1538 must be a definition, making its elimination straightforward. The class abstraction df-clab 2713 described above is a special case.

Since set variables themselves can be expressed as class abstractions - namely 𝑥 = {𝑦𝑦𝑥} (see cvjust 2728) - this formulation does not conflict with the use of class builder cv 1538.

The above conditions apply only to substitution. The expression 𝐴 = {𝑥𝑥𝐴} (abid1 2870) is a valid and provable equation, and it should not be interpreted as an assignment that binds a particular instance to 𝐴.

(Contributed by Wolf Lammen, 13-Oct-2025.)

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
13-Oct-2025fldextrspundgle 33654 Inequality involving the degree of two different field extensions 𝐼 and 𝐽 of a same field 𝐹. Part of the proof of Proposition 5, Chapter 5, of [BourbakiAlg2] p. 116. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐾 = (𝐿s 𝐹)    &   𝐼 = (𝐿s 𝐺)    &   𝐽 = (𝐿s 𝐻)    &   (𝜑𝐿 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐼))    &   (𝜑𝐹 ∈ (SubDRing‘𝐽))    &   (𝜑𝐺 ∈ (SubDRing‘𝐿))    &   (𝜑𝐻 ∈ (SubDRing‘𝐿))    &   (𝜑 → (𝐽[:]𝐾) ∈ ℕ0)    &   𝐸 = (𝐿s (𝐿 fldGen (𝐺𝐻)))       (𝜑 → (𝐸[:]𝐼) ≤ (𝐽[:]𝐾))
 
13-Oct-2025fldextrspunlem2 33653 Part of the proof of Proposition 5, Chapter 5, of [BourbakiAlg2] p. 116. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐾 = (𝐿s 𝐹)    &   𝐼 = (𝐿s 𝐺)    &   𝐽 = (𝐿s 𝐻)    &   (𝜑𝐿 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐼))    &   (𝜑𝐹 ∈ (SubDRing‘𝐽))    &   (𝜑𝐺 ∈ (SubDRing‘𝐿))    &   (𝜑𝐻 ∈ (SubDRing‘𝐿))    &   (𝜑 → (𝐽[:]𝐾) ∈ ℕ0)    &   𝑁 = (RingSpan‘𝐿)    &   𝐶 = (𝑁‘(𝐺𝐻))    &   𝐸 = (𝐿s 𝐶)       (𝜑𝐶 = (𝐿 fldGen (𝐺𝐻)))
 
13-Oct-2025fldextrspunfld 33652 The ring generated by the union of two field extensions is a field. Part of the proof of Proposition 5, Chapter 5, of [BourbakiAlg2] p. 116. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐾 = (𝐿s 𝐹)    &   𝐼 = (𝐿s 𝐺)    &   𝐽 = (𝐿s 𝐻)    &   (𝜑𝐿 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐼))    &   (𝜑𝐹 ∈ (SubDRing‘𝐽))    &   (𝜑𝐺 ∈ (SubDRing‘𝐿))    &   (𝜑𝐻 ∈ (SubDRing‘𝐿))    &   (𝜑 → (𝐽[:]𝐾) ∈ ℕ0)    &   𝑁 = (RingSpan‘𝐿)    &   𝐶 = (𝑁‘(𝐺𝐻))    &   𝐸 = (𝐿s 𝐶)       (𝜑𝐸 ∈ Field)
 
13-Oct-2025fldextrspunlem1 33651 Lemma for fldextrspunfld 33652. Part of the proof of Proposition 5, Chapter 5, of [BourbakiAlg2] p. 116. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐾 = (𝐿s 𝐹)    &   𝐼 = (𝐿s 𝐺)    &   𝐽 = (𝐿s 𝐻)    &   (𝜑𝐿 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐼))    &   (𝜑𝐹 ∈ (SubDRing‘𝐽))    &   (𝜑𝐺 ∈ (SubDRing‘𝐿))    &   (𝜑𝐻 ∈ (SubDRing‘𝐿))    &   (𝜑 → (𝐽[:]𝐾) ∈ ℕ0)    &   𝑁 = (RingSpan‘𝐿)    &   𝐶 = (𝑁‘(𝐺𝐻))    &   𝐸 = (𝐿s 𝐶)       (𝜑 → (dim‘((subringAlg ‘𝐸)‘𝐺)) ≤ (𝐽[:]𝐾))
 
13-Oct-2025fldextrspunlsp 33650 Lemma for fldextrspunfld 33652. The subring generated by the union of two field extensions 𝐺 and 𝐻 is the vector sub- 𝐺 space generated by a basis 𝐵 of 𝐻. Part of the proof of Proposition 5, Chapter 5, of [BourbakiAlg2] p. 116. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐾 = (𝐿s 𝐹)    &   𝐼 = (𝐿s 𝐺)    &   𝐽 = (𝐿s 𝐻)    &   (𝜑𝐿 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐼))    &   (𝜑𝐹 ∈ (SubDRing‘𝐽))    &   (𝜑𝐺 ∈ (SubDRing‘𝐿))    &   (𝜑𝐻 ∈ (SubDRing‘𝐿))    &   𝑁 = (RingSpan‘𝐿)    &   𝐶 = (𝑁‘(𝐺𝐻))    &   𝐸 = (𝐿s 𝐶)    &   (𝜑𝐵 ∈ (LBasis‘((subringAlg ‘𝐽)‘𝐹)))    &   (𝜑𝐵 ∈ Fin)       (𝜑𝐶 = ((LSpan‘((subringAlg ‘𝐿)‘𝐺))‘𝐵))
 
13-Oct-2025fldextrspunlsplem 33649 Lemma for fldextrspunlsp 33650: First direction. Part of the proof of Proposition 5, Chapter 5, of [BourbakiAlg2] p. 116. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐾 = (𝐿s 𝐹)    &   𝐼 = (𝐿s 𝐺)    &   𝐽 = (𝐿s 𝐻)    &   (𝜑𝐿 ∈ Field)    &   (𝜑𝐹 ∈ (SubDRing‘𝐼))    &   (𝜑𝐹 ∈ (SubDRing‘𝐽))    &   (𝜑𝐺 ∈ (SubDRing‘𝐿))    &   (𝜑𝐻 ∈ (SubDRing‘𝐿))    &   𝑁 = (RingSpan‘𝐿)    &   𝐶 = (𝑁‘(𝐺𝐻))    &   𝐸 = (𝐿s 𝐶)    &   (𝜑𝐵 ∈ (LBasis‘((subringAlg ‘𝐽)‘𝐹)))    &   (𝜑𝐵 ∈ Fin)    &   (𝜑𝑃:𝐻𝐺)    &   (𝜑𝑃 finSupp (0g𝐿))    &   (𝜑𝑋 = (𝐿 Σg (𝑓𝐻 ↦ ((𝑃𝑓)(.r𝐿)𝑓))))       (𝜑 → ∃𝑎 ∈ (𝐺m 𝐵)(𝑎 finSupp (0g𝐿) ∧ 𝑋 = (𝐿 Σg (𝑏𝐵 ↦ ((𝑎𝑏)(.r𝐿)𝑏)))))
 
13-Oct-2025lbslelsp 33572 The size of a basis 𝑋 of a vector space 𝑊 is less than the size of a generating set 𝑌. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐵 = (Base‘𝑊)    &   𝐽 = (LBasis‘𝑊)    &   𝐾 = (LSpan‘𝑊)    &   (𝜑𝑊 ∈ LVec)    &   (𝜑𝑋𝐽)    &   (𝜑𝑌𝐵)    &   (𝜑 → (𝐾𝑌) = 𝐵)       (𝜑 → (♯‘𝑋) ≤ (♯‘𝑌))
 
13-Oct-2025exsslsb 33571 Any finite generating set 𝑆 of a vector space 𝑊 contains a basis. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐵 = (Base‘𝑊)    &   𝐽 = (LBasis‘𝑊)    &   𝐾 = (LSpan‘𝑊)    &   (𝜑𝑊 ∈ LVec)    &   (𝜑𝑆 ∈ Fin)    &   (𝜑𝑆𝐵)    &   (𝜑 → (𝐾𝑆) = 𝐵)       (𝜑 → ∃𝑠𝐽 𝑠𝑆)
 
13-Oct-2025sraidom 33558 Condition for a subring algebra to be an integral domain. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐴 = ((subringAlg ‘𝑅)‘𝑉)    &   𝐵 = (Base‘𝑅)    &   (𝜑𝑅 ∈ IDomn)    &   (𝜑𝑉𝐵)       (𝜑𝐴 ∈ IDomn)
 
13-Oct-2025idompropd 33209 If two structures have the same components (properties), one is a integral domain iff the other one is. See also domnpropd 33208. (Contributed by Thierry Arnoux, 13-Oct-2025.)
(𝜑𝐵 = (Base‘𝐾))    &   (𝜑𝐵 = (Base‘𝐿))    &   ((𝜑 ∧ (𝑥𝐵𝑦𝐵)) → (𝑥(+g𝐾)𝑦) = (𝑥(+g𝐿)𝑦))    &   ((𝜑 ∧ (𝑥𝐵𝑦𝐵)) → (𝑥(.r𝐾)𝑦) = (𝑥(.r𝐿)𝑦))       (𝜑 → (𝐾 ∈ IDomn ↔ 𝐿 ∈ IDomn))
 
13-Oct-2025domnpropd 33208 If two structures have the same components (properties), one is a domain iff the other one is. (Contributed by Thierry Arnoux, 13-Oct-2025.)
(𝜑𝐵 = (Base‘𝐾))    &   (𝜑𝐵 = (Base‘𝐿))    &   ((𝜑 ∧ (𝑥𝐵𝑦𝐵)) → (𝑥(+g𝐾)𝑦) = (𝑥(+g𝐿)𝑦))    &   ((𝜑 ∧ (𝑥𝐵𝑦𝐵)) → (𝑥(.r𝐾)𝑦) = (𝑥(.r𝐿)𝑦))       (𝜑 → (𝐾 ∈ Domn ↔ 𝐿 ∈ Domn))
 
13-Oct-2025elrgspnsubrun 33181 Membership in the ring span of the union of two subrings of a commutative ring. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐵 = (Base‘𝑅)    &    · = (.r𝑅)    &    0 = (0g𝑅)    &   𝑁 = (RingSpan‘𝑅)    &   (𝜑𝑅 ∈ CRing)    &   (𝜑𝐸 ∈ (SubRing‘𝑅))    &   (𝜑𝐹 ∈ (SubRing‘𝑅))       (𝜑 → (𝑋 ∈ (𝑁‘(𝐸𝐹)) ↔ ∃𝑝 ∈ (𝐸m 𝐹)(𝑝 finSupp 0𝑋 = (𝑅 Σg (𝑓𝐹 ↦ ((𝑝𝑓) · 𝑓))))))
 
13-Oct-2025elrgspnsubrunlem2 33180 Lemma for elrgspnsubrun 33181, second direction. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐵 = (Base‘𝑅)    &    · = (.r𝑅)    &    0 = (0g𝑅)    &   𝑁 = (RingSpan‘𝑅)    &   (𝜑𝑅 ∈ CRing)    &   (𝜑𝐸 ∈ (SubRing‘𝑅))    &   (𝜑𝐹 ∈ (SubRing‘𝑅))    &   (𝜑𝑋𝐵)    &   (𝜑𝐺:Word (𝐸𝐹)⟶ℤ)    &   (𝜑𝐺 finSupp 0)    &   (𝜑𝑋 = (𝑅 Σg (𝑤 ∈ Word (𝐸𝐹) ↦ ((𝐺𝑤)(.g𝑅)((mulGrp‘𝑅) Σg 𝑤)))))       (𝜑 → ∃𝑝 ∈ (𝐸m 𝐹)(𝑝 finSupp 0𝑋 = (𝑅 Σg (𝑓𝐹 ↦ ((𝑝𝑓) · 𝑓)))))
 
13-Oct-2025elrgspnsubrunlem1 33179 Lemma for elrgspnsubrun 33181, first direction. (Contributed by Thierry Arnoux, 13-Oct-2025.)
𝐵 = (Base‘𝑅)    &    · = (.r𝑅)    &    0 = (0g𝑅)    &   𝑁 = (RingSpan‘𝑅)    &   (𝜑𝑅 ∈ CRing)    &   (𝜑𝐸 ∈ (SubRing‘𝑅))    &   (𝜑𝐹 ∈ (SubRing‘𝑅))    &   (𝜑𝑃:𝐹𝐸)    &   (𝜑𝑃 finSupp 0 )    &   (𝜑𝑋 = (𝑅 Σg (𝑒𝐹 ↦ ((𝑃𝑒) · 𝑒))))    &   𝑇 = ran (𝑓 ∈ (𝑃 supp 0 ) ↦ ⟨“(𝑃𝑓)𝑓”⟩)       (𝜑𝑋 ∈ (𝑁‘(𝐸𝐹)))
 
13-Oct-2025indsupp 32781 The support of the indicator function. (Contributed by Thierry Arnoux, 13-Oct-2025.)
((𝑂𝑉𝐴𝑂) → (((𝟭‘𝑂)‘𝐴) supp 0) = 𝐴)
 
13-Oct-2025hashpss 32725 The size of a proper subset is less than the size of its finite superset. (Contributed by Thierry Arnoux, 13-Oct-2025.)
((𝐴 ∈ Fin ∧ 𝐵𝐴) → (♯‘𝐵) < (♯‘𝐴))
 
13-Oct-2025elmaprd 32591 Deduction associated with elmapd 8849. Reverse direction of elmapdd 8850. (Contributed by Thierry Arnoux, 13-Oct-2025.)
(𝜑𝐴𝑉)    &   (𝜑𝐵𝑊)    &   (𝜑𝐹 ∈ (𝐵m 𝐴))       (𝜑𝐹:𝐴𝐵)
 
13-Oct-2025ac6mapd 32537 Axiom of choice equivalent, deduction form. (Contributed by Thierry Arnoux, 13-Oct-2025.)
(𝑦 = (𝑓𝑥) → (𝜓𝜒))    &   (𝜑𝐴𝑉)    &   (𝜑𝐵𝑊)    &   ((𝜑𝑥𝐴) → ∃𝑦𝐵 𝜓)       (𝜑 → ∃𝑓 ∈ (𝐵m 𝐴)∀𝑥𝐴 𝜒)
 
13-Oct-2025iunxpssiun1 32483 Provide an upper bound for the indexed union of cartesian products. (Contributed by Thierry Arnoux, 13-Oct-2025.)
((𝜑𝑥𝐴) → 𝐶𝐸)       (𝜑 𝑥𝐴 (𝐵 × 𝐶) ⊆ ( 𝑥𝐴 𝐵 × 𝐸))
 
13-Oct-2025reu6dv 32388 A condition which implies existential uniqueness. (Contributed by Thierry Arnoux, 13-Oct-2025.)
(𝜑𝐵𝐴)    &   ((𝜑𝑥𝐴) → (𝜓𝑥 = 𝐵))       (𝜑 → ∃!𝑥𝐴 𝜓)
 
13-Oct-2025elsnd 4617 There is at most one element in a singleton. (Contributed by Thierry Arnoux, 13-Oct-2025.)
(𝜑𝐴 ∈ {𝐵})       (𝜑𝐴 = 𝐵)
 
12-Oct-2025wl-cleq-2 37444
Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong. This text should be read as an exploration rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Vocabulary

Sentence:
A sentence or closed form theorem is a theorem without any hypothesis, as opposed to the inference form. Although distinct variable conditions can be viewed as a particular kind of hypothesis, in Metamath they are treated as side conditions, and do not affect formal structure of the theorem. Expressions such as 𝑥𝜑 or the distinctor 𝑥(𝑥 = 𝑦) play a similar role, but appear as separate hypotheses, or they can simply serve as the first antecedent in a sentence.

Bound / Free / Dependent:
In formal theories, variables are used to represent objects, allowing for general statements about relations rather than individual cases. In Metamath, for example, mathematical objects are represented by variables of type "setvar".

An occurrence of such a variable in any formula 𝜑 is said to be bound. if 𝜑 quantifies that variable, as in 𝑥𝜑. Variables not bound by a quantifier are called free. Variables of type "class" are always free, since quantifiers do not apply to them.

A free variable often indicates a parameter dependency; however, the formula 𝑥 = 𝑥 shows that this is not necessarily the case. In Metamath, a variable expressing a real dependency is also called "effectively free" (see nfequid 2011, with thanks to SN for pointing out this theorem).

Instance:
A formula of type "class" that is not a mere variable is called an instance of any "class" type variable. An instance may represent a single object, or it may still describe a family of objects, when variables expressing dependencies occur within that formula.

Attribute:
Objects possess properties, some of which may uniquely identify them. In logic, properties are also known as attributes. They are described by formulas depending on a variable, which can then be substituted with a specific object. If the resulting statement is true, that particular attribute is said to apply to the object.

Multiple objects forming an instance may share common attributes. A variable inherits the attributes of the instance it represents.

(Contributed by Wolf Lammen, 12-Oct-2025.)

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
11-Oct-2025precofcl 49144 The pre-composition functor as a transposed curry of the functor composition bifunctor is a functor. (Contributed by Zhi Wang, 11-Oct-2025.)
𝑄 = (𝐶 FuncCat 𝐷)    &   𝑅 = (𝐷 FuncCat 𝐸)    &   (𝜑 = (⟨𝑄, 𝑅⟩ curryF ((⟨𝐶, 𝐷⟩ ∘F 𝐸) ∘func (𝑄swapF𝑅))))    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))    &   (𝜑𝐸 ∈ Cat)    &   (𝜑𝐾 = ((1st )‘𝐹))    &   𝑆 = (𝐶 FuncCat 𝐸)       (𝜑𝐾 ∈ (𝑅 Func 𝑆))
 
11-Oct-2025precofval2 49143 Value of the pre-composition functor as a transposed curry of the functor composition bifunctor. (Contributed by Zhi Wang, 11-Oct-2025.)
𝑄 = (𝐶 FuncCat 𝐷)    &   𝑅 = (𝐷 FuncCat 𝐸)    &   (𝜑 = (⟨𝑄, 𝑅⟩ curryF ((⟨𝐶, 𝐷⟩ ∘F 𝐸) ∘func (𝑄swapF𝑅))))    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))    &   (𝜑𝐸 ∈ Cat)    &   (𝜑𝐾 = ((1st )‘𝐹))       (𝜑𝐾 = ⟨(𝑔 ∈ (𝐷 Func 𝐸) ↦ (𝑔func 𝐹)), (𝑔 ∈ (𝐷 Func 𝐸), ∈ (𝐷 Func 𝐸) ↦ (𝑎 ∈ (𝑔(𝐷 Nat 𝐸)) ↦ (𝑎 ∘ (1st𝐹))))⟩)
 
11-Oct-2025precofvalALT 49142 Alternate proof of precofval 49141. (Contributed by Zhi Wang, 11-Oct-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
𝑄 = (𝐶 FuncCat 𝐷)    &   𝑅 = (𝐷 FuncCat 𝐸)    &   (𝜑 = (⟨𝑄, 𝑅⟩ curryF ((⟨𝐶, 𝐷⟩ ∘F 𝐸) ∘func (𝑄swapF𝑅))))    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))    &   (𝜑𝐸 ∈ Cat)    &   (𝜑𝐾 = ((1st )‘𝐹))       (𝜑𝐾 = ⟨(𝑔 ∈ (𝐷 Func 𝐸) ↦ (𝑔func 𝐹)), (𝑔 ∈ (𝐷 Func 𝐸), ∈ (𝐷 Func 𝐸) ↦ (𝑎 ∈ (𝑔(𝐷 Nat 𝐸)) ↦ (𝑥 ∈ (Base‘𝐶) ↦ (𝑎‘((1st𝐹)‘𝑥)))))⟩)
 
11-Oct-2025precofval 49141 Value of the pre-composition functor as a transposed curry of the functor composition bifunctor. (Contributed by Zhi Wang, 11-Oct-2025.)
𝑄 = (𝐶 FuncCat 𝐷)    &   𝑅 = (𝐷 FuncCat 𝐸)    &   (𝜑 = (⟨𝑄, 𝑅⟩ curryF ((⟨𝐶, 𝐷⟩ ∘F 𝐸) ∘func (𝑄swapF𝑅))))    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))    &   (𝜑𝐸 ∈ Cat)    &   (𝜑𝐾 = ((1st )‘𝐹))       (𝜑𝐾 = ⟨(𝑔 ∈ (𝐷 Func 𝐸) ↦ (𝑔func 𝐹)), (𝑔 ∈ (𝐷 Func 𝐸), ∈ (𝐷 Func 𝐸) ↦ (𝑎 ∈ (𝑔(𝐷 Nat 𝐸)) ↦ (𝑥 ∈ (Base‘𝐶) ↦ (𝑎‘((1st𝐹)‘𝑥)))))⟩)
 
11-Oct-2025precofvallem 49140 Lemma for precofval 49141 to enable catlid 17682 or catrid 17683. (Contributed by Zhi Wang, 11-Oct-2025.)
𝐴 = (Base‘𝐶)    &   𝐵 = (Base‘𝐸)    &    1 = (Id‘𝐷)    &   𝐼 = (Id‘𝐸)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑋𝐴)       (𝜑 → ((((𝐹𝑋)𝐿(𝐹𝑋))‘(( 1𝐹)‘𝑋)) = (𝐼‘(𝐾‘(𝐹𝑋))) ∧ (𝐾‘(𝐹𝑋)) ∈ 𝐵))
 
11-Oct-2025postcofcl 49139 The post-composition functor as a curry of the functor composition bifunctor is a functor. (Contributed by Zhi Wang, 11-Oct-2025.)
𝑄 = (𝐶 FuncCat 𝐷)    &   𝑅 = (𝐷 FuncCat 𝐸)    &    = (⟨𝑅, 𝑄⟩ curryF (⟨𝐶, 𝐷⟩ ∘F 𝐸))    &   (𝜑𝐹 ∈ (𝐷 Func 𝐸))    &   (𝜑𝐶 ∈ Cat)    &   𝐾 = ((1st )‘𝐹)    &   𝑆 = (𝐶 FuncCat 𝐸)       (𝜑𝐾 ∈ (𝑄 Func 𝑆))
 
11-Oct-2025postcofval 49138 Value of the post-composition functor as a curry of the functor composition bifunctor. (Contributed by Zhi Wang, 11-Oct-2025.)
𝑄 = (𝐶 FuncCat 𝐷)    &   𝑅 = (𝐷 FuncCat 𝐸)    &    = (⟨𝑅, 𝑄⟩ curryF (⟨𝐶, 𝐷⟩ ∘F 𝐸))    &   (𝜑𝐹 ∈ (𝐷 Func 𝐸))    &   (𝜑𝐶 ∈ Cat)    &   𝐾 = ((1st )‘𝐹)       (𝜑𝐾 = ⟨(𝑔 ∈ (𝐶 Func 𝐷) ↦ (𝐹func 𝑔)), (𝑔 ∈ (𝐶 Func 𝐷), ∈ (𝐶 Func 𝐷) ↦ (𝑎 ∈ (𝑔(𝐶 Nat 𝐷)) ↦ (𝑥 ∈ (Base‘𝐶) ↦ ((((1st𝑔)‘𝑥)(2nd𝐹)((1st)‘𝑥))‘(𝑎𝑥)))))⟩)
 
11-Oct-2025fucorid2 49137 Pre-composing a natural transformation with the identity natural transformation of a functor is pre-composing it with the object part of the functor. (Contributed by Zhi Wang, 11-Oct-2025.)
(𝜑 → (2nd ‘(⟨𝐶, 𝐷⟩ ∘F 𝐸)) = 𝑃)    &   𝐼 = (Id‘𝑄)    &   𝑄 = (𝐶 FuncCat 𝐷)    &   (𝜑𝐴 ∈ (𝐺(𝐷 Nat 𝐸)𝐻))    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))       (𝜑 → (𝐴(⟨𝐺, 𝐹𝑃𝐻, 𝐹⟩)(𝐼𝐹)) = (𝐴 ∘ (1st𝐹)))
 
11-Oct-2025fucorid 49136 Pre-composing a natural transformation with the identity natural transformation of a functor is pre-composing it with the object part of the functor, in maps-to notation. (Contributed by Zhi Wang, 11-Oct-2025.)
(𝜑 → (2nd ‘(⟨𝐶, 𝐷⟩ ∘F 𝐸)) = 𝑃)    &   𝐼 = (Id‘𝑄)    &   𝑄 = (𝐶 FuncCat 𝐷)    &   (𝜑𝐴 ∈ (𝐺(𝐷 Nat 𝐸)𝐻))    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))       (𝜑 → (𝐴(⟨𝐺, 𝐹𝑃𝐻, 𝐹⟩)(𝐼𝐹)) = (𝑥 ∈ (Base‘𝐶) ↦ (𝐴‘((1st𝐹)‘𝑥))))
 
11-Oct-2025fucolid 49135 Post-compose a natural transformation with an identity natural transformation. (Contributed by Zhi Wang, 11-Oct-2025.)
(𝜑 → (2nd ‘(⟨𝐶, 𝐷⟩ ∘F 𝐸)) = 𝑃)    &   𝐼 = (Id‘𝑄)    &   𝑄 = (𝐷 FuncCat 𝐸)    &   (𝜑𝐴 ∈ (𝐺(𝐶 Nat 𝐷)𝐻))    &   (𝜑𝐹 ∈ (𝐷 Func 𝐸))       (𝜑 → ((𝐼𝐹)(⟨𝐹, 𝐺𝑃𝐹, 𝐻⟩)𝐴) = (𝑥 ∈ (Base‘𝐶) ↦ ((((1st𝐺)‘𝑥)(2nd𝐹)((1st𝐻)‘𝑥))‘(𝐴𝑥))))
 
11-Oct-2025fuco11bALT 49112 Alternate proof of fuco11b 49111. (Contributed by Zhi Wang, 11-Oct-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
(𝜑 → (1st ‘(⟨𝐶, 𝐷⟩ ∘F 𝐸)) = 𝑂)    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))    &   (𝜑𝐺 ∈ (𝐷 Func 𝐸))       (𝜑 → (𝐺𝑂𝐹) = (𝐺func 𝐹))
 
11-Oct-2025fuco11b 49111 The object part of the functor composition bifunctor maps two functors to their composition. (Contributed by Zhi Wang, 11-Oct-2025.)
(𝜑 → (1st ‘(⟨𝐶, 𝐷⟩ ∘F 𝐸)) = 𝑂)    &   (𝜑𝐹 ∈ (𝐶 Func 𝐷))    &   (𝜑𝐺 ∈ (𝐷 Func 𝐸))       (𝜑 → (𝐺𝑂𝐹) = (𝐺func 𝐹))
 
11-Oct-2025wffr 44920 The class of well-founded sets is well-founded. Lemma I.9.24(2) of [Kunen2] p. 53. (Contributed by Eric Schmidt, 11-Oct-2025.)
E Fr (𝑅1 “ On)
 
11-Oct-2025rankrelp 44919 The rank function preserves . (Contributed by Eric Schmidt, 11-Oct-2025.)
rank RelPres E , E ( (𝑅1 “ On), On)
 
11-Oct-2025relpfr 44913 If the image of a set under a relation-preserving function is well-founded, so is the set. See isofr 7331 for a bidirectional statement. A more general version of Lemma I.9.9 of [Kunen2] p. 47. (Contributed by Eric Schmidt, 11-Oct-2025.)
(𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵) → (𝑆 Fr 𝐵𝑅 Fr 𝐴))
 
11-Oct-2025relpfrlem 44912 Lemma for relpfr 44913. Proved without using the Axiom of Replacement. This is isofrlem 7329 with weaker hypotheses. (Contributed by Eric Schmidt, 11-Oct-2025.)
(𝜑𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵))    &   (𝜑 → (𝐻𝑥) ∈ V)       (𝜑 → (𝑆 Fr 𝐵𝑅 Fr 𝐴))
 
11-Oct-2025relpmin 44911 A preimage of a minimal element under a relation-preserving function is minimal. Essentially one half of isomin 7326. (Contributed by Eric Schmidt, 11-Oct-2025.)
((𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵) ∧ (𝐶𝐴𝐷𝐴)) → (((𝐻𝐶) ∩ (𝑆 “ {(𝐻𝐷)})) = ∅ → (𝐶 ∩ (𝑅 “ {𝐷})) = ∅))
 
11-Oct-2025relprel 44910 A relation-preserving function preserves the relation. (Contributed by Eric Schmidt, 11-Oct-2025.)
((𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵) ∧ (𝐶𝐴𝐷𝐴)) → (𝐶𝑅𝐷 → (𝐻𝐶)𝑆(𝐻𝐷)))
 
11-Oct-2025relpf 44909 A relation-preserving function is a function. (Contributed by Eric Schmidt, 11-Oct-2025.)
(𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵) → 𝐻:𝐴𝐵)
 
11-Oct-2025nfrelp 44908 Bound-variable hypothesis builder for a relation-preserving function. (Contributed by Eric Schmidt, 11-Oct-2025.)
𝑥𝐻    &   𝑥𝑅    &   𝑥𝑆    &   𝑥𝐴    &   𝑥𝐵       𝑥 𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵)
 
11-Oct-2025relpeq5 44907 Equality theorem for relation-preserving functions. (Contributed by Eric Schmidt, 11-Oct-2025.)
(𝐵 = 𝐶 → (𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵) ↔ 𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐶)))
 
11-Oct-2025relpeq4 44906 Equality theorem for relation-preserving functions. (Contributed by Eric Schmidt, 11-Oct-2025.)
(𝐴 = 𝐶 → (𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵) ↔ 𝐻 RelPres 𝑅, 𝑆(𝐶, 𝐵)))
 
11-Oct-2025relpeq3 44905 Equality theorem for relation-preserving functions. (Contributed by Eric Schmidt, 11-Oct-2025.)
(𝑆 = 𝑇 → (𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵) ↔ 𝐻 RelPres 𝑅, 𝑇(𝐴, 𝐵)))
 
11-Oct-2025relpeq2 44904 Equality theorem for relation-preserving functions. (Contributed by Eric Schmidt, 11-Oct-2025.)
(𝑅 = 𝑇 → (𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵) ↔ 𝐻 RelPres 𝑇, 𝑆(𝐴, 𝐵)))
 
11-Oct-2025relpeq1 44903 Equality theorem for relation-preserving functions. (Contributed by Eric Schmidt, 11-Oct-2025.)
(𝐻 = 𝐺 → (𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵) ↔ 𝐺 RelPres 𝑅, 𝑆(𝐴, 𝐵)))
 
11-Oct-2025df-relp 44902 Define the relation-preserving predicate. This is a viable notion of "homomorphism" corresponding to df-isom 6537. (Contributed by Eric Schmidt, 11-Oct-2025.)
(𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵) ↔ (𝐻:𝐴𝐵 ∧ ∀𝑥𝐴𝑦𝐴 (𝑥𝑅𝑦 → (𝐻𝑥)𝑆(𝐻𝑦))))
 
11-Oct-2025wrelp 44901 Extend the definition of a wff to include the relation-preserving property. (Contributed by Eric Schmidt, 11-Oct-2025.)
wff 𝐻 RelPres 𝑅, 𝑆(𝐴, 𝐵)
 
10-Oct-2025fucofunca 49134 The functor composition bifunctor is a functor. See also fucofunc 49133. (Contributed by Zhi Wang, 10-Oct-2025.)
𝑇 = ((𝐷 FuncCat 𝐸) ×c (𝐶 FuncCat 𝐷))    &   𝑄 = (𝐶 FuncCat 𝐸)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐸 ∈ Cat)       (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) ∈ (𝑇 Func 𝑄))
 
10-Oct-2025tposcurf2cl 49076 The transposed curry functor at a morphism is a natural transformation. (Contributed by Zhi Wang, 10-Oct-2025.)
(𝜑𝐺 = (⟨𝐶, 𝐷⟩ curryF (𝐹func (𝐶swapF𝐷))))    &   𝐴 = (Base‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐹 ∈ ((𝐷 ×c 𝐶) Func 𝐸))    &   𝐵 = (Base‘𝐷)    &   𝐻 = (Hom ‘𝐶)    &   𝐼 = (Id‘𝐷)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐴)    &   (𝜑𝐾 ∈ (𝑋𝐻𝑌))    &   (𝜑𝐿 = ((𝑋(2nd𝐺)𝑌)‘𝐾))    &   𝑁 = (𝐷 Nat 𝐸)       (𝜑𝐿 ∈ (((1st𝐺)‘𝑋)𝑁((1st𝐺)‘𝑌)))
 
10-Oct-2025tposcurf2val 49075 Value of a component of the transposed curry functor natural transformation. (Contributed by Zhi Wang, 10-Oct-2025.)
(𝜑𝐺 = (⟨𝐶, 𝐷⟩ curryF (𝐹func (𝐶swapF𝐷))))    &   𝐴 = (Base‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐹 ∈ ((𝐷 ×c 𝐶) Func 𝐸))    &   𝐵 = (Base‘𝐷)    &   𝐻 = (Hom ‘𝐶)    &   𝐼 = (Id‘𝐷)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐴)    &   (𝜑𝐾 ∈ (𝑋𝐻𝑌))    &   (𝜑𝐿 = ((𝑋(2nd𝐺)𝑌)‘𝐾))    &   (𝜑𝑍𝐵)       (𝜑 → (𝐿𝑍) = ((𝐼𝑍)(⟨𝑍, 𝑋⟩(2nd𝐹)⟨𝑍, 𝑌⟩)𝐾))
 
10-Oct-2025tposcurf2 49074 Value of the transposed curry functor at a morphism. (Contributed by Zhi Wang, 10-Oct-2025.)
(𝜑𝐺 = (⟨𝐶, 𝐷⟩ curryF (𝐹func (𝐶swapF𝐷))))    &   𝐴 = (Base‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐹 ∈ ((𝐷 ×c 𝐶) Func 𝐸))    &   𝐵 = (Base‘𝐷)    &   𝐻 = (Hom ‘𝐶)    &   𝐼 = (Id‘𝐷)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐴)    &   (𝜑𝐾 ∈ (𝑋𝐻𝑌))    &   (𝜑𝐿 = ((𝑋(2nd𝐺)𝑌)‘𝐾))       (𝜑𝐿 = (𝑧𝐵 ↦ ((𝐼𝑧)(⟨𝑧, 𝑋⟩(2nd𝐹)⟨𝑧, 𝑌⟩)𝐾)))
 
10-Oct-2025cofuswapfcl 49067 The bifunctor pre-composed with a swap functor is a bifunctor. (Contributed by Zhi Wang, 10-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐹 ∈ ((𝐷 ×c 𝐶) Func 𝐸))    &   (𝜑𝐺 = (𝐹func (𝐶swapF𝐷)))       (𝜑𝐺 ∈ ((𝐶 ×c 𝐷) Func 𝐸))
 
9-Oct-2025tposcurfcl 49077 The transposed curry functor of a functor 𝐹:𝐷 × 𝐶𝐸 is a functor tposcurry (𝐹):𝐶⟶(𝐷𝐸). (Contributed by Zhi Wang, 9-Oct-2025.)
(𝜑𝐺 = (⟨𝐶, 𝐷⟩ curryF (𝐹func (𝐶swapF𝐷))))    &   𝑄 = (𝐷 FuncCat 𝐸)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐹 ∈ ((𝐷 ×c 𝐶) Func 𝐸))       (𝜑𝐺 ∈ (𝐶 Func 𝑄))
 
9-Oct-2025tposcurf1 49073 Value of the object part of the transposed curry functor. (Contributed by Zhi Wang, 9-Oct-2025.)
(𝜑𝐺 = (⟨𝐶, 𝐷⟩ curryF (𝐹func (𝐶swapF𝐷))))    &   𝐴 = (Base‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐹 ∈ ((𝐷 ×c 𝐶) Func 𝐸))    &   (𝜑𝑋𝐴)    &   (𝜑𝐾 = ((1st𝐺)‘𝑋))    &   𝐵 = (Base‘𝐷)    &   𝐽 = (Hom ‘𝐷)    &    1 = (Id‘𝐶)       (𝜑𝐾 = ⟨(𝑦𝐵 ↦ (𝑦(1st𝐹)𝑋)), (𝑦𝐵, 𝑧𝐵 ↦ (𝑔 ∈ (𝑦𝐽𝑧) ↦ (𝑔(⟨𝑦, 𝑋⟩(2nd𝐹)⟨𝑧, 𝑋⟩)( 1𝑋))))⟩)
 
9-Oct-2025tposcurf12 49072 The partially evaluated transposed curry functor at a morphism. (Contributed by Zhi Wang, 9-Oct-2025.)
(𝜑𝐺 = (⟨𝐶, 𝐷⟩ curryF (𝐹func (𝐶swapF𝐷))))    &   𝐴 = (Base‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐹 ∈ ((𝐷 ×c 𝐶) Func 𝐸))    &   (𝜑𝑋𝐴)    &   (𝜑𝐾 = ((1st𝐺)‘𝑋))    &   𝐵 = (Base‘𝐷)    &   (𝜑𝑌𝐵)    &   𝐽 = (Hom ‘𝐷)    &    1 = (Id‘𝐶)    &   (𝜑𝑍𝐵)    &   (𝜑𝐻 ∈ (𝑌𝐽𝑍))       (𝜑 → ((𝑌(2nd𝐾)𝑍)‘𝐻) = (𝐻(⟨𝑌, 𝑋⟩(2nd𝐹)⟨𝑍, 𝑋⟩)( 1𝑋)))
 
9-Oct-2025tposcurf11 49071 Value of the double evaluated transposed curry functor. (Contributed by Zhi Wang, 9-Oct-2025.)
(𝜑𝐺 = (⟨𝐶, 𝐷⟩ curryF (𝐹func (𝐶swapF𝐷))))    &   𝐴 = (Base‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐹 ∈ ((𝐷 ×c 𝐶) Func 𝐸))    &   (𝜑𝑋𝐴)    &   (𝜑𝐾 = ((1st𝐺)‘𝑋))    &   𝐵 = (Base‘𝐷)    &   (𝜑𝑌𝐵)       (𝜑 → ((1st𝐾)‘𝑌) = (𝑌(1st𝐹)𝑋))
 
9-Oct-2025tposcurf1cl 49070 The partially evaluated transposed curry functor is a functor. (Contributed by Zhi Wang, 9-Oct-2025.)
(𝜑𝐺 = (⟨𝐶, 𝐷⟩ curryF (𝐹func (𝐶swapF𝐷))))    &   𝐴 = (Base‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐹 ∈ ((𝐷 ×c 𝐶) Func 𝐸))    &   (𝜑𝑋𝐴)    &   (𝜑𝐾 = ((1st𝐺)‘𝑋))       (𝜑𝐾 ∈ (𝐷 Func 𝐸))
 
9-Oct-2025cofuswapf2 49069 The morphism part of a bifunctor pre-composed with a swap functor. (Contributed by Zhi Wang, 9-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐹 ∈ ((𝐷 ×c 𝐶) Func 𝐸))    &   (𝜑𝐺 = (𝐹func (𝐶swapF𝐷)))    &   𝐴 = (Base‘𝐶)    &   𝐵 = (Base‘𝐷)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐵)    &   (𝜑𝑍𝐴)    &   (𝜑𝑊𝐵)    &   𝐻 = (Hom ‘𝐶)    &   𝐽 = (Hom ‘𝐷)    &   (𝜑𝑀 ∈ (𝑋𝐻𝑍))    &   (𝜑𝑁 ∈ (𝑌𝐽𝑊))       (𝜑 → (𝑀(⟨𝑋, 𝑌⟩(2nd𝐺)⟨𝑍, 𝑊⟩)𝑁) = (𝑁(⟨𝑌, 𝑋⟩(2nd𝐹)⟨𝑊, 𝑍⟩)𝑀))
 
9-Oct-2025cofuswapf1 49068 The object part of a bifunctor pre-composed with a swap functor. (Contributed by Zhi Wang, 9-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐹 ∈ ((𝐷 ×c 𝐶) Func 𝐸))    &   (𝜑𝐺 = (𝐹func (𝐶swapF𝐷)))    &   𝐴 = (Base‘𝐶)    &   𝐵 = (Base‘𝐷)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐵)       (𝜑 → (𝑋(1st𝐺)𝑌) = (𝑌(1st𝐹)𝑋))
 
9-Oct-2025swapffunca 49064 The swap functor is a functor. (Contributed by Zhi Wang, 9-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)       (𝜑 → (𝐶swapF𝐷) ∈ (𝑆 Func 𝑇))
 
9-Oct-2025swapf2f1oa 49057 The morphism part of the swap functor is a bijection between hom-sets. (Contributed by Zhi Wang, 9-Oct-2025.)
(𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)    &   𝐻 = (Hom ‘𝑆)    &   𝐽 = (Hom ‘𝑇)    &   𝐵 = (Base‘𝑆)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)       (𝜑 → (𝑋𝑃𝑌):(𝑋𝐻𝑌)–1-1-onto→((𝑂𝑋)𝐽(𝑂𝑌)))
 
9-Oct-2025dfswapf2 49041 Alternate definition of swapF (df-swapf 49040). (Contributed by Zhi Wang, 9-Oct-2025.)
swapF = (𝑐 ∈ V, 𝑑 ∈ V ↦ (𝑐 ×c 𝑑) / 𝑠(Base‘𝑠) / 𝑏(Hom ‘𝑠) / ⟨(tpos I ↾ 𝑏), (𝑢𝑏, 𝑣𝑏 ↦ (tpos I ↾ (𝑢𝑣)))⟩)
 
9-Oct-2025ovmpt4d 48735 Deduction version of ovmpt4g 7549. (This is the operation analogue of fvmpt2d 6996.) (Contributed by Zhi Wang, 9-Oct-2025.)
(𝜑𝐹 = (𝑥𝐴, 𝑦𝐵𝐶))    &   ((𝜑 ∧ (𝑥𝐴𝑦𝐵)) → 𝐶𝑉)       ((𝜑 ∧ (𝑥𝐴𝑦𝐵)) → (𝑥𝐹𝑦) = 𝐶)
 
9-Oct-2025dvdsfi 16795 A natural number has finitely many divisors. (Contributed by Jim Kingdon, 9-Oct-2025.)
(𝑁 ∈ ℕ → {𝑥 ∈ ℕ ∣ 𝑥𝑁} ∈ Fin)
 
8-Oct-2025swapciso 49066 The product category is categorically isomorphic to the swapped product category. (Contributed by Zhi Wang, 8-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)    &   𝐸 = (CatCat‘𝑈)    &   (𝜑𝑈𝑉)    &   (𝜑𝑆𝑈)    &   (𝜑𝑇𝑈)       (𝜑𝑆( ≃𝑐𝐸)𝑇)
 
8-Oct-2025swapfiso 49065 The swap functor is an isomorphism between product categories. (Contributed by Zhi Wang, 8-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)    &   𝐸 = (CatCat‘𝑈)    &   (𝜑𝑈𝑉)    &   (𝜑𝑆𝑈)    &   (𝜑𝑇𝑈)    &   𝐼 = (Iso‘𝐸)       (𝜑 → (𝐶swapF𝐷) ∈ (𝑆𝐼𝑇))
 
8-Oct-2025swapfffth 49063 The swap functor is a fully faithful functor. (Contributed by Zhi Wang, 8-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)    &   (𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)       (𝜑𝑂((𝑆 Full 𝑇) ∩ (𝑆 Faith 𝑇))𝑃)
 
8-Oct-2025swapffunc 49062 The swap functor is a functor. (Contributed by Zhi Wang, 8-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)    &   (𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)       (𝜑𝑂(𝑆 Func 𝑇)𝑃)
 
8-Oct-2025swapfcoa 49061 Composition in the source category is mapped to composition in the target. (𝜑𝐶 ∈ Cat) and (𝜑𝐷 ∈ Cat) can be replaced by a weaker hypothesis (𝜑𝑆 ∈ Cat). (Contributed by Zhi Wang, 8-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)    &   (𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   𝐵 = (Base‘𝑆)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝑍𝐵)    &   𝐻 = (Hom ‘𝑆)    &   (𝜑𝑀 ∈ (𝑋𝐻𝑌))    &   (𝜑𝑁 ∈ (𝑌𝐻𝑍))    &    · = (comp‘𝑆)    &    = (comp‘𝑇)       (𝜑 → ((𝑋𝑃𝑍)‘(𝑁(⟨𝑋, 𝑌· 𝑍)𝑀)) = (((𝑌𝑃𝑍)‘𝑁)(⟨(𝑂𝑋), (𝑂𝑌)⟩ (𝑂𝑍))((𝑋𝑃𝑌)‘𝑀)))
 
8-Oct-2025swapfida 49060 Each identity morphism in the source category is mapped to the corresponding identity morphism in the target category. See also swapfid 49059. (Contributed by Zhi Wang, 8-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)    &   (𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   𝐵 = (Base‘𝑆)    &   (𝜑𝑋𝐵)    &    1 = (Id‘𝑆)    &   𝐼 = (Id‘𝑇)       (𝜑 → ((𝑋𝑃𝑋)‘( 1𝑋)) = (𝐼‘(𝑂𝑋)))
 
8-Oct-2025swapfid 49059 Each identity morphism in the source category is mapped to the corresponding identity morphism in the target category. See also swapfida 49060. (Contributed by Zhi Wang, 8-Oct-2025.)
(𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)    &   (𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑𝑌 ∈ (Base‘𝐷))    &    1 = (Id‘𝑆)    &   𝐼 = (Id‘𝑇)       (𝜑 → ((⟨𝑋, 𝑌𝑃𝑋, 𝑌⟩)‘( 1 ‘⟨𝑋, 𝑌⟩)) = (𝐼‘(𝑂‘⟨𝑋, 𝑌⟩)))
 
8-Oct-2025swapf2f1oaALT 49058 Alternate proof of swapf2f1oa 49057. (Contributed by Zhi Wang, 8-Oct-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
(𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)    &   𝐻 = (Hom ‘𝑆)    &   𝐽 = (Hom ‘𝑇)    &   𝐵 = (Base‘𝑆)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)       (𝜑 → (𝑋𝑃𝑌):(𝑋𝐻𝑌)–1-1-onto→((𝑂𝑋)𝐽(𝑂𝑌)))
 
8-Oct-2025swapf2f1o 49056 The morphism part of the swap functor is a bijection between hom-sets. (Contributed by Zhi Wang, 8-Oct-2025.)
(𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)    &   𝐻 = (Hom ‘𝑆)    &   𝐽 = (Hom ‘𝑇)    &   (𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑𝑌 ∈ (Base‘𝐷))    &   (𝜑𝑍 ∈ (Base‘𝐶))    &   (𝜑𝑊 ∈ (Base‘𝐷))       (𝜑 → (⟨𝑋, 𝑌𝑃𝑍, 𝑊⟩):(⟨𝑋, 𝑌𝐻𝑍, 𝑊⟩)–1-1-onto→(⟨𝑌, 𝑋𝐽𝑊, 𝑍⟩))
 
8-Oct-2025swapf1f1o 49055 The object part of the swap functor is a bijection between base sets. (Contributed by Zhi Wang, 8-Oct-2025.)
(𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝑇 = (𝐷 ×c 𝐶)    &   (𝜑𝐶𝑈)    &   (𝜑𝐷𝑉)    &   𝐵 = (Base‘𝑆)    &   𝐴 = (Base‘𝑇)       (𝜑𝑂:𝐵1-1-onto𝐴)
 
8-Oct-2025elxpcbasex2ALT 49031 Alternate proof of elxpcbasex2 49030. (Contributed by Zhi Wang, 8-Oct-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
𝑇 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑇)    &   (𝜑𝑋𝐵)       (𝜑𝐷 ∈ V)
 
8-Oct-2025elxpcbasex1ALT 49029 Alternate proof of elxpcbasex1 49028. (Contributed by Zhi Wang, 8-Oct-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
𝑇 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑇)    &   (𝜑𝑋𝐵)       (𝜑𝐶 ∈ V)
 
8-Oct-20253orel2 1485 Partial elimination of a triple disjunction by denial of a disjunct. (Contributed by Scott Fenton, 26-Mar-2011.) (Proof shortened by Andrew Salmon, 25-May-2011.) (Proof shortened by Eric Schmidt, 8-Oct-2025.)
𝜓 → ((𝜑𝜓𝜒) → (𝜑𝜒)))
 
7-Oct-2025fucofvalne 49099 Value of the function giving the functor composition bifunctor, if 𝐶 or 𝐷 are not sets. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑 → ¬ (𝐶 ∈ V ∧ 𝐷 ∈ V))    &   (𝜑𝐸 ∈ Cat)    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = )    &   (𝜑𝑊 = ((𝐷 Func 𝐸) × (𝐶 Func 𝐷)))       (𝜑 ≠ ⟨( ∘func𝑊), (𝑢𝑊, 𝑣𝑊(1st ‘(2nd𝑢)) / 𝑓(1st ‘(1st𝑢)) / 𝑘(2nd ‘(1st𝑢)) / 𝑙(1st ‘(2nd𝑣)) / 𝑚(1st ‘(1st𝑣)) / 𝑟(𝑏 ∈ ((1st𝑢)(𝐷 Nat 𝐸)(1st𝑣)), 𝑎 ∈ ((2nd𝑢)(𝐶 Nat 𝐷)(2nd𝑣)) ↦ (𝑥 ∈ (Base‘𝐶) ↦ ((𝑏‘(𝑚𝑥))(⟨(𝑘‘(𝑓𝑥)), (𝑘‘(𝑚𝑥))⟩(comp‘𝐸)(𝑟‘(𝑚𝑥)))(((𝑓𝑥)𝑙(𝑚𝑥))‘(𝑎𝑥))))))⟩)
 
7-Oct-2025fucofvalg 49092 Value of the function giving the functor composition bifunctor. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑𝑃𝑈)    &   (𝜑 → (1st𝑃) = 𝐶)    &   (𝜑 → (2nd𝑃) = 𝐷)    &   (𝜑𝐸𝑉)    &   (𝜑 → (𝑃F 𝐸) = )    &   (𝜑𝑊 = ((𝐷 Func 𝐸) × (𝐶 Func 𝐷)))       (𝜑 = ⟨( ∘func𝑊), (𝑢𝑊, 𝑣𝑊(1st ‘(2nd𝑢)) / 𝑓(1st ‘(1st𝑢)) / 𝑘(2nd ‘(1st𝑢)) / 𝑙(1st ‘(2nd𝑣)) / 𝑚(1st ‘(1st𝑣)) / 𝑟(𝑏 ∈ ((1st𝑢)(𝐷 Nat 𝐸)(1st𝑣)), 𝑎 ∈ ((2nd𝑢)(𝐶 Nat 𝐷)(2nd𝑣)) ↦ (𝑥 ∈ (Base‘𝐶) ↦ ((𝑏‘(𝑚𝑥))(⟨(𝑘‘(𝑓𝑥)), (𝑘‘(𝑚𝑥))⟩(comp‘𝐸)(𝑟‘(𝑚𝑥)))(((𝑓𝑥)𝑙(𝑚𝑥))‘(𝑎𝑥))))))⟩)
 
7-Oct-2025swapf2 49054 The morphism part of the swap functor swaps the morphisms. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑𝑌 ∈ (Base‘𝐷))    &   (𝜑𝑍 ∈ (Base‘𝐶))    &   (𝜑𝑊 ∈ (Base‘𝐷))    &   (𝜑𝐹 ∈ (𝑋(Hom ‘𝐶)𝑍))    &   (𝜑𝐺 ∈ (𝑌(Hom ‘𝐷)𝑊))       (𝜑 → (𝐹(⟨𝑋, 𝑌𝑃𝑍, 𝑊⟩)𝐺) = ⟨𝐺, 𝐹⟩)
 
7-Oct-2025swapf2val 49053 The morphism part of the swap functor swaps the morphisms. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑𝑌 ∈ (Base‘𝐷))    &   (𝜑𝑍 ∈ (Base‘𝐶))    &   (𝜑𝑊 ∈ (Base‘𝐷))    &   𝑆 = (𝐶 ×c 𝐷)    &   (𝜑𝐻 = (Hom ‘𝑆))       (𝜑 → (⟨𝑋, 𝑌𝑃𝑍, 𝑊⟩) = (𝑓 ∈ (⟨𝑋, 𝑌𝐻𝑍, 𝑊⟩) ↦ {𝑓}))
 
7-Oct-2025swapf1 49052 The object part of the swap functor swaps the objects. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑𝑌 ∈ (Base‘𝐷))       (𝜑 → (𝑋𝑂𝑌) = ⟨𝑌, 𝑋⟩)
 
7-Oct-2025swapf2a 49051 The morphism part of the swap functor swaps the morphisms. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑆)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝐻 = (Hom ‘𝑆))    &   (𝜑𝐹 ∈ (𝑋𝐻𝑌))       (𝜑 → ((𝑋𝑃𝑌)‘𝐹) = ⟨(2nd𝐹), (1st𝐹)⟩)
 
7-Oct-2025swapf2vala 49050 The morphism part of the swap functor swaps the morphisms. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑆)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝐻 = (Hom ‘𝑆))       (𝜑 → (𝑋𝑃𝑌) = (𝑓 ∈ (𝑋𝐻𝑌) ↦ {𝑓}))
 
7-Oct-2025swapf1a 49049 The object part of the swap functor swaps the objects. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑆)    &   (𝜑𝑋𝐵)       (𝜑 → (𝑂𝑋) = ⟨(2nd𝑋), (1st𝑋)⟩)
 
7-Oct-2025swapf2fn 49048 The morphism part of the swap functor is a function on the Cartesian square of the base set. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑𝐶𝑈)    &   (𝜑𝐷𝑉)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑆)    &   (𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)       (𝜑𝑃 Fn (𝐵 × 𝐵))
 
7-Oct-2025swapf1val 49047 The object part of the swap functor. See also swapf1vala 49046. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑𝐶𝑈)    &   (𝜑𝐷𝑉)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑆)    &   (𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)       (𝜑𝑂 = (𝑥𝐵 {𝑥}))
 
7-Oct-2025swapf1vala 49046 The object part of the swap functor. See also swapf1val 49047. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑𝐶𝑈)    &   (𝜑𝐷𝑉)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑆)       (𝜑 → (1st ‘(𝐶swapF𝐷)) = (𝑥𝐵 {𝑥}))
 
7-Oct-2025swapf2fval 49045 The morphism part of the swap functor. See also swapf2fvala 49044. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑𝐶𝑈)    &   (𝜑𝐷𝑉)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑆)    &   (𝜑𝐻 = (Hom ‘𝑆))    &   (𝜑 → (𝐶swapF𝐷) = ⟨𝑂, 𝑃⟩)       (𝜑𝑃 = (𝑢𝐵, 𝑣𝐵 ↦ (𝑓 ∈ (𝑢𝐻𝑣) ↦ {𝑓})))
 
7-Oct-2025swapf2fvala 49044 The morphism part of the swap functor. See also swapf2fval 49045. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑𝐶𝑈)    &   (𝜑𝐷𝑉)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑆)    &   (𝜑𝐻 = (Hom ‘𝑆))       (𝜑 → (2nd ‘(𝐶swapF𝐷)) = (𝑢𝐵, 𝑣𝐵 ↦ (𝑓 ∈ (𝑢𝐻𝑣) ↦ {𝑓})))
 
7-Oct-2025swapfelvv 49043 A swap functor is an ordered pair. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑𝐶𝑈)    &   (𝜑𝐷𝑉)       (𝜑 → (𝐶swapF𝐷) ∈ (V × V))
 
7-Oct-2025swapfval 49042 Value of the swap functor. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑𝐶𝑈)    &   (𝜑𝐷𝑉)    &   𝑆 = (𝐶 ×c 𝐷)    &   𝐵 = (Base‘𝑆)    &   (𝜑𝐻 = (Hom ‘𝑆))       (𝜑 → (𝐶swapF𝐷) = ⟨(𝑥𝐵 {𝑥}), (𝑢𝐵, 𝑣𝐵 ↦ (𝑓 ∈ (𝑢𝐻𝑣) ↦ {𝑓}))⟩)
 
7-Oct-2025df-swapf 49040 Define the swap functor from (𝐶 ×c 𝐷) to (𝐷 ×c 𝐶) by swapping all objects (swapf1 49052) and morphisms (swapf2 49054) .

Such functor is called a "swap functor" in https://arxiv.org/pdf/2302.07810 49054 or a "twist functor" in https://arxiv.org/pdf/2508.01886 49054, the latter of which finds its counterpart as "twisting map" in https://arxiv.org/pdf/2411.04102 49054 for tensor product of algebras. The "swap functor" or "twisting map" is often denoted as a small tau 𝜏 in literature. However, the term "twist functor" is defined differently in https://arxiv.org/pdf/1208.4046 49054 and thus not adopted here.

tpos I depends on more mathbox theorems, and thus are not adopted here. See dfswapf2 49041 for an alternate definition.

(Contributed by Zhi Wang, 7-Oct-2025.)

swapF = (𝑐 ∈ V, 𝑑 ∈ V ↦ (𝑐 ×c 𝑑) / 𝑠(Base‘𝑠) / 𝑏(Hom ‘𝑠) / ⟨(𝑥𝑏 {𝑥}), (𝑢𝑏, 𝑣𝑏 ↦ (𝑓 ∈ (𝑢𝑣) ↦ {𝑓}))⟩)
 
7-Oct-20250funcALT 48946 Alternate proof of 0func 48945. (Contributed by Zhi Wang, 7-Oct-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
(𝜑𝐶 ∈ Cat)       (𝜑 → (∅ Func 𝐶) = {⟨∅, ∅⟩})
 
7-Oct-20250funclem 48944 Lemma for 0funcALT 48946. (Contributed by Zhi Wang, 7-Oct-2025.)
(𝜑 → (𝜓 ↔ (𝜒𝜃𝜏)))    &   (𝜒𝜂)    &   (𝜃𝜁)    &   𝜏       (𝜑 → (𝜓 ↔ (𝜂𝜁)))
 
7-Oct-2025opth2neg 48699 Two ordered pairs are not equal if their second components are not equal. (Contributed by Zhi Wang, 7-Oct-2025.)
((𝐴𝑉𝐵𝑊) → (𝐵𝐷 → ⟨𝐴, 𝐵⟩ ≠ ⟨𝐶, 𝐷⟩))
 
7-Oct-2025opth1neg 48698 Two ordered pairs are not equal if their first components are not equal. (Contributed by Zhi Wang, 7-Oct-2025.)
((𝐴𝑉𝐵𝑊) → (𝐴𝐶 → ⟨𝐴, 𝐵⟩ ≠ ⟨𝐶, 𝐷⟩))
 
7-Oct-2025readvcot 42339 Real antiderivative of cotangent. (Contributed by SN, 7-Oct-2025.)
𝐷 = {𝑦 ∈ ℝ ∣ (sin‘𝑦) ≠ 0}       (ℝ D (𝑥𝐷 ↦ (log‘(abs‘(sin‘𝑥))))) = (𝑥𝐷 ↦ ((cos‘𝑥) / (sin‘𝑥)))
 
7-Oct-2025resuppsinopn 42338 The support of sin (df-supp 8155) restricted to the reals is an open set. (Contributed by SN, 7-Oct-2025.)
𝐷 = {𝑦 ∈ ℝ ∣ (sin‘𝑦) ≠ 0}       𝐷 ∈ (topGen‘ran (,))
 
7-Oct-2025cnn0opn 24713 The set of nonzero complex numbers is open with respect to the standard topology on complex numbers. (Contributed by SN, 7-Oct-2025.)
(ℂ ∖ {0}) ∈ (TopOpen‘ℂfld)
 
6-Oct-2025tposideq2 48758 Two ways of expressing the swap function. (Contributed by Zhi Wang, 6-Oct-2025.)
𝑅 = (𝐴 × 𝐵)       (tpos I ↾ 𝑅) = (𝑥𝑅 {𝑥})
 
6-Oct-2025tposideq 48757 Two ways of expressing the swap function. (Contributed by Zhi Wang, 6-Oct-2025.)
(Rel 𝑅 → (tpos I ↾ 𝑅) = (𝑥𝑅 {𝑥}))
 
6-Oct-2025tposresxp 48752 The transposition restricted to a Cartesian product. (Contributed by Zhi Wang, 6-Oct-2025.)
(tpos 𝐹 ↾ (𝐴 × 𝐵)) = tpos (𝐹 ↾ (𝐵 × 𝐴))
 
6-Oct-2025tposres 48751 The transposition restricted to a relation. (Contributed by Zhi Wang, 6-Oct-2025.)
(Rel 𝑅 → (tpos 𝐹𝑅) = tpos (𝐹𝑅))
 
6-Oct-2025tposres3 48750 The transposition restricted to a set. (Contributed by Zhi Wang, 6-Oct-2025.)
(𝜑 → ¬ ∅ ∈ (dom 𝐹𝑅))       (𝜑 → (tpos 𝐹𝑅) = tpos (𝐹𝑅))
 
6-Oct-2025tposres2 48749 The transposition restricted to a set. (Contributed by Zhi Wang, 6-Oct-2025.)
(𝜑 → ¬ ∅ ∈ (dom 𝐹𝑅))       (𝜑 → (tpos 𝐹𝑅) = (tpos 𝐹𝑅))
 
6-Oct-2025tposrescnv 48748 The transposition restricted to a converse is the transposition of the restricted class, with the empty set removed from the domain. Note that the right hand side is a more useful form of (tpos (𝐹𝑅) ↾ (V ∖ {∅})) by df-tpos 8220. (Contributed by Zhi Wang, 6-Oct-2025.)
(tpos 𝐹𝑅) = (𝐹 ∘ (𝑥dom (𝐹𝑅) ↦ {𝑥}))
 
6-Oct-2025tposresg 48747 The transposition restricted to a set. (Contributed by Zhi Wang, 6-Oct-2025.)
(tpos 𝐹𝑅) = ((tpos 𝐹𝑅) ∪ (𝐹 ↾ (𝑅 ∩ {∅})))
 
6-Oct-2025tposres0 48746 The transposition of a set restricted to the empty set is the set restricted to the empty set. See also ressn 6272 and dftpos6 48744 for an alternate proof. (Contributed by Zhi Wang, 6-Oct-2025.)
(tpos 𝐹 ↾ {∅}) = (𝐹 ↾ {∅})
 
6-Oct-2025dmtposss 48745 The domain of tpos 𝐹 is a subset. (Contributed by Zhi Wang, 6-Oct-2025.)
dom tpos 𝐹 ⊆ ((V × V) ∪ {∅})
 
6-Oct-2025dftpos6 48744 Alternate definition of tpos. The second half of the right hand side could apply ressn 6272 and become (𝐹 ↾ {∅}) (Contributed by Zhi Wang, 6-Oct-2025.)
tpos 𝐹 = ((𝐹 ∘ (𝑥dom 𝐹 {𝑥})) ∪ ({∅} × (𝐹 “ {∅})))
 
6-Oct-2025dftpos5 48743 Alternate definition of tpos. (Contributed by Zhi Wang, 6-Oct-2025.)
tpos 𝐹 = (𝐹 ∘ ((𝑥dom 𝐹 {𝑥}) ∪ {⟨∅, ∅⟩}))
 
6-Oct-2025resinsnALT 48742 Restriction to the intersection with a singleton. (Contributed by Zhi Wang, 6-Oct-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
((𝐹 ↾ (𝐴 ∩ {𝐵})) = ∅ ↔ ¬ 𝐵 ∈ (dom 𝐹𝐴))
 
6-Oct-2025resinsn 48741 Restriction to the intersection with a singleton. (Contributed by Zhi Wang, 6-Oct-2025.)
((𝐹 ↾ (𝐴 ∩ {𝐵})) = ∅ ↔ ¬ 𝐵 ∈ (dom 𝐹𝐴))
 
6-Oct-2025resinsnlem 48740 Lemma for resinsnALT 48742. (Contributed by Zhi Wang, 6-Oct-2025.)
(𝜑 → (𝜒 ↔ ¬ 𝜓))    &   𝜑𝜒)       ((𝜑𝜓) ↔ ¬ 𝜒)
 
6-Oct-2025cosni 48707 Composition with an ordered pair singleton. (Contributed by Zhi Wang, 6-Oct-2025.)
𝐵 ∈ V    &   𝐶 ∈ V       (𝐴 ∘ {⟨𝐵, 𝐶⟩}) = ({𝐵} × (𝐴 “ {𝐶}))
 
6-Oct-2025cosn 48706 Composition with an ordered pair singleton. (Contributed by Zhi Wang, 6-Oct-2025.)
((𝐵𝑈𝐶𝑉) → (𝐴 ∘ {⟨𝐵, 𝐶⟩}) = ({𝐵} × (𝐴 “ {𝐶})))
 
6-Oct-2025coxp 48705 Composition with a Cartesian product. (Contributed by Zhi Wang, 6-Oct-2025.)
(𝐴 ∘ (𝐵 × 𝐶)) = (𝐵 × (𝐴𝐶))
 
6-Oct-2025gsumwun 32996 In a commutative ring, a group sum of a word 𝑊 of characters taken from two submonoids 𝐸 and 𝐹 can be written as a simple sum. (Contributed by Thierry Arnoux, 6-Oct-2025.)
+ = (+g𝑀)    &   (𝜑𝑀 ∈ CMnd)    &   (𝜑𝐸 ∈ (SubMnd‘𝑀))    &   (𝜑𝐹 ∈ (SubMnd‘𝑀))    &   (𝜑𝑊 ∈ Word (𝐸𝐹))       (𝜑 → ∃𝑒𝐸𝑓𝐹 (𝑀 Σg 𝑊) = (𝑒 + 𝑓))
 
5-Oct-2025tposidf1o 48756 The swap function, or the twisting map, is bijective. (Contributed by Zhi Wang, 5-Oct-2025.)
tpos ( I ↾ (𝐴 × 𝐵)):(𝐵 × 𝐴)–1-1-onto→(𝐴 × 𝐵)
 
5-Oct-2025tposidres 48755 Swap an ordered pair. (Contributed by Zhi Wang, 5-Oct-2025.)
(𝜑𝑋𝐴)    &   (𝜑𝑌𝐵)       (𝜑 → (𝑌tpos ( I ↾ (𝐴 × 𝐵))𝑋) = ⟨𝑋, 𝑌⟩)
 
5-Oct-2025tposid 48754 Swap an ordered pair. (Contributed by Zhi Wang, 5-Oct-2025.)
(𝑋tpos I 𝑌) = ⟨𝑌, 𝑋
 
5-Oct-2025tposf1o 48753 Condition of a bijective transposition. (Contributed by Zhi Wang, 5-Oct-2025.)
(𝐹:(𝐴 × 𝐵)–1-1-onto𝐶 → tpos 𝐹:(𝐵 × 𝐴)–1-1-onto𝐶)
 
5-Oct-2025cycl3grtri 47867 The vertices of a cycle of size 3 are a triangle in a graph. (Contributed by AV, 5-Oct-2025.)
(𝜑𝐺 ∈ UPGraph)    &   (𝜑𝐹(Cycles‘𝐺)𝑃)    &   (𝜑 → (♯‘𝐹) = 3)       (𝜑 → ran 𝑃 ∈ (GrTriangles‘𝐺))
 
5-Oct-2025cycl3grtrilem 47866 Lemma for cycl3grtri 47867. (Contributed by AV, 5-Oct-2025.)
(((𝐺 ∈ UPGraph ∧ 𝐹(Paths‘𝐺)𝑃) ∧ ((𝑃‘0) = (𝑃‘(♯‘𝐹)) ∧ (♯‘𝐹) = 3)) → ({(𝑃‘0), (𝑃‘1)} ∈ (Edg‘𝐺) ∧ {(𝑃‘0), (𝑃‘2)} ∈ (Edg‘𝐺) ∧ {(𝑃‘1), (𝑃‘2)} ∈ (Edg‘𝐺)))
 
5-Oct-2025zrhcntr 33939 The canonical representation of an integer 𝑁 in a ring 𝑅 is in the centralizer of the ring's multiplicative monoid. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝑀 = (mulGrp‘𝑅)    &   𝐶 = (Cntr‘𝑀)    &   𝐿 = (ℤRHom‘𝑅)    &   (𝜑𝑅 ∈ Ring)    &   (𝜑𝑁 ∈ ℤ)       (𝜑 → (𝐿𝑁) ∈ 𝐶)
 
5-Oct-2025zrhneg 33938 The canonical homomorphism from the integers to a ring 𝑅 maps additive inverses to additive inverses. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝐿 = (ℤRHom‘𝑅)    &   𝐼 = (invg𝑅)    &   (𝜑𝑅 ∈ Ring)    &   (𝜑𝑁 ∈ ℤ)       (𝜑 → (𝐿‘-𝑁) = (𝐼‘(𝐿𝑁)))
 
5-Oct-2025elrgspn 33178 Membership in the subring generated by the subset 𝐴. An element 𝑋 lies in that subring if and only if 𝑋 is a linear combination with integer coefficients of products of elements of 𝐴. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝐵 = (Base‘𝑅)    &   𝑀 = (mulGrp‘𝑅)    &    · = (.g𝑅)    &   𝑁 = (RingSpan‘𝑅)    &   𝐹 = {𝑓 ∈ (ℤ ↑m Word 𝐴) ∣ 𝑓 finSupp 0}    &   (𝜑𝑅 ∈ Ring)    &   (𝜑𝐴𝐵)       (𝜑 → (𝑋 ∈ (𝑁𝐴) ↔ ∃𝑔𝐹 𝑋 = (𝑅 Σg (𝑤 ∈ Word 𝐴 ↦ ((𝑔𝑤) · (𝑀 Σg 𝑤))))))
 
5-Oct-2025elrgspnlem4 33177 Lemma for elrgspn 33178. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝐵 = (Base‘𝑅)    &   𝑀 = (mulGrp‘𝑅)    &    · = (.g𝑅)    &   𝑁 = (RingSpan‘𝑅)    &   𝐹 = {𝑓 ∈ (ℤ ↑m Word 𝐴) ∣ 𝑓 finSupp 0}    &   (𝜑𝑅 ∈ Ring)    &   (𝜑𝐴𝐵)    &   𝑆 = ran (𝑔𝐹 ↦ (𝑅 Σg (𝑤 ∈ Word 𝐴 ↦ ((𝑔𝑤) · (𝑀 Σg 𝑤)))))       (𝜑 → (𝑁𝐴) = 𝑆)
 
5-Oct-2025elrgspnlem3 33176 Lemma for elrgspn 33178. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝐵 = (Base‘𝑅)    &   𝑀 = (mulGrp‘𝑅)    &    · = (.g𝑅)    &   𝑁 = (RingSpan‘𝑅)    &   𝐹 = {𝑓 ∈ (ℤ ↑m Word 𝐴) ∣ 𝑓 finSupp 0}    &   (𝜑𝑅 ∈ Ring)    &   (𝜑𝐴𝐵)    &   𝑆 = ran (𝑔𝐹 ↦ (𝑅 Σg (𝑤 ∈ Word 𝐴 ↦ ((𝑔𝑤) · (𝑀 Σg 𝑤)))))       (𝜑𝐴𝑆)
 
5-Oct-2025elrgspnlem2 33175 Lemma for elrgspn 33178. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝐵 = (Base‘𝑅)    &   𝑀 = (mulGrp‘𝑅)    &    · = (.g𝑅)    &   𝑁 = (RingSpan‘𝑅)    &   𝐹 = {𝑓 ∈ (ℤ ↑m Word 𝐴) ∣ 𝑓 finSupp 0}    &   (𝜑𝑅 ∈ Ring)    &   (𝜑𝐴𝐵)    &   𝑆 = ran (𝑔𝐹 ↦ (𝑅 Σg (𝑤 ∈ Word 𝐴 ↦ ((𝑔𝑤) · (𝑀 Σg 𝑤)))))       (𝜑𝑆 ∈ (SubRing‘𝑅))
 
5-Oct-2025elrgspnlem1 33174 Lemma for elrgspn 33178. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝐵 = (Base‘𝑅)    &   𝑀 = (mulGrp‘𝑅)    &    · = (.g𝑅)    &   𝑁 = (RingSpan‘𝑅)    &   𝐹 = {𝑓 ∈ (ℤ ↑m Word 𝐴) ∣ 𝑓 finSupp 0}    &   (𝜑𝑅 ∈ Ring)    &   (𝜑𝐴𝐵)    &   𝑆 = ran (𝑔𝐹 ↦ (𝑅 Σg (𝑤 ∈ Word 𝐴 ↦ ((𝑔𝑤) · (𝑀 Σg 𝑤)))))       (𝜑𝑆 ∈ (SubGrp‘𝑅))
 
5-Oct-2025gsumwrd2dccat 32998 Rewrite a sum ranging over pairs of words as a sum of sums over concatenated subwords. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝐵 = (Base‘𝑀)    &   𝑍 = (0g𝑀)    &   (𝜑𝐹:(Word 𝐴 × Word 𝐴)⟶𝐵)    &   (𝜑𝐹 finSupp 𝑍)    &   (𝜑𝑀 ∈ CMnd)    &   (𝜑𝐴𝐵)       (𝜑 → (𝑀 Σg 𝐹) = (𝑀 Σg (𝑤 ∈ Word 𝐴 ↦ (𝑀 Σg (𝑗 ∈ (0...(♯‘𝑤)) ↦ (𝐹‘⟨(𝑤 prefix 𝑗), (𝑤 substr ⟨𝑗, (♯‘𝑤)⟩)⟩))))))
 
5-Oct-2025gsumwrd2dccatlem 32997 Lemma for gsumwrd2dccat 32998. Expose a bijection 𝐹 between (ordered) pairs of words and words with a length of a subword. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝑈 = 𝑤 ∈ Word 𝐴({𝑤} × (0...(♯‘𝑤)))    &   𝐹 = (𝑎 ∈ (Word 𝐴 × Word 𝐴) ↦ ⟨((1st𝑎) ++ (2nd𝑎)), (♯‘(1st𝑎))⟩)    &   𝐺 = (𝑏𝑈 ↦ ⟨((1st𝑏) prefix (2nd𝑏)), ((1st𝑏) substr ⟨(2nd𝑏), (♯‘(1st𝑏))⟩)⟩)    &   (𝜑𝐴𝑉)       (𝜑 → (𝐹:(Word 𝐴 × Word 𝐴)–1-1-onto𝑈𝐹 = 𝐺))
 
5-Oct-2025gsummulgc2 32991 A finite group sum multiplied by a constant. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝐵 = (Base‘𝑀)    &    · = (.g𝑀)    &   (𝜑𝑀 ∈ Grp)    &   (𝜑𝐴 ∈ Fin)    &   (𝜑𝑌𝐵)    &   ((𝜑𝑘𝐴) → 𝑋 ∈ ℤ)       (𝜑 → (𝑀 Σg (𝑘𝐴 ↦ (𝑋 · 𝑌))) = (Σ𝑘𝐴 𝑋 · 𝑌))
 
5-Oct-2025gsumzrsum 32990 Relate a group sum on ring to a finite sum on the complex numbers. See also gsumfsum 21389. (Contributed by Thierry Arnoux, 5-Oct-2025.)
(𝜑𝐴 ∈ Fin)    &   ((𝜑𝑘𝐴) → 𝐵 ∈ ℤ)       (𝜑 → (ℤring Σg (𝑘𝐴𝐵)) = Σ𝑘𝐴 𝐵)
 
5-Oct-2025gsumfs2d 32986 Express a finite sum over a two-dimensional range as a double sum. Version of gsum2d 19940 using finite support. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝑥𝜑    &   𝐵 = (Base‘𝑊)    &    0 = (0g𝑊)    &   (𝜑 → Rel 𝐴)    &   (𝜑𝐹 finSupp 0 )    &   (𝜑𝑊 ∈ CMnd)    &   (𝜑𝐹:𝐴𝐵)    &   (𝜑𝐴𝑋)       (𝜑 → (𝑊 Σg 𝐹) = (𝑊 Σg (𝑥 ∈ dom 𝐴 ↦ (𝑊 Σg (𝑦 ∈ (𝐴 “ {𝑥}) ↦ (𝐹‘⟨𝑥, 𝑦⟩))))))
 
5-Oct-2025gsummptfsf1o 32985 Re-index a finite group sum using a bijection. A version of gsummptf1o 19931 expressed using finite support. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝑥𝐻    &   𝐵 = (Base‘𝐺)    &    0 = (0g𝐺)    &   (𝑥 = 𝐸𝐶 = 𝐻)    &   (𝜑𝐺 ∈ CMnd)    &   (𝜑𝐴𝑉)    &   (𝜑 → (𝑥𝐴𝐶) finSupp 0 )    &   (𝜑𝐹𝐵)    &   ((𝜑𝑥𝐴) → 𝐶𝐹)    &   ((𝜑𝑦𝐷) → 𝐸𝐴)    &   ((𝜑𝑥𝐴) → ∃!𝑦𝐷 𝑥 = 𝐸)       (𝜑 → (𝐺 Σg (𝑥𝐴𝐶)) = (𝐺 Σg (𝑦𝐷𝐻)))
 
5-Oct-2025subgmulgcld 32976 Closure of the group multiple within a subgroup. (Contributed by Thierry Arnoux, 5-Oct-2025.)
𝐵 = (Base‘𝑅)    &    · = (.g𝑅)    &   (𝜑𝑅 ∈ Grp)    &   (𝜑𝐴𝑆)    &   (𝜑𝑆 ∈ (SubGrp‘𝑅))    &   (𝜑𝑍 ∈ ℤ)       (𝜑 → (𝑍 · 𝐴) ∈ 𝑆)
 
5-Oct-2025fmptunsnop 32611 Two ways to express a function with a value replaced. (Contributed by Thierry Arnoux, 5-Oct-2025.)
(𝜑𝐹 Fn 𝐴)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐵)       (𝜑 → (𝑥𝐴 ↦ if(𝑥 = 𝑋, 𝑌, (𝐹𝑥))) = ((𝐹 ↾ (𝐴 ∖ {𝑋})) ∪ {⟨𝑋, 𝑌⟩}))
 
5-Oct-2025fdifsupp 32596 Express the support of a function 𝐹 outside of 𝐵 in two different ways. (Contributed by Thierry Arnoux, 5-Oct-2025.)
(𝜑𝐴𝑉)    &   (𝜑𝑍𝑊)    &   (𝜑𝐹 Fn 𝐴)       (𝜑 → ((𝐹 ↾ (𝐴𝐵)) supp 𝑍) = ((𝐹 supp 𝑍) ∖ 𝐵))
 
5-Oct-2025suppun2 32595 The support of a union is the union of the supports. (Contributed by Thierry Arnoux, 5-Oct-2025.)
(𝜑𝐹𝑉)    &   (𝜑𝐺𝑊)    &   (𝜑𝑍𝑋)       (𝜑 → ((𝐹𝐺) supp 𝑍) = ((𝐹 supp 𝑍) ∪ (𝐺 supp 𝑍)))
 
5-Oct-2025fisuppov1 32594 Formula building theorem for finite support: operator with left annihilator. (Contributed by Thierry Arnoux, 5-Oct-2025.)
(𝜑𝑍𝑉)    &   (𝜑0𝑋)    &   (𝜑𝐴𝑊)    &   (𝜑𝐷𝐴)    &   ((𝜑𝑥𝐷) → 𝐵𝑌)    &   (𝜑𝐹:𝐴𝐸)    &   (𝜑𝐹 finSupp 0 )    &   ((𝜑𝑦𝑌) → ( 0 𝑂𝑦) = 𝑍)       (𝜑 → (𝑥𝐷 ↦ ((𝐹𝑥)𝑂𝐵)) finSupp 𝑍)
 
5-Oct-2025elsuppfnd 32593 Deduce membership in the support of a function. (Contributed by Thierry Arnoux, 5-Oct-2025.)
(𝜑𝐹 Fn 𝐴)    &   (𝜑𝐴𝑉)    &   (𝜑𝑍𝑊)    &   (𝜑𝑋𝐴)    &   (𝜑 → (𝐹𝑋) ≠ 𝑍)       (𝜑𝑋 ∈ (𝐹 supp 𝑍))
 
5-Oct-2025dmdju 32559 Domain of a disjoint union of non-empty sets. (Contributed by Thierry Arnoux, 5-Oct-2025.)
((𝜑𝑥𝐴) → 𝐵 ≠ ∅)       (𝜑 → dom 𝑥𝐴 ({𝑥} × 𝐵) = 𝐴)
 
5-Oct-2025simp-12r 32364 Simplification of a conjunction. (Contributed by Thierry Arnoux, 5-Oct-2025.)
(((((((((((((𝜑𝜓) ∧ 𝜒) ∧ 𝜃) ∧ 𝜏) ∧ 𝜂) ∧ 𝜁) ∧ 𝜎) ∧ 𝜌) ∧ 𝜇) ∧ 𝜆) ∧ 𝜅) ∧ 𝜈) → 𝜓)
 
5-Oct-2025simp-12l 32363 Simplification of a conjunction. (Contributed by Thierry Arnoux, 5-Oct-2025.)
(((((((((((((𝜑𝜓) ∧ 𝜒) ∧ 𝜃) ∧ 𝜏) ∧ 𝜂) ∧ 𝜁) ∧ 𝜎) ∧ 𝜌) ∧ 𝜇) ∧ 𝜆) ∧ 𝜅) ∧ 𝜈) → 𝜑)
 
5-Oct-2025cyclnumvtx 29716 The number of vertices of a (non-trivial) cycle is the number of edges in the cycle. (Contributed by AV, 5-Oct-2025.)
((1 ≤ (♯‘𝐹) ∧ 𝐹(Cycles‘𝐺)𝑃) → (♯‘ran 𝑃) = (♯‘𝐹))
 
4-Oct-2025dfpth2 29645 Alternate definition for a pair of classes/functions to be a path (in an undirected graph). (Contributed by AV, 4-Oct-2025.)
(𝐹(Paths‘𝐺)𝑃 ↔ (𝐹(Trails‘𝐺)𝑃 ∧ Fun (𝑃 ↾ (1...(♯‘𝐹))) ∧ (𝑃‘0) ∉ (𝑃 “ (1..^(♯‘𝐹)))))
 
4-Oct-2025f1imadifssran 6619 Condition for the range of a one-to-one function to be the range of one its restrictions. Variant of imadifssran 6138. (Contributed by AV, 4-Oct-2025.)
(Fun 𝐹 → ((𝐹 “ (dom 𝐹𝐴)) ⊆ ran (𝐹𝐴) → ran 𝐹 = ran (𝐹𝐴)))
 
4-Oct-2025imadifssran 6138 Condition for the range of a relation to be the range of one its restrictions. (Contributed by AV, 4-Oct-2025.)
((Rel 𝐹𝐴 ⊆ dom 𝐹) → ((𝐹 “ (dom 𝐹𝐴)) ⊆ ran (𝐹𝐴) → ran 𝐹 = ran (𝐹𝐴)))
 
3-Oct-2025fucofunc 49133 The functor composition bifunctor is a functor. See also fucofunca 49134.

However, it is unlikely the unique functor compatible with the functor composition. As a counterexample, let 𝐶 and 𝐷 be terminal categories (categories of one object and one morphism, df-termc 49220), for example, (SetCat‘1o) (the trivial category, setc1oterm 49237), and 𝐸 be a category with two objects equipped with only two non-identity morphisms 𝑓 and 𝑔, pointing in the same direction. It is possible to map the ordered pair of natural transformations 𝑎, 𝑖, where 𝑎 sends to 𝑓 and 𝑖 is the identity natural transformation, to the other natural transformation 𝑏 sending to 𝑔, i.e., define the morphism part 𝑃 such that (𝑎(𝑈𝑃𝑉)𝑖) = 𝑏 such that (𝑏𝑋) = 𝑔 given hypotheses of fuco23 49115. Such construction should be provable as a functor.

Given any 𝑃, it is a morphism part of a functor compatible with the object part, i.e., the functor composition, i.e., the restriction of func, iff both of the following hold.

1. It has the same form as df-fuco 49091 up to fuco23 49115, but ((𝐵(𝑈𝑃𝑉)𝐴)‘𝑋) might be mapped to a different morphism in category 𝐸. See fucofulem2 49085 for some insights.

2. fuco22nat 49120, fucoid 49122, and fucoco 49131 are satisfied.

(Contributed by Zhi Wang, 3-Oct-2025.)

𝑇 = ((𝐷 FuncCat 𝐸) ×c (𝐶 FuncCat 𝐷))    &   𝑄 = (𝐶 FuncCat 𝐸)    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝐷 ∈ Cat)    &   (𝜑𝐸 ∈ Cat)       (𝜑𝑂(𝑇 Func 𝑄)𝑃)
 
3-Oct-2025fucoco2 49132 Composition in the source category is mapped to composition in the target. See also fucoco 49131. (Contributed by Zhi Wang, 3-Oct-2025.)
𝑇 = ((𝐷 FuncCat 𝐸) ×c (𝐶 FuncCat 𝐷))    &   𝑄 = (𝐶 FuncCat 𝐸)    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &    · = (comp‘𝑇)    &    = (comp‘𝑄)    &   (𝜑𝑊 = ((𝐷 Func 𝐸) × (𝐶 Func 𝐷)))    &   (𝜑𝑋𝑊)    &   (𝜑𝑌𝑊)    &   (𝜑𝑍𝑊)    &   𝐽 = (Hom ‘𝑇)    &   (𝜑𝐴 ∈ (𝑋𝐽𝑌))    &   (𝜑𝐵 ∈ (𝑌𝐽𝑍))       (𝜑 → ((𝑋𝑃𝑍)‘(𝐵(⟨𝑋, 𝑌· 𝑍)𝐴)) = (((𝑌𝑃𝑍)‘𝐵)(⟨(𝑂𝑋), (𝑂𝑌)⟩ (𝑂𝑍))((𝑋𝑃𝑌)‘𝐴)))
 
3-Oct-2025fucoco 49131 Composition in the source category is mapped to composition in the target. See also fucoco2 49132. (Contributed by Zhi Wang, 3-Oct-2025.)
(𝜑𝑅 ∈ (𝐹(𝐷 Nat 𝐸)𝐾))    &   (𝜑𝑆 ∈ (𝐺(𝐶 Nat 𝐷)𝐿))    &   (𝜑𝑈 ∈ (𝐾(𝐷 Nat 𝐸)𝑀))    &   (𝜑𝑉 ∈ (𝐿(𝐶 Nat 𝐷)𝑁))    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑋 = ⟨𝐹, 𝐺⟩)    &   (𝜑𝑌 = ⟨𝐾, 𝐿⟩)    &   (𝜑𝑍 = ⟨𝑀, 𝑁⟩)    &   (𝜑𝐴 = ⟨𝑅, 𝑆⟩)    &   (𝜑𝐵 = ⟨𝑈, 𝑉⟩)    &   𝑄 = (𝐶 FuncCat 𝐸)    &    = (comp‘𝑄)    &   𝑇 = ((𝐷 FuncCat 𝐸) ×c (𝐶 FuncCat 𝐷))    &    · = (comp‘𝑇)       (𝜑 → ((𝑋𝑃𝑍)‘(𝐵(⟨𝑋, 𝑌· 𝑍)𝐴)) = (((𝑌𝑃𝑍)‘𝐵)(⟨(𝑂𝑋), (𝑂𝑌)⟩ (𝑂𝑍))((𝑋𝑃𝑌)‘𝐴)))
 
3-Oct-2025fucocolem3 49129 Lemma for fucoco 49131. The composed natural transformations are mapped to composition of 4 natural transformations. (Contributed by Zhi Wang, 3-Oct-2025.)
(𝜑𝑅 ∈ (𝐹(𝐷 Nat 𝐸)𝐾))    &   (𝜑𝑆 ∈ (𝐺(𝐶 Nat 𝐷)𝐿))    &   (𝜑𝑈 ∈ (𝐾(𝐷 Nat 𝐸)𝑀))    &   (𝜑𝑉 ∈ (𝐿(𝐶 Nat 𝐷)𝑁))    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑋 = ⟨𝐹, 𝐺⟩)    &   (𝜑𝑌 = ⟨𝐾, 𝐿⟩)    &   (𝜑𝑍 = ⟨𝑀, 𝑁⟩)    &   (𝜑𝐴 = ⟨𝑅, 𝑆⟩)    &   (𝜑𝐵 = ⟨𝑈, 𝑉⟩)    &   𝑇 = ((𝐷 FuncCat 𝐸) ×c (𝐶 FuncCat 𝐷))    &    · = (comp‘𝑇)    &    = (comp‘𝐷)       (𝜑 → ((𝑋𝑃𝑍)‘(𝐵(⟨𝑋, 𝑌· 𝑍)𝐴)) = (𝑥 ∈ (Base‘𝐶) ↦ ((𝑈‘((1st𝑁)‘𝑥))(⟨((1st𝐹)‘((1st𝐺)‘𝑥)), ((1st𝐾)‘((1st𝑁)‘𝑥))⟩(comp‘𝐸)((1st𝑀)‘((1st𝑁)‘𝑥)))(((𝑅‘((1st𝑁)‘𝑥))(⟨((1st𝐹)‘((1st𝐿)‘𝑥)), ((1st𝐹)‘((1st𝑁)‘𝑥))⟩(comp‘𝐸)((1st𝐾)‘((1st𝑁)‘𝑥)))((((1st𝐿)‘𝑥)(2nd𝐹)((1st𝑁)‘𝑥))‘(𝑉𝑥)))(⟨((1st𝐹)‘((1st𝐺)‘𝑥)), ((1st𝐹)‘((1st𝐿)‘𝑥))⟩(comp‘𝐸)((1st𝐾)‘((1st𝑁)‘𝑥)))((((1st𝐺)‘𝑥)(2nd𝐹)((1st𝐿)‘𝑥))‘(𝑆𝑥))))))
 
3-Oct-2025fuco23a 49126 The morphism part of the functor composition bifunctor. An alternate definition of F. See also fuco23 49115. (Contributed by Zhi Wang, 3-Oct-2025.)
(𝜑𝐴 ∈ (⟨𝐹, 𝐺⟩(𝐶 Nat 𝐷)⟨𝑀, 𝑁⟩))    &   (𝜑𝐵 ∈ (⟨𝐾, 𝐿⟩(𝐷 Nat 𝐸)⟨𝑅, 𝑆⟩))    &   (𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   (𝜑𝑉 = ⟨⟨𝑅, 𝑆⟩, ⟨𝑀, 𝑁⟩⟩)    &   (𝜑 = (⟨(𝐾‘(𝐹𝑋)), (𝑅‘(𝐹𝑋))⟩(comp‘𝐸)(𝑅‘(𝑀𝑋))))       (𝜑 → ((𝐵(𝑈𝑃𝑉)𝐴)‘𝑋) = ((((𝐹𝑋)𝑆(𝑀𝑋))‘(𝐴𝑋)) (𝐵‘(𝐹𝑋))))
 
3-Oct-2025fuco23alem 49125 The naturality property (nati 17958) in category 𝐸. (Contributed by Zhi Wang, 3-Oct-2025.)
(𝜑𝐴 ∈ (⟨𝐹, 𝐺⟩(𝐶 Nat 𝐷)⟨𝑀, 𝑁⟩))    &   (𝜑𝐵 ∈ (⟨𝐾, 𝐿⟩(𝐷 Nat 𝐸)⟨𝑅, 𝑆⟩))    &   (𝜑𝑋 ∈ (Base‘𝐶))    &    · = (comp‘𝐸)       (𝜑 → ((𝐵‘(𝑀𝑋))(⟨(𝐾‘(𝐹𝑋)), (𝐾‘(𝑀𝑋))⟩ · (𝑅‘(𝑀𝑋)))(((𝐹𝑋)𝐿(𝑀𝑋))‘(𝐴𝑋))) = ((((𝐹𝑋)𝑆(𝑀𝑋))‘(𝐴𝑋))(⟨(𝐾‘(𝐹𝑋)), (𝑅‘(𝐹𝑋))⟩ · (𝑅‘(𝑀𝑋)))(𝐵‘(𝐹𝑋))))
 
3-Oct-2025fuco11idx 49109 The identity morphism of the mapped object. (Contributed by Zhi Wang, 3-Oct-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   𝑄 = (𝐶 FuncCat 𝐸)    &   𝐼 = (Id‘𝑄)    &    1 = (Id‘𝐸)    &   (𝜑𝑋 ∈ (Base‘𝐶))       (𝜑 → ((𝐼‘(𝑂𝑈))‘𝑋) = ( 1 ‘(𝐾‘(𝐹𝑋))))
 
3-Oct-2025fuco112xa 49107 The object part of the functor composition bifunctor maps two functors to their composition, expressed explicitly for the morphism part of the composed functor. A morphism is mapped by two functors in succession. (Contributed by Zhi Wang, 3-Oct-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   (𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑𝑌 ∈ (Base‘𝐶))    &   (𝜑𝐴 ∈ (𝑋(Hom ‘𝐶)𝑌))       (𝜑 → ((𝑋(2nd ‘(𝑂𝑈))𝑌)‘𝐴) = (((𝐹𝑋)𝐿(𝐹𝑌))‘((𝑋𝐺𝑌)‘𝐴)))
 
3-Oct-2025fuco112x 49106 The object part of the functor composition bifunctor maps two functors to their composition, expressed explicitly for the morphism part of the composed functor. (Contributed by Zhi Wang, 3-Oct-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   (𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑𝑌 ∈ (Base‘𝐶))       (𝜑 → (𝑋(2nd ‘(𝑂𝑈))𝑌) = (((𝐹𝑋)𝐿(𝐹𝑌)) ∘ (𝑋𝐺𝑌)))
 
3-Oct-2025fuco111x 49105 The object part of the functor composition bifunctor maps two functors to their composition, expressed explicitly for the object part of the composed functor. An object is mapped by two functors in succession. (Contributed by Zhi Wang, 3-Oct-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   (𝜑𝑋 ∈ (Base‘𝐶))       (𝜑 → ((1st ‘(𝑂𝑈))‘𝑋) = (𝐾‘(𝐹𝑋)))
 
3-Oct-2025fuco112 49103 The object part of the functor composition bifunctor maps two functors to their composition, expressed explicitly for the morphism part of the composed functor. (Contributed by Zhi Wang, 3-Oct-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   𝐵 = (Base‘𝐶)       (𝜑 → (2nd ‘(𝑂𝑈)) = (𝑥𝐵, 𝑦𝐵 ↦ (((𝐹𝑥)𝐿(𝐹𝑦)) ∘ (𝑥𝐺𝑦))))
 
3-Oct-2025resf1ext2b 7926 Extension of an injection which is a restriction of a function. (Contributed by AV, 3-Oct-2025.)
((𝐹:𝐴𝐵𝑋 ∈ (𝐴𝐶) ∧ 𝐶𝐴) → ((Fun (𝐹𝐶) ∧ (𝐹𝑋) ∉ (𝐹𝐶)) ↔ Fun (𝐹 ↾ (𝐶 ∪ {𝑋}))))
 
3-Oct-2025resf1extb 7925 Extension of an injection which is a restriction of a function. (Contributed by AV, 3-Oct-2025.)
((𝐹:𝐴𝐵𝑋 ∈ (𝐴𝐶) ∧ 𝐶𝐴) → (((𝐹𝐶):𝐶1-1𝐵 ∧ (𝐹𝑋) ∉ (𝐹𝐶)) ↔ (𝐹 ↾ (𝐶 ∪ {𝑋})):(𝐶 ∪ {𝑋})–1-1𝐵))
 
2-Oct-2025fucocolem4 49130 Lemma for fucoco 49131. The composed natural transformations are mapped to composition of 4 natural transformations. (Contributed by Zhi Wang, 2-Oct-2025.)
(𝜑𝑅 ∈ (𝐹(𝐷 Nat 𝐸)𝐾))    &   (𝜑𝑆 ∈ (𝐺(𝐶 Nat 𝐷)𝐿))    &   (𝜑𝑈 ∈ (𝐾(𝐷 Nat 𝐸)𝑀))    &   (𝜑𝑉 ∈ (𝐿(𝐶 Nat 𝐷)𝑁))    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑋 = ⟨𝐹, 𝐺⟩)    &   (𝜑𝑌 = ⟨𝐾, 𝐿⟩)    &   (𝜑𝑍 = ⟨𝑀, 𝑁⟩)    &   (𝜑𝐴 = ⟨𝑅, 𝑆⟩)    &   (𝜑𝐵 = ⟨𝑈, 𝑉⟩)    &   𝑄 = (𝐶 FuncCat 𝐸)    &    = (comp‘𝑄)       (𝜑 → (((𝑌𝑃𝑍)‘𝐵)(⟨(𝑂𝑋), (𝑂𝑌)⟩ (𝑂𝑍))((𝑋𝑃𝑌)‘𝐴)) = (𝑥 ∈ (Base‘𝐶) ↦ (((𝑈‘((1st𝑁)‘𝑥))(⟨((1st𝐾)‘((1st𝐿)‘𝑥)), ((1st𝐾)‘((1st𝑁)‘𝑥))⟩(comp‘𝐸)((1st𝑀)‘((1st𝑁)‘𝑥)))((((1st𝐿)‘𝑥)(2nd𝐾)((1st𝑁)‘𝑥))‘(𝑉𝑥)))(⟨((1st𝐹)‘((1st𝐺)‘𝑥)), ((1st𝐾)‘((1st𝐿)‘𝑥))⟩(comp‘𝐸)((1st𝑀)‘((1st𝑁)‘𝑥)))((𝑅‘((1st𝐿)‘𝑥))(⟨((1st𝐹)‘((1st𝐺)‘𝑥)), ((1st𝐹)‘((1st𝐿)‘𝑥))⟩(comp‘𝐸)((1st𝐾)‘((1st𝐿)‘𝑥)))((((1st𝐺)‘𝑥)(2nd𝐹)((1st𝐿)‘𝑥))‘(𝑆𝑥))))))
 
2-Oct-2025fucocolem2 49128 Lemma for fucoco 49131. The composed natural transformations are mapped to composition of 4 natural transformations. (Contributed by Zhi Wang, 2-Oct-2025.)
(𝜑𝑅 ∈ (𝐹(𝐷 Nat 𝐸)𝐾))    &   (𝜑𝑆 ∈ (𝐺(𝐶 Nat 𝐷)𝐿))    &   (𝜑𝑈 ∈ (𝐾(𝐷 Nat 𝐸)𝑀))    &   (𝜑𝑉 ∈ (𝐿(𝐶 Nat 𝐷)𝑁))    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑋 = ⟨𝐹, 𝐺⟩)    &   (𝜑𝑌 = ⟨𝐾, 𝐿⟩)    &   (𝜑𝑍 = ⟨𝑀, 𝑁⟩)    &   (𝜑𝐴 = ⟨𝑅, 𝑆⟩)    &   (𝜑𝐵 = ⟨𝑈, 𝑉⟩)    &   𝑇 = ((𝐷 FuncCat 𝐸) ×c (𝐶 FuncCat 𝐷))    &    · = (comp‘𝑇)    &    = (comp‘𝐷)       (𝜑 → ((𝑋𝑃𝑍)‘(𝐵(⟨𝑋, 𝑌· 𝑍)𝐴)) = (𝑥 ∈ (Base‘𝐶) ↦ (((𝑈‘((1st𝑁)‘𝑥))(⟨((1st𝐹)‘((1st𝑁)‘𝑥)), ((1st𝐾)‘((1st𝑁)‘𝑥))⟩(comp‘𝐸)((1st𝑀)‘((1st𝑁)‘𝑥)))(𝑅‘((1st𝑁)‘𝑥)))(⟨((1st𝐹)‘((1st𝐺)‘𝑥)), ((1st𝐹)‘((1st𝑁)‘𝑥))⟩(comp‘𝐸)((1st𝑀)‘((1st𝑁)‘𝑥)))((((1st𝐺)‘𝑥)(2nd𝐹)((1st𝑁)‘𝑥))‘((𝑉𝑥)(⟨((1st𝐺)‘𝑥), ((1st𝐿)‘𝑥)⟩ ((1st𝑁)‘𝑥))(𝑆𝑥))))))
 
2-Oct-2025fucocolem1 49127 Lemma for fucoco 49131. Associativity for morphisms in category 𝐸. To simply put, ((𝑎 · 𝑏) · (𝑐 · 𝑑)) = (𝑎 · ((𝑏 · 𝑐) · 𝑑)) for morphism compositions. (Contributed by Zhi Wang, 2-Oct-2025.)
(𝜑𝑅 ∈ (𝐹(𝐷 Nat 𝐸)𝐾))    &   (𝜑𝑆 ∈ (𝐺(𝐶 Nat 𝐷)𝐿))    &   (𝜑𝑈 ∈ (𝐾(𝐷 Nat 𝐸)𝑀))    &   (𝜑𝑉 ∈ (𝐿(𝐶 Nat 𝐷)𝑁))    &   (𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑𝑃 ∈ (𝐷 Func 𝐸))    &   (𝜑𝑄 ∈ (𝐶 Func 𝐷))    &   (𝜑𝐴 ∈ (((1st𝑃)‘((1st𝑄)‘𝑋))(Hom ‘𝐸)((1st𝐾)‘((1st𝑁)‘𝑋))))    &   (𝜑𝐵 ∈ (((1st𝐹)‘((1st𝐿)‘𝑋))(Hom ‘𝐸)((1st𝑃)‘((1st𝑄)‘𝑋))))       (𝜑 → (((𝑈‘((1st𝑁)‘𝑋))(⟨((1st𝑃)‘((1st𝑄)‘𝑋)), ((1st𝐾)‘((1st𝑁)‘𝑋))⟩(comp‘𝐸)((1st𝑀)‘((1st𝑁)‘𝑋)))𝐴)(⟨((1st𝐹)‘((1st𝐺)‘𝑋)), ((1st𝑃)‘((1st𝑄)‘𝑋))⟩(comp‘𝐸)((1st𝑀)‘((1st𝑁)‘𝑋)))(𝐵(⟨((1st𝐹)‘((1st𝐺)‘𝑋)), ((1st𝐹)‘((1st𝐿)‘𝑋))⟩(comp‘𝐸)((1st𝑃)‘((1st𝑄)‘𝑋)))((((1st𝐺)‘𝑋)(2nd𝐹)((1st𝐿)‘𝑋))‘(𝑆𝑋)))) = ((𝑈‘((1st𝑁)‘𝑋))(⟨((1st𝐹)‘((1st𝐺)‘𝑋)), ((1st𝐾)‘((1st𝑁)‘𝑋))⟩(comp‘𝐸)((1st𝑀)‘((1st𝑁)‘𝑋)))((𝐴(⟨((1st𝐹)‘((1st𝐿)‘𝑋)), ((1st𝑃)‘((1st𝑄)‘𝑋))⟩(comp‘𝐸)((1st𝐾)‘((1st𝑁)‘𝑋)))𝐵)(⟨((1st𝐹)‘((1st𝐺)‘𝑋)), ((1st𝐹)‘((1st𝐿)‘𝑋))⟩(comp‘𝐸)((1st𝐾)‘((1st𝑁)‘𝑋)))((((1st𝐺)‘𝑋)(2nd𝐹)((1st𝐿)‘𝑋))‘(𝑆𝑋)))))
 
2-Oct-2025fuco22nat 49120 The composed natural transformation is a natural transformation. (Contributed by Zhi Wang, 2-Oct-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐴 ∈ (𝐹(𝐶 Nat 𝐷)𝑀))    &   (𝜑𝐵 ∈ (𝐾(𝐷 Nat 𝐸)𝑅))    &   (𝜑𝑈 = ⟨𝐾, 𝐹⟩)    &   (𝜑𝑉 = ⟨𝑅, 𝑀⟩)       (𝜑 → (𝐵(𝑈𝑃𝑉)𝐴) ∈ ((𝑂𝑈)(𝐶 Nat 𝐸)(𝑂𝑉)))
 
2-Oct-2025fuco111 49104 The object part of the functor composition bifunctor maps two functors to their composition, expressed explicitly for the object part of the composed functor. (Contributed by Zhi Wang, 2-Oct-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)       (𝜑 → (1st ‘(𝑂𝑈)) = (𝐾𝐹))
 
2-Oct-2025antnest 35640 Suppose 𝜑, 𝜓 are distinct atomic propositional formulas, and let Γ be the smallest class of formulas for which ⊤ ∈ Γ and (𝜒𝜑), (𝜒𝜓) ∈ Γ for 𝜒 ∈ Γ. The present theorem is then an element of Γ, and the implications occurring in the theorem are in one-to-one correspondence with the formulas in Γ up to logical equivalence. In particular, the theorem itself is equivalent to ⊤ ∈ Γ. (Contributed by Adrian Ducourtial, 2-Oct-2025.)
((((((⊤ → 𝜑) → 𝜓) → 𝜓) → 𝜑) → 𝜓) → 𝜓)
 
2-Oct-2025pthspthcyc 29719 A pair 𝐹, 𝑃 represents a path if it represents either a simple path or a cycle. The exclusivity only holds for non-trivial paths (𝐹 ≠ ∅), see cyclnspth 29717. (Contributed by AV, 2-Oct-2025.)
(𝐹(Paths‘𝐺)𝑃 ↔ (𝐹(SPaths‘𝐺)𝑃𝐹(Cycles‘𝐺)𝑃))
 
2-Oct-2025pthdifv 29646 The vertices of a path are distinct (except the first and last vertex), so the restricted vertex function is one-to-one. (Contributed by AV, 2-Oct-2025.)
(𝐹(Paths‘𝐺)𝑃 → (𝑃 ↾ (1...(♯‘𝐹))):(1...(♯‘𝐹))–1-1→(Vtx‘𝐺))
 
1-Oct-2025fuco22a 49124 The morphism part of the functor composition bifunctor. See also fuco22 49113. (Contributed by Zhi Wang, 1-Oct-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑈 = ⟨𝐾, 𝐹⟩)    &   (𝜑𝑉 = ⟨𝑅, 𝑀⟩)    &   (𝜑𝐴 ∈ (𝐹(𝐶 Nat 𝐷)𝑀))    &   (𝜑𝐵 ∈ (𝐾(𝐷 Nat 𝐸)𝑅))       (𝜑 → (𝐵(𝑈𝑃𝑉)𝐴) = (𝑥 ∈ (Base‘𝐶) ↦ ((𝐵‘((1st𝑀)‘𝑥))(⟨((1st𝐾)‘((1st𝐹)‘𝑥)), ((1st𝐾)‘((1st𝑀)‘𝑥))⟩(comp‘𝐸)((1st𝑅)‘((1st𝑀)‘𝑥)))((((1st𝐹)‘𝑥)(2nd𝐾)((1st𝑀)‘𝑥))‘(𝐴𝑥)))))
 
1-Oct-2025xpcfucco3 49038 Value of composition in the binary product of categories of functors; expressed explicitly. (Contributed by Zhi Wang, 1-Oct-2025.)
𝑇 = ((𝐵 FuncCat 𝐶) ×c (𝐷 FuncCat 𝐸))    &   𝑂 = (comp‘𝑇)    &   (𝜑𝐹 ∈ (𝑀(𝐵 Nat 𝐶)𝑃))    &   (𝜑𝐺 ∈ (𝑁(𝐷 Nat 𝐸)𝑄))    &   (𝜑𝐾 ∈ (𝑃(𝐵 Nat 𝐶)𝑅))    &   (𝜑𝐿 ∈ (𝑄(𝐷 Nat 𝐸)𝑆))    &   𝑋 = (Base‘𝐵)    &   𝑌 = (Base‘𝐷)    &    · = (comp‘𝐶)    &    = (comp‘𝐸)       (𝜑 → (⟨𝐾, 𝐿⟩(⟨⟨𝑀, 𝑁⟩, ⟨𝑃, 𝑄⟩⟩𝑂𝑅, 𝑆⟩)⟨𝐹, 𝐺⟩) = ⟨(𝑥𝑋 ↦ ((𝐾𝑥)(⟨((1st𝑀)‘𝑥), ((1st𝑃)‘𝑥)⟩ · ((1st𝑅)‘𝑥))(𝐹𝑥))), (𝑦𝑌 ↦ ((𝐿𝑦)(⟨((1st𝑁)‘𝑦), ((1st𝑄)‘𝑦)⟩ ((1st𝑆)‘𝑦))(𝐺𝑦)))⟩)
 
1-Oct-2025xpcfuccocl 49037 The composition of two natural transformations is a natural transformation. (Contributed by Zhi Wang, 1-Oct-2025.)
𝑇 = ((𝐵 FuncCat 𝐶) ×c (𝐷 FuncCat 𝐸))    &   𝑂 = (comp‘𝑇)    &   (𝜑𝐹 ∈ (𝑀(𝐵 Nat 𝐶)𝑃))    &   (𝜑𝐺 ∈ (𝑁(𝐷 Nat 𝐸)𝑄))    &   (𝜑𝐾 ∈ (𝑃(𝐵 Nat 𝐶)𝑅))    &   (𝜑𝐿 ∈ (𝑄(𝐷 Nat 𝐸)𝑆))       (𝜑 → (⟨𝐾, 𝐿⟩(⟨⟨𝑀, 𝑁⟩, ⟨𝑃, 𝑄⟩⟩𝑂𝑅, 𝑆⟩)⟨𝐹, 𝐺⟩) ∈ ((𝑀(𝐵 Nat 𝐶)𝑅) × (𝑁(𝐷 Nat 𝐸)𝑆)))
 
1-Oct-2025xpcfucco2 49036 Value of composition in the binary product of categories of functors. (Contributed by Zhi Wang, 1-Oct-2025.)
𝑇 = ((𝐵 FuncCat 𝐶) ×c (𝐷 FuncCat 𝐸))    &   𝑂 = (comp‘𝑇)    &   (𝜑𝐹 ∈ (𝑀(𝐵 Nat 𝐶)𝑃))    &   (𝜑𝐺 ∈ (𝑁(𝐷 Nat 𝐸)𝑄))    &   (𝜑𝐾 ∈ (𝑃(𝐵 Nat 𝐶)𝑅))    &   (𝜑𝐿 ∈ (𝑄(𝐷 Nat 𝐸)𝑆))       (𝜑 → (⟨𝐾, 𝐿⟩(⟨⟨𝑀, 𝑁⟩, ⟨𝑃, 𝑄⟩⟩𝑂𝑅, 𝑆⟩)⟨𝐹, 𝐺⟩) = ⟨(𝐾(⟨𝑀, 𝑃⟩(comp‘(𝐵 FuncCat 𝐶))𝑅)𝐹), (𝐿(⟨𝑁, 𝑄⟩(comp‘(𝐷 FuncCat 𝐸))𝑆)𝐺)⟩)
 
1-Oct-2025xpcfuchom2 49035 Value of the set of morphisms in the binary product of categories of functors. (Contributed by Zhi Wang, 1-Oct-2025.)
𝑇 = ((𝐵 FuncCat 𝐶) ×c (𝐷 FuncCat 𝐸))    &   (𝜑𝑀 ∈ (𝐵 Func 𝐶))    &   (𝜑𝑁 ∈ (𝐷 Func 𝐸))    &   (𝜑𝑃 ∈ (𝐵 Func 𝐶))    &   (𝜑𝑄 ∈ (𝐷 Func 𝐸))    &   𝐾 = (Hom ‘𝑇)       (𝜑 → (⟨𝑀, 𝑁𝐾𝑃, 𝑄⟩) = ((𝑀(𝐵 Nat 𝐶)𝑃) × (𝑁(𝐷 Nat 𝐸)𝑄)))
 
1-Oct-2025xpcfuchom 49034 Set of morphisms of the binary product of categories of functors. (Contributed by Zhi Wang, 1-Oct-2025.)
𝑇 = ((𝐵 FuncCat 𝐶) ×c (𝐷 FuncCat 𝐸))    &   𝐴 = (Base‘𝑇)    &   𝐾 = (Hom ‘𝑇)    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐴)       (𝜑 → (𝑋𝐾𝑌) = (((1st𝑋)(𝐵 Nat 𝐶)(1st𝑌)) × ((2nd𝑋)(𝐷 Nat 𝐸)(2nd𝑌))))
 
1-Oct-2025xpcfuchomfval 49033 Set of morphisms of the binary product of categories of functors. (Contributed by Zhi Wang, 1-Oct-2025.)
𝑇 = ((𝐵 FuncCat 𝐶) ×c (𝐷 FuncCat 𝐸))    &   𝐴 = (Base‘𝑇)    &   𝐾 = (Hom ‘𝑇)       𝐾 = (𝑢𝐴, 𝑣𝐴 ↦ (((1st𝑢)(𝐵 Nat 𝐶)(1st𝑣)) × ((2nd𝑢)(𝐷 Nat 𝐸)(2nd𝑣))))
 
1-Oct-2025xpcfucbas 49032 The base set of the product of two categories of functors. (Contributed by Zhi Wang, 1-Oct-2025.)
𝑇 = ((𝐵 FuncCat 𝐶) ×c (𝐷 FuncCat 𝐸))       ((𝐵 Func 𝐶) × (𝐷 Func 𝐸)) = (Base‘𝑇)
 
1-Oct-2025natrcl3 49008 Reverse closure for a natural transformation. (Contributed by Zhi Wang, 1-Oct-2025.)
𝑁 = (𝐶 Nat 𝐷)    &   (𝜑𝐴 ∈ (⟨𝐹, 𝐺𝑁𝐾, 𝐿⟩))       (𝜑𝐾(𝐶 Func 𝐷)𝐿)
 
1-Oct-2025natrcl2 49007 Reverse closure for a natural transformation. (Contributed by Zhi Wang, 1-Oct-2025.)
𝑁 = (𝐶 Nat 𝐷)    &   (𝜑𝐴 ∈ (⟨𝐹, 𝐺𝑁𝐾, 𝐿⟩))       (𝜑𝐹(𝐶 Func 𝐷)𝐺)
 
1-Oct-2025gpg3kgrtriex 47998 All generalized Petersen graphs G(N,K) with 𝑁 = 3 · 𝐾 contain triangles. (Contributed by AV, 1-Oct-2025.)
𝑁 = (3 · 𝐾)    &   𝐺 = (𝑁 gPetersenGr 𝐾)       (𝐾 ∈ ℕ → ∃𝑡 𝑡 ∈ (GrTriangles‘𝐺))
 
1-Oct-2025gpg3kgrtriexlem6 47997 Lemma 6 for gpg3kgrtriex 47998: 𝐸 is an edge in the generalized Petersen graph G(N,K) with 𝑁 = 3 · 𝐾. (Contributed by AV, 1-Oct-2025.)
𝑁 = (3 · 𝐾)    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝐸 = {⟨1, (𝐾 mod 𝑁)⟩, ⟨1, (-𝐾 mod 𝑁)⟩}       (𝐾 ∈ ℕ → 𝐸 ∈ (Edg‘𝐺))
 
1-Oct-2025gpg3kgrtriexlem5 47996 Lemma 5 for gpg3kgrtriex 47998. (Contributed by AV, 1-Oct-2025.)
𝑁 = (3 · 𝐾)       (𝐾 ∈ ℕ → (𝐾 mod 𝑁) ≠ (-𝐾 mod 𝑁))
 
1-Oct-2025gpg3kgrtriexlem4 47995 Lemma 4 for gpg3kgrtriex 47998. (Contributed by AV, 1-Oct-2025.)
𝑁 = (3 · 𝐾)       (𝐾 ∈ ℕ → 𝐾 ∈ (1..^(⌈‘(𝑁 / 2))))
 
1-Oct-2025gpg3kgrtriexlem3 47994 Lemma 3 for gpg3kgrtriex 47998. (Contributed by AV, 1-Oct-2025.)
𝑁 = (3 · 𝐾)       (𝐾 ∈ ℕ → 𝑁 ∈ (ℤ‘3))
 
1-Oct-2025gpg3kgrtriexlem2 47993 Lemma 2 for gpg3kgrtriex 47998. (Contributed by AV, 1-Oct-2025.)
𝑁 = (3 · 𝐾)       (𝐾 ∈ ℕ → (-𝐾 mod 𝑁) = (((𝐾 mod 𝑁) + 𝐾) mod 𝑁))
 
1-Oct-2025gpg3kgrtriexlem1 47992 Lemma 1 for gpg3kgrtriex 47998. (Contributed by AV, 1-Oct-2025.)
(𝐾 ∈ ℕ → 𝐾 < (⌈‘((3 · 𝐾) / 2)))
 
1-Oct-2025opgpgvtx 47963 A vertex in a generalized Petersen graph 𝐺 as ordered pair. (Contributed by AV, 1-Oct-2025.)
𝐼 = (0..^𝑁)    &   𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)       ((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) → (⟨𝑋, 𝑌⟩ ∈ 𝑉 ↔ ((𝑋 = 0 ∨ 𝑋 = 1) ∧ 𝑌𝐼)))
 
1-Oct-2025uniclaxun 44945 A class that is closed under the union operation models the Axiom of Union ax-un 7724. Lemma II.2.4(5) of [Kunen2] p. 111. (Contributed by Eric Schmidt, 1-Oct-2025.)
(∀𝑥𝑀 𝑥𝑀 → ∀𝑥𝑀𝑦𝑀𝑧𝑀 (∃𝑤𝑀 (𝑧𝑤𝑤𝑥) → 𝑧𝑦))
 
1-Oct-2025readvrec2 42336 The antiderivative of 1/x in real numbers, without using the absolute value function. (Contributed by SN, 1-Oct-2025.)
𝐷 = (ℝ ∖ {0})       (ℝ D (𝑥𝐷 ↦ ((log‘(𝑥↑2)) / 2))) = (𝑥𝐷 ↦ (1 / 𝑥))
 
1-Oct-2025rpabsid 42301 A positive real is its own absolute value. (Contributed by SN, 1-Oct-2025.)
(𝑅 ∈ ℝ+ → (abs‘𝑅) = 𝑅)
 
1-Oct-2025iocioodisjd 42300 Adjacent intervals where the lower interval is right-closed and the upper interval is open are disjoint. (Contributed by SN, 1-Oct-2025.)
(𝜑𝐴 ∈ ℝ*)    &   (𝜑𝐵 ∈ ℝ*)    &   (𝜑𝐶 ∈ ℝ*)       (𝜑 → ((𝐴(,]𝐵) ∩ (𝐵(,)𝐶)) = ∅)
 
1-Oct-2025rpsscn 42278 The positive reals are a subset of the complex numbers. (Contributed by SN, 1-Oct-2025.)
+ ⊆ ℂ
 
30-Sep-2025fucoid2 49123 Each identity morphism in the source category is mapped to the corresponding identity morphism in the target category. See also fucoid 49122. (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   𝑇 = ((𝐷 FuncCat 𝐸) ×c (𝐶 FuncCat 𝐷))    &    1 = (Id‘𝑇)    &   𝑄 = (𝐶 FuncCat 𝐸)    &   𝐼 = (Id‘𝑄)    &   (𝜑𝑊 = ((𝐷 Func 𝐸) × (𝐶 Func 𝐷)))    &   (𝜑𝑈𝑊)       (𝜑 → ((𝑈𝑃𝑈)‘( 1𝑈)) = (𝐼‘(𝑂𝑈)))
 
30-Sep-2025fucoid 49122 Each identity morphism in the source category is mapped to the corresponding identity morphism in the target category. See also fucoid2 49123. (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   𝑇 = ((𝐷 FuncCat 𝐸) ×c (𝐶 FuncCat 𝐷))    &    1 = (Id‘𝑇)    &   𝑄 = (𝐶 FuncCat 𝐸)    &   𝐼 = (Id‘𝑄)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)       (𝜑 → ((𝑈𝑃𝑈)‘( 1𝑈)) = (𝐼‘(𝑂𝑈)))
 
30-Sep-2025fucof21 49121 The morphism part of the functor composition bifunctor maps a hom-set of the product category into a set of natural transformations. (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   𝑇 = ((𝐷 FuncCat 𝐸) ×c (𝐶 FuncCat 𝐷))    &   𝐽 = (Hom ‘𝑇)    &   (𝜑𝑊 = ((𝐷 Func 𝐸) × (𝐶 Func 𝐷)))    &   (𝜑𝑈𝑊)    &   (𝜑𝑉𝑊)       (𝜑 → (𝑈𝑃𝑉):(𝑈𝐽𝑉)⟶((𝑂𝑈)(𝐶 Nat 𝐸)(𝑂𝑉)))
 
30-Sep-2025fuco22natlem 49119 The composed natural transformation is a natural transformation. Use fuco22nat 49120 instead. (New usage is discouraged.) (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐴 ∈ (⟨𝐹, 𝐺⟩(𝐶 Nat 𝐷)⟨𝑀, 𝑁⟩))    &   (𝜑𝐵 ∈ (⟨𝐾, 𝐿⟩(𝐷 Nat 𝐸)⟨𝑅, 𝑆⟩))    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   (𝜑𝑉 = ⟨⟨𝑅, 𝑆⟩, ⟨𝑀, 𝑁⟩⟩)       (𝜑 → (𝐵(𝑈𝑃𝑉)𝐴) ∈ ((𝑂𝑈)(𝐶 Nat 𝐸)(𝑂𝑉)))
 
30-Sep-2025fuco22natlem3 49118 Combine fuco22natlem2 49117 with fuco23 49115. (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑𝑌 ∈ (Base‘𝐶))    &   (𝜑𝐴 ∈ (⟨𝐹, 𝐺⟩(𝐶 Nat 𝐷)⟨𝑀, 𝑁⟩))    &   (𝜑𝐻 ∈ (𝑋(Hom ‘𝐶)𝑌))    &   (𝜑𝐵 ∈ (⟨𝐾, 𝐿⟩(𝐷 Nat 𝐸)⟨𝑅, 𝑆⟩))    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   (𝜑𝑉 = ⟨⟨𝑅, 𝑆⟩, ⟨𝑀, 𝑁⟩⟩)       (𝜑 → (((𝐵(𝑈𝑃𝑉)𝐴)‘𝑌)(⟨((𝐾𝐹)‘𝑋), ((𝐾𝐹)‘𝑌)⟩(comp‘𝐸)((𝑅𝑀)‘𝑌))((((𝐹𝑋)𝐿(𝐹𝑌)) ∘ (𝑋𝐺𝑌))‘𝐻)) = (((((𝑀𝑋)𝑆(𝑀𝑌)) ∘ (𝑋𝑁𝑌))‘𝐻)(⟨((𝐾𝐹)‘𝑋), ((𝑅𝑀)‘𝑋)⟩(comp‘𝐸)((𝑅𝑀)‘𝑌))((𝐵(𝑈𝑃𝑉)𝐴)‘𝑋)))
 
30-Sep-2025fuco22natlem2 49117 Lemma for fuco22nat 49120. The commutative square of natural transformation 𝐵 in category 𝐸, combined with the commutative square of fuco22natlem1 49116. (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑𝑌 ∈ (Base‘𝐶))    &   (𝜑𝐴 ∈ (⟨𝐹, 𝐺⟩(𝐶 Nat 𝐷)⟨𝑀, 𝑁⟩))    &   (𝜑𝐻 ∈ (𝑋(Hom ‘𝐶)𝑌))    &   (𝜑𝐵 ∈ (⟨𝐾, 𝐿⟩(𝐷 Nat 𝐸)⟨𝑅, 𝑆⟩))       (𝜑 → (((𝐵‘(𝑀𝑌))(⟨(𝐾‘(𝐹𝑌)), (𝐾‘(𝑀𝑌))⟩(comp‘𝐸)(𝑅‘(𝑀𝑌)))(((𝐹𝑌)𝐿(𝑀𝑌))‘(𝐴𝑌)))(⟨(𝐾‘(𝐹𝑋)), (𝐾‘(𝐹𝑌))⟩(comp‘𝐸)(𝑅‘(𝑀𝑌)))(((𝐹𝑋)𝐿(𝐹𝑌))‘((𝑋𝐺𝑌)‘𝐻))) = ((((𝑀𝑋)𝑆(𝑀𝑌))‘((𝑋𝑁𝑌)‘𝐻))(⟨(𝐾‘(𝐹𝑋)), (𝑅‘(𝑀𝑋))⟩(comp‘𝐸)(𝑅‘(𝑀𝑌)))((𝐵‘(𝑀𝑋))(⟨(𝐾‘(𝐹𝑋)), (𝐾‘(𝑀𝑋))⟩(comp‘𝐸)(𝑅‘(𝑀𝑋)))(((𝐹𝑋)𝐿(𝑀𝑋))‘(𝐴𝑋)))))
 
30-Sep-2025fuco22natlem1 49116 Lemma for fuco22nat 49120. The commutative square of natural transformation 𝐴 in category 𝐷, mapped to category 𝐸 by the morphism part 𝐿 of the functor. (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑𝑌 ∈ (Base‘𝐶))    &   (𝜑𝐴 ∈ (⟨𝐹, 𝐺⟩(𝐶 Nat 𝐷)⟨𝑀, 𝑁⟩))    &   (𝜑𝐻 ∈ (𝑋(Hom ‘𝐶)𝑌))    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)       (𝜑 → ((((𝐹𝑌)𝐿(𝑀𝑌))‘(𝐴𝑌))(⟨(𝐾‘(𝐹𝑋)), (𝐾‘(𝐹𝑌))⟩(comp‘𝐸)(𝐾‘(𝑀𝑌)))(((𝐹𝑋)𝐿(𝐹𝑌))‘((𝑋𝐺𝑌)‘𝐻))) = ((((𝑀𝑋)𝐿(𝑀𝑌))‘((𝑋𝑁𝑌)‘𝐻))(⟨(𝐾‘(𝐹𝑋)), (𝐾‘(𝑀𝑋))⟩(comp‘𝐸)(𝐾‘(𝑀𝑌)))(((𝐹𝑋)𝐿(𝑀𝑋))‘(𝐴𝑋))))
 
30-Sep-2025fucofn22 49114 The morphism part of the functor composition bifunctor maps two natural transformations to a function on a base set. (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   (𝜑𝑉 = ⟨⟨𝑅, 𝑆⟩, ⟨𝑀, 𝑁⟩⟩)    &   (𝜑𝐴 ∈ (⟨𝐹, 𝐺⟩(𝐶 Nat 𝐷)⟨𝑀, 𝑁⟩))    &   (𝜑𝐵 ∈ (⟨𝐾, 𝐿⟩(𝐷 Nat 𝐸)⟨𝑅, 𝑆⟩))       (𝜑 → (𝐵(𝑈𝑃𝑉)𝐴) Fn (Base‘𝐶))
 
30-Sep-2025fuco11id 49108 The identity morphism of the mapped object. (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   𝑄 = (𝐶 FuncCat 𝐸)    &   𝐼 = (Id‘𝑄)    &    1 = (Id‘𝐸)       (𝜑 → (𝐼‘(𝑂𝑈)) = ( 1 ∘ (𝐾𝐹)))
 
30-Sep-2025fuco11a 49102 The object part of the functor composition bifunctor maps two functors to their composition, expressed explicitly. (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   𝐵 = (Base‘𝐶)       (𝜑 → (𝑂𝑈) = ⟨(𝐾𝐹), (𝑥𝐵, 𝑦𝐵 ↦ (((𝐹𝑥)𝐿(𝐹𝑦)) ∘ (𝑥𝐺𝑦)))⟩)
 
30-Sep-2025fuco11cl 49101 The object part of the functor composition bifunctor maps into (𝐶 Func 𝐸). (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)       (𝜑 → (𝑂𝑈) ∈ (𝐶 Func 𝐸))
 
30-Sep-2025fuco11 49100 The object part of the functor composition bifunctor maps two functors to their composition. (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)       (𝜑 → (𝑂𝑈) = (⟨𝐾, 𝐿⟩ ∘func𝐹, 𝐺⟩))
 
30-Sep-2025fmpod 48739 Domain and codomain of the mapping operation; deduction form. (Contributed by Zhi Wang, 30-Sep-2025.)
(𝜑𝐹 = (𝑥𝐴, 𝑦𝐵𝐶))    &   ((𝜑 ∧ (𝑥𝐴𝑦𝐵)) → 𝐶𝑆)       (𝜑𝐹:(𝐴 × 𝐵)⟶𝑆)
 
30-Sep-2025readvrec 42337 For real numbers, the antiderivative of 1/x is ln|x|. (Contributed by SN, 30-Sep-2025.)
𝐷 = (ℝ ∖ {0})       (ℝ D (𝑥𝐷 ↦ (log‘(abs‘𝑥)))) = (𝑥𝐷 ↦ (1 / 𝑥))
 
30-Sep-2025redvmptabs 42335 The derivative of the absolute value, for real numbers. (Contributed by SN, 30-Sep-2025.)
𝐷 = (ℝ ∖ {0})       (ℝ D (𝑥𝐷 ↦ (abs‘𝑥))) = (𝑥𝐷 ↦ if(𝑥 < 0, -1, 1))
 
30-Sep-2025dvun 42334 Condition for the union of the derivatives of two disjoint functions to be equal to the derivative of the union of the two functions. If 𝐴 and 𝐵 are open sets, this condition (dvun.n) is satisfied by isopn3i 23007. (Contributed by SN, 30-Sep-2025.)
𝐽 = (𝐾t 𝑆)    &   𝐾 = (TopOpen‘ℂfld)    &   (𝜑𝑆 ⊆ ℂ)    &   (𝜑𝐹:𝐴⟶ℂ)    &   (𝜑𝐺:𝐵⟶ℂ)    &   (𝜑𝐴𝑆)    &   (𝜑𝐵𝑆)    &   (𝜑 → (𝐴𝐵) = ∅)    &   (𝜑 → (((int‘𝐽)‘𝐴) ∪ ((int‘𝐽)‘𝐵)) = ((int‘𝐽)‘(𝐴𝐵)))       (𝜑 → ((𝑆 D 𝐹) ∪ (𝑆 D 𝐺)) = (𝑆 D (𝐹𝐺)))
 
29-Sep-2025fuco23 49115 The morphism part of the functor composition bifunctor. See also fuco23a 49126. (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   (𝜑𝑉 = ⟨⟨𝑅, 𝑆⟩, ⟨𝑀, 𝑁⟩⟩)    &   (𝜑𝐴 ∈ (⟨𝐹, 𝐺⟩(𝐶 Nat 𝐷)⟨𝑀, 𝑁⟩))    &   (𝜑𝐵 ∈ (⟨𝐾, 𝐿⟩(𝐷 Nat 𝐸)⟨𝑅, 𝑆⟩))    &   (𝜑𝑋 ∈ (Base‘𝐶))    &   (𝜑 = (⟨(𝐾‘(𝐹𝑋)), (𝐾‘(𝑀𝑋))⟩(comp‘𝐸)(𝑅‘(𝑀𝑋))))       (𝜑 → ((𝐵(𝑈𝑃𝑉)𝐴)‘𝑋) = ((𝐵‘(𝑀𝑋)) (((𝐹𝑋)𝐿(𝑀𝑋))‘(𝐴𝑋))))
 
29-Sep-2025fuco22 49113 The morphism part of the functor composition bifunctor. See also fuco22a 49124. (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   (𝜑𝑉 = ⟨⟨𝑅, 𝑆⟩, ⟨𝑀, 𝑁⟩⟩)    &   (𝜑𝐴 ∈ (⟨𝐹, 𝐺⟩(𝐶 Nat 𝐷)⟨𝑀, 𝑁⟩))    &   (𝜑𝐵 ∈ (⟨𝐾, 𝐿⟩(𝐷 Nat 𝐸)⟨𝑅, 𝑆⟩))       (𝜑 → (𝐵(𝑈𝑃𝑉)𝐴) = (𝑥 ∈ (Base‘𝐶) ↦ ((𝐵‘(𝑀𝑥))(⟨(𝐾‘(𝐹𝑥)), (𝐾‘(𝑀𝑥))⟩(comp‘𝐸)(𝑅‘(𝑀𝑥)))(((𝐹𝑥)𝐿(𝑀𝑥))‘(𝐴𝑥)))))
 
29-Sep-2025fuco21 49110 The morphism part of the functor composition bifunctor. (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐷 Func 𝐸)𝐿)    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   (𝜑𝑀(𝐶 Func 𝐷)𝑁)    &   (𝜑𝑅(𝐷 Func 𝐸)𝑆)    &   (𝜑𝑉 = ⟨⟨𝑅, 𝑆⟩, ⟨𝑀, 𝑁⟩⟩)       (𝜑 → (𝑈𝑃𝑉) = (𝑏 ∈ (⟨𝐾, 𝐿⟩(𝐷 Nat 𝐸)⟨𝑅, 𝑆⟩), 𝑎 ∈ (⟨𝐹, 𝐺⟩(𝐶 Nat 𝐷)⟨𝑀, 𝑁⟩) ↦ (𝑥 ∈ (Base‘𝐶) ↦ ((𝑏‘(𝑀𝑥))(⟨(𝐾‘(𝐹𝑥)), (𝐾‘(𝑀𝑥))⟩(comp‘𝐸)(𝑅‘(𝑀𝑥)))(((𝐹𝑥)𝐿(𝑀𝑥))‘(𝑎𝑥))))))
 
29-Sep-2025fucofn2 49098 The morphism part of the functor composition bifunctor is a function on the Cartesian square of the base set. (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑𝐶𝑇)    &   (𝜑𝐷𝑈)    &   (𝜑𝐸𝑉)    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑊 = ((𝐷 Func 𝐸) × (𝐶 Func 𝐷)))       (𝜑𝑃 Fn (𝑊 × 𝑊))
 
29-Sep-2025fuco2 49097 The morphism part of the functor composition bifunctor. (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑𝐶𝑇)    &   (𝜑𝐷𝑈)    &   (𝜑𝐸𝑉)    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑊 = ((𝐷 Func 𝐸) × (𝐶 Func 𝐷)))       (𝜑𝑃 = (𝑢𝑊, 𝑣𝑊(1st ‘(2nd𝑢)) / 𝑓(1st ‘(1st𝑢)) / 𝑘(2nd ‘(1st𝑢)) / 𝑙(1st ‘(2nd𝑣)) / 𝑚(1st ‘(1st𝑣)) / 𝑟(𝑏 ∈ ((1st𝑢)(𝐷 Nat 𝐸)(1st𝑣)), 𝑎 ∈ ((2nd𝑢)(𝐶 Nat 𝐷)(2nd𝑣)) ↦ (𝑥 ∈ (Base‘𝐶) ↦ ((𝑏‘(𝑚𝑥))(⟨(𝑘‘(𝑓𝑥)), (𝑘‘(𝑚𝑥))⟩(comp‘𝐸)(𝑟‘(𝑚𝑥)))(((𝑓𝑥)𝑙(𝑚𝑥))‘(𝑎𝑥)))))))
 
29-Sep-2025fucof1 49096 The object part of the functor composition bifunctor maps ((𝐷 Func 𝐸) × (𝐶 Func 𝐷)) into (𝐶 Func 𝐸). (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑𝐶𝑇)    &   (𝜑𝐷𝑈)    &   (𝜑𝐸𝑉)    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑊 = ((𝐷 Func 𝐸) × (𝐶 Func 𝐷)))       (𝜑𝑂:𝑊⟶(𝐶 Func 𝐸))
 
29-Sep-2025fuco1 49095 The object part of the functor composition bifunctor. (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑𝐶𝑇)    &   (𝜑𝐷𝑈)    &   (𝜑𝐸𝑉)    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = ⟨𝑂, 𝑃⟩)    &   (𝜑𝑊 = ((𝐷 Func 𝐸) × (𝐶 Func 𝐷)))       (𝜑𝑂 = ( ∘func𝑊))
 
29-Sep-2025fucoelvv 49094 A functor composition bifunctor is an ordered pair. Enables 1st2ndb 8023. (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑𝐶𝑇)    &   (𝜑𝐷𝑈)    &   (𝜑𝐸𝑉)    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = )       (𝜑 ∈ (V × V))
 
29-Sep-2025fucofval 49093 Value of the function giving the functor composition bifunctor. Hypotheses fucofval.c and fucofval.d are not redundant (fucofvalne 49099). (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑𝐶𝑇)    &   (𝜑𝐷𝑈)    &   (𝜑𝐸𝑉)    &   (𝜑 → (⟨𝐶, 𝐷⟩ ∘F 𝐸) = )    &   (𝜑𝑊 = ((𝐷 Func 𝐸) × (𝐶 Func 𝐷)))       (𝜑 = ⟨( ∘func𝑊), (𝑢𝑊, 𝑣𝑊(1st ‘(2nd𝑢)) / 𝑓(1st ‘(1st𝑢)) / 𝑘(2nd ‘(1st𝑢)) / 𝑙(1st ‘(2nd𝑣)) / 𝑚(1st ‘(1st𝑣)) / 𝑟(𝑏 ∈ ((1st𝑢)(𝐷 Nat 𝐸)(1st𝑣)), 𝑎 ∈ ((2nd𝑢)(𝐶 Nat 𝐷)(2nd𝑣)) ↦ (𝑥 ∈ (Base‘𝐶) ↦ ((𝑏‘(𝑚𝑥))(⟨(𝑘‘(𝑓𝑥)), (𝑘‘(𝑚𝑥))⟩(comp‘𝐸)(𝑟‘(𝑚𝑥)))(((𝑓𝑥)𝑙(𝑚𝑥))‘(𝑎𝑥))))))⟩)
 
29-Sep-2025df-fuco 49091 Definition of functor composition bifunctors. Given three categories 𝐶, 𝐷, and 𝐸, (⟨𝐶, 𝐷⟩ ∘F 𝐸) is a functor from the product category of two categories of functors to a category of functors (fucofunc 49133). The object part maps two functors to their composition (fuco11 49100 and fuco11b 49111). The morphism part defines the "composition" of two natural transformations (fuco22 49113) into another natural transformation (fuco22nat 49120) such that a "cube-like" diagram commutes. The naturality property also gives an alternate definition (fuco23a 49126). Note that such "composition" is different from fucco 17965 because they "compose" along different "axes". (Contributed by Zhi Wang, 29-Sep-2025.)
F = (𝑝 ∈ V, 𝑒 ∈ V ↦ (1st𝑝) / 𝑐(2nd𝑝) / 𝑑((𝑑 Func 𝑒) × (𝑐 Func 𝑑)) / 𝑤⟨( ∘func𝑤), (𝑢𝑤, 𝑣𝑤(1st ‘(2nd𝑢)) / 𝑓(1st ‘(1st𝑢)) / 𝑘(2nd ‘(1st𝑢)) / 𝑙(1st ‘(2nd𝑣)) / 𝑚(1st ‘(1st𝑣)) / 𝑟(𝑏 ∈ ((1st𝑢)(𝑑 Nat 𝑒)(1st𝑣)), 𝑎 ∈ ((2nd𝑢)(𝑐 Nat 𝑑)(2nd𝑣)) ↦ (𝑥 ∈ (Base‘𝑐) ↦ ((𝑏‘(𝑚𝑥))(⟨(𝑘‘(𝑓𝑥)), (𝑘‘(𝑚𝑥))⟩(comp‘𝑒)(𝑟‘(𝑚𝑥)))(((𝑓𝑥)𝑙(𝑚𝑥))‘(𝑎𝑥))))))⟩)
 
29-Sep-2025fuco2eld3 49089 Equivalence of product functor. (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑𝑊 = (𝑆 × 𝑅))    &   (𝜑𝑈𝑊)    &   Rel 𝑆    &   Rel 𝑅       (𝜑 → ((1st ‘(1st𝑈))𝑆(2nd ‘(1st𝑈)) ∧ (1st ‘(2nd𝑈))𝑅(2nd ‘(2nd𝑈))))
 
29-Sep-2025fuco2eld2 49088 Equivalence of product functor. (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑𝑊 = (𝑆 × 𝑅))    &   (𝜑𝑈𝑊)    &   Rel 𝑆    &   Rel 𝑅       (𝜑𝑈 = ⟨⟨(1st ‘(1st𝑈)), (2nd ‘(1st𝑈))⟩, ⟨(1st ‘(2nd𝑈)), (2nd ‘(2nd𝑈))⟩⟩)
 
29-Sep-2025fuco2eld 49087 Equivalence of product functor. (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑𝑊 = (𝑆 × 𝑅))    &   (𝜑𝑈 = ⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩)    &   (𝜑𝐾𝑆𝐿)    &   (𝜑𝐹𝑅𝐺)       (𝜑𝑈𝑊)
 
29-Sep-2025fuco2el 49086 Equivalence of product functor. (Contributed by Zhi Wang, 29-Sep-2025.)
(⟨⟨𝐾, 𝐿⟩, ⟨𝐹, 𝐺⟩⟩ ∈ (𝑆 × 𝑅) ↔ (𝐾𝑆𝐿𝐹𝑅𝐺))
 
29-Sep-2025isnatd 49006 Property of being a natural transformation; deduction form. (Contributed by Zhi Wang, 29-Sep-2025.)
𝑁 = (𝐶 Nat 𝐷)    &   𝐵 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &   𝐽 = (Hom ‘𝐷)    &    · = (comp‘𝐷)    &   (𝜑𝐹(𝐶 Func 𝐷)𝐺)    &   (𝜑𝐾(𝐶 Func 𝐷)𝐿)    &   (𝜑𝐴 Fn 𝐵)    &   ((𝜑𝑥𝐵) → (𝐴𝑥) ∈ ((𝐹𝑥)𝐽(𝐾𝑥)))    &   (((𝜑 ∧ (𝑥𝐵𝑦𝐵)) ∧ ∈ (𝑥𝐻𝑦)) → ((𝐴𝑦)(⟨(𝐹𝑥), (𝐹𝑦)⟩ · (𝐾𝑦))((𝑥𝐺𝑦)‘)) = (((𝑥𝐿𝑦)‘)(⟨(𝐹𝑥), (𝐾𝑥)⟩ · (𝐾𝑦))(𝐴𝑥)))       (𝜑𝐴 ∈ (⟨𝐹, 𝐺𝑁𝐾, 𝐿⟩))
 
29-Sep-2025fmpodg 48738 Domain and codomain of the mapping operation; deduction form. (Contributed by Zhi Wang, 29-Sep-2025.)
(𝜑𝐹 = (𝑥𝐴, 𝑦𝐵𝐶))    &   ((𝜑 ∧ (𝑥𝐴𝑦𝐵)) → 𝐶𝑆)    &   (𝜑𝑅 = (𝐴 × 𝐵))       (𝜑𝐹:𝑅𝑆)
 
29-Sep-2025gpg5grlic 48000 The two generalized Petersen graphs G(N,K) of order 10 (𝑁 = 5), which are the Petersen graph G(5,2) and the 5-prism G(5,1), are locally isomorphic. (Contributed by AV, 29-Sep-2025.)
(5 gPetersenGr 1) ≃𝑙𝑔𝑟 (5 gPetersenGr 2)
 
29-Sep-2025gpgorder 47966 The order of the generalized Petersen graph GPG(N,K). (Contributed by AV, 29-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))       ((𝑁 ∈ ℕ ∧ 𝐾𝐽) → (♯‘(Vtx‘(𝑁 gPetersenGr 𝐾))) = (2 · 𝑁))
 
29-Sep-2025clnbgr3stgrgrlic 47932 If all (closed) neighborhoods of the vertices in two simple graphs with the same order induce a subgraph which is isomorphic to an 𝑁-star, then the two graphs are locally isomorphic. (Contributed by AV, 29-Sep-2025.)
𝑁 ∈ ℕ0    &   𝑉 = (Vtx‘𝐺)    &   𝑊 = (Vtx‘𝐻)       (((𝐺 ∈ USGraph ∧ 𝐻 ∈ USGraph ∧ 𝑉𝑊) ∧ ∀𝑥𝑉 (𝐺 ISubGr (𝐺 ClNeighbVtx 𝑥)) ≃𝑔𝑟 (StarGr‘𝑁) ∧ ∀𝑦𝑊 (𝐻 ISubGr (𝐻 ClNeighbVtx 𝑦)) ≃𝑔𝑟 (StarGr‘𝑁)) → 𝐺𝑙𝑔𝑟 𝐻)
 
29-Sep-2025isubgr3stgr 47895 If a vertex of a simple graph has exactly 𝑁 (different) neighbors, and none of these neighbors are connected by an edge, then the (closed) neighborhood of this vertex induces a subgraph which is isomorphic to an 𝑁-star. (Contributed by AV, 29-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐶 = (𝐺 ClNeighbVtx 𝑋)    &   𝑁 ∈ ℕ0    &   𝑆 = (StarGr‘𝑁)    &   𝑊 = (Vtx‘𝑆)    &   𝐸 = (Edg‘𝐺)       ((𝐺 ∈ USGraph ∧ 𝑋𝑉) → (((♯‘𝑈) = 𝑁 ∧ ∀𝑥𝑈𝑦𝑈 {𝑥, 𝑦} ∉ 𝐸) → (𝐺 ISubGr 𝐶) ≃𝑔𝑟 (StarGr‘𝑁)))
 
29-Sep-2025isubgr3stgrlem9 47894 Lemma 9 for isubgr3stgr 47895. (Contributed by AV, 29-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐶 = (𝐺 ClNeighbVtx 𝑋)    &   𝑁 ∈ ℕ0    &   𝑆 = (StarGr‘𝑁)    &   𝑊 = (Vtx‘𝑆)    &   𝐸 = (Edg‘𝐺)    &   𝐼 = (Edg‘(𝐺 ISubGr 𝐶))    &   𝐻 = (𝑖𝐼 ↦ (𝐹𝑖))       ((((𝐺 ∈ USGraph ∧ 𝑋𝑉) ∧ ((♯‘𝑈) = 𝑁 ∧ ∀𝑥𝑈𝑦𝑈 {𝑥, 𝑦} ∉ 𝐸)) ∧ (𝐹:𝐶1-1-onto𝑊 ∧ (𝐹𝑋) = 0)) → (𝐻:𝐼1-1-onto→(Edg‘(StarGr‘𝑁)) ∧ ∀𝑒𝐼 (𝐹𝑒) = (𝐻𝑒)))
 
29-Sep-2025isubgr3stgrlem8 47893 Lemma 8 for isubgr3stgr 47895. (Contributed by AV, 29-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐶 = (𝐺 ClNeighbVtx 𝑋)    &   𝑁 ∈ ℕ0    &   𝑆 = (StarGr‘𝑁)    &   𝑊 = (Vtx‘𝑆)    &   𝐸 = (Edg‘𝐺)    &   𝐼 = (Edg‘(𝐺 ISubGr 𝐶))    &   𝐻 = (𝑖𝐼 ↦ (𝐹𝑖))       ((((𝐺 ∈ USGraph ∧ 𝑋𝑉) ∧ ((♯‘𝑈) = 𝑁 ∧ ∀𝑥𝑈𝑦𝑈 {𝑥, 𝑦} ∉ 𝐸)) ∧ (𝐹:𝐶1-1-onto𝑊 ∧ (𝐹𝑋) = 0)) → 𝐻:𝐼1-1-onto→(Edg‘(StarGr‘𝑁)))
 
29-Sep-2025isubgr3stgrlem7 47892 Lemma 7 for isubgr3stgr 47895. (Contributed by AV, 29-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐶 = (𝐺 ClNeighbVtx 𝑋)    &   𝑁 ∈ ℕ0    &   𝑆 = (StarGr‘𝑁)    &   𝑊 = (Vtx‘𝑆)    &   𝐸 = (Edg‘𝐺)    &   𝐼 = (Edg‘(𝐺 ISubGr 𝐶))    &   𝐻 = (𝑖𝐼 ↦ (𝐹𝑖))       (((𝐺 ∈ USGraph ∧ 𝑋𝑉) ∧ (𝐹:𝐶1-1-onto𝑊 ∧ (𝐹𝑋) = 0) ∧ 𝐽 ∈ (Edg‘(StarGr‘𝑁))) → (𝐹𝐽) ∈ 𝐼)
 
29-Sep-2025stgredgiun 47878 The edges of the star graph SN as indexed union. (Contributed by AV, 29-Sep-2025.)
(𝑁 ∈ ℕ0 → (Edg‘(StarGr‘𝑁)) = 𝑥 ∈ (1...𝑁){{0, 𝑥}})
 
29-Sep-2025wfaxpr 44957 The class of well-founded sets models the Axiom of Pairing ax-pr 5400. Part of Corollary II.2.5 of [Kunen2] p. 112. (Contributed by Eric Schmidt, 29-Sep-2025.)
𝑊 = (𝑅1 “ On)       𝑥𝑊𝑦𝑊𝑧𝑊𝑤𝑊 ((𝑤 = 𝑥𝑤 = 𝑦) → 𝑤𝑧)
 
29-Sep-2025wfaxsep 44954 The class of well-founded sets models the Axiom of Separation ax-sep 5264. Actually, our statement is stronger, since it is an instance of Separation only when all quantifiers in 𝜑 are relativized to 𝑊. Part of Corollary II.2.5 of [Kunen2] p. 112. (Contributed by Eric Schmidt, 29-Sep-2025.)
𝑊 = (𝑅1 “ On)       𝑧𝑊𝑦𝑊𝑥𝑊 (𝑥𝑦 ↔ (𝑥𝑧𝜑))
 
29-Sep-2025wfaxrep 44953 The class of well-founded sets models the Axiom of Replacement ax-rep 5247. Actually, our statement is stronger, since it is an instance of Replacement only when all quantifiers in 𝑦𝜑 are relativized to 𝑊. Essentially part of Corollary II.2.5 of [Kunen2] p. 112, but note that our Replacement is different from Kunen's. (Contributed by Eric Schmidt, 29-Sep-2025.)
𝑊 = (𝑅1 “ On)       𝑥𝑊 (∀𝑤𝑊𝑦𝑊𝑧𝑊 (∀𝑦𝜑𝑧 = 𝑦) → ∃𝑦𝑊𝑧𝑊 (𝑧𝑦 ↔ ∃𝑤𝑊 (𝑤𝑥 ∧ ∀𝑦𝜑)))
 
29-Sep-2025wfaxext 44952 The class of well-founded sets models the Axiom of Extensionality ax-ext 2706. Part of Corollary II.2.5 of [Kunen2] p. 112.

This is the first of a series of theorems showing that all the axioms of ZFC hold in the class of well-founded sets, which we here denote by 𝑊. More precisely, for each axiom of ZFC, we obtain a provable statement if we restrict all quantifiers to 𝑊 (including implicit universal quantifiers on free variables).

None of these proofs use the Axiom of Regularity. In particular, the Axiom of Regularity itself is proved to hold in 𝑊 without using Regularity. Further, the Axiom of Choice is used only in the proof that Choice holds in 𝑊. This has the consequence that any theorem of ZF (possibly proved using Regularity) can be proved, without using Regularity, to hold in 𝑊. This gives us a relative consistency result: If ZF without Regularity is consistent, so is ZF itself. Similarly, if ZFC without Regularity is consistent, so is ZFC itself. These consistency results are metatheorems and are part of Theorem II.2.13 of [Kunen2] p. 114.

(Contributed by Eric Schmidt, 11-Sep-2025.) (Revised by Eric Schmidt, 29-Sep-2025.)

𝑊 = (𝑅1 “ On)       𝑥𝑊𝑦𝑊 (∀𝑧𝑊 (𝑧𝑥𝑧𝑦) → 𝑥 = 𝑦)
 
29-Sep-2025prclaxpr 44944 A class that is closed under the pairing operation models the Axiom of Pairing ax-pr 5400. Lemma II.2.4(4) of [Kunen2] p. 111. (Contributed by Eric Schmidt, 29-Sep-2025.)
(∀𝑥𝑀𝑦𝑀 {𝑥, 𝑦} ∈ 𝑀 → ∀𝑥𝑀𝑦𝑀𝑧𝑀𝑤𝑀 ((𝑤 = 𝑥𝑤 = 𝑦) → 𝑤𝑧))
 
29-Sep-2025ssclaxsep 44941 A class that is closed under subsets models the Axiom of Separation ax-sep 5264. Lemma II.2.4(3) of [Kunen2] p. 111.

Note that, to obtain the relativization of an instance of Separation to 𝑀, the formula 𝜑 would need to be replaced with its relativization to 𝑀. However, this new formula is a valid substitution for 𝜑, so this theorem does establish that all instances of Separation hold in 𝑀. (Contributed by Eric Schmidt, 29-Sep-2025.)

(∀𝑧𝑀 𝒫 𝑧𝑀 → ∀𝑧𝑀𝑦𝑀𝑥𝑀 (𝑥𝑦 ↔ (𝑥𝑧𝜑)))
 
29-Sep-2025modelaxrep 44940 Conditions which guarantee that a class models the Axiom of Replacement ax-rep 5247. Similar to Lemma II.2.4(6) of [Kunen2] p. 111. The first two hypotheses are those in Kunen. The reason for the third hypothesis that our version of Replacement is different from Kunen's (which is zfrep6 7948). If we assumed Regularity, we could eliminate this extra hypothesis, since under Regularity, the empty set is a member of every non-empty transitive class.

Note that, to obtain the relativization of an instance of Replacement to 𝑀, the formula 𝑦𝜑 would need to be replaced with 𝑦𝑀𝜒, where 𝜒 is 𝜑 with all quantifiers relativized to 𝑀. However, we can obtain this by using 𝑦𝑀𝜒 for 𝜑 in this theorem, so it does establish that all instances of Replacement hold in 𝑀. (Contributed by Eric Schmidt, 29-Sep-2025.)

(𝜓 → Tr 𝑀)    &   (𝜓 → ∀𝑓((Fun 𝑓 ∧ dom 𝑓𝑀 ∧ ran 𝑓𝑀) → ran 𝑓𝑀))    &   (𝜓 → ∅ ∈ 𝑀)       (𝜓 → ∀𝑥𝑀 (∀𝑤𝑀𝑦𝑀𝑧𝑀 (∀𝑦𝜑𝑧 = 𝑦) → ∃𝑦𝑀𝑧𝑀 (𝑧𝑦 ↔ ∃𝑤𝑀 (𝑤𝑥 ∧ ∀𝑦𝜑))))
 
29-Sep-2025modelaxreplem3 44939 Lemma for modelaxrep 44940. We show that the consequent of Replacement is satisfied with ran 𝐹 as the value of 𝑦. (Contributed by Eric Schmidt, 29-Sep-2025.)
(𝜓𝑥𝑀)    &   (𝜓 → ∀𝑓((Fun 𝑓 ∧ dom 𝑓𝑀 ∧ ran 𝑓𝑀) → ran 𝑓𝑀))    &   (𝜓 → ∅ ∈ 𝑀)    &   (𝜓𝑥𝑀)    &   𝑤𝜓    &   𝑧𝜓    &   𝑧𝐹    &   𝐹 = {⟨𝑤, 𝑧⟩ ∣ (𝑤𝑥 ∧ (𝑧𝑀 ∧ ∀𝑦𝜑))}    &   (𝜓 → (𝑤𝑀 → ∃𝑦𝑀𝑧𝑀 (∀𝑦𝜑𝑧 = 𝑦)))       (𝜓 → ∃𝑦𝑀𝑧𝑀 (𝑧𝑦 ↔ ∃𝑤𝑀 (𝑤𝑥 ∧ ∀𝑦𝜑)))
 
29-Sep-2025modelaxreplem2 44938 Lemma for modelaxrep 44940. We define a class 𝐹 and show that the antecedent of Replacement implies that 𝐹 is a function. We use Replacement (in the form of funex 7208) to show that 𝐹 exists. Then we show that, under our hypotheses, the range of 𝐹 is a member of 𝑀. (Contributed by Eric Schmidt, 29-Sep-2025.)
(𝜓𝑥𝑀)    &   (𝜓 → ∀𝑓((Fun 𝑓 ∧ dom 𝑓𝑀 ∧ ran 𝑓𝑀) → ran 𝑓𝑀))    &   (𝜓 → ∅ ∈ 𝑀)    &   (𝜓𝑥𝑀)    &   𝑤𝜓    &   𝑧𝜓    &   𝑧𝐹    &   𝐹 = {⟨𝑤, 𝑧⟩ ∣ (𝑤𝑥 ∧ (𝑧𝑀 ∧ ∀𝑦𝜑))}    &   (𝜓 → (𝑤𝑀 → ∃𝑦𝑀𝑧𝑀 (∀𝑦𝜑𝑧 = 𝑦)))       (𝜓 → ran 𝐹𝑀)
 
29-Sep-2025modelaxreplem1 44937 Lemma for modelaxrep 44940. We show that 𝑀 is closed under taking subsets. (Contributed by Eric Schmidt, 29-Sep-2025.)
(𝜓𝑥𝑀)    &   (𝜓 → ∀𝑓((Fun 𝑓 ∧ dom 𝑓𝑀 ∧ ran 𝑓𝑀) → ran 𝑓𝑀))    &   (𝜓 → ∅ ∈ 𝑀)    &   (𝜓𝑥𝑀)    &   𝐴𝑥       (𝜓𝐴𝑀)
 
29-Sep-2025relwf 44926 A relation is a well-founded set iff its domain and range are. (Contributed by Eric Schmidt, 29-Sep-2025.)
(Rel 𝑅 → (𝑅 (𝑅1 “ On) ↔ (dom 𝑅 (𝑅1 “ On) ∧ ran 𝑅 (𝑅1 “ On))))
 
29-Sep-2025rspesbcd 44896 Restricted quantifier version of spesbcd 3856. (Contributed by Eric Schmidt, 29-Sep-2025.)
(𝜑𝐴𝐵)    &   (𝜑[𝐴 / 𝑥]𝜓)       (𝜑 → ∃𝑥𝐵 𝜓)
 
28-Sep-2025wl-cleq-0 37442
Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong. This and the following texts should be read as explorations rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Preface

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

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

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

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

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
27-Sep-2025ad11antr 32362 Deduction adding 11 conjuncts to antecedent. (Contributed by Thierry Arnoux, 27-Sep-2025.)
(𝜑𝜓)       ((((((((((((𝜑𝜒) ∧ 𝜃) ∧ 𝜏) ∧ 𝜂) ∧ 𝜁) ∧ 𝜎) ∧ 𝜌) ∧ 𝜇) ∧ 𝜆) ∧ 𝜅) ∧ 𝜈) → 𝜓)
 
25-Sep-2025fucofulem2 49085 Lemma for proving functor theorems. Maybe consider eufnfv 7218 to prove the uniqueness of a functor. (Contributed by Zhi Wang, 25-Sep-2025.)
𝐵 = ((𝐷 Func 𝐸) × (𝐶 Func 𝐷))    &   𝐻 = (Hom ‘((𝐷 FuncCat 𝐸) ×c (𝐶 FuncCat 𝐷)))       (𝐺X𝑧 ∈ (𝐵 × 𝐵)(((𝐹‘(1st𝑧))(𝐶 Nat 𝐸)(𝐹‘(2nd𝑧))) ↑m (𝐻𝑧)) ↔ (𝐺 = (𝑢𝐵, 𝑣𝐵 ↦ (𝑢𝐺𝑣)) ∧ ∀𝑚𝐵𝑛𝐵 ((𝑚𝐺𝑛) = (𝑏 ∈ ((1st𝑚)(𝐷 Nat 𝐸)(1st𝑛)), 𝑎 ∈ ((2nd𝑚)(𝐶 Nat 𝐷)(2nd𝑛)) ↦ (𝑏(𝑚𝐺𝑛)𝑎)) ∧ ∀𝑝 ∈ ((1st𝑚)(𝐷 Nat 𝐸)(1st𝑛))∀𝑞 ∈ ((2nd𝑚)(𝐶 Nat 𝐷)(2nd𝑛))(𝑝(𝑚𝐺𝑛)𝑞) ∈ ((𝐹𝑚)(𝐶 Nat 𝐸)(𝐹𝑛)))))
 
25-Sep-2025fucofulem1 49084 Lemma for proving functor theorems. (Contributed by Zhi Wang, 25-Sep-2025.)
(𝜑 → (𝜓 ↔ (𝜒𝜃𝜏)))    &   ((𝜑 ∧ (𝜃𝜏)) → 𝜂)    &   𝜒    &   ((𝜑𝜂) → 𝜃)    &   ((𝜑𝜂) → 𝜏)       (𝜑 → (𝜓𝜂))
 
25-Sep-2025upeu4 48995 Generate a new universal morphism through an isomorphism from an existing universal object, and pair with the codomain of the isomorphism to form a universal pair. (Contributed by Zhi Wang, 25-Sep-2025.)
(𝜑𝐼 = (Iso‘𝐷))    &   (𝜑 = (⟨𝑊, (𝐹𝑋)⟩(comp‘𝐸)(𝐹𝑌)))    &   (𝜑𝑋(⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊)𝑀)    &   (𝜑𝐾 ∈ (𝑋𝐼𝑌))    &   (𝜑𝑁 = (((𝑋𝐺𝑌)‘𝐾) 𝑀))       (𝜑𝑌(⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊)𝑁)
 
25-Sep-2025uprcl5 48992 Reverse closure for the class of universal property. (Contributed by Zhi Wang, 25-Sep-2025.)
(𝜑𝑋(⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊)𝑀)    &   𝐽 = (Hom ‘𝐸)       (𝜑𝑀 ∈ (𝑊𝐽(𝐹𝑋)))
 
25-Sep-2025uprcl4 48991 Reverse closure for the class of universal property. (Contributed by Zhi Wang, 25-Sep-2025.)
(𝜑𝑋(⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊)𝑀)    &   𝐵 = (Base‘𝐷)       (𝜑𝑋𝐵)
 
25-Sep-2025uprcl3 48990 Reverse closure for the class of universal property. (Contributed by Zhi Wang, 25-Sep-2025.)
(𝜑𝑋(⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊)𝑀)    &   𝐶 = (Base‘𝐸)       (𝜑𝑊𝐶)
 
25-Sep-2025uprcl2 48989 Reverse closure for the class of universal property. (Contributed by Zhi Wang, 25-Sep-2025.)
(𝜑𝑋(⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊)𝑀)       (𝜑𝐹(𝐷 Func 𝐸)𝐺)
 
25-Sep-2025uprcl 48984 Reverse closure for the class of universal property. (Contributed by Zhi Wang, 25-Sep-2025.)
𝐶 = (Base‘𝐸)       (𝑋 ∈ (𝐹(𝐷UP𝐸)𝑊) → (𝐹 ∈ (𝐷 Func 𝐸) ∧ 𝑊𝐶))
 
25-Sep-2025relup 48983 The set of universal pairs is a relation. (Contributed by Zhi Wang, 25-Sep-2025.)
Rel (𝐹(𝐷UP𝐸)𝑊)
 
25-Sep-2025isuplem 48980 Lemma for isup 48981 and other theorems. (Contributed by Zhi Wang, 25-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)    &   (𝜑𝑊𝐶)    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)       (𝜑 → (𝑋(⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊)𝑀 ↔ ((𝑋𝐵𝑀 ∈ (𝑊𝐽(𝐹𝑋))) ∧ ∀𝑦𝐵𝑔 ∈ (𝑊𝐽(𝐹𝑦))∃!𝑘 ∈ (𝑋𝐻𝑦)𝑔 = (((𝑋𝐺𝑦)‘𝑘)(⟨𝑊, (𝐹𝑋)⟩𝑂(𝐹𝑦))𝑀))))
 
25-Sep-2025reldmup 48976 The domain of UP is a relation. (Contributed by Zhi Wang, 25-Sep-2025.)
Rel dom UP
 
25-Sep-2025rescofuf 48949 The restriction of functor composition is a function from product functor space to functor space. (Contributed by Zhi Wang, 25-Sep-2025.)
( ∘func ↾ ((𝐷 Func 𝐸) × (𝐶 Func 𝐷))):((𝐷 Func 𝐸) × (𝐶 Func 𝐷))⟶(𝐶 Func 𝐸)
 
25-Sep-2025funcf2lem2 48940 A utility theorem for proving equivalence of "is a functor". (Contributed by Zhi Wang, 25-Sep-2025.)
𝐵 = (𝐸𝐶)       (𝐺X𝑧 ∈ (𝐵 × 𝐵)(((𝐹‘(1st𝑧))𝐽(𝐹‘(2nd𝑧))) ↑m (𝐻𝑧)) ↔ (𝐺 Fn (𝐵 × 𝐵) ∧ ∀𝑥𝐵𝑦𝐵 (𝑥𝐺𝑦):(𝑥𝐻𝑦)⟶((𝐹𝑥)𝐽(𝐹𝑦))))
 
24-Sep-2025oppcup 49003 The universal pair 𝑋, 𝑀 from a functor to an object is universal from an object to a functor in the opposite category. (Contributed by Zhi Wang, 24-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &    = (comp‘𝐸)    &   (𝜑𝑊𝐶)    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   (𝜑𝑋𝐵)    &   (𝜑𝑀 ∈ ((𝐹𝑋)𝐽𝑊))    &   𝑂 = (oppCat‘𝐷)    &   𝑃 = (oppCat‘𝐸)       (𝜑 → (𝑋(⟨𝐹, tpos 𝐺⟩(𝑂UP𝑃)𝑊)𝑀 ↔ ∀𝑦𝐵𝑔 ∈ ((𝐹𝑦)𝐽𝑊)∃!𝑘 ∈ (𝑦𝐻𝑋)𝑔 = (𝑀(⟨(𝐹𝑦), (𝐹𝑋)⟩ 𝑊)((𝑦𝐺𝑋)‘𝑘))))
 
24-Sep-2025upeu3 48994 The universal pair 𝑋, 𝑀 from object 𝑊 to functor 𝐹, 𝐺 is essentially unique (strong form) if it exists. (Contributed by Zhi Wang, 24-Sep-2025.)
(𝜑𝐼 = (Iso‘𝐷))    &   (𝜑 = (⟨𝑊, (𝐹𝑋)⟩(comp‘𝐸)(𝐹𝑌)))    &   (𝜑𝑋(⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊)𝑀)    &   (𝜑𝑌(⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊)𝑁)       (𝜑 → ∃!𝑟 ∈ (𝑋𝐼𝑌)𝑁 = (((𝑋𝐺𝑌)‘𝑟) 𝑀))
 
24-Sep-2025isup2 48993 The universal property of a universal pair. (Contributed by Zhi Wang, 24-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)    &   (𝜑𝑋(⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊)𝑀)       (𝜑 → ∀𝑦𝐵𝑔 ∈ (𝑊𝐽(𝐹𝑦))∃!𝑘 ∈ (𝑋𝐻𝑦)𝑔 = (((𝑋𝐺𝑦)‘𝑘)(⟨𝑊, (𝐹𝑋)⟩𝑂(𝐹𝑦))𝑀))
 
24-Sep-2025isup 48981 The predicate "is a universal pair". (Contributed by Zhi Wang, 24-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)    &   (𝜑𝑊𝐶)    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   (𝜑𝑋𝐵)    &   (𝜑𝑀 ∈ (𝑊𝐽(𝐹𝑋)))       (𝜑 → (𝑋(⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊)𝑀 ↔ ∀𝑦𝐵𝑔 ∈ (𝑊𝐽(𝐹𝑦))∃!𝑘 ∈ (𝑋𝐻𝑦)𝑔 = (((𝑋𝐺𝑦)‘𝑘)(⟨𝑊, (𝐹𝑋)⟩𝑂(𝐹𝑦))𝑀)))
 
24-Sep-2025upfval3 48979 Function value of the class of universal properties. (Contributed by Zhi Wang, 24-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)    &   (𝜑𝑊𝐶)    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)       (𝜑 → (⟨𝐹, 𝐺⟩(𝐷UP𝐸)𝑊) = {⟨𝑥, 𝑚⟩ ∣ ((𝑥𝐵𝑚 ∈ (𝑊𝐽(𝐹𝑥))) ∧ ∀𝑦𝐵𝑔 ∈ (𝑊𝐽(𝐹𝑦))∃!𝑘 ∈ (𝑥𝐻𝑦)𝑔 = (((𝑥𝐺𝑦)‘𝑘)(⟨𝑊, (𝐹𝑥)⟩𝑂(𝐹𝑦))𝑚))})
 
24-Sep-2025upfval2 48978 Function value of the class of universal properties. (Contributed by Zhi Wang, 24-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)    &   (𝜑𝑊𝐶)    &   (𝜑𝐹 ∈ (𝐷 Func 𝐸))       (𝜑 → (𝐹(𝐷UP𝐸)𝑊) = {⟨𝑥, 𝑚⟩ ∣ ((𝑥𝐵𝑚 ∈ (𝑊𝐽((1st𝐹)‘𝑥))) ∧ ∀𝑦𝐵𝑔 ∈ (𝑊𝐽((1st𝐹)‘𝑦))∃!𝑘 ∈ (𝑥𝐻𝑦)𝑔 = (((𝑥(2nd𝐹)𝑦)‘𝑘)(⟨𝑊, ((1st𝐹)‘𝑥)⟩𝑂((1st𝐹)‘𝑦))𝑚))})
 
24-Sep-2025upfval 48977 Function value of the class of universal properties. (Contributed by Zhi Wang, 24-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)       (𝐷UP𝐸) = (𝑓 ∈ (𝐷 Func 𝐸), 𝑤𝐶 ↦ {⟨𝑥, 𝑚⟩ ∣ ((𝑥𝐵𝑚 ∈ (𝑤𝐽((1st𝑓)‘𝑥))) ∧ ∀𝑦𝐵𝑔 ∈ (𝑤𝐽((1st𝑓)‘𝑦))∃!𝑘 ∈ (𝑥𝐻𝑦)𝑔 = (((𝑥(2nd𝑓)𝑦)‘𝑘)(⟨𝑤, ((1st𝑓)‘𝑥)⟩𝑂((1st𝑓)‘𝑦))𝑚))})
 
24-Sep-2025df-up 48975 Definition of the class of universal properties.

Given categories 𝐷 and 𝐸, if 𝐹:𝐷𝐸 is a functor and 𝑊 an object of 𝐸, a universal pair from 𝑊 to 𝐹 is a pair 𝑋, 𝑀 consisting of an object 𝑋 of 𝐷 and a morphism 𝑀:𝑊𝐹𝑋 of 𝐸, such that to every pair 𝑦, 𝑔 with 𝑦 an object of 𝐷 and 𝑔:𝑊𝐹𝑦 a morphism of 𝐸, there is a unique morphism 𝑘:𝑋𝑦 of 𝐷 with 𝐹𝑘 𝑀 = 𝑔. Such property is commonly referred to as a universal property. In our definition, it is denoted as 𝑋(𝐹(𝐷UP𝐸)𝑊)𝑀.

Note that the universal pair is termed differently as "universal arrow" in p. 55 of Mac Lane, Saunders, Categories for the Working Mathematician, 2nd Edition, Springer Science+Business Media, New York, (1998) [QA169.M33 1998]; available at https://math.mit.edu/~hrm/palestine/maclane-categories.pdf (retrieved 6 Oct 2025). Interestingly, the "universal arrow" is referring to the morphism 𝑀 instead of the pair near the end of the same piece of the text, causing name collision. The name "universal arrow" is also adopted in papers such as https://arxiv.org/pdf/2212.08981. Alternatively, the universal pair is called the "universal morphism" in Wikipedia (https://en.wikipedia.org/wiki/Universal_property) as well as published works, e.g., https://arxiv.org/pdf/2412.12179. But the pair 𝑋, 𝑀 should be named differently as the morphism 𝑀, and thus we call 𝑋 the universal object, 𝑀 the universal morphism, and 𝑋, 𝑀 the universal pair.

Given its existence, such universal pair is essentially unique (upeu3 48994), and can be generated from an existing universal pair by isomorphisms (upeu4 48995). See also oppcup 49003 for the dual concept.

(Contributed by Zhi Wang, 24-Sep-2025.)

UP = (𝑑 ∈ V, 𝑒 ∈ V ↦ (Base‘𝑑) / 𝑏(Base‘𝑒) / 𝑐(Hom ‘𝑑) / (Hom ‘𝑒) / 𝑗(comp‘𝑒) / 𝑜(𝑓 ∈ (𝑑 Func 𝑒), 𝑤𝑐 ↦ {⟨𝑥, 𝑚⟩ ∣ ((𝑥𝑏𝑚 ∈ (𝑤𝑗((1st𝑓)‘𝑥))) ∧ ∀𝑦𝑏𝑔 ∈ (𝑤𝑗((1st𝑓)‘𝑦))∃!𝑘 ∈ (𝑥𝑦)𝑔 = (((𝑥(2nd𝑓)𝑦)‘𝑘)(⟨𝑤, ((1st𝑓)‘𝑥)⟩𝑜((1st𝑓)‘𝑦))𝑚))}))
 
24-Sep-2025brab2ddw2 48702 Expressing that two sets are related by a binary relation which is expressed as a class abstraction of ordered pairs. (Contributed by Zhi Wang, 24-Sep-2025.)
(𝜑𝑅 = {⟨𝑥, 𝑦⟩ ∣ ((𝑥𝐶𝑦𝐷) ∧ 𝜓)})    &   (𝑥 = 𝐴 → (𝜓𝜃))    &   (𝑦 = 𝐵 → (𝜃𝜒))    &   (𝑥 = 𝐴𝐶 = 𝑈)    &   (𝑦 = 𝐵𝐷 = 𝑉)       (𝜑 → (𝐴𝑅𝐵 ↔ ((𝐴𝑈𝐵𝑉) ∧ 𝜒)))
 
24-Sep-2025brab2ddw 48701 Expressing that two sets are related by a binary relation which is expressed as a class abstraction of ordered pairs. (Contributed by Zhi Wang, 24-Sep-2025.)
(𝜑𝑅 = {⟨𝑥, 𝑦⟩ ∣ ((𝑥𝐶𝑦𝐷) ∧ 𝜓)})    &   (𝑥 = 𝐴 → (𝜓𝜃))    &   (𝑦 = 𝐵 → (𝜃𝜒))    &   ((𝑥 = 𝐴𝑦 = 𝐵) → 𝐶 = 𝑈)    &   ((𝑥 = 𝐴𝑦 = 𝐵) → 𝐷 = 𝑉)       (𝜑 → (𝐴𝑅𝐵 ↔ ((𝐴𝑈𝐵𝑉) ∧ 𝜒)))
 
24-Sep-2025brab2dd 48700 Expressing that two sets are related by a binary relation which is expressed as a class abstraction of ordered pairs. (Contributed by Zhi Wang, 24-Sep-2025.)
(𝜑𝑅 = {⟨𝑥, 𝑦⟩ ∣ ((𝑥𝐶𝑦𝐷) ∧ 𝜓)})    &   ((𝜑 ∧ (𝑥 = 𝐴𝑦 = 𝐵)) → (𝜓𝜒))    &   ((𝜑 ∧ (𝑥 = 𝐴𝑦 = 𝐵)) → ((𝑥𝐶𝑦𝐷) ↔ (𝐴𝑈𝐵𝑉)))       (𝜑 → (𝐴𝑅𝐵 ↔ ((𝐴𝑈𝐵𝑉) ∧ 𝜒)))
 
24-Sep-2025isubgr3stgrlem6 47891 Lemma 6 for isubgr3stgr 47895. (Contributed by AV, 24-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐶 = (𝐺 ClNeighbVtx 𝑋)    &   𝑁 ∈ ℕ0    &   𝑆 = (StarGr‘𝑁)    &   𝑊 = (Vtx‘𝑆)    &   𝐸 = (Edg‘𝐺)    &   𝐼 = (Edg‘(𝐺 ISubGr 𝐶))    &   𝐻 = (𝑖𝐼 ↦ (𝐹𝑖))       ((((𝐺 ∈ USGraph ∧ 𝑋𝑉) ∧ ((♯‘𝑈) = 𝑁 ∧ ∀𝑥𝑈𝑦𝑈 {𝑥, 𝑦} ∉ 𝐸)) ∧ (𝐹:𝐶1-1-onto𝑊 ∧ (𝐹𝑋) = 0)) → 𝐻:𝐼⟶(Edg‘(StarGr‘𝑁)))
 
24-Sep-2025isubgr3stgrlem5 47890 Lemma 5 for isubgr3stgr 47895. (Contributed by AV, 24-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐶 = (𝐺 ClNeighbVtx 𝑋)    &   𝑁 ∈ ℕ0    &   𝑆 = (StarGr‘𝑁)    &   𝑊 = (Vtx‘𝑆)    &   𝐸 = (Edg‘𝐺)    &   𝐼 = (Edg‘(𝐺 ISubGr 𝐶))    &   𝐻 = (𝑖𝐼 ↦ (𝐹𝑖))       ((𝐹:𝐶𝑊𝑌𝐼) → (𝐻𝑌) = (𝐹𝑌))
 
24-Sep-2025isubgr3stgrlem4 47889 Lemma 4 for isubgr3stgr 47895. (Contributed by AV, 24-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐶 = (𝐺 ClNeighbVtx 𝑋)    &   𝑁 ∈ ℕ0    &   𝑆 = (StarGr‘𝑁)    &   𝑊 = (Vtx‘𝑆)    &   𝐸 = (Edg‘𝐺)       ((𝐴 = 𝑋 ∧ (𝐹:𝐶1-1-onto𝑊 ∧ (𝐹𝑋) = 0) ∧ (𝐴𝐵𝐴𝐶𝐵𝐶)) → ∃𝑧 ∈ (1...𝑁)(𝐹 “ {𝐴, 𝐵}) = {0, 𝑧})
 
24-Sep-2025isubgredg 47805 An edge of an induced subgraph of a hypergraph is an edge of the hypergraph connecting vertices of the subgraph. (Contributed by AV, 24-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)    &   𝐻 = (𝐺 ISubGr 𝑆)    &   𝐼 = (Edg‘𝐻)       ((𝐺 ∈ UHGraph ∧ 𝑆𝑉) → (𝐾𝐼 ↔ (𝐾𝐸𝐾𝑆)))
 
24-Sep-2025isubgredgss 47804 The edges of an induced subgraph of a graph are edges of the graph. (Contributed by AV, 24-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)    &   𝐻 = (𝐺 ISubGr 𝑆)    &   𝐼 = (Edg‘𝐻)       ((𝐺𝑊𝑆𝑉) → 𝐼𝐸)
 
24-Sep-2025elclnbgrelnbgr 47765 An element of the closed neighborhood of a vertex which is not the vertex itself is an element of the open neighborhood of the vertex. (Contributed by AV, 24-Sep-2025.)
((𝑋 ∈ (𝐺 ClNeighbVtx 𝑁) ∧ 𝑋𝑁) → 𝑋 ∈ (𝐺 NeighbVtx 𝑁))
 
23-Sep-2025elfzoext 13728 Membership of an integer in an extended open range of integers, extension added to the right. (Contributed by AV, 30-Apr-2020.) (Proof shortened by AV, 23-Sep-2025.)
((𝑍 ∈ (𝑀..^𝑁) ∧ 𝐼 ∈ ℕ0) → 𝑍 ∈ (𝑀..^(𝑁 + 𝐼)))
 
22-Sep-2025oppgoppcid 49330 The converted opposite monoid has the same identity morphism as that of the opposite category. Example 3.6(2) of [Adamek] p. 25. (Contributed by Zhi Wang, 22-Sep-2025.)
(𝜑𝐶 = (MndToCat‘𝑀))    &   (𝜑𝑀 ∈ Mnd)    &   (𝜑𝐷 = (MndToCat‘(oppg𝑀)))    &   𝑂 = (oppCat‘𝐶)    &   (𝜑𝑋 ∈ (Base‘𝐷))    &   (𝜑𝑌 ∈ (Base‘𝑂))       (𝜑 → ((Id‘𝐷)‘𝑋) = ((Id‘𝑂)‘𝑌))
 
22-Sep-2025oppgoppcco 49329 The converted opposite monoid has the same composition as that of the opposite category. Example 3.6(2) of [Adamek] p. 25. (Contributed by Zhi Wang, 22-Sep-2025.)
(𝜑𝐶 = (MndToCat‘𝑀))    &   (𝜑𝑀 ∈ Mnd)    &   (𝜑𝐷 = (MndToCat‘(oppg𝑀)))    &   𝑂 = (oppCat‘𝐶)    &   (𝜑𝑋 ∈ (Base‘𝐷))    &   (𝜑𝑌 ∈ (Base‘𝑂))    &   (𝜑· = (comp‘𝐷))    &   (𝜑 = (comp‘𝑂))       (𝜑 → (⟨𝑋, 𝑋· 𝑋) = (⟨𝑌, 𝑌 𝑌))
 
22-Sep-2025oduoppcciso 49304 The dual of a preordered set and the opposite category are category-isomorphic. Example 3.6(1) of [Adamek] p. 25. (Contributed by Zhi Wang, 22-Sep-2025.)
(𝜑𝐶 = (ProsetToCat‘𝐾))    &   (𝜑𝐾 ∈ Proset )    &   (𝜑𝐷 = (ProsetToCat‘(ODual‘𝐾)))    &   𝑂 = (oppCat‘𝐶)    &   (𝜑𝑈𝑉)    &   (𝜑𝐷𝑈)    &   (𝜑𝑂𝑈)       (𝜑𝐷( ≃𝑐 ‘(CatCat‘𝑈))𝑂)
 
22-Sep-2025oduoppcbas 49303 The dual of a preordered set and the opposite category have the same set of objects. (Contributed by Zhi Wang, 22-Sep-2025.)
(𝜑𝐶 = (ProsetToCat‘𝐾))    &   (𝜑𝐾 ∈ Proset )    &   (𝜑𝐷 = (ProsetToCat‘(ODual‘𝐾)))    &   𝑂 = (oppCat‘𝐶)       (𝜑 → (Base‘𝐷) = (Base‘𝑂))
 
22-Sep-2025thinccisod 49203 Two thin categories are isomorphic if the induced preorders are order-isomorphic (deduction form). Example 3.26(2) of [Adamek] p. 33. (Contributed by Zhi Wang, 22-Sep-2025.)
𝐶 = (CatCat‘𝑈)    &   𝑅 = (Base‘𝑋)    &   𝑆 = (Base‘𝑌)    &   𝐻 = (Hom ‘𝑋)    &   𝐽 = (Hom ‘𝑌)    &   (𝜑𝑈𝑉)    &   (𝜑𝑋𝑈)    &   (𝜑𝑌𝑈)    &   (𝜑𝑋 ∈ ThinCat)    &   (𝜑𝑌 ∈ ThinCat)    &   (𝜑𝐹:𝑅1-1-onto𝑆)    &   ((𝜑 ∧ (𝑥𝑅𝑦𝑅)) → ((𝑥𝐻𝑦) = ∅ ↔ ((𝐹𝑥)𝐽(𝐹𝑦)) = ∅))       (𝜑𝑋( ≃𝑐𝐶)𝑌)
 
22-Sep-2025asclelbas 48874 Lifted scalars are in the base set of the algebra. (Contributed by Zhi Wang, 11-Sep-2025.) (Proof shortened by Thierry Arnoux, 22-Sep-2025.)
𝐴 = (algSc‘𝑊)    &   𝐹 = (Scalar‘𝑊)    &   𝐵 = (Base‘𝐹)    &   (𝜑𝑊 ∈ AssAlg)    &   (𝜑𝐶𝐵)       (𝜑 → (𝐴𝐶) ∈ (Base‘𝑊))
 
21-Sep-2025oppgoppchom 49328 The converted opposite monoid has the same hom-set as that of the opposite category. Example 3.6(2) of [Adamek] p. 25. (Contributed by Zhi Wang, 21-Sep-2025.)
(𝜑𝐶 = (MndToCat‘𝑀))    &   (𝜑𝑀 ∈ Mnd)    &   (𝜑𝐷 = (MndToCat‘(oppg𝑀)))    &   𝑂 = (oppCat‘𝐶)    &   (𝜑𝑋 ∈ (Base‘𝐷))    &   (𝜑𝑌 ∈ (Base‘𝑂))    &   (𝜑𝐻 = (Hom ‘𝐷))    &   (𝜑𝐽 = (Hom ‘𝑂))       (𝜑 → (𝑋𝐻𝑋) = (𝑌𝐽𝑌))
 
20-Sep-2025upeu2 48973 Generate new universal morphism through isomorphism from existing universal object. (Contributed by Zhi Wang, 20-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝑍𝐶)    &   (𝜑𝑀 ∈ (𝑍𝐽(𝐹𝑋)))    &   (𝜑 → ∀𝑤𝐵𝑓 ∈ (𝑍𝐽(𝐹𝑤))∃!𝑘 ∈ (𝑋𝐻𝑤)𝑓 = (((𝑋𝐺𝑤)‘𝑘)(⟨𝑍, (𝐹𝑋)⟩𝑂(𝐹𝑤))𝑀))    &   𝐼 = (Iso‘𝐷)    &   (𝜑𝐾 ∈ (𝑋𝐼𝑌))    &   (𝜑𝑁 = (((𝑋𝐺𝑌)‘𝐾)(⟨𝑍, (𝐹𝑋)⟩𝑂(𝐹𝑌))𝑀))       (𝜑 → (𝑁 ∈ (𝑍𝐽(𝐹𝑌)) ∧ ∀𝑣𝐵𝑔 ∈ (𝑍𝐽(𝐹𝑣))∃!𝑙 ∈ (𝑌𝐻𝑣)𝑔 = (((𝑌𝐺𝑣)‘𝑙)(⟨𝑍, (𝐹𝑌)⟩𝑂(𝐹𝑣))𝑁)))
 
20-Sep-2025upeu2lem 48892 Lemma for upeu2 48973. There exists a unique morphism from 𝑌 to 𝑍 that commutes if 𝐹:𝑋𝑌 is an isomorphism. (Contributed by Zhi Wang, 20-Sep-2025.)
𝐵 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &    · = (comp‘𝐶)    &   𝐼 = (Iso‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝑍𝐵)    &   (𝜑𝐹 ∈ (𝑋𝐼𝑌))    &   (𝜑𝐺 ∈ (𝑋𝐻𝑍))       (𝜑 → ∃!𝑘 ∈ (𝑌𝐻𝑍)𝐺 = (𝑘(⟨𝑋, 𝑌· 𝑍)𝐹))
 
20-Sep-2025reuxfr1dd 48679 Transfer existential uniqueness from a variable 𝑥 to another variable 𝑦 contained in expression 𝐴. Simplifies reuxfr1d 3731. (Contributed by Zhi Wang, 20-Sep-2025.)
((𝜑𝑦𝐶) → 𝐴𝐵)    &   ((𝜑𝑥𝐵) → ∃!𝑦𝐶 𝑥 = 𝐴)    &   ((𝜑 ∧ (𝑦𝐶𝑥 = 𝐴)) → (𝜓𝜒))       (𝜑 → (∃!𝑥𝐵 𝜓 ↔ ∃!𝑦𝐶 𝜒))
 
19-Sep-2025upeu 48972 A universal property defines an essentially unique (strong form) pair of object 𝑋 and morphism 𝑀 if it exists. (Contributed by Zhi Wang, 19-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝑍𝐶)    &   (𝜑𝑀 ∈ (𝑍𝐽(𝐹𝑋)))    &   (𝜑 → ∀𝑤𝐵𝑓 ∈ (𝑍𝐽(𝐹𝑤))∃!𝑘 ∈ (𝑋𝐻𝑤)𝑓 = (((𝑋𝐺𝑤)‘𝑘)(⟨𝑍, (𝐹𝑋)⟩𝑂(𝐹𝑤))𝑀))    &   (𝜑𝑁 ∈ (𝑍𝐽(𝐹𝑌)))    &   (𝜑 → ∀𝑣𝐵𝑔 ∈ (𝑍𝐽(𝐹𝑣))∃!𝑙 ∈ (𝑌𝐻𝑣)𝑔 = (((𝑌𝐺𝑣)‘𝑙)(⟨𝑍, (𝐹𝑌)⟩𝑂(𝐹𝑣))𝑁))       (𝜑 → ∃!𝑟 ∈ (𝑋(Iso‘𝐷)𝑌)𝑁 = (((𝑋𝐺𝑌)‘𝑟)(⟨𝑍, (𝐹𝑋)⟩𝑂(𝐹𝑌))𝑀))
 
19-Sep-2025upciclem4 48970 Lemma for upcic 48971 and upeu 48972. (Contributed by Zhi Wang, 19-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝑍𝐶)    &   (𝜑𝑀 ∈ (𝑍𝐽(𝐹𝑋)))    &   (𝜑 → ∀𝑤𝐵𝑓 ∈ (𝑍𝐽(𝐹𝑤))∃!𝑘 ∈ (𝑋𝐻𝑤)𝑓 = (((𝑋𝐺𝑤)‘𝑘)(⟨𝑍, (𝐹𝑋)⟩𝑂(𝐹𝑤))𝑀))    &   (𝜑𝑁 ∈ (𝑍𝐽(𝐹𝑌)))    &   (𝜑 → ∀𝑣𝐵𝑔 ∈ (𝑍𝐽(𝐹𝑣))∃!𝑙 ∈ (𝑌𝐻𝑣)𝑔 = (((𝑌𝐺𝑣)‘𝑙)(⟨𝑍, (𝐹𝑌)⟩𝑂(𝐹𝑣))𝑁))       (𝜑 → (𝑋( ≃𝑐𝐷)𝑌 ∧ ∃𝑟 ∈ (𝑋(Iso‘𝐷)𝑌)𝑁 = (((𝑋𝐺𝑌)‘𝑟)(⟨𝑍, (𝐹𝑋)⟩𝑂(𝐹𝑌))𝑀)))
 
19-Sep-2025upciclem2 48968 Lemma for upciclem3 48969 and upeu2 48973. (Contributed by Zhi Wang, 19-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝑍𝐵)    &   (𝜑𝑊𝐶)    &   (𝜑𝑀 ∈ (𝑊𝐽(𝐹𝑋)))    &    · = (comp‘𝐷)    &   (𝜑𝐾 ∈ (𝑋𝐻𝑌))    &   (𝜑𝐿 ∈ (𝑌𝐻𝑍))    &   (𝜑𝑁 = (((𝑋𝐺𝑌)‘𝐾)(⟨𝑊, (𝐹𝑋)⟩𝑂(𝐹𝑌))𝑀))       (𝜑 → (((𝑋𝐺𝑍)‘(𝐿(⟨𝑋, 𝑌· 𝑍)𝐾))(⟨𝑊, (𝐹𝑋)⟩𝑂(𝐹𝑍))𝑀) = (((𝑌𝐺𝑍)‘𝐿)(⟨𝑊, (𝐹𝑌)⟩𝑂(𝐹𝑍))𝑁))
 
19-Sep-2025sepexi 5269 Convert implication to equivalence within an existence statement using the Separation Scheme (Aussonderung) ax-sep 5264. Inference associated with sepex 5268. (Contributed by NM, 21-Jun-1993.) Generalize conclusion, extract closed form, and avoid ax-9 2117. (Revised by Matthew House, 19-Sep-2025.)
𝑦𝑥(𝜑𝑥𝑦)       𝑧𝑥(𝑥𝑧𝜑)
 
19-Sep-2025sepex 5268 Convert implication to equivalence within an existence statement using the Separation Scheme (Aussonderung) ax-sep 5264. Similar to Theorem 1.3(ii) of [BellMachover] p. 463. (Contributed by Matthew House, 19-Sep-2025.)
(∃𝑦𝑥(𝜑𝑥𝑦) → ∃𝑧𝑥(𝑥𝑧𝜑))
 
19-Sep-2025sepexlem 5267 Lemma for sepex 5268. Use sepex 5268 instead. (Contributed by Matthew House, 19-Sep-2025.) (New usage is discouraged.)
(∃𝑦𝑥(𝜑𝑥𝑦) → ∃𝑧𝑥(𝑥𝑧𝜑))
 
18-Sep-2025wl-cleq-5 37447
Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong. This text should be read as an exploration rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Semantics of Equality

There is a broadly shared understanding of what equality between objects expresses, extending beyond mathematics or set theory. Equality constitutes an equivalence relation among objects 𝑥, 𝑦, and 𝑧 within the universe under consideration:

1. Reflexivity 𝑥 = 𝑥

2. Symmetry (𝑥 = 𝑦𝑦 = 𝑥)

3. Transitivity ((𝑥 = 𝑦𝑥 = 𝑧) → 𝑦 = 𝑧)

4. Identity of Indiscernables (Leibniz's Law): distinct (i.e., unequal), objects cannot share all the same properties (or attributes).

In formal theories using variables, the attributes of a variable are assumed to mirror those of the instance it denotes. For both variables and objects, items (1) - (4) must either be derived or postulated as axioms.

If the theory allows substituting instances for variables, then the equality rules for objects follow directly from those governing variables. However, if variables and instances are formally distinguished, this distinction introduces an additional metatheoretical attribute, relevant for (4).

A similar issue arises when equality is considered between different types of variables sharing properties. Such mixed-type equalities are subject to restrictions: reflexivity does not apply, since the two sides represent different kinds of entities. Nevertheless, symmetry and various forms of transitivity typically remain valid, and must be proven or established within the theory.

In set.mm formulas express attributes. Therefore, equal instances must behave identically, yielding the same results when substituted into any formula. To verify equality, it suffices to consider only primitive operations involving free variables, since all formulas - once definitions are eliminated - reduce to these. Equality itself introduces no new attribute (an object is always different from all others), and can thus be excluded from this examination.

Equality in First Order Logic (FOL)

In the FOL component of set.mm, the notion of an "object" is absent. Only set variables are used to formulate theorems, and their attributes - expressed through an unspecified membership operator - are addressed at a later stage.

Instead, several axioms address equality directly: ax-6 1966, ax-7 2006, ax-8 2109, ax-9 2117 and ax-12 2176, and ax-13 2375. In practice, restricted versions with distinct variable conditions are used (ax6v 1967, ax12v 2177). The unrestricted forms together with axiom ax-13 2375, allow for the elimination of distinct variable conditions, this benefit is considered too minor for routine use.

Equality in FOL is formalized as follows:

2a. Equivalence Relation. Essentially covered by ax-7 2006, with some support of ax-6 1966.

2b. Leibniz's Law for the primitive operator. Captured by ax-8 2109 and ax-9 2117.

2c. General formulation. Given in sbequ12 2250.

2d. Implicit substitution. Assuming Leibniz's Law holds for a particular expression, various theorems extend its validity to other, derived expressions, often introducing quantification (see for example cbvalvw 2034).

The auxiliary axioms ax-10 2140, ax-11 2156, ax-12 are provable (see ax10w 2128, for example) if you can substitute 𝑦 for 𝑥 in a formula 𝜑 that contains no occurrence of 𝑦 and leaves no remaining trace of 𝑥 after substitution. An implicit substitution is then established by setting the resulting formula equivalent to 𝜑 under the assumption 𝑥 = 𝑦. Ordinary FOL substitution [𝑦 / 𝑥]𝜑 is insufficient in this context, since 𝑥 still occurs in the substituted formula. A simple textual replacement of the token 𝑥 by 𝑦 in 𝜑 might seem an intuitive solution, but such operations are out of the formal scope of Metamath.

2e. Axiom of Extensionality. In its elaborated form (axextb 2709), it states that the determining attributes of a set 𝑥 are the elements 𝑧 it contains, as expressed by 𝑧𝑥. This is the only primitive operation relevant for equality between set variables.

Equality between classes

In set.mm class variables of type "class" are introduced analoguously to set variables. Besides the primitive operations equality and membership, class builders allow other syntactical constructs to substitute for class variables, enabling them to represent class instances.

One such builder (cv 1538) allows set variables to replace class variables. Another (df-clab 2713) introduces a class instance, known as class abstraction. Since a class abstraction can freely substitute for a class variable, formulas hold for both alike. Hence, there is no need to distinguish between class variables and abstractions; the term class will denote "class variable or class abstraction".

Set variables, however, are treated separately, as they are not of type "class".

3a. Equivalence Relation. Axiom df-cleq 2726, from which class versions of (1a) - (1c) can be derived, guarantees that equality between class variables form an equivalence relation. Since both class abstractions and set variables can substitute for class variables, this equivalence extends to all mixed equalities, including those with set variables, since they automatically convert to classes upon substitution.

3b. Attributes. The primitive operation of membership constitutes the fundamental attributes of a class. Axiom df-clel 2808 reduces possible membership relations between class variables to those between a set variable and a class variable. Axiom df-cleq 2726 extends axextb 2709 to classes, stating that classes are fully determined by their set members.

A class builder may introduce a new attribute for classes. An equation involving such a class instance may express this attribute. In the case of the class builder cv 1538, an attribute called sethood is in fact introduced: A class is a set if it can be equated with some set variable.

Class abstractions supported by class builder df-clab 2713 also formally introduce attributes. Whether a class can be expressed as an abstraction with a specific predicate may be relevant in analysis. However, since theorem df-clab 2713 is a definition (and hence eliminable), these attributes can also be expressed in other ways.

3c. Conservativity. Because set variables can substitute for class variables, all axioms and definitions must be consistent with theorems in FOL. To ensure this, hypotheses are added to axioms and definitions that mirror the structure of their statement, but with class variables replaced by set variables. Since theorems cannot be applied without first proving their hypotheses, conservativity thus is enforced.

3d. Leibniz's Law. Besides equality membership is (and remains) the only primitive operator between classes. Axioms df-cleq 2726 and df-clel 2808 provide class versions of ax-8 2109 and ax-9 2117, ensuring that membership is consistent with Leibniz's Law.

Sethood, being based on mixed-type equality, preserves its value among equal classes.

As long as additional class builders beyond those mentioned are only defined, the reasoning given for class abstraction above applies generally, and Leibniz's Law continues to hold.

3e. Backward Compatability. A class 𝐴 equal to a set should be substitutable for a free set variable 𝑥 in any theorem, yielding a valid result, provided 𝑥 and 𝐴 are distinct. Sethood is conveniently expressed by 𝑧𝑧 = 𝐴; this assumption is added as an antecedent to the corresponding FOL theorem.

However, since direct substitution is disallowed, a deduction version of an FOL theorem cannot be simply converted. Instead, the proof must be replayed, consistently replacing 𝑥 with 𝐴. Ultimately, this process reduces to the FOL axioms, or their deduction form.

If these axioms hold when 𝐴 replaces 𝑥- under the above assumptions - then the replacement can be considered generally valid. The affected FOL axioms are ax-6 1966 (in the form ax6ev 1968), ax-7 2006, ax-8 2109, ax-9 2117, ax-12 2176 (ax12v2 2178), and to some extent ax-13 2375 (ax13v 2376). Since ZF (Zermelo-Fraenkel) set theory does not allow quantifification over class variables, no similar class-based versions of the quantified FOL axioms exist.

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

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
18-Sep-2025elfzoextl 13727 Membership of an integer in an extended open range of integers, extension added to the left. (Contributed by AV, 31-Aug-2025.) Generalized by replacing the left border of the ranges. (Revised by SN, 18-Sep-2025.)
((𝑍 ∈ (𝑀..^𝑁) ∧ 𝐼 ∈ ℕ0) → 𝑍 ∈ (𝑀..^(𝐼 + 𝑁)))
 
18-Sep-2025elfzo0suble 13713 The difference of the upper bound of a half-open range of nonnegative integers and an element of this range is less than or equal to the upper bound. (Contributed by AV, 1-Sep-2025.) (Proof shortened by SN, 18-Sep-2025.)
(𝐴 ∈ (0..^𝐵) → (𝐵𝐴) ≤ 𝐵)
 
18-Sep-2025elfzo0subge1 13712 The difference of the upper bound of a half-open range of nonnegative integers and an element of this range is greater than or equal to 1. (Contributed by AV, 1-Sep-2025.) (Proof shortened by SN, 18-Sep-2025.)
(𝐴 ∈ (0..^𝐵) → 1 ≤ (𝐵𝐴))
 
18-Sep-2025axpr 5395 Unabbreviated version of the Axiom of Pairing of ZF set theory, derived as a theorem from the other axioms.

This theorem should not be referenced by any proof. Instead, use ax-pr 5400 below so that the uses of the Axiom of Pairing can be more easily identified.

For a shorter proof using ax-ext 2706, see axprALT 5390. (Contributed by NM, 14-Nov-2006.) Remove dependency on ax-ext 2706. (Revised by Rohan Ridenour, 10-Aug-2023.) (Proof shortened by BJ, 13-Aug-2023.) (Proof shortened by Matthew House, 18-Sep-2025.) Use ax-pr 5400 instead. (New usage is discouraged.)

𝑧𝑤((𝑤 = 𝑥𝑤 = 𝑦) → 𝑤𝑧)
 
18-Sep-2025axprlem4 5394 Lemma for axpr 5395. If an existing set of empty sets corresponds to one element of the pair, then the element is included in any superset of the set whose existence is asserted by the axiom of replacement. (Contributed by Rohan Ridenour, 10-Aug-2023.) (Revised by BJ, 13-Aug-2023.) (Revised by Matthew House, 18-Sep-2025.)
𝑠𝑛𝜑    &   (𝜑 → (𝑛𝑠 → ∀𝑡 ¬ 𝑡𝑛))    &   (∀𝑛𝜑 → (if-(∃𝑛 𝑛𝑠, 𝑤 = 𝑥, 𝑤 = 𝑦) ↔ 𝑤 = 𝑣))       (∀𝑠(∀𝑛𝑠𝑡 ¬ 𝑡𝑛𝑠𝑝) → (𝑤 = 𝑣 → ∃𝑠(𝑠𝑝 ∧ if-(∃𝑛 𝑛𝑠, 𝑤 = 𝑥, 𝑤 = 𝑦))))
 
18-Sep-2025axprlem3 5393 Lemma for axpr 5395. Eliminate the antecedent of the relevant replacement instance. (Contributed by Rohan Ridenour, 10-Aug-2023.) (Proof shortened by Matthew House, 18-Sep-2025.)
𝑧𝑤(𝑤𝑧 ↔ ∃𝑠(𝑠𝑝 ∧ if-(∃𝑛 𝑛𝑠, 𝑤 = 𝑥, 𝑤 = 𝑦)))
 
18-Sep-2025axrep6 5256 A condensed form of ax-rep 5247. (Contributed by SN, 18-Sep-2023.) (Proof shortened by Matthew House, 18-Sep-2025.)
(∀𝑤∃*𝑧𝜑 → ∃𝑦𝑧(𝑧𝑦 ↔ ∃𝑤𝑥 𝜑))
 
18-Sep-2025axrep4 5253 A more traditional version of the Axiom of Replacement. (Contributed by NM, 14-Aug-1994.) (Proof shortened by Matthew House, 18-Sep-2025.)
𝑧𝜑       (∀𝑥𝑧𝑦(𝜑𝑦 = 𝑧) → ∃𝑧𝑦(𝑦𝑧 ↔ ∃𝑥(𝑥𝑤𝜑)))
 
18-Sep-2025axrep4v 5252 Version of axrep4 5253 with a disjoint variable condition, requiring fewer axioms. (Contributed by Matthew House, 18-Sep-2025.)
(∀𝑥𝑧𝑦(𝜑𝑦 = 𝑧) → ∃𝑧𝑦(𝑦𝑧 ↔ ∃𝑥(𝑥𝑤𝜑)))
 
17-Sep-2025upcic 48971 A universal property defines an object up to isomorphism given its existence. (Contributed by Zhi Wang, 17-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝑍𝐶)    &   (𝜑𝑀 ∈ (𝑍𝐽(𝐹𝑋)))    &   (𝜑 → ∀𝑤𝐵𝑓 ∈ (𝑍𝐽(𝐹𝑤))∃!𝑘 ∈ (𝑋𝐻𝑤)𝑓 = (((𝑋𝐺𝑤)‘𝑘)(⟨𝑍, (𝐹𝑋)⟩𝑂(𝐹𝑤))𝑀))    &   (𝜑𝑁 ∈ (𝑍𝐽(𝐹𝑌)))    &   (𝜑 → ∀𝑣𝐵𝑔 ∈ (𝑍𝐽(𝐹𝑣))∃!𝑙 ∈ (𝑌𝐻𝑣)𝑔 = (((𝑌𝐺𝑣)‘𝑙)(⟨𝑍, (𝐹𝑌)⟩𝑂(𝐹𝑣))𝑁))       (𝜑𝑋( ≃𝑐𝐷)𝑌)
 
17-Sep-2025upciclem3 48969 Lemma for upciclem4 48970. (Contributed by Zhi Wang, 17-Sep-2025.)
𝐵 = (Base‘𝐷)    &   𝐶 = (Base‘𝐸)    &   𝐻 = (Hom ‘𝐷)    &   𝐽 = (Hom ‘𝐸)    &   𝑂 = (comp‘𝐸)    &   (𝜑𝐹(𝐷 Func 𝐸)𝐺)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝑍𝐶)    &   (𝜑𝑀 ∈ (𝑍𝐽(𝐹𝑋)))    &   (𝜑 → ∀𝑤𝐵𝑓 ∈ (𝑍𝐽(𝐹𝑤))∃!𝑘 ∈ (𝑋𝐻𝑤)𝑓 = (((𝑋𝐺𝑤)‘𝑘)(⟨𝑍, (𝐹𝑋)⟩𝑂(𝐹𝑤))𝑀))    &    · = (comp‘𝐷)    &   (𝜑𝐾 ∈ (𝑋𝐻𝑌))    &   (𝜑𝐿 ∈ (𝑌𝐻𝑋))    &   (𝜑𝑀 = (((𝑌𝐺𝑋)‘𝐿)(⟨𝑍, (𝐹𝑌)⟩𝑂(𝐹𝑋))𝑁))    &   (𝜑𝑁 = (((𝑋𝐺𝑌)‘𝐾)(⟨𝑍, (𝐹𝑋)⟩𝑂(𝐹𝑌))𝑀))       (𝜑 → (𝐿(⟨𝑋, 𝑌· 𝑋)𝐾) = ((Id‘𝐷)‘𝑋))
 
17-Sep-2025funcrcl3 48938 Reverse closure for a functor. (Contributed by Zhi Wang, 17-Sep-2025.)
(𝜑𝐹(𝐷 Func 𝐸)𝐺)       (𝜑𝐸 ∈ Cat)
 
17-Sep-2025funcrcl2 48937 Reverse closure for a functor. (Contributed by Zhi Wang, 17-Sep-2025.)
(𝜑𝐹(𝐷 Func 𝐸)𝐺)       (𝜑𝐷 ∈ Cat)
 
17-Sep-2025isubgr3stgrlem3 47888 Lemma 3 for isubgr3stgr 47895. (Contributed by AV, 17-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐶 = (𝐺 ClNeighbVtx 𝑋)    &   𝑁 ∈ ℕ0    &   𝑆 = (StarGr‘𝑁)    &   𝑊 = (Vtx‘𝑆)       ((𝐺 ∈ USGraph ∧ 𝑋𝑉 ∧ (♯‘𝑈) = 𝑁) → ∃𝑔(𝑔:𝐶1-1-onto𝑊 ∧ (𝑔𝑋) = 0))
 
16-Sep-2025isisod 48891 The predicate "is an isomorphism" (deduction form). (Contributed by Zhi Wang, 16-Sep-2025.)
𝐵 = (Base‘𝐶)    &   𝐻 = (Hom ‘𝐶)    &    · = (comp‘𝐶)    &   𝐼 = (Iso‘𝐶)    &    1 = (Id‘𝐶)    &   (𝜑𝐶 ∈ Cat)    &   (𝜑𝑋𝐵)    &   (𝜑𝑌𝐵)    &   (𝜑𝐹 ∈ (𝑋𝐻𝑌))    &   (𝜑𝐺 ∈ (𝑌𝐻𝑋))    &   (𝜑 → (𝐺(⟨𝑋, 𝑌· 𝑋)𝐹) = ( 1𝑋))    &   (𝜑 → (𝐹(⟨𝑌, 𝑋· 𝑌)𝐺) = ( 1𝑌))       (𝜑𝐹 ∈ (𝑋𝐼𝑌))
 
16-Sep-2025isubgr3stgrlem2 47887 Lemma 2 for isubgr3stgr 47895. (Contributed by AV, 16-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐶 = (𝐺 ClNeighbVtx 𝑋)    &   𝑁 ∈ ℕ0    &   𝑆 = (StarGr‘𝑁)    &   𝑊 = (Vtx‘𝑆)       ((𝐺 ∈ USGraph ∧ 𝑋𝑉 ∧ (♯‘𝑈) = 𝑁) → ∃𝑓 𝑓:𝑈1-1-onto→(𝑊 ∖ {0}))
 
16-Sep-2025isubgr3stgrlem1 47886 Lemma 1 for isubgr3stgr 47895. (Contributed by AV, 16-Sep-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐶 = (𝐺 ClNeighbVtx 𝑋)    &   𝐹 = (𝐻 ∪ {⟨𝑋, 𝑌⟩})       ((𝐻:𝑈1-1-onto𝑅𝑋𝑉 ∧ (𝑌𝑊𝑌𝑅)) → 𝐹:𝐶1-1-onto→(𝑅 ∪ {𝑌}))
 
16-Sep-2025sn-base0 42450 Avoid axioms in base0 17220 by using the discouraged df-base 17216. This kind of axiom save is probably not worth it. (Contributed by SN, 16-Sep-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
∅ = (Base‘∅)
 
16-Sep-2025rnopab3 5934 The range of a restricted class of ordered pairs. (Contributed by Eric Schmidt, 16-Sep-2025.)
(∀𝑦𝐴𝑥𝜑 ↔ ran {⟨𝑥, 𝑦⟩ ∣ (𝑦𝐴𝜑)} = 𝐴)
 
16-Sep-2025rnopabss 5933 Upper bound for the range of a restricted class of ordered pairs. (Contributed by Eric Schmidt, 16-Sep-2025.)
ran {⟨𝑥, 𝑦⟩ ∣ (𝑦𝐴𝜑)} ⊆ 𝐴
 
15-Sep-2025f1ounsn 7261 Extension of a bijection by an ordered pair. (Contributed by AV, 15-Sep-2025.)
𝐹 = (𝐺 ∪ {⟨𝑋, 𝑌⟩})       ((𝐺:𝐴1-1-onto𝐵 ∧ (𝑋𝑉𝑌𝑊) ∧ (𝑋𝐴𝑌𝐵)) → 𝐹:(𝐴 ∪ {𝑋})–1-1-onto→(𝐵 ∪ {𝑌}))
 
13-Sep-2025gpg5gricstgr3 47999 Each closed neighborhood in a generalized Petersen graph G(N,K) of order 10 (𝑁 = 5), which is either the Petersen graph G(5,2) or the 5-prism G(5,1), is isomorphic to a 3-star. (Contributed by AV, 13-Sep-2025.)
𝐺 = (5 gPetersenGr 𝐾)       ((𝐾 ∈ (1...2) ∧ 𝑉 ∈ (Vtx‘𝐺)) → (𝐺 ISubGr (𝐺 ClNeighbVtx 𝑉)) ≃𝑔𝑟 (StarGr‘3))
 
12-Sep-2025stgrclnbgr0 47885 All vertices of a star graph SN are in the closed neighborhood of the center. (Contributed by AV, 12-Sep-2025.)
𝐺 = (StarGr‘𝑁)    &   𝑉 = (Vtx‘𝐺)       (𝑁 ∈ ℕ0 → (𝐺 ClNeighbVtx 0) = 𝑉)
 
12-Sep-2025stgrnbgr0 47884 All vertices of a star graph SN except the center are in the (open) neighborhood of the center. (Contributed by AV, 12-Sep-2025.)
𝐺 = (StarGr‘𝑁)    &   𝑉 = (Vtx‘𝐺)       (𝑁 ∈ ℕ0 → (𝐺 NeighbVtx 0) = (𝑉 ∖ {0}))
 
12-Sep-2025stgrorder 47883 The order of a star graph SN. (Contributed by AV, 12-Sep-2025.)
𝐺 = (StarGr‘𝑁)    &   𝑉 = (Vtx‘𝐺)       (𝑁 ∈ ℕ0 → (♯‘𝑉) = (𝑁 + 1))
 
12-Sep-2025stgrvtx0 47882 The center ("internal node") of a star graph SN. (Contributed by AV, 12-Sep-2025.)
𝐺 = (StarGr‘𝑁)    &   𝑉 = (Vtx‘𝐺)       (𝑁 ∈ ℕ0 → 0 ∈ 𝑉)
 
12-Sep-2025rnwf 44925 The range of a well-founded set is well-founded. (Contributed by Eric Schmidt, 12-Sep-2025.)
(𝐴 (𝑅1 “ On) → ran 𝐴 (𝑅1 “ On))
 
12-Sep-2025dmwf 44924 The domain of a well-founded set is well-founded. (Contributed by Eric Schmidt, 12-Sep-2025.)
(𝐴 (𝑅1 “ On) → dom 𝐴 (𝑅1 “ On))
 
12-Sep-2025xpwf 44923 The Cartesian product of two well-founded sets is well-founded. (Contributed by Eric Schmidt, 12-Sep-2025.)
((𝐴 (𝑅1 “ On) ∧ 𝐵 (𝑅1 “ On)) → (𝐴 × 𝐵) ∈ (𝑅1 “ On))
 
12-Sep-2025fz0dif1 13613 Split the first element of a finite set of sequential nonnegative integers. (Contributed by AV, 12-Sep-2025.)
(𝑁 ∈ ℕ0 → ((0...𝑁) ∖ {0}) = (1...𝑁))
 
12-Sep-2025fzdif1 13612 Split the first element of a finite set of sequential integers. More generic than fzpred 13579. Analogous to fzdif2 32704. (Contributed by AV, 12-Sep-2025.)
(𝑁 ∈ (ℤ𝑀) → ((𝑀...𝑁) ∖ {𝑀}) = ((𝑀 + 1)...𝑁))
 
11-Sep-2025asclcom 48877 Scalars are commutative after being lifted.

However, the scalars themselves are not necessarily commutative if the algebra is not a faithful module. For example, Let 𝐹 be the 2 by 2 upper triangular matrix algebra over a commutative ring 𝑊. It is provable that 𝐹 is in general non-commutative. Define scalar multiplication 𝐶 · 𝑋 as multipying the top-left entry, which is a "vector" element of 𝑊, of the "scalar" 𝐶, which is now an upper triangular matrix, with the "vector" 𝑋 ∈ (Base‘𝑊).

Equivalently, the algebra scalar lifting function is not necessarily injective unless the algebra is faithful. Therefore, all "scalar injection" was renamed.

Alternate proof involves assa2ass 21810, assa2ass2 21811, and asclval 21827, by setting 𝑋 and 𝑌 the multiplicative identity of the algebra.

(Contributed by Zhi Wang, 11-Sep-2025.)

𝐴 = (algSc‘𝑊)    &   𝐹 = (Scalar‘𝑊)    &   𝐵 = (Base‘𝐹)    &   (𝜑𝑊 ∈ AssAlg)    &   (𝜑𝐶𝐵)    &    = (.r𝐹)    &   (𝜑𝐷𝐵)       (𝜑 → (𝐴‘(𝐶 𝐷)) = (𝐴‘(𝐷 𝐶)))
 
11-Sep-2025asclcntr 48876 The algebra scalar lifting function maps into the center of the algebra. Equivalently, a lifted scalar is a center of the algebra. (Contributed by Zhi Wang, 11-Sep-2025.)
𝐴 = (algSc‘𝑊)    &   𝐹 = (Scalar‘𝑊)    &   𝐵 = (Base‘𝐹)    &   (𝜑𝑊 ∈ AssAlg)    &   (𝜑𝐶𝐵)    &   𝑀 = (mulGrp‘𝑊)       (𝜑 → (𝐴𝐶) ∈ (Cntr‘𝑀))
 
11-Sep-2025asclelbasALT 48875 Alternate proof of asclelbas 48874. (Contributed by Zhi Wang, 11-Sep-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
𝐴 = (algSc‘𝑊)    &   𝐹 = (Scalar‘𝑊)    &   𝐵 = (Base‘𝐹)    &   (𝜑𝑊 ∈ AssAlg)    &   (𝜑𝐶𝐵)       (𝜑 → (𝐴𝐶) ∈ (Base‘𝑊))
 
11-Sep-2025elmgpcntrd 48873 The center of a ring. (Contributed by Zhi Wang, 11-Sep-2025.)
𝐵 = (Base‘𝑅)    &   𝑀 = (mulGrp‘𝑅)    &   𝑍 = (Cntr‘𝑀)    &   (𝜑𝑋𝐵)    &   ((𝜑𝑦𝐵) → (𝑋(.r𝑅)𝑦) = (𝑦(.r𝑅)𝑋))       (𝜑𝑋𝑍)
 
11-Sep-2025stgr1 47881 The star graph S1 consists of a single simple edge. (Contributed by AV, 11-Sep-2025.)
(StarGr‘1) = {⟨(Base‘ndx), {0, 1}⟩, ⟨(.ef‘ndx), ( I ↾ {{0, 1}})⟩}
 
11-Sep-2025stgr0 47880 The star graph S0 consists of a single vertex without edges. (Contributed by AV, 11-Sep-2025.)
(StarGr‘0) = {⟨(Base‘ndx), {0}⟩, ⟨(.ef‘ndx), ∅⟩}
 
11-Sep-2025stgrusgra 47879 The star graph SN is a simple graph. (Contributed by AV, 11-Sep-2025.)
(𝑁 ∈ ℕ0 → (StarGr‘𝑁) ∈ USGraph)
 
11-Sep-2025stgredgel 47877 An edge of the star graph SN. (Contributed by AV, 11-Sep-2025.)
(𝑁 ∈ ℕ0 → (𝐸 ∈ (Edg‘(StarGr‘𝑁)) ↔ (𝐸 ⊆ (0...𝑁) ∧ ∃𝑥 ∈ (1...𝑁)𝐸 = {0, 𝑥})))
 
11-Sep-2025stgredg 47876 The edges of the star graph SN. (Contributed by AV, 11-Sep-2025.)
(𝑁 ∈ ℕ0 → (Edg‘(StarGr‘𝑁)) = {𝑒 ∈ 𝒫 (0...𝑁) ∣ ∃𝑥 ∈ (1...𝑁)𝑒 = {0, 𝑥}})
 
11-Sep-2025stgriedg 47875 The indexed edges of the star graph SN. (Contributed by AV, 11-Sep-2025.)
(𝑁 ∈ ℕ0 → (iEdg‘(StarGr‘𝑁)) = ( I ↾ {𝑒 ∈ 𝒫 (0...𝑁) ∣ ∃𝑥 ∈ (1...𝑁)𝑒 = {0, 𝑥}}))
 
11-Sep-2025stgrvtx 47874 The vertices of the star graph SN. (Contributed by AV, 11-Sep-2025.)
(𝑁 ∈ ℕ0 → (Vtx‘(StarGr‘𝑁)) = (0...𝑁))
 
11-Sep-2025traxext 44936 A transitive class models the Axiom of Extensionality ax-ext 2706. Lemma II.2.4(1) of [Kunen2] p. 111. (Contributed by Eric Schmidt, 11-Sep-2025.)
(Tr 𝑀 → ∀𝑥𝑀𝑦𝑀 (∀𝑧𝑀 (𝑧𝑥𝑧𝑦) → 𝑥 = 𝑦))
 
11-Sep-2025assa2ass2 21811 Left- and right-associative property of an associative algebra. Notice that the scalars are not commuted! (Contributed by Zhi Wang, 11-Sep-2025.)
𝑉 = (Base‘𝑊)    &   𝐹 = (Scalar‘𝑊)    &   𝐵 = (Base‘𝐹)    &    = (.r𝐹)    &    · = ( ·𝑠𝑊)    &    × = (.r𝑊)       ((𝑊 ∈ AssAlg ∧ (𝐴𝐵𝐶𝐵) ∧ (𝑋𝑉𝑌𝑉)) → ((𝐴 · 𝑋) × (𝐶 · 𝑌)) = ((𝐴 𝐶) · (𝑋 × 𝑌)))
 
11-Sep-2025assa2ass 21810 Left- and right-associative property of an associative algebra. Notice that the scalars are commuted! (Contributed by AV, 14-Aug-2019.) (Proof shortened by Zhi Wang, 11-Sep-2025.)
𝑉 = (Base‘𝑊)    &   𝐹 = (Scalar‘𝑊)    &   𝐵 = (Base‘𝐹)    &    = (.r𝐹)    &    · = ( ·𝑠𝑊)    &    × = (.r𝑊)       ((𝑊 ∈ AssAlg ∧ (𝐴𝐵𝐶𝐵) ∧ (𝑋𝑉𝑌𝑉)) → ((𝐴 · 𝑋) × (𝐶 · 𝑌)) = ((𝐶 𝐴) · (𝑋 × 𝑌)))
 
11-Sep-2025fz01pr 13757 An integer range between 0 and 1 is a pair. (Contributed by AV, 11-Sep-2025.)
(0...1) = {0, 1}
 
10-Sep-2025stgrfv 47873 The star graph SN. (Contributed by AV, 10-Sep-2025.)
(𝑁 ∈ ℕ0 → (StarGr‘𝑁) = {⟨(Base‘ndx), (0...𝑁)⟩, ⟨(.ef‘ndx), ( I ↾ {𝑒 ∈ 𝒫 (0...𝑁) ∣ ∃𝑥 ∈ (1...𝑁)𝑒 = {0, 𝑥}})⟩})
 
10-Sep-2025df-stgr 47872 Definition of star graphs according to the first definition in Wikipedia, so that (StarGr‘𝑁) has size 𝑁, and order 𝑁 + 1: (StarGr‘0) will be a single vertex (graph without edges), see stgr0 47880, (StarGr‘1) will be a single edge (graph with two vertices connected by an edge), see stgr1 47881, and (StarGr‘3) will be a 3-star or "claw" (a star with 3 edges). (Contributed by AV, 10-Sep-2025.)
StarGr = (𝑛 ∈ ℕ0 ↦ {⟨(Base‘ndx), (0...𝑛)⟩, ⟨(.ef‘ndx), ( I ↾ {𝑒 ∈ 𝒫 (0...𝑛) ∣ ∃𝑥 ∈ (1...𝑛)𝑒 = {0, 𝑥}})⟩})
 
10-Sep-2025pwfseqlem4 10669 Lemma for pwfseq 10671. Derive a final contradiction from the function 𝐹 in pwfseqlem3 10667. Applying fpwwe2 10650 to it, we get a certain maximal well-ordered subset 𝑍, but the defining property (𝑍𝐹(𝑊𝑍)) ∈ 𝑍 contradicts our assumption on 𝐹, so we are reduced to the case of 𝑍 finite. This too is a contradiction, though, because 𝑍 and its preimage under (𝑊𝑍) are distinct sets of the same cardinality and in a subset relation, which is impossible for finite sets. (Contributed by Mario Carneiro, 31-May-2015.) (Proof shortened by Matthew House, 10-Sep-2025.)
(𝜑𝐺:𝒫 𝐴1-1 𝑛 ∈ ω (𝐴m 𝑛))    &   (𝜑𝑋𝐴)    &   (𝜑𝐻:ω–1-1-onto𝑋)    &   (𝜓 ↔ ((𝑥𝐴𝑟 ⊆ (𝑥 × 𝑥) ∧ 𝑟 We 𝑥) ∧ ω ≼ 𝑥))    &   ((𝜑𝜓) → 𝐾: 𝑛 ∈ ω (𝑥m 𝑛)–1-1𝑥)    &   𝐷 = (𝐺‘{𝑤𝑥 ∣ ((𝐾𝑤) ∈ ran 𝐺 ∧ ¬ 𝑤 ∈ (𝐺‘(𝐾𝑤)))})    &   𝐹 = (𝑥 ∈ V, 𝑟 ∈ V ↦ if(𝑥 ∈ Fin, (𝐻‘(card‘𝑥)), (𝐷 {𝑧 ∈ ω ∣ ¬ (𝐷𝑧) ∈ 𝑥})))    &   𝑊 = {⟨𝑎, 𝑠⟩ ∣ ((𝑎𝐴𝑠 ⊆ (𝑎 × 𝑎)) ∧ (𝑠 We 𝑎 ∧ ∀𝑏𝑎 [(𝑠 “ {𝑏}) / 𝑣](𝑣𝐹(𝑠 ∩ (𝑣 × 𝑣))) = 𝑏))}    &   𝑍 = dom 𝑊        ¬ 𝜑
 
10-Sep-2025fpwwe2lem4 10641 Lemma for fpwwe2 10650. (Contributed by Mario Carneiro, 15-May-2015.) (Revised by AV, 20-Jul-2024.) (Proof shortened by Matthew House, 10-Sep-2025.)
𝑊 = {⟨𝑥, 𝑟⟩ ∣ ((𝑥𝐴𝑟 ⊆ (𝑥 × 𝑥)) ∧ (𝑟 We 𝑥 ∧ ∀𝑦𝑥 [(𝑟 “ {𝑦}) / 𝑢](𝑢𝐹(𝑟 ∩ (𝑢 × 𝑢))) = 𝑦))}    &   (𝜑𝐴𝑉)    &   ((𝜑 ∧ (𝑥𝐴𝑟 ⊆ (𝑥 × 𝑥) ∧ 𝑟 We 𝑥)) → (𝑥𝐹𝑟) ∈ 𝐴)       ((𝜑 ∧ (𝑋𝐴𝑅 ⊆ (𝑋 × 𝑋) ∧ 𝑅 We 𝑋)) → (𝑋𝐹𝑅) ∈ 𝐴)
 
10-Sep-2025weeq12d 5641 Equality deduction for well-orderings. (Contributed by Stefan O'Rear, 19-Jan-2015.) (Proof shortened by Matthew House, 10-Sep-2025.)
(𝜑𝑅 = 𝑆)    &   (𝜑𝐴 = 𝐵)       (𝜑 → (𝑅 We 𝐴𝑆 We 𝐵))
 
10-Sep-2025seeq12d 5624 Equality deduction for the set-like predicate. (Contributed by Matthew House, 10-Sep-2025.)
(𝜑𝑅 = 𝑆)    &   (𝜑𝐴 = 𝐵)       (𝜑 → (𝑅 Se 𝐴𝑆 Se 𝐵))
 
10-Sep-2025freq12d 5621 Equality deduction for well-founded relations. (Contributed by Stefan O'Rear, 19-Jan-2015.) (Proof shortened by Matthew House, 10-Sep-2025.)
(𝜑𝑅 = 𝑆)    &   (𝜑𝐴 = 𝐵)       (𝜑 → (𝑅 Fr 𝐴𝑆 Fr 𝐵))
 
10-Sep-2025soeq12d 5582 Equality deduction for total orderings. (Contributed by Stefan O'Rear, 19-Jan-2015.) (Proof shortened by Matthew House, 10-Sep-2025.)
(𝜑𝑅 = 𝑆)    &   (𝜑𝐴 = 𝐵)       (𝜑 → (𝑅 Or 𝐴𝑆 Or 𝐵))
 
10-Sep-2025poeq12d 5564 Equality deduction for partial orderings. (Contributed by Matthew House, 10-Sep-2025.)
(𝜑𝑅 = 𝑆)    &   (𝜑𝐴 = 𝐵)       (𝜑 → (𝑅 Po 𝐴𝑆 Po 𝐵))
 
9-Sep-2025gpg3nbgrvtxlem 47976 Lemma for gpg3nbgrvtx0ALT 47986 and gpg3nbgrvtx1 47987. For this theorem, it is essential that 2 < 𝑁 and 𝐾 < (𝑁 / 2)! (Contributed by AV, 3-Sep-2025.) (Proof shortened by AV, 9-Sep-2025.)
((𝑁 ∈ (ℤ‘3) ∧ 𝐾 ∈ (1..^(⌈‘(𝑁 / 2))) ∧ 𝐴 ∈ (0..^𝑁)) → ((𝐴 + 𝐾) mod 𝑁) ≠ ((𝐴𝐾) mod 𝑁))
 
9-Sep-20252tceilhalfelfzo1 47971 Two times a positive integer less than (the ceiling of) half of another integer is less than the other integer. This theorem would hold even for integers less than 3, but then a corresponding 𝐾 would not exist. (Contributed by AV, 9-Sep-2025.)
((𝑁 ∈ (ℤ‘3) ∧ 𝐾 ∈ (1..^(⌈‘(𝑁 / 2)))) → (2 · 𝐾) < 𝑁)
 
9-Sep-2025trwf 44918 The class of well-founded sets is transitive. (Contributed by Eric Schmidt, 9-Sep-2025.)
Tr (𝑅1 “ On)
 
9-Sep-2025nn0le2xi 12549 A nonnegative integer is less than or equal to twice itself. (Contributed by Raph Levien, 10-Dec-2002.) (Proof shortened by AV, 9-Sep-2025.)
𝑁 ∈ ℕ0       𝑁 ≤ (2 · 𝑁)
 
9-Sep-2025nn0le2x 12548 A nonnegative integer is less than or equal to twice itself. Generalization of nn0le2xi 12549. (Contributed by Raph Levien, 10-Dec-2002.) (Revised by AV, 9-Sep-2025.)
(𝑁 ∈ ℕ0𝑁 ≤ (2 · 𝑁))
 
8-Sep-2025gpg5nbgr3star 47990 In a generalized Petersen graph G(N,K) of order 10 (𝑁 = 5), these are the Petersen graph G(5,2) and the 5-prism G(5,1), every vertex has exactly three (different) neighbors, and none of these neighbors are connected by an edge (i.e., the (closed) neighborhood of every vertex induces a subgraph which is isomorphic to a 3-star). This does not hold for every generalized Petersen graph: for example, in the 3-prism G(3,1) (see gpg31grim3prism TODO) and the Dürer graph G(6,2) there are vertices which have neighborhoods containing triangles. In general, all generalized Peterson graphs G(N,K) with 𝑁 = 3 · 𝐾 contain triangles, see gpg3kgrtriex 47998. (Contributed by AV, 8-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐸 = (Edg‘𝐺)       ((𝑁 = 5 ∧ 𝐾𝐽𝑋𝑉) → ((♯‘𝑈) = 3 ∧ ∀𝑥𝑈𝑦𝑈 {𝑥, 𝑦} ∉ 𝐸))
 
8-Sep-2025gpg5nbgrvtx13starlem3 47982 Lemma 3 for gpg5nbgr3star 47990. (Contributed by AV, 8-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (((𝑁 = 5 ∧ 𝐾𝐽) ∧ 𝑋𝑊) → {⟨0, 𝑋⟩, ⟨1, ((𝑋𝐾) mod 𝑁)⟩} ∉ 𝐸)
 
8-Sep-2025gpg5nbgrvtx13starlem2 47981 Lemma 2 for gpg5nbgr3star 47990. (Contributed by AV, 8-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (((𝑁 = 5 ∧ 𝐾𝐽) ∧ 𝑋 ∈ ℤ) → {⟨1, ((𝑋 + 𝐾) mod 𝑁)⟩, ⟨1, ((𝑋𝐾) mod 𝑁)⟩} ∉ 𝐸)
 
8-Sep-2025gpgedgvtx1lem 47970 Lemma for gpgedgvtx1 47973. (Contributed by AV, 1-Sep-2025.) (Proof shortened by AV, 8-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐼 = (0..^𝑁)       ((𝑁 ∈ (ℤ‘3) ∧ 𝑋𝐽) → 𝑋𝐼)
 
8-Sep-2025minusmodnep2tmod 47308 A nonnegative integer minus a positive integer 1 or 2 is not itself plus 2 times the positive integer modulo 5. (Contributed by AV, 8-Sep-2025.)
((𝐴 ∈ ℤ ∧ 𝐵 ∈ (1..^3)) → ((𝐴𝐵) mod 5) ≠ ((𝐴 + (2 · 𝐵)) mod 5))
 
8-Sep-2025weiunlem1 36409 Lemma for weiunpo 36412, weiunso 36413, weiunfr 36414, and weiunse 36415. (Contributed by Matthew House, 8-Sep-2025.)
𝐹 = (𝑤 𝑥𝐴 𝐵 ↦ (𝑢 ∈ {𝑥𝐴𝑤𝐵}∀𝑣 ∈ {𝑥𝐴𝑤𝐵} ¬ 𝑣𝑅𝑢))    &   𝑇 = {⟨𝑦, 𝑧⟩ ∣ ((𝑦 𝑥𝐴 𝐵𝑧 𝑥𝐴 𝐵) ∧ ((𝐹𝑦)𝑅(𝐹𝑧) ∨ ((𝐹𝑦) = (𝐹𝑧) ∧ 𝑦(𝐹𝑦) / 𝑥𝑆𝑧)))}       (𝐶𝑇𝐷 ↔ ((𝐶 𝑥𝐴 𝐵𝐷 𝑥𝐴 𝐵) ∧ ((𝐹𝐶)𝑅(𝐹𝐷) ∨ ((𝐹𝐶) = (𝐹𝐷) ∧ 𝐶(𝐹𝐶) / 𝑥𝑆𝐷))))
 
8-Sep-20255ndvds6 16420 5 does not divide 6. (Contributed by AV, 8-Sep-2025.)
¬ 5 ∥ 6
 
8-Sep-20255ndvds3 16419 5 does not divide 3. (Contributed by AV, 8-Sep-2025.)
¬ 5 ∥ 3
 
8-Sep-2025addmulmodb 16272 An integer plus a product is itself modulo a positive integer iff the product is divisible by the positive integer. (Contributed by AV, 8-Sep-2025.)
((𝑁 ∈ ℕ ∧ (𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ∧ 𝐶 ∈ ℤ)) → (𝑁 ∥ (𝐵 · 𝐶) ↔ ((𝐴 + (𝐵 · 𝐶)) mod 𝑁) = (𝐴 mod 𝑁)))
 
7-Sep-2025gpg5nbgrvtx13starlem1 47980 Lemma 1 for gpg5nbgr3star 47990. (Contributed by AV, 7-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (((𝑁 = 5 ∧ 𝐾𝐽) ∧ 𝑋𝑊) → {⟨1, ((𝑋 + 𝐾) mod 𝑁)⟩, ⟨0, 𝑋⟩} ∉ 𝐸)
 
7-Sep-2025ceilhalfelfzo1 47969 A positive integer less than (the ceiling of) half of another integer is in the half-open range of positive integers up to the other integer. (Contributed by AV, 7-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))       (𝑁 ∈ ℕ → (𝐾𝐽𝐾 ∈ (1..^𝑁)))
 
7-Sep-2025minusmod5ne 47304 A nonnegative integer is not itself minus a positive integer less than 5 modulo 5. (Contributed by AV, 7-Sep-2025.)
((𝐴 ∈ (0..^5) ∧ 𝐾 ∈ (1..^5)) → ((𝐴𝐾) mod 5) ≠ 𝐴)
 
7-Sep-2025submodaddmod 47296 Subtraction and addition modulo a positive integer. (Contributed by AV, 7-Sep-2025.)
((𝑁 ∈ ℕ ∧ (𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ∧ 𝐶 ∈ ℤ)) → (((𝐴 + 𝐵) mod 𝑁) = ((𝐴𝐶) mod 𝑁) ↔ ((𝐴 + (𝐵 + 𝐶)) mod 𝑁) = (𝐴 mod 𝑁)))
 
7-Sep-2025ceil5half3 47295 The ceiling of half of 5 is 3. (Contributed by AV, 7-Sep-2025.)
(⌈‘(5 / 2)) = 3
 
7-Sep-2025ceildivmod 47294 Expressing the ceiling of a division by the modulo operator. (Contributed by AV, 7-Sep-2025.)
((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (⌈‘(𝐴 / 𝐵)) = ((𝐴 + ((𝐵𝐴) mod 𝐵)) / 𝐵))
 
7-Sep-2025wl-isseteq 37452 A class equal to a set variable implies it is a set. Note that 𝐴 may be dependent on 𝑥. The consequent, resembling ax6ev 1968, is the accepted expression for the idea of a class being a set. Sometimes a simpler expression like the antecedent here, or in elisset 2815, is already sufficient to mark a class variable as a set. (Contributed by Wolf Lammen, 7-Sep-2025.)
(𝑥 = 𝐴 → ∃𝑦 𝑦 = 𝐴)
 
7-Sep-2025muladdmod 13920 A real number is the sum of the number and a multiple of a positive real number modulo the positive real number. (Contributed by AV, 7-Sep-2025.)
((𝐴 ∈ ℝ ∧ 𝑀 ∈ ℝ+𝑁 ∈ ℤ) → (((𝑁 · 𝑀) + 𝐴) mod 𝑀) = (𝐴 mod 𝑀))
 
7-Sep-20255eluz3 12894 5 is an integer greater than or equal to 3. (Contributed by AV, 7-Sep-2025.)
5 ∈ (ℤ‘3)
 
6-Sep-2025gpg5nbgrvtx03starlem2 47978 Lemma 2 for gpg5nbgrvtx03star 47989. (Contributed by AV, 6-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       ((𝑁 ∈ (ℤ‘4) ∧ 𝐾𝐽𝑋 ∈ ℤ) → {⟨0, ((𝑋 + 1) mod 𝑁)⟩, ⟨0, ((𝑋 − 1) mod 𝑁)⟩} ∉ 𝐸)
 
6-Sep-2025gpgusgralem 47964 Lemma for gpgusgra 47965. (Contributed by AV, 27-Aug-2025.) (Proof shortened by AV, 6-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐼 = (0..^𝑁)       ((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) → {𝑒 ∈ 𝒫 ({0, 1} × 𝐼) ∣ ∃𝑥𝐼 (𝑒 = {⟨0, 𝑥⟩, ⟨0, ((𝑥 + 1) mod 𝑁)⟩} ∨ 𝑒 = {⟨0, 𝑥⟩, ⟨1, 𝑥⟩} ∨ 𝑒 = {⟨1, 𝑥⟩, ⟨1, ((𝑥 + 𝐾) mod 𝑁)⟩})} ⊆ {𝑝 ∈ 𝒫 ({0, 1} × 𝐼) ∣ (♯‘𝑝) = 2})
 
6-Sep-2025m1modnep2mod 47307 A nonnegative integer minus 1 is not itself plus 2 modulo an integer greater than 3 and the nonnegative integer. (Contributed by AV, 6-Sep-2025.)
((𝑁 ∈ (ℤ‘4) ∧ 𝐴 ∈ ℤ) → ((𝐴 − 1) mod 𝑁) ≠ ((𝐴 + 2) mod 𝑁))
 
6-Sep-2025submodneaddmod 47306 An integer minus 𝐵 is not itself plus 𝐶 modulo an integer greater than the sum of 𝐵 and 𝐶. (Contributed by AV, 6-Sep-2025.)
((𝑁 ∈ ℕ ∧ (𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ∧ 𝐶 ∈ ℤ) ∧ (1 ≤ (𝐵 + 𝐶) ∧ (𝐵 + 𝐶) < 𝑁)) → ((𝐴 + 𝐵) mod 𝑁) ≠ ((𝐴𝐶) mod 𝑁))
 
6-Sep-2025m1modne 47303 A nonnegative integer is not itself minus 1 modulo an integer greater than 1 and the nonnegative integer. (Contributed by AV, 6-Sep-2025.)
((𝑁 ∈ (ℤ‘2) ∧ 𝐴 ∈ (0..^𝑁)) → ((𝐴 − 1) mod 𝑁) ≠ 𝐴)
 
6-Sep-2025p1modne 47302 A nonnegative integer is not itself plus 1 modulo an integer greater than 1 and the nonnegative integer. (Contributed by AV, 6-Sep-2025.)
((𝑁 ∈ (ℤ‘2) ∧ 𝐴 ∈ (0..^𝑁)) → ((𝐴 + 1) mod 𝑁) ≠ 𝐴)
 
6-Sep-2025zp1modne 47301 An integer is not itself plus 1 modulo an integer greater than 1. (Contributed by AV, 6-Sep-2025.)
((𝑁 ∈ (ℤ‘2) ∧ 𝐴 ∈ ℤ) → ((𝐴 + 1) mod 𝑁) ≠ (𝐴 mod 𝑁))
 
6-Sep-2025plusmod5ne 47300 A nonnegative integer is not itself plus a positive integer less than 5 modulo 5. (Contributed by AV, 6-Sep-2025.)
((𝐴 ∈ (0..^5) ∧ 𝐾 ∈ (1..^5)) → ((𝐴 + 𝐾) mod 5) ≠ 𝐴)
 
6-Sep-2025addmodne 47299 The sum of a nonnegative integer and a positive integer modulo a number greater than both integers is not equal to the nonnegative integer. (Contributed by AV, 27-Aug-2025.) (Proof shortened by AV, 6-Sep-2025.)
((𝑀 ∈ ℕ ∧ (𝐴 ∈ ℕ0𝐴 < 𝑀) ∧ (𝐵 ∈ ℕ ∧ 𝐵 < 𝑀)) → ((𝐴 + 𝐵) mod 𝑀) ≠ 𝐴)
 
6-Sep-2025zplusmodne 47298 A nonnegative integer is not itself plus a positive integer modulo an integer greater than 1 and the positive integer. (Contributed by AV, 6-Sep-2025.)
((𝑁 ∈ (ℤ‘2) ∧ 𝐴 ∈ ℤ ∧ 𝐾 ∈ (1..^𝑁)) → ((𝐴 + 𝐾) mod 𝑁) ≠ (𝐴 mod 𝑁))
 
6-Sep-2025difltmodne 47297 Two nonnegative integers are not equal modulo a positive modulus if their difference is greater than 0 and less then the modulus. (Contributed by AV, 6-Sep-2025.)
((𝑁 ∈ ℕ ∧ (𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ) ∧ (1 ≤ (𝐴𝐵) ∧ (𝐴𝐵) < 𝑁)) → (𝐴 mod 𝑁) ≠ (𝐵 mod 𝑁))
 
5-Sep-2025gpg5nbgrvtx03starlem3 47979 Lemma 3 for gpg5nbgrvtx03star 47989. (Contributed by AV, 5-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       ((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽𝑋𝑊) → {⟨1, 𝑋⟩, ⟨0, ((𝑋 − 1) mod 𝑁)⟩} ∉ 𝐸)
 
5-Sep-2025gpg5nbgrvtx03starlem1 47977 Lemma 1 for gpg5nbgrvtx03star 47989. (Contributed by AV, 5-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       ((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽𝑋𝑊) → {⟨0, ((𝑋 + 1) mod 𝑁)⟩, ⟨1, 𝑋⟩} ∉ 𝐸)
 
5-Sep-2025eluz4eluz3 12893 An integer greater than or equal to 4 is an integer greater than or equal to 3. (Contributed by AV, 5-Sep-2025.)
(𝑋 ∈ (ℤ‘4) → 𝑋 ∈ (ℤ‘3))
 
5-Sep-2025prneimg2 4829 Two pairs are not equal if their counterparts are not equal. (Contributed by AV, 5-Sep-2025.)
(((𝐴𝑈𝐵𝑉) ∧ (𝐶𝑋𝐷𝑌)) → ({𝐴, 𝐵} ≠ {𝐶, 𝐷} ↔ ((𝐴𝐶𝐵𝐷) ∧ (𝐴𝐷𝐵𝐶))))
 
4-Sep-2025gpgvtxdg3 47991 Every vertex in a generalized Petersen graph has degree 3. (Contributed by AV, 4-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)       ((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽𝑋𝑉) → ((VtxDeg‘𝐺)‘𝑋) = 3)
 
4-Sep-2025gpg3nbgrvtx0ALT 47986 In a generalized Petersen graph 𝐺, every outside vertex has exactly three (different) neighbors. (Contributed by AV, 30-Aug-2025.)

The proof of gpg3nbgrvtx0 47985 can be shortened using lemma gpg3nbgrvtxlem 47976, but then theorem 2ltceilhalf 47968 is required which is based on an "example" ex-ceil 30363. If these theorems were moved to main, the "example" should also be moved up to become a full-fledged theorem. (Proof shortened by AV, 4-Sep-2025.) (Proof modification is discouraged.) (New usage is discouraged.)

𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ (𝑋𝑉 ∧ (1st𝑋) = 0)) → (♯‘𝑈) = 3)
 
4-Sep-20252ltceilhalf 47968 The ceiling of half of an integer greater than 2 is greater than or equal to 2. (Contributed by AV, 4-Sep-2025.)
(𝑁 ∈ (ℤ‘3) → 2 ≤ (⌈‘(𝑁 / 2)))
 
4-Sep-2025mhpvscacl 22079 Homogeneous polynomials are closed under scalar multiplication. (Contributed by SN, 25-Sep-2023.) Remove closure hypotheses. (Revised by SN, 4-Sep-2025.)
𝐻 = (𝐼 mHomP 𝑅)    &   𝑃 = (𝐼 mPoly 𝑅)    &    · = ( ·𝑠𝑃)    &   𝐾 = (Base‘𝑅)    &   (𝜑𝑅 ∈ Ring)    &   (𝜑𝑋𝐾)    &   (𝜑𝐹 ∈ (𝐻𝑁))       (𝜑 → (𝑋 · 𝐹) ∈ (𝐻𝑁))
 
4-Sep-2025mhpinvcl 22077 Homogeneous polynomials are closed under taking the opposite. (Contributed by SN, 12-Sep-2023.) Remove closure hypotheses. (Revised by SN, 4-Sep-2025.)
𝐻 = (𝐼 mHomP 𝑅)    &   𝑃 = (𝐼 mPoly 𝑅)    &   𝑀 = (invg𝑃)    &   (𝜑𝑅 ∈ Grp)    &   (𝜑𝑋 ∈ (𝐻𝑁))       (𝜑 → (𝑀𝑋) ∈ (𝐻𝑁))
 
4-Sep-2025mhpaddcl 22076 Homogeneous polynomials are closed under addition. (Contributed by SN, 26-Aug-2023.) Remove closure hypotheses. (Revised by SN, 4-Sep-2025.)
𝐻 = (𝐼 mHomP 𝑅)    &   𝑃 = (𝐼 mPoly 𝑅)    &    + = (+g𝑃)    &   (𝜑𝑅 ∈ Grp)    &   (𝜑𝑋 ∈ (𝐻𝑁))    &   (𝜑𝑌 ∈ (𝐻𝑁))       (𝜑 → (𝑋 + 𝑌) ∈ (𝐻𝑁))
 
4-Sep-2025mhppwdeg 22075 Degree of a homogeneous polynomial raised to a power. General version of deg1pw 26065. (Contributed by SN, 26-Jul-2024.) Remove closure hypotheses. (Revised by SN, 4-Sep-2025.)
𝐻 = (𝐼 mHomP 𝑅)    &   𝑃 = (𝐼 mPoly 𝑅)    &   𝑇 = (mulGrp‘𝑃)    &    = (.g𝑇)    &   (𝜑𝑅 ∈ Ring)    &   (𝜑𝑁 ∈ ℕ0)    &   (𝜑𝑋 ∈ (𝐻𝑀))       (𝜑 → (𝑁 𝑋) ∈ (𝐻‘(𝑀 · 𝑁)))
 
4-Sep-2025mhpmulcl 22074 A product of homogeneous polynomials is a homogeneous polynomial whose degree is the sum of the degrees of the factors. Compare mdegmulle2 26023 (which shows less-than-or-equal instead of equal). (Contributed by SN, 22-Jul-2024.) Remove closure hypotheses. (Revised by SN, 4-Sep-2025.)
𝐻 = (𝐼 mHomP 𝑅)    &   𝑌 = (𝐼 mPoly 𝑅)    &    · = (.r𝑌)    &   (𝜑𝑅 ∈ Ring)    &   (𝜑𝑃 ∈ (𝐻𝑀))    &   (𝜑𝑄 ∈ (𝐻𝑁))       (𝜑 → (𝑃 · 𝑄) ∈ (𝐻‘(𝑀 + 𝑁)))
 
4-Sep-2025fzo1lb 13720 1 is the left endpoint of a half-open integer range based at 1 iff the right endpoint is an integer greater than 1. (Contributed by AV, 4-Sep-2025.)
(1 ∈ (1..^𝑁) ↔ 𝑁 ∈ (ℤ‘2))
 
3-Sep-2025gpgcubic 47988 Every generalized Petersen graph is a cubic graph, i.e., it is a 3-regular graph, i.e., every vertex has degree 3 (see gpgvtxdg3 47991), i.e., every vertex has exactly three (different) neighbors. (Contributed by AV, 3-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)       ((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽𝑋𝑉) → (♯‘𝑈) = 3)
 
3-Sep-2025gpg3nbgrvtx1 47987 In a generalized Petersen graph 𝐺, every inside vertex has exactly three (different) neighbors. (Contributed by AV, 3-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ (𝑋𝑉 ∧ (1st𝑋) = 1)) → (♯‘𝑈) = 3)
 
3-Sep-2025sbco4 2101 Two ways of exchanging two variables. Both sides of the biconditional exchange 𝑥 and 𝑦, either via two temporary variables 𝑢 and 𝑣, or a single temporary 𝑤. (Contributed by Jim Kingdon, 25-Sep-2018.) Avoid ax-11 2156. (Revised by SN, 3-Sep-2025.)
([𝑦 / 𝑢][𝑥 / 𝑣][𝑢 / 𝑥][𝑣 / 𝑦]𝜑 ↔ [𝑥 / 𝑤][𝑦 / 𝑥][𝑤 / 𝑦]𝜑)
 
3-Sep-2025sbco4lem 2100 Lemma for sbco4 2101. It replaces the temporary variable 𝑣 with another temporary variable 𝑤. (Contributed by Jim Kingdon, 26-Sep-2018.) (Proof shortened by Wolf Lammen, 12-Oct-2024.) Avoid ax-11 2156. (Revised by SN, 3-Sep-2025.)
([𝑥 / 𝑣][𝑦 / 𝑥][𝑣 / 𝑦]𝜑 ↔ [𝑥 / 𝑤][𝑦 / 𝑥][𝑤 / 𝑦]𝜑)
 
2-Sep-2025gpgnbgrvtx1 47984 The (open) neighborhood of an inside vertex in a generalized Petersen graph 𝐺. (Contributed by AV, 2-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ (𝑋𝑉 ∧ (1st𝑋) = 1)) → 𝑈 = {⟨1, (((2nd𝑋) + 𝐾) mod 𝑁)⟩, ⟨0, (2nd𝑋)⟩, ⟨1, (((2nd𝑋) − 𝐾) mod 𝑁)⟩})
 
2-Sep-2025gpgvtxedg1 47975 The edges starting at an inside vertex 𝑋 in a generalized Petersen graph 𝐺. (Contributed by AV, 2-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ (1st𝑋) = 1 ∧ {𝑋, 𝑌} ∈ 𝐸) → (𝑌 = ⟨1, (((2nd𝑋) + 𝐾) mod 𝑁)⟩ ∨ 𝑌 = ⟨0, (2nd𝑋)⟩ ∨ 𝑌 = ⟨1, (((2nd𝑋) − 𝐾) mod 𝑁)⟩))
 
2-Sep-2025gpgedgvtx1 47973 The edges starting at an inside vertex in a generalized Petersen graph 𝐺. (Contributed by AV, 2-Sep-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ (𝑋𝑉 ∧ (1st𝑋) = 1)) → ({𝑋, ⟨1, (((2nd𝑋) + 𝐾) mod 𝑁)⟩} ∈ 𝐸 ∧ {𝑋, ⟨0, (2nd𝑋)⟩} ∈ 𝐸 ∧ {𝑋, ⟨1, (((2nd𝑋) − 𝐾) mod 𝑁)⟩} ∈ 𝐸))
 
2-Sep-2025nfa1w 42630 Replace ax-10 2140 in nfa1 2150 with a substitution hypothesis. (Contributed by SN, 2-Sep-2025.)
(𝑥 = 𝑦 → (𝜑𝜓))       𝑥𝑥𝜑
 
2-Sep-2025tan3rdpi 42331 The tangent of π / 3 is √3. (Contributed by SN, 2-Sep-2025.)
(tan‘(π / 3)) = (√‘3)
 
2-Sep-2025tanhalfpim 42330 The tangent of π / 2 minus a number is the cotangent, here represented by cos𝐴 / sin𝐴. (Contributed by SN, 2-Sep-2025.)
(𝜑𝐴 ∈ ℂ)    &   (𝜑 → (sin‘𝐴) ≠ 0)       (𝜑 → (tan‘((π / 2) − 𝐴)) = ((cos‘𝐴) / (sin‘𝐴)))
 
2-Sep-2025tan4thpi 26461 The tangent of π / 4. (Contributed by Mario Carneiro, 5-Apr-2015.) (Proof shortened by SN, 2-Sep-2025.)
(tan‘(π / 4)) = 1
 
1-Sep-2025submodlt 47305 The difference of an element of a half-open range of nonnegative integers and the upper bound of this range modulo an integer greater than the upper bound. (Contributed by AV, 1-Sep-2025.)
((𝑁 ∈ ℕ ∧ 𝐴 ∈ (0..^𝐵) ∧ 𝐵 < 𝑁) → ((𝐴𝐵) mod 𝑁) = ((𝑁 + 𝐴) − 𝐵))
 
1-Sep-2025iineq12dv 45064 Equality deduction for indexed intersection. (Contributed by Glauco Siliprandi, 26-Jun-2021.) Remove DV conditions. (Revised by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   ((𝜑𝑥𝐵) → 𝐶 = 𝐷)       (𝜑 𝑥𝐴 𝐶 = 𝑥𝐵 𝐷)
 
1-Sep-2025iuneq1i 45043 Equality theorem for indexed union. (Contributed by Glauco Siliprandi, 3-Mar-2021.) Remove DV conditions. (Revised by GG, 1-Sep-2025.)
𝐴 = 𝐵        𝑥𝐴 𝐶 = 𝑥𝐵 𝐶
 
1-Sep-2025cbvditgvw2 36196 Change bound variable and domain in a directed integral, using implicit substitution. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   𝐶 = 𝐷    &   (𝑥 = 𝑦𝐸 = 𝐹)       ⨜[𝐴𝐶]𝐸 d𝑥 = ⨜[𝐵𝐷]𝐹 d𝑦
 
1-Sep-2025cbvprodvw2 36194 Change bound variable and the set of integers in a product, using implicit substitution. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   (𝑗 = 𝑘𝐶 = 𝐷)       𝑗𝐴 𝐶 = ∏𝑘𝐵 𝐷
 
1-Sep-2025cbvsumvw2 36193 Change bound variable and the set of integers in a sum, using implicit substitution. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   (𝑗 = 𝑘𝐶 = 𝐷)       Σ𝑗𝐴 𝐶 = Σ𝑘𝐵 𝐷
 
1-Sep-2025cbvcsbvw2 36178 Change bound variable of a proper substitution into a class using implicit substitution. General version of cbvcsbv 3884. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   (𝑥 = 𝑦𝐶 = 𝐷)       𝐴 / 𝑥𝐶 = 𝐵 / 𝑦𝐷
 
1-Sep-2025cbvsbcvw2 36177 Change bound variable of a class substitution using implicit substitution. General version of cbvsbcvw 3797. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   (𝑥 = 𝑦 → (𝜑𝜓))       ([𝐴 / 𝑥]𝜑[𝐵 / 𝑦]𝜓)
 
1-Sep-2025ditgeq3sdv 36170 Equality theorem for the directed integral. Deduction form. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐶 = 𝐷)       (𝜑 → ⨜[𝐴𝐵]𝐶 d𝑥 = ⨜[𝐴𝐵]𝐷 d𝑥)
 
1-Sep-2025ditgeq12d 36169 Equality theorem for the directed integral. Deduction form. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   (𝜑𝐶 = 𝐷)       (𝜑 → ⨜[𝐴𝐶]𝐸 d𝑥 = ⨜[𝐵𝐷]𝐸 d𝑥)
 
1-Sep-2025ditgeq123dv 36168 Equality theorem for the directed integral. Deduction form. General version of ditgeq3sdv 36170. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   (𝜑𝐶 = 𝐷)    &   (𝜑𝐸 = 𝐹)       (𝜑 → ⨜[𝐴𝐶]𝐸 d𝑥 = ⨜[𝐵𝐷]𝐹 d𝑥)
 
1-Sep-2025itgeq2sdv 36167 Equality theorem for an integral. Deduction form. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐵 = 𝐶)       (𝜑 → ∫𝐴𝐵 d𝑥 = ∫𝐴𝐶 d𝑥)
 
1-Sep-2025itgeq12sdv 36166 Equality theorem for an integral. Deduction form. General version of itgeq1d 45922 and itgeq2sdv 36167. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   (𝜑𝐶 = 𝐷)       (𝜑 → ∫𝐴𝐶 d𝑥 = ∫𝐵𝐷 d𝑥)
 
1-Sep-2025prodeq12sdv 36165 Equality deduction for product. General version of prodeq2sdv 15928. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   (𝜑𝐶 = 𝐷)       (𝜑 → ∏𝑘𝐴 𝐶 = ∏𝑘𝐵 𝐷)
 
1-Sep-2025sumeq12sdv 36164 Equality deduction for sum. General version of sumeq2sdv 15708. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   (𝜑𝐶 = 𝐷)       (𝜑 → Σ𝑘𝐴 𝐶 = Σ𝑘𝐵 𝐷)
 
1-Sep-2025ixpeq12dv 36163 Equality theorem for infinite Cartesian product. Deduction version. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   (𝜑𝐶 = 𝐷)       (𝜑X𝑥𝐴 𝐶 = X𝑥𝐵 𝐷)
 
1-Sep-2025disjeq12dv 36162 Equality theorem for disjoint collection. Deduction version. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   (𝜑𝐶 = 𝐷)       (𝜑 → (Disj 𝑥𝐴 𝐶Disj 𝑥𝐵 𝐷))
 
1-Sep-2025sbequbidv 36161 Deduction substituting both sides of a biconditional. (Contributed by GG, 1-Sep-2025.)
(𝜑𝑢 = 𝑣)    &   (𝜑 → (𝜓𝜒))       (𝜑 → ([𝑢 / 𝑥]𝜓 ↔ [𝑣 / 𝑥]𝜒))
 
1-Sep-2025rmoeqbidv 36160 Formula-building rule for restricted at-most-one quantifier. Deduction form. General version of rmobidv 3374. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   (𝜑 → (𝜓𝜒))       (𝜑 → (∃*𝑥𝐴 𝜓 ↔ ∃*𝑥𝐵 𝜒))
 
1-Sep-2025rmoeqdv 36159 Formula-building rule for restricted at-most-one quantifier. Deduction form. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)       (𝜑 → (∃*𝑥𝐴 𝜓 ↔ ∃*𝑥𝐵 𝜓))
 
1-Sep-2025ditgeq3i 36158 Equality inference for the directed integral. (Contributed by GG, 1-Sep-2025.)
𝐶 = 𝐷       ⨜[𝐴𝐵]𝐶 d𝑥 = ⨜[𝐴𝐵]𝐷 d𝑥
 
1-Sep-2025ditgeq12i 36157 Equality inference for the directed integral. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   𝐶 = 𝐷       ⨜[𝐴𝐶]𝐸 d𝑥 = ⨜[𝐵𝐷]𝐸 d𝑥
 
1-Sep-2025ditgeq123i 36156 Equality inference for the directed integral. General version of ditgeq12i 36157 and ditgeq3i 36158. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   𝐶 = 𝐷    &   𝐸 = 𝐹       ⨜[𝐴𝐶]𝐸 d𝑥 = ⨜[𝐵𝐷]𝐹 d𝑥
 
1-Sep-2025itgeq2i 36155 Equality inference for an integral. (Contributed by GG, 1-Sep-2025.)
𝐵 = 𝐶       𝐴𝐵 d𝑥 = ∫𝐴𝐶 d𝑥
 
1-Sep-2025itgeq1i 36154 Equality inference for an integral. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵       𝐴𝐶 d𝑥 = ∫𝐵𝐶 d𝑥
 
1-Sep-2025itgeq12i 36153 Equality inference for an integral. General version of itgeq1i 36154 and itgeq2i 36155. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   𝐶 = 𝐷       𝐴𝐶 d𝑥 = ∫𝐵𝐷 d𝑥
 
1-Sep-2025prodeq12si 36152 Equality inference for product. General version of prodeq2si 36151. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   𝐶 = 𝐷       𝑥𝐴 𝐶 = ∏𝑥𝐵 𝐷
 
1-Sep-2025prodeq2si 36151 Equality inference for product. (Contributed by GG, 1-Sep-2025.)
𝐵 = 𝐶       𝑘𝐴 𝐵 = ∏𝑘𝐴 𝐶
 
1-Sep-2025sumeq12si 36150 Equality inference for sum. General version of sumeq2si 36149. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   𝐶 = 𝐷       Σ𝑥𝐴 𝐶 = Σ𝑥𝐵 𝐷
 
1-Sep-2025sumeq2si 36149 Equality inference for sum. (Contributed by GG, 1-Sep-2025.)
𝐵 = 𝐶       Σ𝑘𝐴 𝐵 = Σ𝑘𝐴 𝐶
 
1-Sep-2025ixpeq12i 36148 Equality inference for infinite Cartesian product. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   𝐶 = 𝐷       X𝑥𝐴 𝐶 = X𝑥𝐵 𝐷
 
1-Sep-2025ixpeq1i 36147 Equality inference for infinite Cartesian product. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵       X𝑥𝐴 𝐶 = X𝑥𝐵 𝐶
 
1-Sep-2025riotaeqi 36146 Equal domains yield equal restricted iotas. Inference version. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵       (𝑥𝐴 𝜑) = (𝑥𝐵 𝜑)
 
1-Sep-2025riotaeqbii 36145 Equivalent wff's and equal domains yield equal restricted iotas. Inference version. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   (𝜑𝜓)       (𝑥𝐴 𝜑) = (𝑥𝐵 𝜓)
 
1-Sep-2025iineq12i 36144 Equality theorem for indexed intersection. Inference version. General version of iineq1i 36143. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   𝐶 = 𝐷        𝑥𝐴 𝐶 = 𝑥𝐵 𝐷
 
1-Sep-2025iineq1i 36143 Equality theorem for indexed intersection. Inference version. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵        𝑥𝐴 𝐶 = 𝑥𝐵 𝐶
 
1-Sep-2025iuneq12i 36142 Equality theorem for indexed union. Inference version. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   𝐶 = 𝐷        𝑥𝐴 𝐶 = 𝑥𝐵 𝐷
 
1-Sep-2025rabeqbii 36141 Equality theorem for restricted class abstractions. Inference version. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   (𝜑𝜓)       {𝑥𝐴𝜑} = {𝑥𝐵𝜓}
 
1-Sep-2025disjeq12i 36140 Equality theorem for disjoint collection. Inference version. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   𝐶 = 𝐷       (Disj 𝑥𝐴 𝐶Disj 𝑥𝐵 𝐷)
 
1-Sep-2025disjeq1i 36139 Equality theorem for disjoint collection. Inference version. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵       (Disj 𝑥𝐴 𝐶Disj 𝑥𝐵 𝐶)
 
1-Sep-2025sbceqbii 36138 Formula-building inference for class substitution. General version of sbcbii 3820. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   (𝜑𝜓)       ([𝐴 / 𝑥]𝜑[𝐵 / 𝑥]𝜓)
 
1-Sep-2025reueqbii 36137 Equality inference for restricted existential uniqueness quantifier. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   (𝜓𝜒)       (∃!𝑥𝐴 𝜓 ↔ ∃!𝑥𝐵 𝜒)
 
1-Sep-2025reueqi 36136 Equality inference for restricted existential uniqueness quantifier. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵       (∃!𝑥𝐴 𝜓 ↔ ∃!𝑥𝐵 𝜓)
 
1-Sep-2025rmoeqbii 36135 Equality inference for restricted at-most-one quantifier. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵    &   (𝜓𝜒)       (∃*𝑥𝐴 𝜓 ↔ ∃*𝑥𝐵 𝜒)
 
1-Sep-2025rmoeqi 36134 Equality inference for restricted at-most-one quantifier. (Contributed by GG, 1-Sep-2025.)
𝐴 = 𝐵       (∃*𝑥𝐴 𝜓 ↔ ∃*𝑥𝐵 𝜓)
 
1-Sep-2025itgeq1f 25711 Equality theorem for an integral. (Contributed by Mario Carneiro, 28-Jun-2014.) Avoid axioms. (Revised by GG, 1-Sep-2025.)
𝑥𝐴    &   𝑥𝐵       (𝐴 = 𝐵 → ∫𝐴𝐶 d𝑥 = ∫𝐵𝐶 d𝑥)
 
1-Sep-2025prodeq2sdv 15928 Equality deduction for product. (Contributed by Scott Fenton, 4-Dec-2017.) Avoid axioms. (Revised by GG, 1-Sep-2025.)
(𝜑𝐵 = 𝐶)       (𝜑 → ∏𝑘𝐴 𝐵 = ∏𝑘𝐴 𝐶)
 
1-Sep-2025prodeq1i 15921 Equality inference for product. (Contributed by Scott Fenton, 4-Dec-2017.) Remove DV conditions. (Revised by GG, 1-Sep-2025.)
𝐴 = 𝐵       𝑘𝐴 𝐶 = ∏𝑘𝐵 𝐶
 
1-Sep-2025ge2halflem1 13117 Half of an integer greater than 1 is less than or equal to the integer minus 1. (Contributed by AV, 1-Sep-2025.)
(𝑁 ∈ (ℤ‘2) → (𝑁 / 2) ≤ (𝑁 − 1))
 
1-Sep-2025iuneq12d 4995 Equality deduction for indexed union, deduction version. (Contributed by Drahflow, 22-Oct-2015.) Remove DV conditions (Revised by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   (𝜑𝐶 = 𝐷)       (𝜑 𝑥𝐴 𝐶 = 𝑥𝐵 𝐷)
 
1-Sep-2025rabeqbidva 3430 Equality of restricted class abstractions. (Contributed by Mario Carneiro, 26-Jan-2017.) Remove DV conditions. (Revised by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   ((𝜑𝑥𝐴) → (𝜓𝜒))       (𝜑 → {𝑥𝐴𝜓} = {𝑥𝐵𝜒})
 
1-Sep-2025reueqbidv 3400 Formula-building rule for restricted existential uniqueness quantifier. Deduction form. General version of reubidv 3375. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)    &   (𝜑 → (𝜓𝜒))       (𝜑 → (∃!𝑥𝐴 𝜓 ↔ ∃!𝑥𝐵 𝜒))
 
1-Sep-2025reueqdv 3399 Formula-building rule for restricted existential uniqueness quantifier. Deduction form. (Contributed by GG, 1-Sep-2025.)
(𝜑𝐴 = 𝐵)       (𝜑 → (∃!𝑥𝐴 𝜓 ↔ ∃!𝑥𝐵 𝜓))
 
31-Aug-2025gpg5nbgrvtx03star 47989 In a generalized Petersen graph G(N,K) of order greater than 8 (3 < 𝑁), every outside vertex has exactly three (different) neighbors, and none of these neighbors are connected by an edge (i.e., the (closed) neighborhood of every outside vertex induces a subgraph which is isomorphic to a 3-star). (Contributed by AV, 31-Aug-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)    &   𝐸 = (Edg‘𝐺)       (((𝑁 ∈ (ℤ‘4) ∧ 𝐾𝐽) ∧ (𝑋𝑉 ∧ (1st𝑋) = 0)) → ((♯‘𝑈) = 3 ∧ ∀𝑥𝑈𝑦𝑈 {𝑥, 𝑦} ∉ 𝐸))
 
31-Aug-2025asin1half 42332 The arcsine of 1 / 2 is π / 6. (Contributed by SN, 31-Aug-2025.)
(arcsin‘(1 / 2)) = (π / 6)
 
30-Aug-2025gpg3nbgrvtx0 47985 In a generalized Petersen graph 𝐺, every outside vertex has exactly three (different) neighbors. (Contributed by AV, 30-Aug-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ (𝑋𝑉 ∧ (1st𝑋) = 0)) → (♯‘𝑈) = 3)
 
30-Aug-2025gpgvtxedg0 47974 The edges starting at an outside vertex 𝑋 in a generalized Petersen graph 𝐺. (Contributed by AV, 30-Aug-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ (1st𝑋) = 0 ∧ {𝑋, 𝑌} ∈ 𝐸) → (𝑌 = ⟨0, (((2nd𝑋) + 1) mod 𝑁)⟩ ∨ 𝑌 = ⟨1, (2nd𝑋)⟩ ∨ 𝑌 = ⟨0, (((2nd𝑋) − 1) mod 𝑁)⟩))
 
30-Aug-2025gpgvtx0 47961 The outside vertices in a generalized Petersen graph 𝐺. (Contributed by AV, 30-Aug-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ 𝑋𝑉) → (⟨0, (((2nd𝑋) + 1) mod 𝑁)⟩ ∈ 𝑉 ∧ ⟨0, (2nd𝑋)⟩ ∈ 𝑉 ∧ ⟨0, (((2nd𝑋) − 1) mod 𝑁)⟩ ∈ 𝑉))
 
30-Aug-2025gpgvtxel2 47959 The second component of a vertex in a generalized Petersen graph 𝐺. (Contributed by AV, 30-Aug-2025.)
𝐼 = (0..^𝑁)    &   𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ 𝑋𝑉) → (2nd𝑋) ∈ 𝐼)
 
30-Aug-2025ss-ax8 36172 A proof of ax-8 2109 that does not rely on ax-8 2109. It employs df-ss 3941 to perform alpha-renaming and eliminates disjoint variable conditions using ax-9 2117. Contrary to in-ax8 36171, this proof does not rely on df-cleq 2726, therefore using fewer axioms . This method should not be applied to eliminate axiom dependencies. (Contributed by GG, 30-Aug-2025.) (Proof modification is discouraged.) (New usage is discouraged.)
(𝑥 = 𝑦 → (𝑥𝑧𝑦𝑧))
 
29-Aug-2025gpgedgvtx0 47972 The edges starting at an outside vertex in a generalized Petersen graph 𝐺. (Contributed by AV, 29-Aug-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ (𝑋𝑉 ∧ (1st𝑋) = 0)) → ({𝑋, ⟨0, (((2nd𝑋) + 1) mod 𝑁)⟩} ∈ 𝐸 ∧ {𝑋, ⟨1, (2nd𝑋)⟩} ∈ 𝐸 ∧ {𝑋, ⟨0, (((2nd𝑋) − 1) mod 𝑁)⟩} ∈ 𝐸))
 
29-Aug-2025gpgedgel 47960 An edge in a generalized Petersen graph 𝐺. (Contributed by AV, 29-Aug-2025.)
𝐼 = (0..^𝑁)    &   𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝐸 = (Edg‘𝐺)       ((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) → (𝑌𝐸 ↔ ∃𝑥𝐼 (𝑌 = {⟨0, 𝑥⟩, ⟨0, ((𝑥 + 1) mod 𝑁)⟩} ∨ 𝑌 = {⟨0, 𝑥⟩, ⟨1, 𝑥⟩} ∨ 𝑌 = {⟨1, 𝑥⟩, ⟨1, ((𝑥 + 𝐾) mod 𝑁)⟩})))
 
29-Aug-2025gpgvtxel 47958 A vertex in a generalized Petersen graph 𝐺. (Contributed by AV, 29-Aug-2025.)
𝐼 = (0..^𝑁)    &   𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)       ((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) → (𝑋𝑉 ↔ ∃𝑥 ∈ {0, 1}∃𝑦𝐼 𝑋 = ⟨𝑥, 𝑦⟩))
 
28-Aug-2025gpgnbgrvtx0 47983 The (open) neighborhood of an outside vertex in a generalized Petersen graph 𝐺. (Contributed by AV, 28-Aug-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)    &   𝑈 = (𝐺 NeighbVtx 𝑋)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ (𝑋𝑉 ∧ (1st𝑋) = 0)) → 𝑈 = {⟨0, (((2nd𝑋) + 1) mod 𝑁)⟩, ⟨1, (2nd𝑋)⟩, ⟨0, (((2nd𝑋) − 1) mod 𝑁)⟩})
 
28-Aug-2025gpgvtx1 47962 The inside vertices in a generalized Petersen graph 𝐺. (Contributed by AV, 28-Aug-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐺 = (𝑁 gPetersenGr 𝐾)    &   𝑉 = (Vtx‘𝐺)       (((𝑁 ∈ (ℤ‘3) ∧ 𝐾𝐽) ∧ 𝑋𝑉) → (⟨1, (((2nd𝑋) + 𝐾) mod 𝑁)⟩ ∈ 𝑉 ∧ ⟨1, (2nd𝑋)⟩ ∈ 𝑉 ∧ ⟨1, (((2nd𝑋) − 𝐾) mod 𝑁)⟩ ∈ 𝑉))
 
28-Aug-2025wl-df-clab 37451 Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong.

This text should be seen as an exploration, rather than viewing it as set in stone, no doubt or alternatives possible.

We now introduce the notion of class abstraction, which allows us to describe a specific class, in contrast to class variables that can stand for any class indiscriminately.

A new syntactic form is introduced for class abstractions, {𝑦𝜑}, read as "the class of sets 𝑦 such that 𝜑(𝑦)". This form is assigned the type "class" in cab 2712, so it can consistently substitute for a class variable during the syntactic construction process.

**Eliminability**

The axioms ax-wl-cleq 37449 and ax-wl-clel 37450 leave only 𝑥𝐴 unspecified. The definition of this class builder directly corresponds to that expression. When a class abstraction replaces the variable 𝐴 and 𝐵, then 𝐴 = 𝐵 and 𝐴𝐵 can be expressed in terms of these abstractions.

For general eliminability two conditions are needed:

1. Any class builder must replace 𝑥𝐴 with an expression containing no class variables. If necessary, class variables must be eliminated via a finite recursive process.

2. There must only be finitely many class builders. If a class variable could range over infinitely many builders, eliminability would fail, since unknown future builders would always need to be considered.

Condition (2) is met in set.mm by defining no class builder beyond cv 1538 and df-clab 2713. Thus we may assume that a class variable represents either a set variable, or a class abstraction:

a. If it represents a set variable, substitution eliminates it immediately.

b. If it equals a set variable 𝑥, then by cvjust 2728 it can be replaced with {𝑦𝑦𝑥}.

c. If it represents a proper class, then it equals some abstraction {𝑥𝜑}. If 𝜑 contains no class variables, elimination using 𝜑 is possible. The same holds if finite sequence of elimination steps renders 𝜑 free of class variables.

d. It represents a proper class, but 𝜑 in {𝑥𝜑} still contains non-eliminable class variables, then eliminability fails. A simple example is {𝑥𝑥𝐴}. Class variables can only appear in fundamental expressions 𝐴 = 𝐵 or 𝐴𝐵, Both can be reduced to forms involving 𝑧𝐴. Thus, in the expression 𝑧 ∈ {𝑥𝑥𝐴}, we still must eliminate 𝐴. Applying df-clab 2713 reduces it back to 𝑧𝐴, returning us to the starting point.

Case (d) shows that in full generality, a class variable cannot always be eliminated, something Zermelo-Fraenkel set theory (ZF) requires. If the universe contained only finitely many sets, a free class variable 𝐴 could be expressed as a finite disjunction of possiblities, hence eliminable. But in ZF's richer universe, in a definition of an unrestricted class variable 𝐴 = {𝑥𝜑} the variable 𝜑 will contain 𝐴 in some way, violating condition (1) above. Thus constraints are needed. In ZF, any formula containing class variables assumes that non-set class variables can be be replaced by {𝑥𝜑} where 𝜑 itself contains no class variables. There is, however, no way to state this condition in a formal way in set.mm.

Class abstractions themselves, however, can be eliminated, so df-clab is a definition.

**Definition checker**

How can case (d) be avoided? A solution is to restrict generality: require that in the definition of any concrete class abstraction {𝑥𝜑}, the formula 𝜑 is either free of class variables or built only from previously defined constructions. Such a restriction could be part of the definition checker.

In practice, the Metamath definition checker requires definitions to follow the specific pattern "{𝑥𝜑} = ...". Although df-clab 2713 does not conform to this pattern, it nevertheless permits elimination of class abstractions. Eliminability is the essential property of a valid definition, so df-clab 2713 can legitimately be regarded as one.

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

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

(𝑥 ∈ {𝑦𝜑} ↔ [𝑥 / 𝑦]𝜑)
 
27-Aug-2025gpgusgra 47965 The generalized Petersen graph GPG(N,K) is a simple graph. (Contributed by AV, 27-Aug-2025.)
((𝑁 ∈ (ℤ‘3) ∧ 𝐾 ∈ (1..^(⌈‘(𝑁 / 2)))) → (𝑁 gPetersenGr 𝐾) ∈ USGraph)
 
26-Aug-2025gpg5order 47967 The order of a generalized Petersen graph G(5,K), which is either the Petersen graph G(5,2) or the 5-prism G(5,1), is 10. (Contributed by AV, 26-Aug-2025.)
(𝐾 ∈ (1...2) → (♯‘(Vtx‘(5 gPetersenGr 𝐾))) = 10)
 
26-Aug-2025gpgedg 47957 The edges of the generalized Petersen graph GPG(N,K). (Contributed by AV, 26-Aug-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐼 = (0..^𝑁)       ((𝑁 ∈ ℕ ∧ 𝐾𝐽) → (Edg‘(𝑁 gPetersenGr 𝐾)) = {𝑒 ∈ 𝒫 ({0, 1} × 𝐼) ∣ ∃𝑥𝐼 (𝑒 = {⟨0, 𝑥⟩, ⟨0, ((𝑥 + 1) mod 𝑁)⟩} ∨ 𝑒 = {⟨0, 𝑥⟩, ⟨1, 𝑥⟩} ∨ 𝑒 = {⟨1, 𝑥⟩, ⟨1, ((𝑥 + 𝐾) mod 𝑁)⟩})})
 
26-Aug-2025gpgiedg 47956 The indexed edges of the generalized Petersen graph GPG(N,K). (Contributed by AV, 26-Aug-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐼 = (0..^𝑁)       ((𝑁 ∈ ℕ ∧ 𝐾𝐽) → (iEdg‘(𝑁 gPetersenGr 𝐾)) = ( I ↾ {𝑒 ∈ 𝒫 ({0, 1} × 𝐼) ∣ ∃𝑥𝐼 (𝑒 = {⟨0, 𝑥⟩, ⟨0, ((𝑥 + 1) mod 𝑁)⟩} ∨ 𝑒 = {⟨0, 𝑥⟩, ⟨1, 𝑥⟩} ∨ 𝑒 = {⟨1, 𝑥⟩, ⟨1, ((𝑥 + 𝐾) mod 𝑁)⟩})}))
 
26-Aug-2025gpgvtx 47955 The vertices of the generalized Petersen graph GPG(N,K). (Contributed by AV, 26-Aug-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐼 = (0..^𝑁)       ((𝑁 ∈ ℕ ∧ 𝐾𝐽) → (Vtx‘(𝑁 gPetersenGr 𝐾)) = ({0, 1} × 𝐼))
 
26-Aug-2025gpgov 47954 The generalized Petersen graph GPG(N,K). (Contributed by AV, 26-Aug-2025.)
𝐽 = (1..^(⌈‘(𝑁 / 2)))    &   𝐼 = (0..^𝑁)       ((𝑁 ∈ ℕ ∧ 𝐾𝐽) → (𝑁 gPetersenGr 𝐾) = {⟨(Base‘ndx), ({0, 1} × 𝐼)⟩, ⟨(.ef‘ndx), ( I ↾ {𝑒 ∈ 𝒫 ({0, 1} × 𝐼) ∣ ∃𝑥𝐼 (𝑒 = {⟨0, 𝑥⟩, ⟨0, ((𝑥 + 1) mod 𝑁)⟩} ∨ 𝑒 = {⟨0, 𝑥⟩, ⟨1, 𝑥⟩} ∨ 𝑒 = {⟨1, 𝑥⟩, ⟨1, ((𝑥 + 𝐾) mod 𝑁)⟩})})⟩})
 
26-Aug-2025df-gpg 47953 Definition of generalized Petersen graphs according to Wikipedia "Generalized Petersen graph", 26-Aug-2025, https://en.wikipedia.org/wiki/Generalized_Petersen_graph: "In Watkins' notation, 𝐺(𝑛, 𝑘) is a graph with vertex set { u0, u1, ... , un-1, v0, v1, ... , vn-1 } and edge set { ui ui+1 , ui vi , vi vi+k | 0 ≤ 𝑖 ≤ (𝑛 − 1) } where subscripts are to be read modulo n and where 𝑘 < (𝑛 / 2). Some authors use the notation GPG(n,k)."

Instead of 𝑛 ∈ ℕ, we could restrict the first argument to 𝑛 ∈ (ℤ‘3) (i.e., 3 ≤ 𝑛), because for 𝑛 ≤ 2, the definition is not meaningful (since then (⌈‘(𝑛 / 2)) ≤ 1 and therefore (1..^(⌈‘(𝑛 / 2))) = ∅, so that there would be no fitting second argument). (Contributed by AV, 26-Aug-2025.)

gPetersenGr = (𝑛 ∈ ℕ, 𝑘 ∈ (1..^(⌈‘(𝑛 / 2))) ↦ {⟨(Base‘ndx), ({0, 1} × (0..^𝑛))⟩, ⟨(.ef‘ndx), ( I ↾ {𝑒 ∈ 𝒫 ({0, 1} × (0..^𝑛)) ∣ ∃𝑥 ∈ (0..^𝑛)(𝑒 = {⟨0, 𝑥⟩, ⟨0, ((𝑥 + 1) mod 𝑛)⟩} ∨ 𝑒 = {⟨0, 𝑥⟩, ⟨1, 𝑥⟩} ∨ 𝑒 = {⟨1, 𝑥⟩, ⟨1, ((𝑥 + 𝑘) mod 𝑛)⟩})})⟩})
 
26-Aug-20259rp 42283 9 is a positive real. (Contributed by SN, 26-Aug-2025.)
9 ∈ ℝ+
 
26-Aug-20258rp 42282 8 is a positive real. (Contributed by SN, 26-Aug-2025.)
8 ∈ ℝ+
 
26-Aug-20257rp 42281 7 is a positive real. (Contributed by SN, 26-Aug-2025.)
7 ∈ ℝ+
 
26-Aug-20256rp 42280 6 is a positive real. (Contributed by SN, 26-Aug-2025.)
6 ∈ ℝ+
 
26-Aug-20254rp 42279 4 is a positive real. (Contributed by SN, 26-Aug-2025.)
4 ∈ ℝ+
 
26-Aug-2025sq8 42276 The square of 8 is 64. (Contributed by SN, 26-Aug-2025.)
(8↑2) = 64
 
26-Aug-2025sq7 42275 The square of 7 is 49. (Contributed by SN, 26-Aug-2025.)
(7↑2) = 49
 
26-Aug-2025sq6 42274 The square of 6 is 36. (Contributed by SN, 26-Aug-2025.)
(6↑2) = 36
 
26-Aug-2025sq5 42273 The square of 5 is 25. (Contributed by SN, 26-Aug-2025.)
(5↑2) = 25
 
26-Aug-2025sq4 42272 The square of 4 is 16. (Contributed by SN, 26-Aug-2025.)
(4↑2) = 16
 
26-Aug-2025lttrii 42237 'Less than' is transitive. (Contributed by SN, 26-Aug-2025.)
𝐴 ∈ ℝ    &   𝐵 ∈ ℝ    &   𝐶 ∈ ℝ    &   𝐴 < 𝐵    &   𝐵 < 𝐶       𝐴 < 𝐶
 
26-Aug-2025ax-wl-clel 37450 Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong.

This text should be read as an exploration rather than as a definite statement, open to doubt, alternatives, and reinterpretation.

The formula in df-clel 2808 (restated below) states that only those classes for which 𝑥𝑥 = 𝐴 holds can be members of classes. Thus, a member of a class is always equal to a set, which excludes proper classes from class membership.

As explained in wl-cleq-4 37446, item 3, 𝑥𝑥 = 𝐴 is a sufficient criterion for a class to be a set, provided that Leibniz's Law holds for equality. Therefore this axiom is often rephrased as: classes contain only sets as members.

**Principles of equality**

Using this axiom we can derive the class-level counterparts of ax-8 2109 (see eleq2 2822) and ax-9 2117 (see eleq1 2821). Since ax-wl-cleq 37449 already asserts that equality between classes is an equivalence relation, the operators = and alone cannot distinguish equal classes. Hence, if membership is the only property that matters for classes, Leibniz's Law will hold. Later, however, additional class builders may introduce further properties of classes. A conservativity check for such builders can ensure this does not occur.

**Eliminability**

If we replace the class variable 𝐴 with a set variable 𝑧 in this axiom, the auxiliary variable 𝑥 can be eliminated, leaving only the trivial result (𝑧𝐵𝑧𝐵). Thus, df-clel 2808 by itself does not determine when a set is a member of a class. From this perspective, df-clel 2808 is in fact an axiom in disguise and would more appropriately be called ax-clel.

Overall, our axiomization leaves the meaning of fundamental expressions 𝑥𝐴 or 𝑥𝐵 open. All other fundamental formulas of set theory (𝐴 not a set variable, 𝐴𝐵, 𝑥 = 𝐵 𝐴 = 𝐵) can be reduced solely to the basic formulas 𝑥𝐴 or 𝑥𝐵.

If an axiomatization leaves a fundamental formula like 𝑥𝐴 unspecified, we could in principle define it bi-conditionally by any formula whatsoever - for example, the trivial . This, however, is not the approach we take. Instead, an appropriate class builder such as df-clab 2713 fills this gap.

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

(𝐴𝐵 ↔ ∃𝑥(𝑥 = 𝐴𝑥𝐵))
 
26-Aug-20255rp 13008 5 is a positive real. (Contributed by SN, 26-Aug-2025.)
5 ∈ ℝ+
 
26-Aug-2025sbcov 2255 A composition law for substitution. Version of sbco 2510 with a disjoint variable condition using fewer axioms. (Contributed by NM, 14-May-1993.) (Revised by GG, 7-Aug-2023.) (Proof shortened by SN, 26-Aug-2025.)
([𝑦 / 𝑥][𝑥 / 𝑦]𝜑 ↔ [𝑦 / 𝑥]𝜑)
 
25-Aug-2025ax-wl-cleq 37449 Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong.

This text should be read as an exploration rather than as a definite statement, open to doubt, alternatives, and reinterpretation.

At the point where df-cleq 2726 is introduced, the foundations of set theory are being established through the notion of a class. A central property of classes is what elements, expressed by the membership operator , belong to them . Quantification (𝑥) applies only to objects that a variable of kind setvar can represent. These objects will henceforth be called sets. Some classes may not be sets; these are called proper classes. It remains open at this stage whether membership can involve them.

The formula given in df-cleq 2726 (restated below) asserts that two classes are equal if and only if they have exactly the same sets as elements. If proper classes are also admitted as elements, then two equal classes could still differ by such elements, potentially violating Leibniz's Law. A future axiom df-clel 2808 addresses this issue; df-cleq 2726 alone does not.

**Primitive connectives and class builders**

Specially crafted primitive operators on classes or class builders could introduce properties of classes beyond membership, not reflected in the formula here. This again risks violating Leibniz's Law. Therefore, the introduction of any future primitive operator or class builder must include a conservativity check to ensure consistency with Leibniz's Law.

**This axiom covers only some principles of equality**

The notion of equality expressed in this axiom does not automatically coincide with the general notion of equality. Some principles are, however, already captured: Equality is shown to be an equivalence relation, covering transivity (eqtr 2754), reflexivity (eqid 2734) and symmetry (eqcom 2741). It also yields the class-level version of ax-ext 2706 (the backward direction of df-cleq 2726) holds.

If we assume 𝑥 = 𝐴 holds, then substituting the free set variable 𝑦 with 𝐴 in ax6ev 1968 and ax12v2 2178 yields provable theorems (see wl-isseteq 37452, and wl-ax12v2cl 37453). However, a bound variable cannot be replaced with a class variable, since quantification over classes is not permitted. Taken together with the results from the previous paragraph, this shows that a class variable equal to a set behaves the same as a set variable, provided it is not quantified.

**Conservativity**

Moreover, this axiom is already partly derivable if all class variables are replaced by variables of type "setvar". In that case, the statement reduces to an instance of axextb 2709. This shows that the class builder cv 1538 is consistent with this axiom.

**Eliminable operator**

Finally, this axiom supports the idea that proper classes, and operators between them, should be eliminable, as required by ZF: It reduces equality to their membership properties. However, since the term 𝑥𝐴 is still undefined, elimination reduces equality to just something not yet clarified.

**Axiom vs Definition**

Up to this point, the only content involving class variables comes from the syntax definitions wceq 1539 and wcel 2107. Axioms are therefore required to progressively refine the semantics of classes until provable results coincide with our intended conception of set theory. This refinement process is explained in Step 4 of wl-cleq-2 37444.

From this perspective, df-cleq 2726 is in fact an axiom in disguise and would more appropriately be named ax-cleq.

At first glance, one might think that 𝐴 = 𝐵 is defined by the right-hand side of the biconditional. This would make 𝑥𝐴, i.e. membership of a set in a class, the more primitive concept, from which equality of classes could be derived. Such a viewpoint would be coherent if the properties of membership could be fully determined by other axioms. In my (WL's') opinion, however, the more direct and fruitful approach is not to construct class equality from membership, but to treat equality itself as axiomatic.

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

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
25-Aug-2025wl-cleq-4 37446
Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong. This text should be read as an exploration rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Introducing a New Concept: Classes

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

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

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

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

1. Introduce type codes

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

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

2. Introduce variables

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

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

3. Add primitive formulas

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

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

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

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

4. Specify the properties of primitive formulas

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

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

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

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

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
24-Aug-2025usgrexmpl12ngrlic 47951 The graphs 𝐻 and 𝐺 are not locally isomorphic (𝐻 contains a triangle, see usgrexmpl1tri 47937, whereas 𝐺 does not, see usgrexmpl2trifr 47949. (Contributed by AV, 24-Aug-2025.)
𝑉 = (0...5)    &   𝐸 = ⟨“{0, 1} {1, 2} {2, 3} {3, 4} {4, 5} {0, 3} {0, 5}”⟩    &   𝐺 = ⟨𝑉, 𝐸    &   𝐾 = ⟨“{0, 1} {0, 2} {1, 2} {0, 3} {3, 4} {3, 5} {4, 5}”⟩    &   𝐻 = ⟨𝑉, 𝐾        ¬ 𝐺𝑙𝑔𝑟 𝐻
 
24-Aug-2025grlimgrtri 47916 Local isomorphisms between simple pseudographs map triangles onto triangles. (Contributed by AV, 24-Aug-2025.)
(𝜑𝐺 ∈ USPGraph)    &   (𝜑𝐻 ∈ USPGraph)    &   (𝜑𝐹 ∈ (𝐺 GraphLocIso 𝐻))    &   (𝜑𝑇 ∈ (GrTriangles‘𝐺))       (𝜑 → ∃𝑡 𝑡 ∈ (GrTriangles‘𝐻))
 
24-Aug-2025grlimgrtrilem1 47914 Lemma 3 for grlimgrtri 47916. (Contributed by AV, 24-Aug-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑁 = (𝐺 ClNeighbVtx 𝑎)    &   𝐼 = (Edg‘𝐺)    &   𝐾 = {𝑥𝐼𝑥𝑁}       ((𝐺 ∈ UHGraph ∧ ({𝑎, 𝑏} ∈ 𝐼 ∧ {𝑎, 𝑐} ∈ 𝐼 ∧ {𝑏, 𝑐} ∈ 𝐼)) → ({𝑎, 𝑏} ∈ 𝐾 ∧ {𝑎, 𝑐} ∈ 𝐾 ∧ {𝑏, 𝑐} ∈ 𝐾))
 
24-Aug-2025grimgrtri 47869 Graph isomorphisms map triangles onto triangles. (Contributed by AV, 27-Jul-2025.) (Proof shortened by AV, 24-Aug-2025.)
(𝜑𝐺 ∈ UHGraph)    &   (𝜑𝐻 ∈ UHGraph)    &   (𝜑𝐹 ∈ (𝐺 GraphIso 𝐻))    &   (𝜑𝑇 ∈ (GrTriangles‘𝐺))       (𝜑 → (𝐹𝑇) ∈ (GrTriangles‘𝐻))
 
24-Aug-2025clnbgrssedg 47780 The vertices connected by an edge are a subset of the neighborhood of each of these vertices. (Contributed by AV, 26-May-2025.) (Proof shortened by AV, 24-Aug-2025.)
𝐸 = (Edg‘𝐺)    &   𝑁 = (𝐺 ClNeighbVtx 𝑋)       ((𝐺 ∈ UHGraph ∧ 𝐾𝐸𝑋𝐾) → 𝐾𝑁)
 
24-Aug-2025clnbgredg 47779 A vertex connected by an edge with another vertex is a neighbor of that vertex. (Contributed by AV, 24-Aug-2025.)
𝐸 = (Edg‘𝐺)    &   𝑁 = (𝐺 ClNeighbVtx 𝑋)       ((𝐺 ∈ UHGraph ∧ (𝐾𝐸𝑋𝐾𝑌𝐾)) → 𝑌𝑁)
 
24-Aug-2025sbievw 2092 Conversion of implicit substitution to explicit substitution. Version of sbie 2505 and sbiev 2313 with more disjoint variable conditions, requiring fewer axioms. (Contributed by NM, 30-Jun-1994.) (Revised by BJ, 18-Jul-2023.) (Proof shortened by SN, 24-Aug-2025.)
(𝑥 = 𝑦 → (𝜑𝜓))       ([𝑦 / 𝑥]𝜑𝜓)
 
24-Aug-2025sbbiiev 2091 An equivalence of substitutions (as in sbbii 2075) allowing the additional information that 𝑥 = 𝑡. Version of sbiev 2313 and sbievw 2092 without a disjoint variable condition on 𝜓, useful for substituting only part of 𝜑. (Contributed by SN, 24-Aug-2025.)
(𝑥 = 𝑡 → (𝜑𝜓))       ([𝑡 / 𝑥]𝜑 ↔ [𝑡 / 𝑥]𝜓)
 
23-Aug-2025grlimgrtrilem2 47915 Lemma 3 for grlimgrtri 47916. (Contributed by AV, 23-Aug-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑁 = (𝐺 ClNeighbVtx 𝑎)    &   𝐼 = (Edg‘𝐺)    &   𝐾 = {𝑥𝐼𝑥𝑁}    &   𝑀 = (𝐻 ClNeighbVtx (𝐹𝑎))    &   𝐽 = (Edg‘𝐻)    &   𝐿 = {𝑥𝐽𝑥𝑀}       (((𝑓:𝑁1-1-onto𝑀𝑔:𝐾1-1-onto𝐿) ∧ ∀𝑖𝐾 (𝑓𝑖) = (𝑔𝑖) ∧ {𝑏, 𝑐} ∈ 𝐾) → {(𝑓𝑏), (𝑓𝑐)} ∈ 𝐽)
 
23-Aug-2025grtrimap 47868 Conditions for mapping triangles onto triangles. Lemma for grimgrtri 47869 and grlimgrtri 47916. (Contributed by AV, 23-Aug-2025.)
(𝐹:𝑉1-1𝑊 → (((𝑎𝑉𝑏𝑉𝑐𝑉) ∧ (𝑇 = {𝑎, 𝑏, 𝑐} ∧ (♯‘𝑇) = 3)) → (((𝐹𝑎) ∈ 𝑊 ∧ (𝐹𝑏) ∈ 𝑊 ∧ (𝐹𝑐) ∈ 𝑊) ∧ (𝐹𝑇) = {(𝐹𝑎), (𝐹𝑏), (𝐹𝑐)} ∧ (♯‘(𝐹𝑇)) = 3)))
 
23-Aug-2025predgclnbgrel 47778 If a (not necessarily proper) unordered pair containing a vertex is an edge, the other vertex is in the closed neighborhood of the first vertex. (Contributed by AV, 23-Aug-2025.)
𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       ((𝑁𝑉𝑋𝑉 ∧ {𝑋, 𝑁} ∈ 𝐸) → 𝑁 ∈ (𝐺 ClNeighbVtx 𝑋))
 
23-Aug-2025numiunnum 36417 An indexed union of sets is numerable if its index set is numerable and there exists a collection of well-orderings on its members. (Contributed by Matthew House, 23-Aug-2025.)
((𝐴 ∈ dom card ∧ ∀𝑥𝐴 (𝐵𝑉𝑆 We 𝐵)) → 𝑥𝐴 𝐵 ∈ dom card)
 
23-Aug-2025weiunwe 36416 A well-ordering on an indexed union can be constructed from a well-ordering on its index class and a collection of well-orderings on its members. (Contributed by Matthew House, 23-Aug-2025.)
𝐹 = (𝑤 𝑥𝐴 𝐵 ↦ (𝑢 ∈ {𝑥𝐴𝑤𝐵}∀𝑣 ∈ {𝑥𝐴𝑤𝐵} ¬ 𝑣𝑅𝑢))    &   𝑇 = {⟨𝑦, 𝑧⟩ ∣ ((𝑦 𝑥𝐴 𝐵𝑧 𝑥𝐴 𝐵) ∧ ((𝐹𝑦)𝑅(𝐹𝑧) ∨ ((𝐹𝑦) = (𝐹𝑧) ∧ 𝑦(𝐹𝑦) / 𝑥𝑆𝑧)))}       ((𝑅 We 𝐴𝑅 Se 𝐴 ∧ ∀𝑥𝐴 𝑆 We 𝐵) → 𝑇 We 𝑥𝐴 𝐵)
 
23-Aug-2025weiunse 36415 The relation constructed in weiunpo 36412, weiunso 36413, weiunfr 36414, and weiunwe 36416 is set-like if all members of the indexed union are sets. (Contributed by Matthew House, 23-Aug-2025.)
𝐹 = (𝑤 𝑥𝐴 𝐵 ↦ (𝑢 ∈ {𝑥𝐴𝑤𝐵}∀𝑣 ∈ {𝑥𝐴𝑤𝐵} ¬ 𝑣𝑅𝑢))    &   𝑇 = {⟨𝑦, 𝑧⟩ ∣ ((𝑦 𝑥𝐴 𝐵𝑧 𝑥𝐴 𝐵) ∧ ((𝐹𝑦)𝑅(𝐹𝑧) ∨ ((𝐹𝑦) = (𝐹𝑧) ∧ 𝑦(𝐹𝑦) / 𝑥𝑆𝑧)))}       ((𝑅 We 𝐴𝑅 Se 𝐴 ∧ ∀𝑥𝐴 𝐵𝑉) → 𝑇 Se 𝑥𝐴 𝐵)
 
23-Aug-2025weiunfr 36414 A well-founded relation on an indexed union can be constructed from a well-ordering on its index class and a collection of well-founded relations on its members. (Contributed by Matthew House, 23-Aug-2025.)
𝐹 = (𝑤 𝑥𝐴 𝐵 ↦ (𝑢 ∈ {𝑥𝐴𝑤𝐵}∀𝑣 ∈ {𝑥𝐴𝑤𝐵} ¬ 𝑣𝑅𝑢))    &   𝑇 = {⟨𝑦, 𝑧⟩ ∣ ((𝑦 𝑥𝐴 𝐵𝑧 𝑥𝐴 𝐵) ∧ ((𝐹𝑦)𝑅(𝐹𝑧) ∨ ((𝐹𝑦) = (𝐹𝑧) ∧ 𝑦(𝐹𝑦) / 𝑥𝑆𝑧)))}       ((𝑅 We 𝐴𝑅 Se 𝐴 ∧ ∀𝑥𝐴 𝑆 Fr 𝐵) → 𝑇 Fr 𝑥𝐴 𝐵)
 
23-Aug-2025weiunso 36413 A strict ordering on an indexed union can be constructed from a well-ordering on its index class and a collection of strict orderings on its members. (Contributed by Matthew House, 23-Aug-2025.)
𝐹 = (𝑤 𝑥𝐴 𝐵 ↦ (𝑢 ∈ {𝑥𝐴𝑤𝐵}∀𝑣 ∈ {𝑥𝐴𝑤𝐵} ¬ 𝑣𝑅𝑢))    &   𝑇 = {⟨𝑦, 𝑧⟩ ∣ ((𝑦 𝑥𝐴 𝐵𝑧 𝑥𝐴 𝐵) ∧ ((𝐹𝑦)𝑅(𝐹𝑧) ∨ ((𝐹𝑦) = (𝐹𝑧) ∧ 𝑦(𝐹𝑦) / 𝑥𝑆𝑧)))}       ((𝑅 We 𝐴𝑅 Se 𝐴 ∧ ∀𝑥𝐴 𝑆 Or 𝐵) → 𝑇 Or 𝑥𝐴 𝐵)
 
23-Aug-2025weiunpo 36412 A partial ordering on an indexed union can be constructed from a well-ordering on its index class and a collection of partial orderings on its members. (Contributed by Matthew House, 23-Aug-2025.)
𝐹 = (𝑤 𝑥𝐴 𝐵 ↦ (𝑢 ∈ {𝑥𝐴𝑤𝐵}∀𝑣 ∈ {𝑥𝐴𝑤𝐵} ¬ 𝑣𝑅𝑢))    &   𝑇 = {⟨𝑦, 𝑧⟩ ∣ ((𝑦 𝑥𝐴 𝐵𝑧 𝑥𝐴 𝐵) ∧ ((𝐹𝑦)𝑅(𝐹𝑧) ∨ ((𝐹𝑦) = (𝐹𝑧) ∧ 𝑦(𝐹𝑦) / 𝑥𝑆𝑧)))}       ((𝑅 We 𝐴𝑅 Se 𝐴 ∧ ∀𝑥𝐴 𝑆 Po 𝐵) → 𝑇 Po 𝑥𝐴 𝐵)
 
23-Aug-2025weiunfrlem 36411 Lemma for weiunfr 36414. (Contributed by Matthew House, 23-Aug-2025.)
𝐹 = (𝑤 𝑥𝐴 𝐵 ↦ (𝑢 ∈ {𝑥𝐴𝑤𝐵}∀𝑣 ∈ {𝑥𝐴𝑤𝐵} ¬ 𝑣𝑅𝑢))    &   𝑇 = {⟨𝑦, 𝑧⟩ ∣ ((𝑦 𝑥𝐴 𝐵𝑧 𝑥𝐴 𝐵) ∧ ((𝐹𝑦)𝑅(𝐹𝑧) ∨ ((𝐹𝑦) = (𝐹𝑧) ∧ 𝑦(𝐹𝑦) / 𝑥𝑆𝑧)))}    &   (𝜑𝑅 We 𝐴)    &   (𝜑𝑅 Se 𝐴)    &   𝐸 = (𝑝 ∈ (𝐹𝑟)∀𝑞 ∈ (𝐹𝑟) ¬ 𝑞𝑅𝑝)    &   (𝜑𝑟 𝑥𝐴 𝐵)    &   (𝜑𝑟 ≠ ∅)       (𝜑 → (𝐸 ∈ (𝐹𝑟) ∧ ∀𝑡𝑟 ¬ (𝐹𝑡)𝑅𝐸 ∧ ∀𝑡 ∈ (𝑟𝐸 / 𝑥𝐵)(𝐹𝑡) = 𝐸))
 
23-Aug-2025weiunlem2 36410 Lemma for weiunpo 36412, weiunso 36413, weiunfr 36414, and weiunse 36415. (Contributed by Matthew House, 23-Aug-2025.)
𝐹 = (𝑤 𝑥𝐴 𝐵 ↦ (𝑢 ∈ {𝑥𝐴𝑤𝐵}∀𝑣 ∈ {𝑥𝐴𝑤𝐵} ¬ 𝑣𝑅𝑢))    &   𝑇 = {⟨𝑦, 𝑧⟩ ∣ ((𝑦 𝑥𝐴 𝐵𝑧 𝑥𝐴 𝐵) ∧ ((𝐹𝑦)𝑅(𝐹𝑧) ∨ ((𝐹𝑦) = (𝐹𝑧) ∧ 𝑦(𝐹𝑦) / 𝑥𝑆𝑧)))}    &   (𝜑𝑅 We 𝐴)    &   (𝜑𝑅 Se 𝐴)       (𝜑 → (𝐹: 𝑥𝐴 𝐵𝐴 ∧ ∀𝑡 𝑥𝐴 𝐵𝑡(𝐹𝑡) / 𝑥𝐵 ∧ ∀𝑠𝐴𝑡 𝑠 / 𝑥𝐵 ¬ 𝑠𝑅(𝐹𝑡)))
 
23-Aug-2025rexlimdvvva 3197 Inference from Theorem 19.23 of [Margaris] p. 90, for three restricted quantifiers. (Contributed by AV, 23-Aug-2025.)
((𝜑 ∧ (𝑥𝐴𝑦𝐵𝑧𝐶)) → (𝜓𝜒))       (𝜑 → (∃𝑥𝐴𝑦𝐵𝑧𝐶 𝜓𝜒))
 
22-Aug-2025peano2ons 28193 The successor of a surreal ordinal is a surreal ordinal. (Contributed by Scott Fenton, 22-Aug-2025.)
(𝐴 ∈ Ons → (𝐴 +s 1s ) ∈ Ons)
 
22-Aug-2025onmulscl 28192 The surreal ordinals are closed under multiplication. (Contributed by Scott Fenton, 22-Aug-2025.)
((𝐴 ∈ Ons𝐵 ∈ Ons) → (𝐴 ·s 𝐵) ∈ Ons)
 
22-Aug-2025onaddscl 28191 The surreal ordinals are closed under addition. (Contributed by Scott Fenton, 22-Aug-2025.)
((𝐴 ∈ Ons𝐵 ∈ Ons) → (𝐴 +s 𝐵) ∈ Ons)
 
21-Aug-2025wl-cleq-3 37445
Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong. This text should be read as an exploration rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Introducing a New Concept: Well-formed formulas

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

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

1. Introduce a type code

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

2. Introduce variables

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

In the formal language of Metamath these variables are not interpreted with concrete statements, but serve purely as placeholders for substitution.

3. Add primitive formulas

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

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

4. Specify the properties of primitive formulas

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

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

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

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
21-Aug-2025cbvralsvw 3294 Change bound variable by using a substitution. Version of cbvralsv 3343 with a disjoint variable condition, which does not require ax-13 2375. (Contributed by NM, 20-Nov-2005.) Avoid ax-13 2375. (Revised by GG, 10-Jan-2024.) (Proof shortened by Wolf Lammen, 8-Mar-2025.) Avoid ax-10 2140, ax-12 2176. (Revised by SN, 21-Aug-2025.)
(∀𝑥𝐴 𝜑 ↔ ∀𝑦𝐴 [𝑦 / 𝑥]𝜑)
 
20-Aug-2025zs12bday 28329 A dyadic fraction has a finite birthday. (Contributed by Scott Fenton, 20-Aug-2025.)
(𝐴 ∈ ℤs[1/2] → ( bday 𝐴) ∈ ω)
 
20-Aug-2025zscut 28298 A cut expression for surreal integers. (Contributed by Scott Fenton, 20-Aug-2025.)
(𝐴 ∈ ℤs𝐴 = ({(𝐴 -s 1s )} |s {(𝐴 +s 1s )}))
 
20-Aug-2025zmulscld 28288 The surreal integers are closed under multiplication. (Contributed by Scott Fenton, 20-Aug-2025.)
(𝜑𝐴 ∈ ℤs)    &   (𝜑𝐵 ∈ ℤs)       (𝜑 → (𝐴 ·s 𝐵) ∈ ℤs)
 
20-Aug-2025sltm1d 28036 A surreal is greater than itself minus one. (Contributed by Scott Fenton, 20-Aug-2025.)
(𝜑𝐴 No )       (𝜑 → (𝐴 -s 1s ) <s 𝐴)
 
20-Aug-2025cutmin 27874 If 𝐵 has a minimum, then the minimum may be used alone in the cut. (Contributed by Scott Fenton, 20-Aug-2025.)
(𝜑𝐴 <<s 𝐵)    &   (𝜑𝑋𝐵)    &   (𝜑 → ∀𝑦𝐵 𝑋 ≤s 𝑦)       (𝜑 → (𝐴 |s 𝐵) = (𝐴 |s {𝑋}))
 
20-Aug-2025cutmax 27873 If 𝐴 has a maximum, then the maximum may be used alone in the cut. (Contributed by Scott Fenton, 20-Aug-2025.)
(𝜑𝐴 <<s 𝐵)    &   (𝜑𝑋𝐴)    &   (𝜑 → ∀𝑦𝐴 𝑦 ≤s 𝑋)       (𝜑 → (𝐴 |s 𝐵) = ({𝑋} |s 𝐵))
 
20-Aug-2025oldfi 27856 The old set of an ordinal natural is finite. (Contributed by Scott Fenton, 20-Aug-2025.)
(𝐴 ∈ ω → ( O ‘𝐴) ∈ Fin)
 
20-Aug-2025madefi 27855 The made set of an ordinal natural is finite. (Contributed by Scott Fenton, 20-Aug-2025.)
(𝐴 ∈ ω → ( M ‘𝐴) ∈ Fin)
 
20-Aug-2025omnaddcl 8710 The naturals are closed under natural addition. (Contributed by Scott Fenton, 20-Aug-2025.)
((𝐴 ∈ ω ∧ 𝐵 ∈ ω) → (𝐴 +no 𝐵) ∈ ω)
 
20-Aug-2025naddoa 8709 Natural addition of a natural is the same as regular addition. (Contributed by Scott Fenton, 20-Aug-2025.)
((𝐴 ∈ On ∧ 𝐵 ∈ ω) → (𝐴 +no 𝐵) = (𝐴 +o 𝐵))
 
20-Aug-2025sbccomlem 3842 Lemma for sbccom 3844. (Contributed by NM, 14-Nov-2005.) (Revised by Mario Carneiro, 18-Oct-2016.) Avoid ax-10 2140, ax-12 2176. (Revised by SN, 20-Aug-2025.)
([𝐴 / 𝑥][𝐵 / 𝑦]𝜑[𝐵 / 𝑦][𝐴 / 𝑥]𝜑)
 
19-Aug-2025zseo 28311 A surreal integer is either even or odd. (Contributed by Scott Fenton, 19-Aug-2025.)
(𝑁 ∈ ℤs → (∃𝑥 ∈ ℤs 𝑁 = (2s ·s 𝑥) ∨ ∃𝑥 ∈ ℤs 𝑁 = ((2s ·s 𝑥) +s 1s )))
 
19-Aug-2025n0seo 28310 A non-negative surreal integer is either even or odd. (Contributed by Scott Fenton, 19-Aug-2025.)
(𝑁 ∈ ℕ0s → (∃𝑥 ∈ ℕ0s 𝑁 = (2s ·s 𝑥) ∨ ∃𝑥 ∈ ℕ0s 𝑁 = ((2s ·s 𝑥) +s 1s )))
 
18-Aug-2025wl-cleq-1 37443
Disclaimer: The material presented here is just my (WL's) personal perception. I am not an expert in this field, so some or all of the text here can be misleading, or outright wrong. This text should be read as an exploration rather than as definite statements, open to doubt, alternatives, and reinterpretation.

Grammars and Parsable contents

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

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

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

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

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

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

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

(𝐴 = 𝐵 ↔ ∀𝑥(𝑥𝐴𝑥𝐵))
 
18-Aug-2025pw2cut 28325 Extend halfcut 28321 to arbitrary powers of two. Part of theorem 4.2 of [Gonshor] p. 28. (Contributed by Scott Fenton, 18-Aug-2025.)
(𝜑𝐴 No )    &   (𝜑𝐵 No )    &   (𝜑𝑁 ∈ ℕ0s)    &   (𝜑𝐴 <s 𝐵)    &   (𝜑 → ({(2s ·s 𝐴)} |s {(2s ·s 𝐵)}) = (𝐴 +s 𝐵))       (𝜑 → ({(𝐴 /su (2ss𝑁))} |s {(𝐵 /su (2ss𝑁))}) = ((𝐴 +s 𝐵) /su (2ss(𝑁 +s 1s ))))
 
17-Aug-2025usgrlimprop 47913 Properties of a local isomorphism of simple pseudographs. (Contributed by AV, 17-Aug-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑊 = (Vtx‘𝐻)    &   𝑁 = (𝐺 ClNeighbVtx 𝑣)    &   𝑀 = (𝐻 ClNeighbVtx (𝐹𝑣))    &   𝐼 = (Edg‘𝐺)    &   𝐽 = (Edg‘𝐻)    &   𝐾 = {𝑥𝐼𝑥𝑁}    &   𝐿 = {𝑥𝐽𝑥𝑀}       ((𝐺 ∈ USPGraph ∧ 𝐻 ∈ USPGraph ∧ 𝐹 ∈ (𝐺 GraphLocIso 𝐻)) → (𝐹:𝑉1-1-onto𝑊 ∧ ∀𝑣𝑉𝑓(𝑓:𝑁1-1-onto𝑀 ∧ ∃𝑔(𝑔:𝐾1-1-onto𝐿 ∧ ∀𝑒𝐾 (𝑓𝑒) = (𝑔𝑒)))))
 
17-Aug-2025iseqsetvlem 2797 Lemma for iseqsetv-cleq 2798. (Contributed by Wolf Lammen, 17-Aug-2025.) (Proof modification is discouraged.)
(∃𝑥 𝑥 = 𝐴 ↔ ∃𝑧 𝑧 = 𝐴)
 
16-Aug-2025uspgrlimlem4 47911 Lemma 4 for uspgrlim 47912. (Contributed by AV, 16-Aug-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑊 = (Vtx‘𝐻)    &   𝑁 = (𝐺 ClNeighbVtx 𝑣)    &   𝑀 = (𝐻 ClNeighbVtx (𝐹𝑣))    &   𝐼 = (Edg‘𝐺)    &   𝐽 = (Edg‘𝐻)    &   𝐾 = {𝑥𝐼𝑥𝑁}    &   𝐿 = {𝑥𝐽𝑥𝑀}       (((𝐺 ∈ USPGraph ∧ 𝐻 ∈ USPGraph) ∧ (𝑔:𝐾1-1-onto𝐿 ∧ ∀𝑒𝐾 (𝑓𝑒) = (𝑔𝑒))) → ((𝑖 ∈ dom (iEdg‘𝐺) ∧ ((iEdg‘𝐺)‘𝑖) ⊆ 𝑁) → (𝑓 “ ((iEdg‘𝐺)‘𝑖)) = ((iEdg‘𝐻)‘((((iEdg‘𝐻) ∘ 𝑔) ∘ (iEdg‘𝐺))‘𝑖))))
 
16-Aug-2025uspgrlimlem3 47910 Lemma 3 for uspgrlim 47912. (Contributed by AV, 16-Aug-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑊 = (Vtx‘𝐻)    &   𝑁 = (𝐺 ClNeighbVtx 𝑣)    &   𝑀 = (𝐻 ClNeighbVtx (𝐹𝑣))    &   𝐼 = (Edg‘𝐺)    &   𝐽 = (Edg‘𝐻)    &   𝐾 = {𝑥𝐼𝑥𝑁}    &   𝐿 = {𝑥𝐽𝑥𝑀}       ((𝐺 ∈ USPGraph ∧ :{𝑥 ∈ dom (iEdg‘𝐺) ∣ ((iEdg‘𝐺)‘𝑥) ⊆ 𝑁}–1-1-onto𝑅 ∧ ∀𝑖 ∈ {𝑥 ∈ dom (iEdg‘𝐺) ∣ ((iEdg‘𝐺)‘𝑥) ⊆ 𝑁} (𝑓 “ ((iEdg‘𝐺)‘𝑖)) = ((iEdg‘𝐻)‘(𝑖))) → (𝑒𝐾 → (𝑓𝑒) = ((((iEdg‘𝐻) ∘ ) ∘ (iEdg‘𝐺))‘𝑒)))
 
16-Aug-2025uspgrlimlem2 47909 Lemma 2 for uspgrlim 47912. (Contributed by AV, 16-Aug-2025.)
𝑀 = (𝐻 ClNeighbVtx 𝑋)    &   𝐽 = (Edg‘𝐻)    &   𝐿 = {𝑥𝐽𝑥𝑀}       (𝐻 ∈ USPGraph → ((iEdg‘𝐻) “ 𝐿) = {𝑥 ∈ dom (iEdg‘𝐻) ∣ ((iEdg‘𝐻)‘𝑥) ⊆ 𝑀})
 
16-Aug-2025uspgrlimlem1 47908 Lemma 1 for uspgrlim 47912. (Contributed by AV, 16-Aug-2025.)
𝑀 = (𝐻 ClNeighbVtx 𝑋)    &   𝐽 = (Edg‘𝐻)    &   𝐿 = {𝑥𝐽𝑥𝑀}       (𝐻 ∈ USPGraph → 𝐿 = ((iEdg‘𝐻) “ {𝑥 ∈ dom (iEdg‘𝐻) ∣ ((iEdg‘𝐻)‘𝑥) ⊆ 𝑀}))
 
16-Aug-2025aks5 42146 The AKS Primality test, given an integer 𝑁 greater than or equal to 3, find a coprime 𝑅 such that 𝑅 is big enough. Then, if a bunch of polynomial equalities in the residue ring hold then 𝑁 is a prime power. Currently depends on the axiom ax-exfinfld 42144, since we currently do not have the existence of finite fields in the database. (Contributed by metakunt, 16-Aug-2025.)
𝐴 = (⌊‘((√‘(ϕ‘𝑅)) · (2 logb 𝑁)))    &   𝑋 = (var1‘(ℤ/nℤ‘𝑁))    &   𝑆 = (Poly1‘(ℤ/nℤ‘𝑁))    &   𝐿 = ((RSpan‘𝑆)‘{((𝑅(.g‘(mulGrp‘𝑆))𝑋)(-g𝑆)(1r𝑆))})    &   (𝜑𝑁 ∈ (ℤ‘3))    &   (𝜑𝑅 ∈ ℕ)    &   (𝜑 → (𝑁 gcd 𝑅) = 1)    &   (𝜑 → ((2 logb 𝑁)↑2) < ((od𝑅)‘𝑁))    &   (𝜑 → ∀𝑎 ∈ (1...𝐴)[(𝑁(.g‘(mulGrp‘𝑆))(𝑋(+g𝑆)((ℤRHom‘𝑆)‘𝑎)))](𝑆 ~QG 𝐿) = [((𝑁(.g‘(mulGrp‘𝑆))𝑋)(+g𝑆)((ℤRHom‘𝑆)‘𝑎))](𝑆 ~QG 𝐿))    &   (𝜑 → ∀𝑎 ∈ (1...𝐴)(𝑎 gcd 𝑁) = 1)       (𝜑 → ∃𝑝 ∈ ℙ ∃𝑛 ∈ ℕ 𝑁 = (𝑝𝑛))
 
15-Aug-2025uspgrlim 47912 A local isomorphism of simple pseudographs is a bijection between their vertices that preserves neighborhoods, expressed by properties of their edges (not edge functions as in isgrlim2 47903). (Contributed by AV, 15-Aug-2025.)
𝑉 = (Vtx‘𝐺)    &   𝑊 = (Vtx‘𝐻)    &   𝑁 = (𝐺 ClNeighbVtx 𝑣)    &   𝑀 = (𝐻 ClNeighbVtx (𝐹𝑣))    &   𝐼 = (Edg‘𝐺)    &   𝐽 = (Edg‘𝐻)    &   𝐾 = {𝑥𝐼𝑥𝑁}    &   𝐿 = {𝑥𝐽𝑥𝑀}       ((𝐺 ∈ USPGraph ∧ 𝐻 ∈ USPGraph ∧ 𝐹𝑍) → (𝐹 ∈ (𝐺 GraphLocIso 𝐻) ↔ (𝐹:𝑉1-1-onto𝑊 ∧ ∀𝑣𝑉𝑓(𝑓:𝑁1-1-onto𝑀 ∧ ∃𝑔(𝑔:𝐾1-1-onto𝐿 ∧ ∀𝑒𝐾 (𝑓𝑒) = (𝑔𝑒))))))
 
15-Aug-20253f1oss2 47041 The composition of three bijections as bijection from the image of the converse of the domain onto the image of the converse of the range of the middle bijection. (Contributed by AV, 15-Aug-2025.)
(((𝐹:𝐴1-1-onto𝐵𝐺:𝐶1-1-onto𝐷𝐻:𝐸1-1-onto𝐼) ∧ (𝐶𝐵𝐷𝐼)) → ((𝐻𝐺) ∘ 𝐹):(𝐹𝐶)–1-1-onto→(𝐻𝐷))
 
15-Aug-20253f1oss1 47040 The composition of three bijections as bijection from the image of the domain onto the image of the range of the middle bijection. (Contributed by AV, 15-Aug-2025.)
(((𝐹:𝐴1-1-onto𝐵𝐺:𝐶1-1-onto𝐷𝐻:𝐸1-1-onto𝐼) ∧ (𝐶𝐴𝐷𝐸)) → ((𝐻𝐺) ∘ 𝐹):(𝐹𝐶)–1-1-onto→(𝐻𝐷))
 
15-Aug-2025f1ocoima 7292 The composition of two bijections as bijection onto the image of the range of the first bijection. (Contributed by AV, 15-Aug-2025.)
((𝐹:𝐴1-1-onto𝐵𝐺:𝐶1-1-onto𝐷𝐵𝐶) → (𝐺𝐹):𝐴1-1-onto→(𝐺𝐵))
 
15-Aug-2025dfdif3 4090 Alternate definition of class difference. (Contributed by BJ and Jim Kingdon, 16-Jun-2022.) (Proof shortened by SN, 15-Aug-2025.)
(𝐴𝐵) = {𝑥𝐴 ∣ ∀𝑦𝐵 𝑥𝑦}
 
14-Aug-2025cbvrabv2w 45086 A more general version of cbvrabv 3424. Version of cbvrabv2 45085 with a disjoint variable condition, which does not require ax-13 2375. (Contributed by Glauco Siliprandi, 23-Oct-2021.) (Revised by GG, 14-Aug-2025.)
(𝑥 = 𝑦𝐴 = 𝐵)    &   (𝑥 = 𝑦 → (𝜑𝜓))       {𝑥𝐴𝜑} = {𝑦𝐵𝜓}
 
14-Aug-2025cbvditgdavw2 36245 Change bound variable and limits in a directed integral. Deduction form. (Contributed by GG, 14-Aug-2025.)
(𝜑𝐴 = 𝐵)    &   (𝜑𝐶 = 𝐷)    &   ((𝜑𝑥 = 𝑦) → 𝐸 = 𝐹)       (𝜑 → ⨜[𝐴𝐶]𝐸 d𝑥 = ⨜[𝐵𝐷]𝐹 d𝑦)
 
14-Aug-2025cbvitgdavw2 36244 Change bound variable and domain in an integral. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑥 = 𝑦) → 𝐶 = 𝐷)    &   ((𝜑𝑥 = 𝑦) → 𝐴 = 𝐵)       (𝜑 → ∫𝐴𝐶 d𝑥 = ∫𝐵𝐷 d𝑦)
 
14-Aug-2025cbvproddavw2 36243 Change bound variable and the set of integers in a product. Deduction form. (Contributed by GG, 14-Aug-2025.)
(𝜑𝐴 = 𝐵)    &   ((𝜑𝑗 = 𝑘) → 𝐶 = 𝐷)       (𝜑 → ∏𝑗𝐴 𝐶 = ∏𝑘𝐵 𝐷)
 
14-Aug-2025cbvsumdavw2 36242 Change bound variable and the set of integers in a sum. Deduction form. (Contributed by GG, 14-Aug-2025.)
(𝜑𝐴 = 𝐵)    &   ((𝜑𝑗 = 𝑘) → 𝐶 = 𝐷)       (𝜑 → Σ𝑗𝐴 𝐶 = Σ𝑘𝐵 𝐷)
 
14-Aug-2025cbvixpdavw2 36241 Change bound variable and domain in an indexed Cartesian product. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑥 = 𝑦) → 𝐶 = 𝐷)    &   ((𝜑𝑥 = 𝑦) → 𝐴 = 𝐵)       (𝜑X𝑥𝐴 𝐶 = X𝑦𝐵 𝐷)
 
14-Aug-2025cbvmpo2davw2 36240 Change second bound variable and domains in a maps-to function. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑦 = 𝑧) → 𝐸 = 𝐹)    &   ((𝜑𝑦 = 𝑧) → 𝐶 = 𝐷)    &   ((𝜑𝑦 = 𝑧) → 𝐴 = 𝐵)       (𝜑 → (𝑥𝐴, 𝑦𝐶𝐸) = (𝑥𝐵, 𝑧𝐷𝐹))
 
14-Aug-2025cbvmpo1davw2 36239 Change first bound variable and domains in a maps-to function. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑥 = 𝑧) → 𝐸 = 𝐹)    &   ((𝜑𝑥 = 𝑧) → 𝐶 = 𝐷)    &   ((𝜑𝑥 = 𝑧) → 𝐴 = 𝐵)       (𝜑 → (𝑥𝐴, 𝑦𝐶𝐸) = (𝑧𝐵, 𝑦𝐷𝐹))
 
14-Aug-2025cbvmpodavw2 36238 Change bound variable and domains in a maps-to function. Deduction form. (Contributed by GG, 14-Aug-2025.)
(((𝜑𝑥 = 𝑧) ∧ 𝑦 = 𝑤) → 𝐸 = 𝐹)    &   (((𝜑𝑥 = 𝑧) ∧ 𝑦 = 𝑤) → 𝐶 = 𝐷)    &   (((𝜑𝑥 = 𝑧) ∧ 𝑦 = 𝑤) → 𝐴 = 𝐵)       (𝜑 → (𝑥𝐴, 𝑦𝐶𝐸) = (𝑧𝐵, 𝑤𝐷𝐹))
 
14-Aug-2025cbvriotadavw2 36237 Change bound variable and domain in a restricted description binder. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑥 = 𝑦) → (𝜓𝜒))    &   ((𝜑𝑥 = 𝑦) → 𝐴 = 𝐵)       (𝜑 → (𝑥𝐴 𝜓) = (𝑦𝐵 𝜒))
 
14-Aug-2025cbvdisjdavw2 36236 Change bound variable and domain in a disjoint collection. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑥 = 𝑦) → 𝐶 = 𝐷)    &   ((𝜑𝑥 = 𝑦) → 𝐴 = 𝐵)       (𝜑 → (Disj 𝑥𝐴 𝐶Disj 𝑦𝐵 𝐷))
 
14-Aug-2025cbvmptdavw2 36235 Change bound variable and domain in a maps-to function. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑥 = 𝑦) → 𝐶 = 𝐷)    &   ((𝜑𝑥 = 𝑦) → 𝐴 = 𝐵)       (𝜑 → (𝑥𝐴𝐶) = (𝑦𝐵𝐷))
 
14-Aug-2025cbviindavw2 36234 Change bound variable and domain in indexed intersections. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑥 = 𝑦) → 𝐶 = 𝐷)    &   ((𝜑𝑥 = 𝑦) → 𝐴 = 𝐵)       (𝜑 𝑥𝐴 𝐶 = 𝑦𝐵 𝐷)
 
14-Aug-2025cbviundavw2 36233 Change bound variable and domain in indexed unions. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑥 = 𝑦) → 𝐶 = 𝐷)    &   ((𝜑𝑥 = 𝑦) → 𝐴 = 𝐵)       (𝜑 𝑥𝐴 𝐶 = 𝑦𝐵 𝐷)
 
14-Aug-2025cbvrabdavw2 36232 Change bound variable and domain in restricted class abstractions. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑥 = 𝑦) → (𝜓𝜒))    &   ((𝜑𝑥 = 𝑦) → 𝐴 = 𝐵)       (𝜑 → {𝑥𝐴𝜓} = {𝑦𝐵𝜒})
 
14-Aug-2025cbvreudavw2 36231 Change bound variable and quantifier domain in the restricted existential uniqueness quantifier. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑥 = 𝑦) → (𝜓𝜒))    &   ((𝜑𝑥 = 𝑦) → 𝐴 = 𝐵)       (𝜑 → (∃!𝑥𝐴 𝜓 ↔ ∃!𝑦𝐵 𝜒))
 
14-Aug-2025cbvrmodavw2 36230 Change bound variable and quantifier domain in the restricted at-most-one quantifier. Deduction form. (Contributed by GG, 14-Aug-2025.)
((𝜑𝑥 = 𝑦) → (𝜓𝜒))    &   ((𝜑𝑥 = 𝑦) → 𝐴 = 𝐵)       (𝜑 → (∃*𝑥𝐴 𝜓 ↔ ∃*𝑦𝐵 𝜒))

Older news:

(29-Jul-2020) Mario Carneiro presented MM0 at the CICM conference. See this Google Group post which includes a YouTube link.

(20-Jul-2020) Rohan Ridenour found 5 shorter D-proofs in our Shortest known proofs... file. In particular, he reduced *4.39 from 901 to 609 steps. A note on the Metamath Solitaire page mentions a tool that he worked with.

(19-Jul-2020) David A. Wheeler posted a video (https://youtu.be/3R27Qx69jHc) on how to (re)prove Schwabh�user 4.6 for the Metamath Proof Explorer. See also his older videos.

(19-Jul-2020) In version 0.184 of the metamath program, "verify markup" now checks that mathboxes are independent i.e. do not cross-reference each other. To turn off this check, use "/mathbox_skip"

(30-Jun-2020) In version 0.183 of the metamath program, (1) "verify markup" now has checking for (i) underscores in labels, (ii) that *ALT and *OLD theorems have both discouragement tags, and (iii) that lines don't have trailing spaces. (2) "save proof.../rewrap" no longer left-aligns $p/$a comments that contain the string "<HTML>"; see this note.

(5-Apr-2020) Glauco Siliprandi added a new proof to the 100 theorem list, e is Transcendental etransc, bringing the Metamath total to 74.

(12-Feb-2020) A bug in the 'minimize' command of metamath.exe versions 0.179 (29-Nov-2019) and 0.180 (10-Dec-2019) may incorrectly bring in the use of new axioms. Version 0.181 fixes it.

(20-Jan-2020) David A. Wheeler created a video called Walkthrough of the tutorial in mmj2. See the Google Group announcement for more details. (All of his videos are listed on the Other Metamath-Related Topics page.)

(18-Jan-2020) The FOMM 2020 talks are on youtube now. Mario Carneiro's talk is Metamath Zero, or: How to Verify a Verifier. Since they are washed out in the video, the PDF slides are available separately.

(14-Dec-2019) Glauco Siliprandi added a new proof to the 100 theorem list, Fourier series convergence fourier, bringing the Metamath total to 73.

(25-Nov-2019) Alexander van der Vekens added a new proof to the 100 theorem list, The Cayley-Hamilton Theorem cayleyhamilton, bringing the Metamath total to 72.

(25-Oct-2019) Mario Carneiro's paper "Metamath Zero: The Cartesian Theorem Prover" (submitted to CPP 2020) is now available on arXiv: https://arxiv.org/abs/1910.10703. There is a related discussion on Hacker News.

(30-Sep-2019) Mario Carneiro's talk about MM0 at ITP 2019 is available on YouTube: x86 verification from scratch (24 minutes). Google Group discussion: Metamath Zero.

(29-Sep-2019) David Wheeler created a fascinating Gource video that animates the construction of set.mm, available on YouTube: Metamath set.mm contributions viewed with Gource through 2019-09-26 (4 minutes). Google Group discussion: Gource video of set.mm contributions.

(24-Sep-2019) nLab added a page for Metamath. It mentions Stefan O'Rear's Busy Beaver work using the set.mm axiomatization (and fails to mention Mario's definitional soundness checker)

(1-Sep-2019) Xuanji Li published a Visual Studio Code extension to support metamath syntax highlighting.

(10-Aug-2019) (revised 21-Sep-2019) Version 0.178 of the metamath program has the following changes: (1) "minimize_with" will now prevent dependence on new $a statements unless the new qualifier "/allow_new_axioms" is specified. For routine usage, it is suggested that you use "minimize_with * /allow_new_axioms * /no_new_axioms_from ax-*" instead of just "minimize_with *". See "help minimize_with" and this Google Group post. Also note that the qualifier "/allow_growth" has been renamed to "/may_grow". (2) "/no_versioning" was added to "write theorem_list".

(8-Jul-2019) Jon Pennant announced the creation of a Metamath search engine. Try it and feel free to comment on it at https://groups.google.com/d/msg/metamath/cTeU5AzUksI/5GesBfDaCwAJ.

(16-May-2019) Set.mm now has a major new section on elementary geometry. This begins with definitions that implement Tarski's axioms of geometry (including concepts such as congruence and betweenness). This uses set.mm's extensible structures, making them easier to use for many circumstances. The section then connects Tarski geometry with geometry in Euclidean places. Most of the work in this section is due to Thierry Arnoux, with earlier work by Mario Carneiro and Scott Fenton. [Reported by DAW.]

(9-May-2019) We are sad to report that long-time contributor Alan Sare passed away on Mar. 23. There is some more information at the top of his mathbox (click on "Mathbox for Alan Sare") and his obituary. We extend our condolences to his family.

(10-Mar-2019) Jon Pennant and Mario Carneiro added a new proof to the 100 theorem list, Heron's formula heron, bringing the Metamath total to 71.

(22-Feb-2019) Alexander van der Vekens added a new proof to the 100 theorem list, Cramer's rule cramer, bringing the Metamath total to 70.

(6-Feb-2019) David A. Wheeler has made significant improvements and updates to the Metamath book. Any comments, errors found, or suggestions are welcome and should be turned into an issue or pull request at https://github.com/metamath/metamath-book (or sent to me if you prefer).

(26-Dec-2018) I added Appendix 8 to the MPE Home Page that cross-references new and old axiom numbers.

(20-Dec-2018) The axioms have been renumbered according to this Google Groups post.

(24-Nov-2018) Thierry Arnoux created a new page on topological structures. The page along with its SVG files are maintained on GitHub.

(11-Oct-2018) Alexander van der Vekens added a new proof to the 100 theorem list, the Friendship Theorem friendship, bringing the Metamath total to 69.

(1-Oct-2018) Naip Moro has written gramm, a Metamath proof verifier written in Antlr4/Java.

(16-Sep-2018) The definition df-riota has been simplified so that it evaluates to the empty set instead of an Undef value. This change affects a significant part of set.mm.

(2-Sep-2018) Thierry Arnoux added a new proof to the 100 theorem list, Euler's partition theorem eulerpart, bringing the Metamath total to 68.

(1-Sep-2018) The Kate editor now has Metamath syntax highlighting built in. (Communicated by Wolf Lammen.)

(15-Aug-2018) The Intuitionistic Logic Explorer now has a Most Recent Proofs page.

(4-Aug-2018) Version 0.163 of the metamath program now indicates (with an asterisk) which Table of Contents headers have associated comments.

(10-May-2018) George Szpiro, journalist and author of several books on popular mathematics such as Poincare's Prize and Numbers Rule, used a genetic algorithm to find shorter D-proofs of "*3.37" and "meredith" in our Shortest known proofs... file.

(19-Apr-2018) The EMetamath Eclipse plugin has undergone many improvements since its initial release as the change log indicates. Thierry uses it as his main proof assistant and writes, "I added support for mmj2's auto-transformations, which allows it to infer several steps when building proofs. This added a lot of comfort for writing proofs.... I can now switch back and forth between the proof assistant and editing the Metamath file.... I think no other proof assistant has this feature."

(11-Apr-2018) Benoît Jubin solved an open problem about the "Axiom of Twoness," showing that it is necessary for completeness. See item 14 on the "Open problems and miscellany" page.

(25-Mar-2018) Giovanni Mascellani has announced mmpp, a new proof editing environment for the Metamath language.

(27-Feb-2018) Bill Hale has released an app for the Apple iPad and desktop computer that allows you to browse Metamath theorems and their proofs.

(17-Jan-2018) Dylan Houlihan has kindly provided a new mirror site. He has also provided an rsync server; type "rsync uk.metamath.org::" in a bash shell to check its status (it should return "metamath metamath").

(15-Jan-2018) The metamath program, version 0.157, has been updated to implement the file inclusion conventions described in the 21-Dec-2017 entry of mmnotes.txt.

(11-Dec-2017) I added a paragraph, suggested by Gérard Lang, to the distinct variable description here.

(10-Dec-2017) Per FL's request, his mathbox will be removed from set.mm. If you wish to export any of his theorems, today's version (master commit 1024a3a) is the last one that will contain it.

(11-Nov-2017) Alan Sare updated his completeusersproof program.

(3-Oct-2017) Sean B. Palmer created a web page that runs the metamath program under emulated Linux in JavaScript. He also wrote some programs to work with our shortest known proofs of the PM propositional calculus theorems.

(28-Sep-2017) Ivan Kuckir wrote a tutorial blog entry, Introduction to Metamath, that summarizes the language syntax. (It may have been written some time ago, but I was not aware of it before.)

(26-Sep-2017) The default directory for the Metamath Proof Explorer (MPE) has been changed from the GIF version (mpegif) to the Unicode version (mpeuni) throughout the site. Please let me know if you find broken links or other issues.

(24-Sep-2017) Saveliy Skresanov added a new proof to the 100 theorem list, Ceva's Theorem cevath, bringing the Metamath total to 67.

(3-Sep-2017) Brendan Leahy added a new proof to the 100 theorem list, Area of a Circle areacirc, bringing the Metamath total to 66.

(7-Aug-2017) Mario Carneiro added a new proof to the 100 theorem list, Principle of Inclusion/Exclusion incexc, bringing the Metamath total to 65.

(1-Jul-2017) Glauco Siliprandi added a new proof to the 100 theorem list, Stirling's Formula stirling, bringing the Metamath total to 64. Related theorems include 2 versions of Wallis' formula for π (wallispi and wallispi2).

(7-May-2017) Thierry Arnoux added a new proof to the 100 theorem list, Betrand's Ballot Problem ballotth, bringing the Metamath total to 63.

(20-Apr-2017) Glauco Siliprandi added a new proof in the supplementary list on the 100 theorem list, Stone-Weierstrass Theorem stowei.

(28-Feb-2017) David Moews added a new proof to the 100 theorem list, Product of Segments of Chords chordthm, bringing the Metamath total to 62.

(1-Jan-2017) Saveliy Skresanov added a new proof to the 100 theorem list, Isosceles triangle theorem isosctr, bringing the Metamath total to 61.

(1-Jan-2017) Mario Carneiro added 2 new proofs to the 100 theorem list, L'Hôpital's Rule lhop and Taylor's Theorem taylth, bringing the Metamath total to 60.

(28-Dec-2016) David A. Wheeler is putting together a page on Metamath (specifically set.mm) conventions. Comments are welcome on the Google Group thread.

(24-Dec-2016) Mario Carneiro introduced the abbreviation "F/ x ph" (symbols: turned F, x, phi) in df-nf to represent the "effectively not free" idiom "A. x ( ph -> A. x ph )". Theorem nf2 shows a version without nested quantifiers.

(22-Dec-2016) Naip Moro has developed a Metamath database for G. Spencer-Brown's Laws of Form. You can follow the Google Group discussion here.

(20-Dec-2016) In metamath program version 0.137, 'verify markup *' now checks that ax-XXX $a matches axXXX $p when the latter exists, per the discussion at https://groups.google.com/d/msg/metamath/Vtz3CKGmXnI/Fxq3j1I_EQAJ.

(24-Nov-2016) Mingl Yuan has kindly provided a mirror site in Beijing, China. He has also provided an rsync server; type "rsync cn.metamath.org::" in a bash shell to check its status (it should return "metamath metamath").

(14-Aug-2016) All HTML pages on this site should now be mobile-friendly and pass the Mobile-Friendly Test. If you find one that does not, let me know.

(14-Aug-2016) Daniel Whalen wrote a paper describing the use of using deep learning to prove 14% of test theorems taken from set.mm: Holophrasm: a neural Automated Theorem Prover for higher-order logic. The associated program is called Holophrasm.

(14-Aug-2016) David A. Wheeler created a video called Metamath Proof Explorer: A Modern Principia Mathematica

(12-Aug-2016) A Gitter chat room has been created for Metamath.

(9-Aug-2016) Mario Carneiro wrote a Metamath proof verifier in the Scala language as part of the ongoing Metamath -> MMT import project

(9-Aug-2016) David A. Wheeler created a GitHub project called metamath-test (last execution run) to check that different verifiers both pass good databases and detect errors in defective ones.

(4-Aug-2016) Mario gave two presentations at CICM 2016.

(17-Jul-2016) Thierry Arnoux has written EMetamath, a Metamath plugin for the Eclipse IDE.

(16-Jul-2016) Mario recovered Chris Capel's collapsible proof demo.

(13-Jul-2016) FL sent me an updated version of PDF (LaTeX source) developed with Lamport's pf2 package. See the 23-Apr-2012 entry below.

(12-Jul-2016) David A. Wheeler produced a new video for mmj2 called "Creating functions in Metamath". It shows a more efficient approach than his previous recent video "Creating functions in Metamath" (old) but it can be of interest to see both approaches.

(10-Jul-2016) Metamath program version 0.132 changes the command 'show restricted' to 'show discouraged' and adds a new command, 'set discouragement'. See the mmnotes.txt entry of 11-May-2016 (updated 10-Jul-2016).

(12-Jun-2016) Dan Getz has written Metamath.jl, a Metamath proof verifier written in the Julia language.

(10-Jun-2016) If you are using metamath program versions 0.128, 0.129, or 0.130, please update to version 0.131. (In the bad versions, 'minimize_with' ignores distinct variable violations.)

(1-Jun-2016) Mario Carneiro added new proofs to the 100 theorem list, the Prime Number Theorem pnt and the Perfect Number Theorem perfect, bringing the Metamath total to 58.

(12-May-2016) Mario Carneiro added a new proof to the 100 theorem list, Dirichlet's theorem dirith, bringing the Metamath total to 56. (Added 17-May-2016) An informal exposition of the proof can be found at http://metamath-blog.blogspot.com/2016/05/dirichlets-theorem.html

(10-Mar-2016) Metamath program version 0.125 adds a new qualifier, /fast, to 'save proof'. See the mmnotes.txt entry of 10-Mar-2016.

(6-Mar-2016) The most recent set.mm has a large update converting variables from letters to symbols. See this Google Groups post.

(16-Feb-2016) Mario Carneiro's new paper "Models for Metamath" can be found here and on arxiv.org.

(6-Feb-2016) There are now 22 math symbols that can be used as variable names. See mmascii.html near the 50th table row, starting with "./\".

(29-Jan-2016) Metamath program version 0.123 adds /packed and /explicit qualifiers to 'save proof' and 'show proof'. See this Google Groups post.

(13-Jan-2016) The Unicode math symbols now provide for external CSS and use the XITS web font. Thanks to David A. Wheeler, Mario Carneiro, Cris Perdue, Jason Orendorff, and Frédéric Liné for discussions on this topic. Two commands, htmlcss and htmlfont, were added to the $t comment in set.mm and are recognized by Metamath program version 0.122.

(21-Dec-2015) Axiom ax-12, now renamed ax-12o, was replaced by a new shorter equivalent, ax-12. The equivalence is provided by theorems ax12o and ax12.

(13-Dec-2015) A new section on the theory of classes was added to the MPE Home Page. Thanks to Gérard Lang for suggesting this section and improvements to it.

(17-Nov-2015) Metamath program version 0.121: 'verify markup' was added to check comment markup consistency; see 'help verify markup'. You are encouraged to make sure 'verify markup */f' has no warnings prior to mathbox submissions. The date consistency rules are given in this Google Groups post.

(23-Sep-2015) Drahflow wrote, "I am currently working on yet another proof assistant, main reason being: I understand stuff best if I code it. If anyone is interested: https://github.com/Drahflow/Igor (but in my own programming language, so expect a complicated build process :P)"

(23-Aug-2015) Ivan Kuckir created MM Tool, a Metamath proof verifier and editor written in JavaScript that runs in a browser.

(25-Jul-2015) Axiom ax-10 is shown to be redundant by theorem ax10 , so it was removed from the predicate calculus axiom list.

(19-Jul-2015) Mario Carneiro gave two talks related to Metamath at CICM 2015, which are linked to at Other Metamath-Related Topics.

(18-Jul-2015) The metamath program has been updated to version 0.118. 'show trace_back' now has a '/to' qualifier to show the path back to a specific axiom such as ax-ac. See 'help show trace_back'.

(12-Jul-2015) I added the HOL Explorer for Mario Carneiro's hol.mm database. Although the home page needs to be filled out, the proofs can be accessed.

(11-Jul-2015) I started a new page, Other Metamath-Related Topics, that will hold miscellaneous material that doesn't fit well elsewhere (or is hard to find on this site). Suggestions welcome.

(23-Jun-2015) Metamath's mascot, Penny the cat (2007 photo), passed away today. She was 18 years old.

(21-Jun-2015) Mario Carneiro added 3 new proofs to the 100 theorem list: All Primes (1 mod 4) Equal the Sum of Two Squares 2sq, The Law of Quadratic Reciprocity lgsquad and the AM-GM theorem amgm, bringing the Metamath total to 55.

(13-Jun-2015) Stefan O'Rear's smm, written in JavaScript, can now be used as a standalone proof verifier. This brings the total number of independent Metamath verifiers to 8, written in just as many languages (C, Java. JavaScript, Python, Haskell, Lua, C#, C++).

(12-Jun-2015) David A. Wheeler added 2 new proofs to the 100 theorem list: The Law of Cosines lawcos and Ptolemy's Theorem ptolemy, bringing the Metamath total to 52.

(30-May-2015) The metamath program has been updated to version 0.117. (1) David A. Wheeler provided an enhancement to speed up the 'improve' command by 28%; see README.TXT for more information. (2) In web pages with proofs, local hyperlinks on step hypotheses no longer clip the Expression cell at the top of the page.

(9-May-2015) Stefan O'Rear has created an archive of older set.mm releases back to 1998: https://github.com/sorear/set.mm-history/.

(7-May-2015) The set.mm dated 7-May-2015 is a major revision, updated by Mario, that incorporates the new ordered pair definition df-op that was agreed upon. There were 700 changes, listed at the top of set.mm. Mathbox users are advised to update their local mathboxes. As usual, if any mathbox user has trouble incorporating these changes into their mathbox in progress, Mario or I will be glad to do them for you.

(7-May-2015) Mario has added 4 new theorems to the 100 theorem list: Ramsey's Theorem ramsey, The Solution of a Cubic cubic, The Solution of the General Quartic Equation quart, and The Birthday Problem birthday. In the Supplementary List, Stefan O'Rear added the Hilbert Basis Theorem hbt.

(28-Apr-2015) A while ago, Mario Carneiro wrote up a proof of the unambiguity of set.mm's grammar, which has now been added to this site: grammar-ambiguity.txt.

(22-Apr-2015) The metamath program has been updated to version 0.114. In MM-PA, 'show new_proof/unknown' now shows the relative offset (-1, -2,...) used for 'assign' arguments, suggested by Stefan O'Rear.

(20-Apr-2015) I retrieved an old version of the missing "Metamath 100" page from archive.org and updated it to what I think is the current state: mm_100.html. Anyone who wants to edit it can email updates to this page to me.

(19-Apr-2015) The metamath program has been updated to version 0.113, mostly with patches provided by Stefan O'Rear. (1) 'show statement %' (or any command allowing label wildcards) will select statements whose proofs were changed in current session. ('help search' will show all wildcard matching rules.) (2) 'show statement =' will select the statement being proved in MM-PA. (3) The proof date stamp is now created only if the proof is complete.

(18-Apr-2015) There is now a section for Scott Fenton's NF database: New Foundations Explorer.

(16-Apr-2015) Mario describes his recent additions to set.mm at https://groups.google.com/forum/#!topic/metamath/VAGNmzFkHCs. It include 2 new additions to the Formalizing 100 Theorems list, Leibniz' series for pi (leibpi) and the Konigsberg Bridge problem (konigsberg)

(10-Mar-2015) Mario Carneiro has written a paper, "Arithmetic in Metamath, Case Study: Bertrand's Postulate," for CICM 2015. A preprint is available at arXiv:1503.02349.

(23-Feb-2015) Scott Fenton has created a Metamath formalization of NF set theory: https://github.com/sctfn/metamath-nf/. For more information, see the Metamath Google Group posting.

(28-Jan-2015) Mario Carneiro added Wilson's Theorem (wilth), Ascending or Descending Sequences (erdsze, erdsze2), and Derangements Formula (derangfmla, subfaclim), bringing the Metamath total for Formalizing 100 Theorems to 44.

(19-Jan-2015) Mario Carneiro added Sylow's Theorem (sylow1, sylow2, sylow2b, sylow3), bringing the Metamath total for Formalizing 100 Theorems to 41.

(9-Jan-2015) The hypothesis order of mpbi*an* was changed. See the Notes entry of 9-Jan-2015.

(1-Jan-2015) Mario Carneiro has written a paper, "Conversion of HOL Light proofs into Metamath," that has been submitted to the Journal of Formalized Reasoning. A preprint is available on arxiv.org.

(22-Nov-2014) Stefan O'Rear added the Solutions to Pell's Equation (rmxycomplete) and Liouville's Theorem and the Construction of Transcendental Numbers (aaliou), bringing the Metamath total for Formalizing 100 Theorems to 40.

(22-Nov-2014) The metamath program has been updated with version 0.111. (1) Label wildcards now have a label range indicator "~" so that e.g. you can show or search all of the statements in a mathbox. See 'help search'. (Stefan O'Rear added this to the program.) (2) A qualifier was added to 'minimize_with' to prevent the use of any axioms not already used in the proof e.g. 'minimize_with * /no_new_axioms_from ax-*' will prevent the use of ax-ac if the proof doesn't already use it. See 'help minimize_with'.

(10-Oct-2014) Mario Carneiro has encoded the axiomatic basis for the HOL theorem prover into a Metamath source file, hol.mm.

(24-Sep-2014) Mario Carneiro added the Sum of the Angles of a Triangle (ang180), bringing the Metamath total for Formalizing 100 Theorems to 38.

(15-Sep-2014) Mario Carneiro added the Fundamental Theorem of Algebra (fta), bringing the Metamath total for Formalizing 100 Theorems to 37.

(3-Sep-2014) Mario Carneiro added the Fundamental Theorem of Integral Calculus (ftc1, ftc2). This brings the Metamath total for Formalizing 100 Theorems to 35. (added 14-Sep-2014) Along the way, he added the Mean Value Theorem (mvth), bringing the total to 36.

(16-Aug-2014) Mario Carneiro started a Metamath blog at http://metamath-blog.blogspot.com/.

(10-Aug-2014) Mario Carneiro added Erdős's proof of the divergence of the inverse prime series (prmrec). This brings the Metamath total for Formalizing 100 Theorems to 34.

(31-Jul-2014) Mario Carneiro added proofs for Euler's Summation of 1 + (1/2)^2 + (1/3)^2 + .... (basel) and The Factor and Remainder Theorems (facth, plyrem). This brings the Metamath total for Formalizing 100 Theorems to 33.

(16-Jul-2014) Mario Carneiro added proofs for Four Squares Theorem (4sq), Formula for the Number of Combinations (hashbc), and Divisibility by 3 Rule (3dvds). This brings the Metamath total for Formalizing 100 Theorems to 31.

(11-Jul-2014) Mario Carneiro added proofs for Divergence of the Harmonic Series (harmonic), Order of a Subgroup (lagsubg), and Lebesgue Measure and Integration (itgcl). This brings the Metamath total for Formalizing 100 Theorems to 28.

(7-Jul-2014) Mario Carneiro presented a talk, "Natural Deduction in the Metamath Proof Language," at the 6PCM conference. Slides Audio

(25-Jun-2014) In version 0.108 of the metamath program, the 'minimize_with' command is now more automated. It now considers compressed proof length; it scans the statements in forward and reverse order and chooses the best; and it avoids $d conflicts. The '/no_distinct', '/brief', and '/reverse' qualifiers are obsolete, and '/verbose' no longer lists all statements scanned but gives more details about decision criteria.

(12-Jun-2014) To improve naming uniformity, theorems about operation values now use the abbreviation "ov". For example, df-opr, opreq1, oprabval5, and oprvres are now called df-ov, oveq1, ov5, and ovres respectively.

(11-Jun-2014) Mario Carneiro finished a major revision of set.mm. His notes are under the 11-Jun-2014 entry in the Notes

(4-Jun-2014) Mario Carneiro provided instructions and screenshots for syntax highlighting for the jEdit editor for use with Metamath and mmj2 source files.

(19-May-2014) Mario Carneiro added a feature to mmj2, in the build at https://github.com/digama0/mmj2/raw/dev-build/mmj2jar/mmj2.jar, which tests all but 5 definitions in set.mm for soundness. You can turn on the test by adding
SetMMDefinitionsCheckWithExclusions,ax-*,df-bi,df-clab,df-cleq,df-clel,df-sbc
to your RunParms.txt file.

(17-May-2014) A number of labels were changed in set.mm, listed at the top of set.mm as usual. Note in particular that the heavily-used visset, elisseti, syl11anc, syl111anc were changed respectively to vex, elexi, syl2anc, syl3anc.

(16-May-2014) Scott Fenton formalized a proof for "Sum of kth powers": fsumkthpow. This brings the Metamath total for Formalizing 100 Theorems to 25.

(9-May-2014) I (Norm Megill) presented an overview of Metamath at the "Formalization of mathematics in proof assistants" workshop at the Institut Henri Poincar� in Paris. The slides for this talk are here.

(22-Jun-2014) Version 0.107 of the metamath program adds a "PART" indention level to the Statement List table of contents, adds 'show proof ... /size' to show source file bytes used, and adds 'show elapsed_time'. The last one is helpful for measuring the run time of long commands. See 'help write theorem_list', 'help show proof', and 'help show elapsed_time' for more information.

(2-May-2014) Scott Fenton formalized a proof of Sum of the Reciprocals of the Triangular Numbers: trirecip. This brings the Metamath total for Formalizing 100 Theorems to 24.

(19-Apr-2014) Scott Fenton formalized a proof of the Formula for Pythagorean Triples: pythagtrip. This brings the Metamath total for Formalizing 100 Theorems to 23.

(11-Apr-2014) David A. Wheeler produced a much-needed and well-done video for mmj2, called "Introduction to Metamath & mmj2". Thanks, David!

(15-Mar-2014) Mario Carneiro formalized a proof of Bertrand's postulate: bpos. This brings the Metamath total for Formalizing 100 Theorems to 22.

(18-Feb-2014) Mario Carneiro proved that complex number axiom ax-cnex is redundant (theorem cnex). See also Real and Complex Numbers.

(11-Feb-2014) David A. Wheeler has created a theorem compilation that tracks those theorems in Freek Wiedijk's Formalizing 100 Theorems list that have been proved in set.mm. If you find a error or omission in this list, let me know so it can be corrected. (Update 1-Mar-2014: Mario has added eulerth and bezout to the list.)

(4-Feb-2014) Mario Carneiro writes:

The latest commit on the mmj2 development branch introduced an exciting new feature, namely syntax highlighting for mmp files in the main window. (You can pick up the latest mmj2.jar at https://github.com/digama0/mmj2/blob/develop/mmj2jar/mmj2.jar .) The reason I am asking for your help at this stage is to help with design for the syntax tokenizer, which is responsible for breaking down the input into various tokens with names like "comment", "set", and "stephypref", which are then colored according to the user's preference. As users of mmj2 and metamath, what types of highlighting would be useful to you?

One limitation of the tokenizer is that since (for performance reasons) it can be started at any line in the file, highly contextual coloring, like highlighting step references that don't exist previously in the file, is difficult to do. Similarly, true parsing of the formulas using the grammar is possible but likely to be unmanageably slow. But things like checking theorem labels against the database is quite simple to do under the current setup.

That said, how can this new feature be optimized to help you when writing proofs?

(13-Jan-2014) Mathbox users: the *19.21a*, *19.23a* series of theorems have been renamed to *alrim*, *exlim*. You can update your mathbox with a global replacement of string '19.21a' with 'alrim' and '19.23a' with 'exlim'.

(5-Jan-2014) If you downloaded mmj2 in the past 3 days, please update it with the current version, which fixes a bug introduced by the recent changes that made it unable to read in most of the proofs in the textarea properly.

(4-Jan-2014) I added a list of "Allowed substitutions" under the "Distinct variable groups" list on the theorem web pages, for example axsep. This is an experimental feature and comments are welcome.

(3-Jan-2014) Version 0.102 of the metamath program produces more space-efficient compressed proofs (still compatible with the specification in Appendix B of the Metamath book) using an algorithm suggested by Mario Carneiro. See 'help save proof' in the program. Also, mmj2 now generates proofs in the new format. The new mmj2 also has a mandatory update that fixes a bug related to the new format; you must update your mmj2 copy to use it with the latest set.mm.

(23-Dec-2013) Mario Carneiro has updated many older definitions to use the maps-to notation. If you have difficulty updating your local mathbox, contact him or me for assistance.

(1-Nov-2013) 'undo' and 'redo' commands were added to the Proof Assistant in metamath program version 0.07.99. See 'help undo' in the program.

(8-Oct-2013) Today's Notes entry describes some proof repair techniques.

(5-Oct-2013) Today's Notes entry explains some recent extensible structure improvements.

(8-Sep-2013) Mario Carneiro has revised the square root and sequence generator definitions. See today's Notes entry.

(3-Aug-2013) Mario Carneiro writes: "I finally found enough time to create a GitHub repository for development at https://github.com/digama0/mmj2. A permalink to the latest version plus source (akin to mmj2.zip) is https://github.com/digama0/mmj2/zipball/, and the jar file on its own (mmj2.jar) is at https://github.com/digama0/mmj2/blob/master/mmj2jar/mmj2.jar?raw=true. Unfortunately there is no easy way to automatically generate mmj2jar.zip, but this is available as part of the zip distribution for mmj2.zip. History tracking will be handled by the repository now. Do you have old versions of the mmj2 directory? I could add them as historical commits if you do."

(18-Jun-2013) Mario Carneiro has done a major revision and cleanup of the construction of real and complex numbers. In particular, rather than using equivalence classes as is customary for the construction of the temporary rationals, he used only "reduced fractions", so that the use of the axiom of infinity is avoided until it becomes necessary for the construction of the temporary reals.

(18-May-2013) Mario Carneiro has added the ability to produce compressed proofs to mmj2. This is not an official release but can be downloaded here if you want to try it: mmj2.jar. If you have any feedback, send it to me (NM), and I will forward it to Mario. (Disclaimer: this release has not been endorsed by Mel O'Cat. If anyone has been in contact with him, please let me know.)

(29-Mar-2013) Charles Greathouse reduced the size of our PNG symbol images using the pngout program.

(8-Mar-2013) Wolf Lammen has reorganized the theorems in the "Logical negation" section of set.mm into a more orderly, less scattered arrangement.

(27-Feb-2013) Scott Fenton has done a large cleanup of set.mm, eliminating *OLD references in 144 proofs. See the Notes entry for 27-Feb-2013.

(21-Feb-2013) *ATTENTION MATHBOX USERS* The order of hypotheses of many syl* theorems were changed, per a suggestion of Mario Carneiro. You need to update your local mathbox copy for compatibility with the new set.mm, or I can do it for you if you wish. See the Notes entry for 21-Feb-2013.

(16-Feb-2013) Scott Fenton shortened the direct-from-axiom proofs of *3.1, *3.43, *4.4, *4.41, *4.5, *4.76, *4.83, *5.33, *5.35, *5.36, and meredith in the "Shortest known proofs of the propositional calculus theorems from Principia Mathematica" (pmproofs.txt).

(27-Jan-2013) Scott Fenton writes, "I've updated Ralph Levien's mmverify.py. It's now a Python 3 program, and supports compressed proofs and file inclusion statements. This adds about fifty lines to the original program. Enjoy!"

(10-Jan-2013) A new mathbox was added for Mario Carneiro, who has contributed a number of cardinality theorems without invoking the Axiom of Choice. This is nice work, and I will be using some of these (those suffixed with "NEW") to replace the existing ones in the main part of set.mm that currently invoke AC unnecessarily.

(4-Jan-2013) As mentioned in the 19-Jun-2012 item below, Eric Schmidt discovered that the complex number axioms axaddcom (now addcom) and ax0id (now addid1) are redundant (schmidt-cnaxioms.pdf, .tex). In addition, ax1id (now mulid1) can be weakened to ax1rid. Scott Fenton has now formalized this work, so that now there are 23 instead of 25 axioms for real and complex numbers in set.mm. The Axioms for Complex Numbers page has been updated with these results. An interesting part of the proof, showing how commutativity of addition follows from other laws, is in addcomi.

(27-Nov-2012) The frequently-used theorems "an1s", "an1rs", "ancom13s", "ancom31s" were renamed to "an12s", "an32s", "an13s", "an31s" to conform to the convention for an12 etc.

(4-Nov-2012) The changes proposed in the Notes, renaming Grp to GrpOp etc., have been incorporated into set.mm. See the list of changes at the top of set.mm. If you want me to update your mathbox with these changes, send it to me along with the version of set.mm that it works with.

(20-Sep-2012) Mel O'Cat updated https://us.metamath.org/ocat/mmj2/TESTmmj2jar.zip. See the README.TXT for a description of the new features.

(21-Aug-2012) Mel O'Cat has uploaded SearchOptionsMockup9.zip, a mockup for the new search screen in mmj2. See the README.txt file for instructions. He will welcome feedback via x178g243 at yahoo.com.

(19-Jun-2012) Eric Schmidt has discovered that in our axioms for complex numbers, axaddcom and ax0id are redundant. (At some point these need to be formalized for set.mm.) He has written up these and some other nice results, including some independence results for the axioms, in schmidt-cnaxioms.pdf (schmidt-cnaxioms.tex).

(23-Apr-2012) Frédéric Liné sent me a PDF (LaTeX source) developed with Lamport's pf2 package. He wrote: "I think it works well with Metamath since the proofs are in a tree form. I use it to have a sketch of a proof. I get this way a better understanding of the proof and I can cut down its size. For instance, inpreima5 was reduced by 50% when I wrote the corresponding proof with pf2."

(5-Mar-2012) I added links to Wikiproofs and its recent changes in the "Wikis" list at the top of this page.

(12-Jan-2012) Thanks to William Hoza who sent me a ZFC T-shirt, and thanks to the ZFC models (courtesy of the Inaccessible Cardinals agency).

FrontBackDetail
ZFC T-shirt front ZFC T-shirt back ZFC T-shirt detail

(24-Nov-2011) In metamath program version 0.07.71, the 'minimize_with' command by default now scans from bottom to top instead of top to bottom, since empirically this often (although not always) results in a shorter proof. A top to bottom scan can be specified with a new qualifier '/reverse'. You can try both methods (starting from the same original proof, of course) and pick the shorter proof.

(15-Oct-2011) From Mel O'Cat:
I just uploaded mmj2.zip containing the 1-Nov-2011 (20111101) release: https://us.metamath.org/ocat/mmj2/mmj2.zip https://us.metamath.org/ocat/mmj2/mmj2.md5
A few last minute tweaks:
1. I now bless double-click starting of mmj2.bat (MacMMJ2.command in Mac OS-X)! See mmj2\QuickStart.html
2. Much improved support of Mac OS-X systems. See mmj2\QuickStart.html
3. I tweaked the Command Line Argument Options report to
a) print every time;
b) print as much as possible even if there are errors in the command line arguments -- and the last line printed corresponds to the argument in error;
c) removed Y/N argument on the command line to enable/disable the report. this simplifies things.
4) Documentation revised, including the PATutorial.
See CHGLOG.TXT for list of all changes. Good luck. And thanks for all of your help!

(15-Sep-2011) MATHBOX USERS: I made a large number of label name changes to set.mm to improve naming consistency. There is a script at the top of the current set.mm that you can use to update your mathbox or older set.mm. Or if you wish, I can do the update on your next mathbox submission - in that case, please include a .zip of the set.mm version you used.

(30-Aug-2011) Scott Fenton shortened the direct-from-axiom proofs of *3.33, *3.45, *4.36, and meredith in the "Shortest known proofs of the propositional calculus theorems from Principia Mathematica" (pmproofs.txt).

(21-Aug-2011) A post on reddit generated 60,000 hits (and a TOS violation notice from my provider...),

(18-Aug-2011) The Metamath Google Group has a discussion of my canonical conjunctions proposal. Any feedback directly to me (Norm Megill) is also welcome.

(4-Jul-2011) John Baker has provided (metamath_kindle.zip) "a modified version of [the] metamath.tex [Metamath] book source that is formatted for the Kindle. If you compile the document the resulting PDF can be loaded into into a Kindle and easily read." (Update: the PDF file is now included also.)

(3-Jul-2011) Nested 'submit' calls are now allowed, in metamath program version 0.07.68. Thus you can create or modify a command file (script) from within a command file then 'submit' it. While 'submit' cannot pass arguments (nor are there plans to add this feature), you can 'substitute' strings in the 'submit' target file before calling it in order to emulate this.

(28-Jun-2011)The metamath program version 0.07.64 adds the '/include_mathboxes' qualifier to 'minimize_with'; by default, 'minimize_with *' will now skip checking user mathboxes. Since mathboxes should be independent from each other, this will help prevent accidental cross-"contamination". Also, '/rewrap' was added to 'write source' to automatically wrap $a and $p comments so as to conform to the current formatting conventions used in set.mm. This means you no longer have to be concerned about line length < 80 etc.

(19-Jun-2011) ATTENTION MATHBOX USERS: The wff variables et, ze, si, and rh are now global. This change was made primarily to resolve some conflicts between mathboxes, but it will also let you avoid having to constantly redeclare these locally in the future. Unfortunately, this change can affect the $f hypothesis order, which can cause proofs referencing theorems that use these variables to fail. All mathbox proofs currently in set.mm have been corrected for this, and you should refresh your local copy for further development of your mathbox. You can correct your proofs that are not in set.mm as follows. Only the proofs that fail under the current set.mm (using version 0.07.62 or later of the metamath program) need to be modified.

To fix a proof that references earlier theorems using et, ze, si, and rh, do the following (using a hypothetical theorem 'abc' as an example): 'prove abc' (ignore error messages), 'delete floating', 'initialize all', 'unify all/interactive', 'improve all', 'save new_proof/compressed'. If your proof uses dummy variables, these must be reassigned manually.

To fix a proof that uses et, ze, si, and rh as local variables, make sure the proof is saved in 'compressed' format. Then delete the local declarations ($v and $f statements) and follow the same steps above to correct the proof.

I apologize for the inconvenience. If you have trouble fixing your proofs, you can contact me for assistance.

Note: Versions of the metamath program before 0.07.62 did not flag an error when global variables were redeclared locally, as it should have according to the spec. This caused these spec violations to go unnoticed in some older set.mm versions. The new error messages are in fact just informational and can be ignored when working with older set.mm versions.

(7-Jun-2011) The metamath program version 0.07.60 fixes a bug with the 'minimize_with' command found by Andrew Salmon.

(12-May-2010) Andrew Salmon shortened many proofs, shown above. For comparison, I have temporarily kept the old version, which is suffixed with OLD, such as oridmOLD for oridm.

(9-Dec-2010) Eric Schmidt has written a Metamath proof verifier in C++, called checkmm.cpp.

(3-Oct-2010) The following changes were made to the tokens in set.mm. The subset and proper subset symbol changes to C_ and C. were made to prevent defeating the parenthesis matching in Emacs. Other changes were made so that all letters a-z and A-Z are now available for variable names. One-letter constants such as _V, _e, and _i are now shown on the web pages with Roman instead of italic font, to disambiguate italic variable names. The new convention is that a prefix of _ indicates Roman font and a prefix of ~ indicates a script (curly) font. Thanks to Stefan Allan and Frédéric Liné for discussions leading to this change.

OldNewDescription
C. _C binomial coefficient
E _E epsilon relation
e _e Euler's constant
I _I identity relation
i _i imaginary unit
V _V universal class
(_ C_ subset
(. C. proper subset
P~ ~P power class
H~ ~H Hilbert space

(25-Sep-2010) The metamath program (version 0.07.54) now implements the current Metamath spec, so footnote 2 on p. 92 of the Metamath book can be ignored.

(24-Sep-2010) The metamath program (version 0.07.53) fixes bug 2106, reported by Michal Burger.

(14-Sep-2010) The metamath program (version 0.07.52) has a revamped LaTeX output with 'show statement xxx /tex', which produces the combined statement, description, and proof similar to the web page generation. Also, 'show proof xxx /lemmon/renumber' now matches the web page step numbers. ('show proof xxx/renumber' still has the indented form conforming to the actual RPN proof, with slightly different numbering.)

(9-Sep-2010) The metamath program (version 0.07.51) was updated with a modification by Stefan Allan that adds hyperlinks the the Ref column of proofs.

(12-Jun-2010) Scott Fenton contributed a D-proof (directly from axioms) of Meredith's single axiom (see the end of pmproofs.txt). A description of Meredith's axiom can be found in theorem meredith.

(11-Jun-2010) A new Metamath mirror was added in Austria, courtesy of Kinder-Enduro.

(28-Feb-2010) Raph Levien's Ghilbert project now has a new Ghilbert site and a Google Group.

(26-Jan-2010) Dmitri Vlasov writes, "I admire the simplicity and power of the metamath language, but still I see its great disadvantage - the proofs in metamath are completely non-manageable by humans without proof assistants. Therefore I decided to develop another language, which would be a higher-level superstructure language towards metamath, and which will support human-readable/writable proofs directly, without proof assistants. I call this language mdl (acronym for 'mathematics development language')." The latest version of Dmitri's translators from metamath to mdl and back can be downloaded from http://mathdevlanguage.sourceforge.net/. Currently only Linux is supported, but Dmitri says is should not be difficult to port it to other platforms that have a g++ compiler.

(11-Sep-2009) The metamath program (version 0.07.48) has been updated to enforce the whitespace requirement of the current spec.

(10-Sep-2009) Matthew Leitch has written an nice article, "How to write mathematics clearly", that briefly mentions Metamath. Overall it makes some excellent points. (I have written to him about a few things I disagree with.)

(28-May-2009) AsteroidMeta is back on-line. Note the URL change.

(12-May-2009) Charles Greathouse wrote a Greasemonkey script to reformat the axiom list on Metamath web site proof pages. This is a beta version; he will appreciate feedback.

(11-May-2009) Stefan Allan modified the metamath program to add the command "show statement xxx /mnemonics", which produces the output file Mnemosyne.txt for use with the Mnemosyne project. The current Metamath program download incorporates this command. Instructions: Create the file mnemosyne.txt with e.g. "show statement ax-* /mnemonics". In the Mnemosyne program, load the file by choosing File->Import then file format "Q and A on separate lines". Notes: (1) Don't try to load all of set.mm, it will crash the program due to a bug in Mnemosyne. (2) On my computer, the arrows in ax-1 don't display. Stefan reports that they do on his computer. (Both are Windows XP.)

(3-May-2009) Steven Baldasty wrote a Metamath syntax highlighting file for the gedit editor. Screenshot.

(1-May-2009) Users on a gaming forum discuss our 2+2=4 proof. Notable comments include "Ew math!" and "Whoever wrote this has absolutely no life."

(12-Mar-2009) Chris Capel has created a Javascript theorem viewer demo that (1) shows substitutions and (2) allows expanding and collapsing proof steps. You are invited to take a look and give him feedback at his Metablog.

(28-Feb-2009) Chris Capel has written a Metamath proof verifier in C#, available at http://pdf23ds.net/bzr/MathEditor/Verifier/Verifier.cs and weighing in at 550 lines. Also, that same URL without the file on it is a Bazaar repository.

(2-Dec-2008) A new section was added to the Deduction Theorem page, called Logic, Metalogic, Metametalogic, and Metametametalogic.

(24-Aug-2008) (From ocat): The 1-Aug-2008 version of mmj2 is ready (mmj2.zip), size = 1,534,041 bytes. This version contains the Theorem Loader enhancement which provides a "sandboxing" capability for user theorems and dynamic update of new theorems to the Metamath database already loaded in memory by mmj2. Also, the new "mmj2 Service" feature enables calling mmj2 as a subroutine, or having mmj2 call your program, and provides access to the mmj2 data structures and objects loaded in memory (i.e. get started writing those Jython programs!) See also mmj2 on AsteroidMeta.

(23-May-2008) Gérard Lang pointed me to Bob Solovay's note on AC and strongly inaccessible cardinals. One of the eventual goals for set.mm is to prove the Axiom of Choice from Grothendieck's axiom, like Mizar does, and this note may be helpful for anyone wanting to attempt that. Separately, I also came across a history of the size reduction of grothprim (viewable in Firefox and some versions of Internet Explorer).

(14-Apr-2008) A "/join" qualifier was added to the "search" command in the metamath program (version 0.07.37). This qualifier will join the $e hypotheses to the $a or $p for searching, so that math tokens in the $e's can be matched as well. For example, "search *com* +v" produces no results, but "search *com* +v /join" yields commutative laws involving vector addition. Thanks to Stefan Allan for suggesting this idea.

(8-Apr-2008) The 8,000th theorem, hlrel, was added to the Metamath Proof Explorer part of the database.

(2-Mar-2008) I added a small section to the end of the Deduction Theorem page.

(17-Feb-2008) ocat has uploaded the "1-Mar-2008" mmj2: mmj2.zip. See the description.

(16-Jan-2008) O'Cat has written mmj2 Proof Assistant Quick Tips.

(30-Dec-2007) "How to build a library of formalized mathematics".

(22-Dec-2007) The Metamath Proof Explorer was included in the top 30 science resources for 2007 by the University at Albany Science Library.

(17-Dec-2007) Metamath's Wikipedia entry says, "This article may require cleanup to meet Wikipedia's quality standards" (see its discussion page). Volunteers are welcome. :) (In the interest of objectivity, I don't edit this entry.)

(20-Nov-2007) Jeff Hoffman created nicod.mm and posted it to the Google Metamath Group.

(19-Nov-2007) Reinder Verlinde suggested adding tooltips to the hyperlinks on the proof pages, which I did for proof step hyperlinks. Discussion.

(5-Nov-2007) A Usenet challenge. :)

(4-Aug-2007) I added a "Request for comments on proposed 'maps to' notation" at the bottom of the AsteroidMeta set.mm discussion page.

(21-Jun-2007) A preprint (PDF file) describing Kurt Maes' axiom of choice with 5 quantifiers, proved in set.mm as ackm.

(20-Jun-2007) The 7,000th theorem, ifpr, was added to the Metamath Proof Explorer part of the database.

(29-Apr-2007) Blog mentions of Metamath: here and here.

(21-Mar-2007) Paul Chapman is working on a new proof browser, which has highlighting that allows you to see the referenced theorem before and after the substitution was made. Here is a screenshot of theorem 0nn0 and a screenshot of theorem 2p2e4.

(15-Mar-2007) A picture of Penny the cat guarding the us.metamath.org server and making the rounds.

(16-Feb-2007) For convenience, the program "drule.c" (pronounced "D-rule", not "drool") mentioned in pmproofs.txt can now be downloaded (drule.c) without having to ask me for it. The same disclaimer applies: even though this program works and has no known bugs, it was not intended for general release. Read the comments at the top of the program for instructions.

(28-Jan-2007) Jason Orendorff set up a new mailing list for Metamath: http://groups.google.com/group/metamath.

(20-Jan-2007) Bob Solovay provided a revised version of his Metamath database for Peano arithmetic, peano.mm.

(2-Jan-2007) Raph Levien has set up a wiki called Barghest for the Ghilbert language and software.

(26-Dec-2006) I posted an explanation of theorem ecoprass on Usenet.

(2-Dec-2006) Berislav Žarnić translated the Metamath Solitaire applet to Croatian.

(26-Nov-2006) Dan Getz has created an RSS feed for new theorems as they appear on this page.

(6-Nov-2006) The first 3 paragraphs in Appendix 2: Note on the Axioms were rewritten to clarify the connection between Tarski's axiom system and Metamath.

(31-Oct-2006) ocat asked for a do-over due to a bug in mmj2 -- if you downloaded the mmj2.zip version dated 10/28/2006, then download the new version dated 10/30.

(29-Oct-2006) ocat has announced that the long-awaited 1-Nov-2006 release of mmj2 is available now.
     The new "Unify+Get Hints" is quite useful, and any proof can be generated as follows. With "?" in the Hyp field and Ref field blank, select "Unify+Get Hints". Select a hint from the list and put it in the Ref field. Edit any $n dummy variables to become the desired wffs. Rinse and repeat for the new proof steps generated, until the proof is done.
     The new tutorial, mmj2PATutorial.bat, explains this in detail. One way to reduce or avoid dummy $n's is to fill in the Hyp field with a comma-separated list of any known hypothesis matches to earlier proof steps, keeping a "?" in the list to indicate that the remaining hypotheses are unknown. Then "Unify+Get Hints" can be applied. The tutorial page \mmj2\data\mmp\PATutorial\Page405.mmp has an example.
     Don't forget that the eimm export/import program lets you go back and forth between the mmj2 and the metamath program proof assistants, without exiting from either one, to exploit the best features of each as required.

(21-Oct-2006) Martin Kiselkov has written a Metamath proof verifier in the Lua scripting language, called verify.lua. While it is not practical as an everyday verifier - he writes that it takes about 40 minutes to verify set.mm on a a Pentium 4 - it could be useful to someone learning Lua or Metamath, and importantly it provides another independent way of verifying the correctness of Metamath proofs. His code looks like it is nicely structured and very readable. He is currently working on a faster version in C++.

(19-Oct-2006) New AsteroidMeta page by Raph, Distinctors_vs_binders.

(13-Oct-2006) I put a simple Metamath browser on my PDA (Palm Tungsten E) so that I don't have to lug around my laptop. Here is a screenshot. It isn't polished, but I'll provide the file + instructions if anyone wants it.

(3-Oct-2006) A blog entry, Principia for Reverse Mathematics.

(28-Sep-2006) A blog entry, Metamath responds.

(26-Sep-2006) A blog entry, Metamath isn't hygienic.

(11-Aug-2006) A blog entry, Metamath and the Peano Induction Axiom.

(26-Jul-2006) A new open problem in predicate calculus was added.

(18-Jun-2006) The 6,000th theorem, mt4d, was added to the Metamath Proof Explorer part of the database.

(9-May-2006) Luca Ciciriello has upgraded the t2mf program, which is a C program used to create the MIDI files on the Metamath Music Page, so that it works on MacOS X. This is a nice accomplishment, since the original program was written before C was standardized by ANSI and will not compile on modern compilers.
      Unfortunately, the original program source states no copyright terms. The main author, Tim Thompson, has kindly agreed to release his code to public domain, but two other authors have also contributed to the code, and so far I have been unable to contact them for copyright clearance. Therefore I cannot offer the MacOS X version for public download on this site until this is resolved. Update 10-May-2006: Another author, M. Czeiszperger, has released his contribution to public domain.
      If you are interested in Luca's modified source code, please contact me directly.

(18-Apr-2006) Incomplete proofs in progress can now be interchanged between the Metamath program's CLI Proof Assistant and mmj2's GUI Proof Assistant, using a new export-import program called eimm. This can be done without exiting either proof assistant, so that the strengths of each approach can be exploited during proof development. See "Use Case 5a" and "Use Case 5b" at mmj2ProofAssistantFeedback.

(28-Mar-2006) Scott Fenton updated his second version of Metamath Solitaire (the one that uses external axioms). He writes: "I've switched to making it a standalone program, as it seems silly to have an applet that can't be run in a web browser. Check the README file for further info." The download is mmsol-0.5.tar.gz.

(27-Mar-2006) Scott Fenton has updated the Metamath Solitaire Java applet to Java 1.5: (1) QSort has been stripped out: its functionality is in the Collections class that Sun ships; (2) all Vectors have been replaced by ArrayLists; (3) generic types have been tossed in wherever they fit: this cuts back drastically on casting; and (4) any warnings Eclipse spouted out have been dealt with. I haven't yet updated it officially, because I don't know if it will work with Microsoft's JVM in older versions of Internet Explorer. The current official version is compiled with Java 1.3, because it won't work with Microsoft's JVM if it is compiled with Java 1.4. (As distasteful as that seems, I will get complaints from users if it doesn't work with Microsoft's JVM.) If anyone can verify that Scott's new version runs on Microsoft's JVM, I would be grateful. Scott's new version is mm.java-1.5.gz; after uncompressing it, rename it to mm.java, use it to replace the existing mm.java file in the Metamath Solitaire download, and recompile according to instructions in the mm.java comments.
      Scott has also created a second version, mmsol-0.2.tar.gz, that reads the axioms from ASCII files, instead of having the axioms hard-coded in the program. This can be very useful if you want to play with custom axioms, and you can also add a collection of starting theorems as "axioms" to work from. However, it must be run from the local directory with appletviewer, since the default Java security model doesn't allow reading files from a browser. It works with the JDK 5 Update 6 Java download.
To compile (from Windows Command Prompt): C:\Program Files\Java\jdk1.5.0_06\bin\javac.exe mm.java
To run (from Windows Command Prompt): C:\Program Files\Java\jdk1.5.0_06\bin\appletviewer.exe mms.html

(21-Jan-2006) Juha Arpiainen proved the independence of axiom ax-11 from the others. This was published as an open problem in my 1995 paper (Remark 9.5 on PDF page 17). See Item 9a on the Workshop Miscellany for his seven-line proof. See also the Asteroid Meta metamathMathQuestions page under the heading "Axiom of variable substitution: ax-11". Congratulations, Juha!

(20-Oct-2005) Juha Arpiainen is working on a proof verifier in Common Lisp called Bourbaki. Its proof language has its roots in Metamath, with the goal of providing a more powerful syntax and definitional soundness checking. See its documentation and related discussion.

(17-Oct-2005) Marnix Klooster has written a Metamath proof verifier in Haskell, called Hmm. Also see his Announcement. The complete program (Hmm.hs, HmmImpl.hs, and HmmVerify.hs) has only 444 lines of code, excluding comments and blank lines. It verifies compressed as well as regular proofs; moreover, it transparently verifies both per-spec compressed proofs and the flawed format he uncovered (see comment below of 16-Oct-05).

(16-Oct-2005) Marnix Klooster noticed that for large proofs, the compressed proof format did not match the spec in the book. His algorithm to correct the problem has been put into the Metamath program (version 0.07.6). The program still verifies older proofs with the incorrect format, but the user will be nagged to update them with 'save proof *'. In set.mm, 285 out of 6376 proofs are affected. (The incorrect format did not affect proof correctness or verification, since the compression and decompression algorithms matched each other.)

(13-Sep-2005) Scott Fenton found an interesting axiom, ax46, which could be used to replace both ax-4 and ax-6.

(29-Jul-2005) Metamath was selected as site of the week by American Scientist Online.

(8-Jul-2005) Roy Longton has contributed 53 new theorems to the Quantum Logic Explorer. You can see them in the Theorem List starting at lem3.3.3lem1. He writes, "If you want, you can post an open challenge to see if anyone can find shorter proofs of the theorems I submitted."

(10-May-2005) A Usenet post I posted about the infinite prime proof; another one about indexed unions.

(3-May-2005) The theorem divexpt is the 5,000th theorem added to the Metamath Proof Explorer database.

(12-Apr-2005) Raph Levien solved the open problem in item 16 on the Workshop Miscellany page and as a corollary proved that axiom ax-9 is independent from the other axioms of predicate calculus and equality. This is the first such independence proof so far; a goal is to prove all of them independent (or to derive any redundant ones from the others).

(8-Mar-2005) I added a paragraph above our complex number axioms table, summarizing the construction and indicating where Dedekind cuts are defined. Thanks to Andrew Buhr for comments on this.

(16-Feb-2005) The Metamath Music Page is mentioned as a reference or resource for a university course called Math, Mind, and Music. .

(28-Jan-2005) Steven Cullinane parodied the Metamath Music Page in his blog.

(18-Jan-2005) Waldek Hebisch upgraded the Metamath program to run on the AMD64 64-bit processor.

(17-Jan-2005) A symbol list summary was added to the beginning of the Hilbert Space Explorer Home Page. Thanks to Mladen Pavicic for suggesting this.

(6-Jan-2005) Someone assembled an amazon.com list of some of the books in the Metamath Proof Explorer Bibliography.

(4-Jan-2005) The definition of ordinal exponentiation was decided on after this Usenet discussion.

(19-Dec-2004) A bit of trivia: my Erdös number is 2, as you can see from this list.

(20-Oct-2004) I started this Usenet discussion about the "reals are uncountable" proof (127 comments; last one on Nov. 12).

(12-Oct-2004) gch-kn shows the equivalence of the Generalized Continuum Hypothesis and Prof. Nambiar's Axiom of Combinatorial Sets. This proof answers his Open Problem 2 (PDF file).

(5-Aug-2004) I gave a talk on "Hilbert Lattice Equations" at the Argonne workshop.

(25-Jul-2004) The theorem nthruz is the 4,000th theorem added to the Metamath Proof Explorer database.

(27-May-2004) Josiah Burroughs contributed the proofs u1lemn1b, u1lem3var1, oi3oa3lem1, and oi3oa3 to the Quantum Logic Explorer database ql.mm.

(23-May-2004) Some minor typos found by Josh Purinton were corrected in the Metamath book. In addition, Josh simplified the definition of the closure of a pre-statement of a formal system in Appendix C.

(5-May-2004) Gregory Bush has found shorter proofs for 67 of the 193 propositional calculus theorems listed in Principia Mathematica, thus establishing 67 new records. (This was challenge #4 on the open problems page.)


  Copyright terms: Public domain W3C HTML validation [external]