HomeHome Intuitionistic Logic Explorer
Theorem List (p. 165 of 169)
< Previous  Next >
Bad symbols? Try the
GIF version.

Mirrors  >  Metamath Home Page  >  ILE Home Page  >  Theorem List Contents  >  Recent Proofs       This page: Page List

Theorem List for Intuitionistic Logic Explorer - 16401-16500   *Has distinct variable group(s)
TypeLabelDescription
Statement
 
Theoremisclwwlkng 16401 A word over the set of vertices representing a closed walk of a fixed length. (Contributed by Alexander van der Vekens, 15-Mar-2018.) (Revised by AV, 24-Apr-2021.) (Revised by AV, 22-Mar-2022.)
(𝑁 ∈ ℕ0 → (𝑊 ∈ (𝑁 ClWWalksN 𝐺) ↔ (𝑊 ∈ (ClWWalks‘𝐺) ∧ (♯‘𝑊) = 𝑁)))
 
Theoremisclwwlkni 16402 A word over the set of vertices representing a closed walk of a fixed length. (Contributed by Jim Kingdon, 22-Feb-2026.)
(𝑊 ∈ (𝑁 ClWWalksN 𝐺) → (𝑊 ∈ (ClWWalks‘𝐺) ∧ (♯‘𝑊) = 𝑁))
 
Theoremclwwlkn0 16403 There is no closed walk of length 0 (i.e. a closed walk without any edge) represented by a word of vertices. (Contributed by Alexander van der Vekens, 15-Sep-2018.) (Revised by AV, 24-Apr-2021.)
(0 ClWWalksN 𝐺) = ∅
 
Theoremclwwlkclwwlkn 16404 A closed walk of a fixed length as word is a closed walk (in an undirected graph) as word. (Contributed by Alexander van der Vekens, 15-Mar-2018.) (Revised by AV, 24-Apr-2021.) (Proof shortened by AV, 22-Mar-2022.)
(𝑊 ∈ (𝑁 ClWWalksN 𝐺) → 𝑊 ∈ (ClWWalks‘𝐺))
 
Theoremclwwlksclwwlkn 16405 The closed walks of a fixed length as words are closed walks (in an undirected graph) as words. (Contributed by Alexander van der Vekens, 15-Mar-2018.) (Revised by AV, 12-Apr-2021.)
(𝑁 ClWWalksN 𝐺) ⊆ (ClWWalks‘𝐺)
 
Theoremclwwlknlen 16406 The length of a word representing a closed walk of a fixed length is this fixed length. (Contributed by AV, 22-Mar-2022.)
(𝑊 ∈ (𝑁 ClWWalksN 𝐺) → (♯‘𝑊) = 𝑁)
 
Theoremclwwlknnn 16407 The length of a closed walk of a fixed length as word is a positive integer. (Contributed by AV, 22-Mar-2022.)
(𝑊 ∈ (𝑁 ClWWalksN 𝐺) → 𝑁 ∈ ℕ)
 
Theoremisclwwlkn 16408 A word over the set of vertices representing a closed walk of a fixed length. (Contributed by Alexander van der Vekens, 15-Mar-2018.) (Revised by AV, 24-Apr-2021.) (Revised by AV, 22-Mar-2022.)
(𝑊 ∈ (𝑁 ClWWalksN 𝐺) ↔ (𝑊 ∈ (ClWWalks‘𝐺) ∧ (♯‘𝑊) = 𝑁))
 
Theoremclwwlknwrd 16409 A closed walk of a fixed length as word is a word over the vertices. (Contributed by AV, 30-Apr-2021.)
𝑉 = (Vtx‘𝐺)       (𝑊 ∈ (𝑁 ClWWalksN 𝐺) → 𝑊 ∈ Word 𝑉)
 
Theoremclwwlknbp 16410 Basic properties of a closed walk of a fixed length as word. (Contributed by AV, 30-Apr-2021.) (Proof shortened by AV, 22-Mar-2022.)
𝑉 = (Vtx‘𝐺)       (𝑊 ∈ (𝑁 ClWWalksN 𝐺) → (𝑊 ∈ Word 𝑉 ∧ (♯‘𝑊) = 𝑁))
 
Theoremisclwwlknx 16411* Characterization of a word representing a closed walk of a fixed length, definition of ClWWalks expanded. (Contributed by AV, 25-Apr-2021.) (Proof shortened by AV, 22-Mar-2022.)
𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (𝑁 ∈ ℕ → (𝑊 ∈ (𝑁 ClWWalksN 𝐺) ↔ ((𝑊 ∈ Word 𝑉 ∧ ∀𝑖 ∈ (0..^((♯‘𝑊) − 1)){(𝑊𝑖), (𝑊‘(𝑖 + 1))} ∈ 𝐸 ∧ {(lastS‘𝑊), (𝑊‘0)} ∈ 𝐸) ∧ (♯‘𝑊) = 𝑁)))
 
Theoremclwwlknp 16412* Properties of a set being a closed walk (represented by a word). (Contributed by Alexander van der Vekens, 17-Jun-2018.) (Revised by AV, 24-Apr-2021.) (Proof shortened by AV, 23-Mar-2022.)
𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (𝑊 ∈ (𝑁 ClWWalksN 𝐺) → ((𝑊 ∈ Word 𝑉 ∧ (♯‘𝑊) = 𝑁) ∧ ∀𝑖 ∈ (0..^(𝑁 − 1)){(𝑊𝑖), (𝑊‘(𝑖 + 1))} ∈ 𝐸 ∧ {(lastS‘𝑊), (𝑊‘0)} ∈ 𝐸))
 
Theoremclwwlkn1 16413 A closed walk of length 1 represented as word is a word consisting of 1 symbol representing a vertex connected to itself by (at least) one edge, that is, a loop. (Contributed by AV, 24-Apr-2021.) (Revised by AV, 11-Feb-2022.)
(𝑊 ∈ (1 ClWWalksN 𝐺) ↔ ((♯‘𝑊) = 1 ∧ 𝑊 ∈ Word (Vtx‘𝐺) ∧ {(𝑊‘0)} ∈ (Edg‘𝐺)))
 
Theoremloopclwwlkn1b 16414 The singleton word consisting of a vertex 𝑉 represents a closed walk of length 1 iff there is a loop at vertex 𝑉. (Contributed by AV, 11-Feb-2022.)
(𝑉 ∈ (Vtx‘𝐺) → ({𝑉} ∈ (Edg‘𝐺) ↔ ⟨“𝑉”⟩ ∈ (1 ClWWalksN 𝐺)))
 
Theoremclwwlkn1loopb 16415* A word represents a closed walk of length 1 iff this word is a singleton word consisting of a vertex with an attached loop. (Contributed by AV, 11-Feb-2022.)
(𝑊 ∈ (1 ClWWalksN 𝐺) ↔ ∃𝑣 ∈ (Vtx‘𝐺)(𝑊 = ⟨“𝑣”⟩ ∧ {𝑣} ∈ (Edg‘𝐺)))
 
Theoremclwwlkn2 16416 A closed walk of length 2 represented as word is a word consisting of 2 symbols representing (not necessarily different) vertices connected by (at least) one edge. (Contributed by Alexander van der Vekens, 19-Sep-2018.) (Revised by AV, 25-Apr-2021.)
(𝑊 ∈ (2 ClWWalksN 𝐺) ↔ ((♯‘𝑊) = 2 ∧ 𝑊 ∈ Word (Vtx‘𝐺) ∧ {(𝑊‘0), (𝑊‘1)} ∈ (Edg‘𝐺)))
 
Theoremclwwlkext2edg 16417 If a word concatenated with a vertex represents a closed walk (in a graph), there is an edge between this vertex and the last vertex of the word, and between this vertex and the first vertex of the word. (Contributed by Alexander van der Vekens, 3-Oct-2018.) (Revised by AV, 27-Apr-2021.) (Proof shortened by AV, 22-Mar-2022.)
𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (((𝑊 ∈ Word 𝑉𝑍𝑉𝑁 ∈ (ℤ‘2)) ∧ (𝑊 ++ ⟨“𝑍”⟩) ∈ (𝑁 ClWWalksN 𝐺)) → ({(lastS‘𝑊), 𝑍} ∈ 𝐸 ∧ {𝑍, (𝑊‘0)} ∈ 𝐸))
 
Theoremclwwlknccat 16418 The concatenation of two words representing closed walks anchored at the same vertex represents a closed walk with a length which is the sum of the lengths of the two walks. The resulting walk is a "double loop", starting at the common vertex, coming back to the common vertex by the first walk, following the second walk and finally coming back to the common vertex again. (Contributed by AV, 24-Apr-2022.)
((𝐴 ∈ (𝑀 ClWWalksN 𝐺) ∧ 𝐵 ∈ (𝑁 ClWWalksN 𝐺) ∧ (𝐴‘0) = (𝐵‘0)) → (𝐴 ++ 𝐵) ∈ ((𝑀 + 𝑁) ClWWalksN 𝐺))
 
Theoremumgr2cwwk2dif 16419 If a word represents a closed walk of length at least 2 in a multigraph, the first two symbols of the word must be different. (Contributed by Alexander van der Vekens, 17-Jun-2018.) (Revised by AV, 30-Apr-2021.)
((𝐺 ∈ UMGraph ∧ 𝑁 ∈ (ℤ‘2) ∧ 𝑊 ∈ (𝑁 ClWWalksN 𝐺)) → (𝑊‘1) ≠ (𝑊‘0))
 
Theoremumgr2cwwkdifex 16420* If a word represents a closed walk of length at least 2 in a undirected simple graph, there must be a symbol different from the first symbol of the word. (Contributed by Alexander van der Vekens, 17-Jun-2018.) (Revised by AV, 30-Apr-2021.)
((𝐺 ∈ UMGraph ∧ 𝑁 ∈ (ℤ‘2) ∧ 𝑊 ∈ (𝑁 ClWWalksN 𝐺)) → ∃𝑖 ∈ (0..^𝑁)(𝑊𝑖) ≠ (𝑊‘0))
 
12.3.3.3  Closed walks on a vertex of a fixed length as words
 
Syntaxcclwwlknon 16421 Extend class notation with closed walks (in an undirected graph) anchored at a fixed vertex and of a fixed length as word over the set of vertices.
class ClWWalksNOn
 
Definitiondf-clwwlknon 16422* Define the set of all closed walks a graph 𝑔, anchored at a fixed vertex 𝑣 (i.e., a walk starting and ending at the fixed vertex 𝑣, also called "a closed walk on vertex 𝑣") and having a fixed length 𝑛 as words over the set of vertices. Such a word corresponds to the sequence v=p(0) p(1) ... p(n-1) of the vertices in a closed walk p(0) e(f(1)) p(1) e(f(2)) ... p(n-1) e(f(n)) p(n)=p(0)=v . The set ((𝑣(ClWWalksNOn‘𝑔)𝑛) corresponds to the set of "walks from v to v of length n" in a statement of [Huneke] p. 2. (Contributed by AV, 24-Feb-2022.)
ClWWalksNOn = (𝑔 ∈ V ↦ (𝑣 ∈ (Vtx‘𝑔), 𝑛 ∈ ℕ0 ↦ {𝑤 ∈ (𝑛 ClWWalksN 𝑔) ∣ (𝑤‘0) = 𝑣}))
 
Theoremclwwlknonmpo 16423* (ClWWalksNOn‘𝐺) is an operator mapping a vertex 𝑣 and a nonnegative integer 𝑛 to the set of closed walks on 𝑣 of length 𝑛 as words over the set of vertices in a graph 𝐺. (Contributed by AV, 25-Feb-2022.) (Proof shortened by AV, 2-Mar-2024.)
(ClWWalksNOn‘𝐺) = (𝑣 ∈ (Vtx‘𝐺), 𝑛 ∈ ℕ0 ↦ {𝑤 ∈ (𝑛 ClWWalksN 𝐺) ∣ (𝑤‘0) = 𝑣})
 
Theoremclwwlknon 16424* The set of closed walks on vertex 𝑋 of length 𝑁 in a graph 𝐺 as words over the set of vertices. (Contributed by Alexander van der Vekens, 14-Sep-2018.) (Revised by AV, 28-May-2021.) (Revised by AV, 24-Mar-2022.)
(𝑋(ClWWalksNOn‘𝐺)𝑁) = {𝑤 ∈ (𝑁 ClWWalksN 𝐺) ∣ (𝑤‘0) = 𝑋}
 
Theoremisclwwlknon 16425 A word over the set of vertices representing a closed walk on vertex 𝑋 of length 𝑁 in a graph 𝐺. (Contributed by AV, 25-Feb-2022.) (Revised by AV, 24-Mar-2022.)
(𝑊 ∈ (𝑋(ClWWalksNOn‘𝐺)𝑁) ↔ (𝑊 ∈ (𝑁 ClWWalksN 𝐺) ∧ (𝑊‘0) = 𝑋))
 
Theoremclwwlk0on0 16426 There is no word over the set of vertices representing a closed walk on vertex 𝑋 of length 0 in a graph 𝐺. (Contributed by AV, 17-Feb-2022.) (Revised by AV, 25-Feb-2022.)
(𝑋(ClWWalksNOn‘𝐺)0) = ∅
 
Theoremclwwlknonel 16427* Characterization of a word over the set of vertices representing a closed walk on vertex 𝑋 of (nonzero) length 𝑁 in a graph 𝐺. This theorem would not hold for 𝑁 = 0 if 𝑊 = 𝑋 = ∅. (Contributed by Alexander van der Vekens, 20-Sep-2018.) (Revised by AV, 28-May-2021.) (Revised by AV, 24-Mar-2022.)
𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (𝑁 ≠ 0 → (𝑊 ∈ (𝑋(ClWWalksNOn‘𝐺)𝑁) ↔ ((𝑊 ∈ Word 𝑉 ∧ ∀𝑖 ∈ (0..^((♯‘𝑊) − 1)){(𝑊𝑖), (𝑊‘(𝑖 + 1))} ∈ 𝐸 ∧ {(lastS‘𝑊), (𝑊‘0)} ∈ 𝐸) ∧ (♯‘𝑊) = 𝑁 ∧ (𝑊‘0) = 𝑋)))
 
Theoremclwwlknonccat 16428 The concatenation of two words representing closed walks on a vertex 𝑋 represents a closed walk on vertex 𝑋. The resulting walk is a "double loop", starting at vertex 𝑋, coming back to 𝑋 by the first walk, following the second walk and finally coming back to 𝑋 again. (Contributed by AV, 24-Apr-2022.)
((𝐴 ∈ (𝑋(ClWWalksNOn‘𝐺)𝑀) ∧ 𝐵 ∈ (𝑋(ClWWalksNOn‘𝐺)𝑁)) → (𝐴 ++ 𝐵) ∈ (𝑋(ClWWalksNOn‘𝐺)(𝑀 + 𝑁)))
 
Theoremclwwlknon2 16429* The set of closed walks on vertex 𝑋 of length 2 in a graph 𝐺 as words over the set of vertices. (Contributed by AV, 5-Mar-2022.) (Revised by AV, 25-Mar-2022.)
𝐶 = (ClWWalksNOn‘𝐺)       (𝑋𝐶2) = {𝑤 ∈ (2 ClWWalksN 𝐺) ∣ (𝑤‘0) = 𝑋}
 
Theoremclwwlknon2x 16430* The set of closed walks on vertex 𝑋 of length 2 in a graph 𝐺 as words over the set of vertices, definition of ClWWalksN expanded. (Contributed by Alexander van der Vekens, 19-Sep-2018.) (Revised by AV, 25-Mar-2022.)
𝐶 = (ClWWalksNOn‘𝐺)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (𝑋𝐶2) = {𝑤 ∈ Word 𝑉 ∣ ((♯‘𝑤) = 2 ∧ {(𝑤‘0), (𝑤‘1)} ∈ 𝐸 ∧ (𝑤‘0) = 𝑋)}
 
Theorems2elclwwlknon2 16431 Sufficient conditions of a doubleton word to represent a closed walk on vertex 𝑋 of length 2. (Contributed by AV, 11-May-2022.)
𝐶 = (ClWWalksNOn‘𝐺)    &   𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       ((𝑋𝑉𝑌𝑉 ∧ {𝑋, 𝑌} ∈ 𝐸) → ⟨“𝑋𝑌”⟩ ∈ (𝑋𝐶2))
 
Theoremclwwlknonex2lem1 16432 Lemma 1 for clwwlknonex2 16434: Transformation of a special half-open integer range into a union of a smaller half-open integer range and an unordered pair. This Lemma would not hold for 𝑁 = 2, i.e., (♯‘𝑊) = 0, because (0..^(((♯‘𝑊) + 2) − 1)) = (0..^((0 + 2) − 1)) = (0..^1) = {0} ≠ {-1, 0} = (∅ ∪ {-1, 0}) = ((0..^(0 − 1)) ∪ {(0 − 1), 0}) = ((0..^((♯‘𝑊) − 1)) ∪ {((♯‘𝑊) − 1), (♯‘𝑊)}). (Contributed by AV, 22-Sep-2018.) (Revised by AV, 26-Jan-2022.)
((𝑁 ∈ (ℤ‘3) ∧ (♯‘𝑊) = (𝑁 − 2)) → (0..^(((♯‘𝑊) + 2) − 1)) = ((0..^((♯‘𝑊) − 1)) ∪ {((♯‘𝑊) − 1), (♯‘𝑊)}))
 
Theoremclwwlknonex2lem2 16433* Lemma 2 for clwwlknonex2 16434: Transformation of a walk and two edges into a walk extended by two vertices/edges. (Contributed by AV, 22-Sep-2018.) (Revised by AV, 27-Jan-2022.)
𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       ((((𝑋𝑉𝑌𝑉𝑁 ∈ (ℤ‘3)) ∧ ((𝑊 ∈ Word 𝑉 ∧ ∀𝑖 ∈ (0..^((♯‘𝑊) − 1)){(𝑊𝑖), (𝑊‘(𝑖 + 1))} ∈ 𝐸 ∧ {(lastS‘𝑊), (𝑊‘0)} ∈ 𝐸) ∧ (♯‘𝑊) = (𝑁 − 2) ∧ (𝑊‘0) = 𝑋)) ∧ {𝑋, 𝑌} ∈ 𝐸) → ∀𝑖 ∈ ((0..^((♯‘𝑊) − 1)) ∪ {((♯‘𝑊) − 1), (♯‘𝑊)}){(((𝑊 ++ ⟨“𝑋”⟩) ++ ⟨“𝑌”⟩)‘𝑖), (((𝑊 ++ ⟨“𝑋”⟩) ++ ⟨“𝑌”⟩)‘(𝑖 + 1))} ∈ 𝐸)
 
Theoremclwwlknonex2 16434 Extending a closed walk 𝑊 on vertex 𝑋 by an additional edge (forth and back) results in a closed walk. (Contributed by AV, 22-Sep-2018.) (Revised by AV, 25-Feb-2022.) (Proof shortened by AV, 28-Mar-2022.)
𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (((𝑋𝑉𝑌𝑉𝑁 ∈ (ℤ‘3)) ∧ {𝑋, 𝑌} ∈ 𝐸𝑊 ∈ (𝑋(ClWWalksNOn‘𝐺)(𝑁 − 2))) → ((𝑊 ++ ⟨“𝑋”⟩) ++ ⟨“𝑌”⟩) ∈ (𝑁 ClWWalksN 𝐺))
 
Theoremclwwlknonex2e 16435 Extending a closed walk 𝑊 on vertex 𝑋 by an additional edge (forth and back) results in a closed walk on vertex 𝑋. (Contributed by AV, 17-Apr-2022.)
𝑉 = (Vtx‘𝐺)    &   𝐸 = (Edg‘𝐺)       (((𝑋𝑉𝑌𝑉𝑁 ∈ (ℤ‘3)) ∧ {𝑋, 𝑌} ∈ 𝐸𝑊 ∈ (𝑋(ClWWalksNOn‘𝐺)(𝑁 − 2))) → ((𝑊 ++ ⟨“𝑋”⟩) ++ ⟨“𝑌”⟩) ∈ (𝑋(ClWWalksNOn‘𝐺)𝑁))
 
Theoremclwwlknun 16436* The set of closed walks of fixed length 𝑁 in a simple graph 𝐺 is the union of the closed walks of the fixed length 𝑁 on each of the vertices of graph 𝐺. (Contributed by Alexander van der Vekens, 7-Oct-2018.) (Revised by AV, 28-May-2021.) (Revised by AV, 3-Mar-2022.) (Proof shortened by AV, 28-Mar-2022.)
𝑉 = (Vtx‘𝐺)       (𝐺 ∈ USGraph → (𝑁 ClWWalksN 𝐺) = 𝑥𝑉 (𝑥(ClWWalksNOn‘𝐺)𝑁))
 
12.4  Eulerian paths and the Konigsberg Bridge problem
 
12.4.1  Eulerian paths

According to Wikipedia ("Eulerian path", 9-Mar-2021, https://en.wikipedia.org/wiki/Eulerian_path): "In graph theory, an Eulerian trail (or Eulerian path) is a trail in a finite graph that visits every edge exactly once (allowing for revisiting vertices). Similarly, an Eulerian circuit or Eulerian cycle is an Eulerian trail that starts and ends on the same vertex. ... The term Eulerian graph has two common meanings in graph theory. One meaning is a graph with an Eulerian circuit, and the other is a graph with every vertex of even degree. These definitions coincide for connected graphs. ... A graph that has an Eulerian trail but not an Eulerian circuit is called semi-Eulerian."

 
Syntaxceupth 16437 Extend class notation with Eulerian paths.
class EulerPaths
 
Definitiondf-eupth 16438* Define the set of all Eulerian paths on an arbitrary graph. (Contributed by Mario Carneiro, 12-Mar-2015.) (Revised by AV, 18-Feb-2021.)
EulerPaths = (𝑔 ∈ V ↦ {⟨𝑓, 𝑝⟩ ∣ (𝑓(Trails‘𝑔)𝑝𝑓:(0..^(♯‘𝑓))–onto→dom (iEdg‘𝑔))})
 
Theoremreleupth 16439 The set (EulerPaths‘𝐺) of all Eulerian paths on 𝐺 is a set of pairs by our definition of an Eulerian path, and so is a relation. (Contributed by Mario Carneiro, 12-Mar-2015.) (Revised by AV, 18-Feb-2021.)
Rel (EulerPaths‘𝐺)
 
Theoremeupthsg 16440* The Eulerian paths on the graph 𝐺. (Contributed by AV, 18-Feb-2021.) (Revised by AV, 29-Oct-2021.)
𝐼 = (iEdg‘𝐺)       (𝐺𝑉 → (EulerPaths‘𝐺) = {⟨𝑓, 𝑝⟩ ∣ (𝑓(Trails‘𝐺)𝑝𝑓:(0..^(♯‘𝑓))–onto→dom 𝐼)})
 
Theoremeupthv 16441 The classes involved in a Eulerian path are sets. (Contributed by Jim Kingdon, 13-Mar-2026.)
(𝐹(EulerPaths‘𝐺)𝑃 → (𝐺 ∈ V ∧ 𝐹 ∈ V ∧ 𝑃 ∈ V))
 
Theoremiseupth 16442 The property "𝐹, 𝑃 is an Eulerian path on the graph 𝐺". An Eulerian path is defined as bijection 𝐹 from the edges to a set 0...(𝑁 − 1) and a function 𝑃:(0...𝑁)⟶𝑉 into the vertices such that for each 0 ≤ 𝑘 < 𝑁, 𝐹(𝑘) is an edge from 𝑃(𝑘) to 𝑃(𝑘 + 1). (Since the edges are undirected and there are possibly many edges between any two given vertices, we need to list both the edges and the vertices of the path separately.) (Contributed by Mario Carneiro, 12-Mar-2015.) (Revised by Mario Carneiro, 3-May-2015.) (Revised by AV, 18-Feb-2021.) (Revised by AV, 30-Oct-2021.)
𝐼 = (iEdg‘𝐺)       (𝐹(EulerPaths‘𝐺)𝑃 ↔ (𝐹(Trails‘𝐺)𝑃𝐹:(0..^(♯‘𝐹))–onto→dom 𝐼))
 
Theoremiseupthf1o 16443 The property "𝐹, 𝑃 is an Eulerian path on the graph 𝐺". An Eulerian path is defined as bijection 𝐹 from the edges to a set 0...(𝑁 − 1) and a function 𝑃:(0...𝑁)⟶𝑉 into the vertices such that for each 0 ≤ 𝑘 < 𝑁, 𝐹(𝑘) is an edge from 𝑃(𝑘) to 𝑃(𝑘 + 1). (Since the edges are undirected and there are possibly many edges between any two given vertices, we need to list both the edges and the vertices of the path separately.) (Contributed by Mario Carneiro, 12-Mar-2015.) (Revised by Mario Carneiro, 3-May-2015.) (Revised by AV, 18-Feb-2021.) (Revised by AV, 30-Oct-2021.)
𝐼 = (iEdg‘𝐺)       (𝐹(EulerPaths‘𝐺)𝑃 ↔ (𝐹(Walks‘𝐺)𝑃𝐹:(0..^(♯‘𝐹))–1-1-onto→dom 𝐼))
 
Theoremeupthi 16444 Properties of an Eulerian path. (Contributed by Mario Carneiro, 12-Mar-2015.) (Revised by AV, 18-Feb-2021.) (Proof shortened by AV, 30-Oct-2021.)
𝐼 = (iEdg‘𝐺)       (𝐹(EulerPaths‘𝐺)𝑃 → (𝐹(Walks‘𝐺)𝑃𝐹:(0..^(♯‘𝐹))–1-1-onto→dom 𝐼))
 
Theoremeupthf1o 16445 The 𝐹 function in an Eulerian path is a bijection from a half-open range of nonnegative integers to the set of edges. (Contributed by Mario Carneiro, 12-Mar-2015.) (Revised by AV, 18-Feb-2021.)
𝐼 = (iEdg‘𝐺)       (𝐹(EulerPaths‘𝐺)𝑃𝐹:(0..^(♯‘𝐹))–1-1-onto→dom 𝐼)
 
Theoremeupthfi 16446 Any graph with an Eulerian path is of finite size, i.e. with a finite number of edges. (Contributed by Mario Carneiro, 7-Apr-2015.) (Revised by AV, 18-Feb-2021.)
𝐼 = (iEdg‘𝐺)       (𝐹(EulerPaths‘𝐺)𝑃 → dom 𝐼 ∈ Fin)
 
Theoremeupthseg 16447 The 𝑁-th edge in an eulerian path is the edge having 𝑃(𝑁) and 𝑃(𝑁 + 1) as endpoints . (Contributed by Mario Carneiro, 12-Mar-2015.) (Revised by AV, 18-Feb-2021.)
𝐼 = (iEdg‘𝐺)       ((𝐹(EulerPaths‘𝐺)𝑃𝑁 ∈ (0..^(♯‘𝐹))) → {(𝑃𝑁), (𝑃‘(𝑁 + 1))} ⊆ (𝐼‘(𝐹𝑁)))
 
Theoremeupthcl 16448 An Eulerian path has length ♯(𝐹), which is an integer. (Contributed by Mario Carneiro, 12-Mar-2015.) (Revised by AV, 18-Feb-2021.)
(𝐹(EulerPaths‘𝐺)𝑃 → (♯‘𝐹) ∈ ℕ0)
 
Theoremeupthistrl 16449 An Eulerian path is a trail. (Contributed by Alexander van der Vekens, 24-Nov-2017.) (Revised by AV, 18-Feb-2021.)
(𝐹(EulerPaths‘𝐺)𝑃𝐹(Trails‘𝐺)𝑃)
 
Theoremeupthiswlk 16450 An Eulerian path is a walk. (Contributed by AV, 6-Apr-2021.)
(𝐹(EulerPaths‘𝐺)𝑃𝐹(Walks‘𝐺)𝑃)
 
Theoremeupthpf 16451 The 𝑃 function in an Eulerian path is a function from a finite sequence of nonnegative integers to the vertices. (Contributed by Mario Carneiro, 12-Mar-2015.) (Revised by AV, 18-Feb-2021.)
(𝐹(EulerPaths‘𝐺)𝑃𝑃:(0...(♯‘𝐹))⟶(Vtx‘𝐺))
 
Theoremeupthres 16452 The restriction 𝐻, 𝑄 of an Eulerian path 𝐹, 𝑃 to an initial segment of the path (of length 𝑁) forms an Eulerian path on the subgraph 𝑆 consisting of the edges in the initial segment. (Contributed by Mario Carneiro, 12-Mar-2015.) (Revised by Mario Carneiro, 3-May-2015.) (Revised by AV, 6-Mar-2021.) Hypothesis revised using the prefix operation. (Revised by AV, 30-Nov-2022.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑𝐹(EulerPaths‘𝐺)𝑃)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑 → (iEdg‘𝑆) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   𝐻 = (𝐹 prefix 𝑁)    &   𝑄 = (𝑃 ↾ (0...𝑁))    &   (Vtx‘𝑆) = 𝑉       (𝜑𝐻(EulerPaths‘𝑆)𝑄)
 
Theoremeupth2lem1 16453 Lemma for eupth2 . (Contributed by Mario Carneiro, 8-Apr-2015.)
(𝑈𝑉 → (𝑈 ∈ if(𝐴 = 𝐵, ∅, {𝐴, 𝐵}) ↔ (𝐴𝐵 ∧ (𝑈 = 𝐴𝑈 = 𝐵))))
 
Theoremeupth2lem2dc 16454 Lemma for eupth2 . (Contributed by Mario Carneiro, 8-Apr-2015.)
(𝜑𝐵𝑋)    &   (𝜑DECID 𝐴 = 𝐵)    &   (𝜑𝐵𝐶)    &   (𝜑𝐵 = 𝑈)       (𝜑 → (¬ 𝑈 ∈ if(𝐴 = 𝐵, ∅, {𝐴, 𝐵}) ↔ 𝑈 ∈ if(𝐴 = 𝐶, ∅, {𝐴, 𝐶})))
 
Theoremtrlsegvdeglem1 16455 Lemma for trlsegvdeg . (Contributed by AV, 20-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)       (𝜑 → ((𝑃𝑁) ∈ 𝑉 ∧ (𝑃‘(𝑁 + 1)) ∈ 𝑉))
 
Theoremtrlsegvdeglem2 16456 Lemma for trlsegvdeg . (Contributed by AV, 20-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))       (𝜑 → Fun (iEdg‘𝑋))
 
Theoremtrlsegvdeglem3 16457 Lemma for trlsegvdeg . (Contributed by AV, 20-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))       (𝜑 → Fun (iEdg‘𝑌))
 
Theoremtrlsegvdeglem4 16458 Lemma for trlsegvdeg . (Contributed by AV, 21-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))       (𝜑 → dom (iEdg‘𝑋) = ((𝐹 “ (0..^𝑁)) ∩ dom 𝐼))
 
Theoremtrlsegvdeglem5 16459 Lemma for trlsegvdeg . (Contributed by AV, 21-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))       (𝜑 → dom (iEdg‘𝑌) = {(𝐹𝑁)})
 
Theoremtrlsegvdeglem6 16460 Lemma for trlsegvdeg . (Contributed by AV, 21-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))       (𝜑 → dom (iEdg‘𝑋) ∈ Fin)
 
Theoremtrlsegvdeglem7 16461 Lemma for trlsegvdeg . (Contributed by AV, 21-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))       (𝜑 → dom (iEdg‘𝑌) ∈ Fin)
 
Theoremtrlsegvdegfi 16462 The effect on vertex degree of adding one edge to a trail. In the following, a subgraph induced by a segment of a trail is called a "subtrail": For any subtrail 𝑍 of a trail 𝐹, 𝑃 in a pseudograph 𝐺 which is composed of subtrails 𝑋 and 𝑌, where 𝑌 consists of a single edge, the vertex degree of any vertex 𝑈 within 𝑍 is the sum of the vertex degree of 𝑈 within 𝑋 and the vertex degree of 𝑈 within 𝑌. Note that this theorem would not hold for arbitrary walks (if the last edge was identical with a previous edge, the degree of the vertices incident with this edge would not be increased because of this edge). (Contributed by Mario Carneiro, 8-Apr-2015.) (Revised by AV, 20-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))    &   (𝜑𝐺 ∈ UPGraph)    &   (𝜑𝑉 ∈ Fin)       (𝜑 → ((VtxDeg‘𝑍)‘𝑈) = (((VtxDeg‘𝑋)‘𝑈) + ((VtxDeg‘𝑌)‘𝑈)))
 
Theoremeupth2lem3lem1fi 16463 Lemma for eupth2lem3fi 16471. (Contributed by AV, 21-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))    &   (𝜑𝐺 ∈ UPGraph)    &   (𝜑𝑉 ∈ Fin)       (𝜑 → ((VtxDeg‘𝑋)‘𝑈) ∈ ℕ0)
 
Theoremeupth2lem3lem2fi 16464 Lemma for eupth2lem3fi 16471. (Contributed by AV, 21-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))    &   (𝜑𝐺 ∈ UPGraph)    &   (𝜑𝑉 ∈ Fin)       (𝜑 → ((VtxDeg‘𝑌)‘𝑈) ∈ ℕ0)
 
Theoremeupth2lem3lem3fi 16465* Lemma for eupth2lem3fi 16471. If a loop {(𝑃𝑁), (𝑃‘(𝑁 + 1))} is added to a trail, the degree of the vertices with odd degree remains odd (regarding the subgraphs induced by the involved trails). (Contributed by Mario Carneiro, 8-Apr-2015.) (Revised by AV, 21-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))    &   (𝜑𝐺 ∈ UPGraph)    &   (𝜑𝑉 ∈ Fin)    &   (𝜑 → {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝑋)‘𝑥)} = if((𝑃‘0) = (𝑃𝑁), ∅, {(𝑃‘0), (𝑃𝑁)}))    &   (𝜑 → if-((𝑃𝑁) = (𝑃‘(𝑁 + 1)), (𝐼‘(𝐹𝑁)) = {(𝑃𝑁)}, {(𝑃𝑁), (𝑃‘(𝑁 + 1))} ⊆ (𝐼‘(𝐹𝑁))))       ((𝜑 ∧ (𝑃𝑁) = (𝑃‘(𝑁 + 1))) → (¬ 2 ∥ (((VtxDeg‘𝑋)‘𝑈) + ((VtxDeg‘𝑌)‘𝑈)) ↔ 𝑈 ∈ if((𝑃‘0) = (𝑃‘(𝑁 + 1)), ∅, {(𝑃‘0), (𝑃‘(𝑁 + 1))})))
 
Theoremeupth2lem3lem6fi 16466* If an edge (not a loop) is added to a trail, the degree of vertices not being end vertices of this edge remains odd if it was odd before (regarding the subgraphs induced by the involved trails). Remark: This seems to be not valid for hyperedges joining more vertices than (𝑃‘0) and (𝑃𝑁): if there is a third vertex in the edge, and this vertex is already contained in the trail, then the degree of this vertex could be affected by this edge! (Contributed by Mario Carneiro, 8-Apr-2015.) (Revised by AV, 25-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))    &   (𝜑𝐺 ∈ UPGraph)    &   (𝜑𝑉 ∈ Fin)    &   (𝜑 → {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝑋)‘𝑥)} = if((𝑃‘0) = (𝑃𝑁), ∅, {(𝑃‘0), (𝑃𝑁)}))    &   (𝜑 → (𝐼‘(𝐹𝑁)) = {(𝑃𝑁), (𝑃‘(𝑁 + 1))})       ((𝜑 ∧ (𝑃𝑁) ≠ (𝑃‘(𝑁 + 1)) ∧ (𝑈 ≠ (𝑃𝑁) ∧ 𝑈 ≠ (𝑃‘(𝑁 + 1)))) → (¬ 2 ∥ (((VtxDeg‘𝑋)‘𝑈) + ((VtxDeg‘𝑌)‘𝑈)) ↔ 𝑈 ∈ if((𝑃‘0) = (𝑃‘(𝑁 + 1)), ∅, {(𝑃‘0), (𝑃‘(𝑁 + 1))})))
 
Theoremeupth2lem3lem5 16467 Lemma for eupth2fi 16474. (Contributed by AV, 25-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))    &   (𝜑 → {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝑋)‘𝑥)} = if((𝑃‘0) = (𝑃𝑁), ∅, {(𝑃‘0), (𝑃𝑁)}))    &   (𝜑 → (𝐼‘(𝐹𝑁)) = {(𝑃𝑁), (𝑃‘(𝑁 + 1))})       (𝜑 → (𝐼‘(𝐹𝑁)) ∈ 𝒫 𝑉)
 
Theoremeupth2lem3lem4fi 16468* Lemma for eupth2lem3fi 16471. If an edge (not a loop) is added to a trail, the degree of the end vertices of this edge remains odd if it was odd before (regarding the subgraphs induced by the involved trails). (Contributed by Mario Carneiro, 8-Apr-2015.) (Revised by AV, 25-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))    &   (𝜑𝐺 ∈ UMGraph)    &   (𝜑𝑉 ∈ Fin)    &   (𝜑 → {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝑋)‘𝑥)} = if((𝑃‘0) = (𝑃𝑁), ∅, {(𝑃‘0), (𝑃𝑁)}))    &   (𝜑 → if-((𝑃𝑁) = (𝑃‘(𝑁 + 1)), (𝐼‘(𝐹𝑁)) = {(𝑃𝑁)}, {(𝑃𝑁), (𝑃‘(𝑁 + 1))} ⊆ (𝐼‘(𝐹𝑁))))    &   (𝜑 → (𝐼‘(𝐹𝑁)) ∈ 𝒫 𝑉)       ((𝜑 ∧ (𝑃𝑁) ≠ (𝑃‘(𝑁 + 1)) ∧ (𝑈 = (𝑃𝑁) ∨ 𝑈 = (𝑃‘(𝑁 + 1)))) → (¬ 2 ∥ (((VtxDeg‘𝑋)‘𝑈) + ((VtxDeg‘𝑌)‘𝑈)) ↔ 𝑈 ∈ if((𝑃‘0) = (𝑃‘(𝑁 + 1)), ∅, {(𝑃‘0), (𝑃‘(𝑁 + 1))})))
 
Theoremeupth2lem3lem7fi 16469* Lemma for eupth2lem3fi 16471: Combining trlsegvdegfi 16462, eupth2lem3lem3fi 16465, eupth2lem3lem4fi 16468 and eupth2lem3lem6fi 16466. (Contributed by Mario Carneiro, 8-Apr-2015.) (Revised by AV, 27-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝑁 ∈ (0..^(♯‘𝐹)))    &   (𝜑𝑈𝑉)    &   (𝜑𝐹(Trails‘𝐺)𝑃)    &   (𝜑 → (Vtx‘𝑋) = 𝑉)    &   (𝜑 → (Vtx‘𝑌) = 𝑉)    &   (𝜑 → (Vtx‘𝑍) = 𝑉)    &   (𝜑 → (iEdg‘𝑋) = (𝐼 ↾ (𝐹 “ (0..^𝑁))))    &   (𝜑 → (iEdg‘𝑌) = {⟨(𝐹𝑁), (𝐼‘(𝐹𝑁))⟩})    &   (𝜑 → (iEdg‘𝑍) = (𝐼 ↾ (𝐹 “ (0...𝑁))))    &   (𝜑𝐺 ∈ UMGraph)    &   (𝜑𝑉 ∈ Fin)    &   (𝜑 → {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝑋)‘𝑥)} = if((𝑃‘0) = (𝑃𝑁), ∅, {(𝑃‘0), (𝑃𝑁)}))    &   (𝜑 → (𝐼‘(𝐹𝑁)) = {(𝑃𝑁), (𝑃‘(𝑁 + 1))})       (𝜑 → (¬ 2 ∥ ((VtxDeg‘𝑍)‘𝑈) ↔ 𝑈 ∈ if((𝑃‘0) = (𝑃‘(𝑁 + 1)), ∅, {(𝑃‘0), (𝑃‘(𝑁 + 1))})))
 
Theoremeupthvdres 16470 The vertex degree remains the same for all vertices if the edges are restricted to the edges of an Eulerian path. (Contributed by Mario Carneiro, 8-Apr-2015.) (Revised by AV, 26-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑𝐺𝑊)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝐹(EulerPaths‘𝐺)𝑃)    &   𝐻 = ⟨𝑉, (𝐼 ↾ (𝐹 “ (0..^(♯‘𝐹))))⟩       (𝜑 → (VtxDeg‘𝐻) = (VtxDeg‘𝐺))
 
Theoremeupth2lem3fi 16471* Lemma for eupth2fi 16474. (Contributed by Mario Carneiro, 8-Apr-2015.) (Revised by AV, 26-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑𝐺 ∈ UMGraph)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝐹(EulerPaths‘𝐺)𝑃)    &   (𝜑𝑉 ∈ Fin)    &   𝐻 = ⟨𝑉, (𝐼 ↾ (𝐹 “ (0..^𝑁)))⟩    &   𝑋 = ⟨𝑉, (𝐼 ↾ (𝐹 “ (0..^(𝑁 + 1))))⟩    &   (𝜑𝑁 ∈ ℕ0)    &   (𝜑 → (𝑁 + 1) ≤ (♯‘𝐹))    &   (𝜑𝑈𝑉)    &   (𝜑 → {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐻)‘𝑥)} = if((𝑃‘0) = (𝑃𝑁), ∅, {(𝑃‘0), (𝑃𝑁)}))       (𝜑 → (¬ 2 ∥ ((VtxDeg‘𝑋)‘𝑈) ↔ 𝑈 ∈ if((𝑃‘0) = (𝑃‘(𝑁 + 1)), ∅, {(𝑃‘0), (𝑃‘(𝑁 + 1))})))
 
Theoremeupth2lembfi 16472* Lemma for eupth2fi 16474 (induction basis): There are no vertices of odd degree in an Eulerian path of length 0, having no edge and identical endpoints (the single vertex of the Eulerian path). (Contributed by Mario Carneiro, 8-Apr-2015.) (Revised by AV, 26-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑𝐺 ∈ UMGraph)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝐹(EulerPaths‘𝐺)𝑃)    &   (𝜑𝑉 ∈ Fin)       (𝜑 → {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘⟨𝑉, (𝐼 ↾ (𝐹 “ (0..^0)))⟩)‘𝑥)} = ∅)
 
Theoremeupth2lemsfi 16473* Lemma for eupth2fi 16474 (induction step): The only vertices of odd degree in a graph with an Eulerian path are the endpoints, and then only if the endpoints are distinct, if the Eulerian path shortened by one edge has this property. (Contributed by Mario Carneiro, 8-Apr-2015.) (Revised by AV, 26-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑𝐺 ∈ UMGraph)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝐹(EulerPaths‘𝐺)𝑃)    &   (𝜑𝑉 ∈ Fin)       ((𝜑𝑛 ∈ ℕ0) → ((𝑛 ≤ (♯‘𝐹) → {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘⟨𝑉, (𝐼 ↾ (𝐹 “ (0..^𝑛)))⟩)‘𝑥)} = if((𝑃‘0) = (𝑃𝑛), ∅, {(𝑃‘0), (𝑃𝑛)})) → ((𝑛 + 1) ≤ (♯‘𝐹) → {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘⟨𝑉, (𝐼 ↾ (𝐹 “ (0..^(𝑛 + 1))))⟩)‘𝑥)} = if((𝑃‘0) = (𝑃‘(𝑛 + 1)), ∅, {(𝑃‘0), (𝑃‘(𝑛 + 1))}))))
 
Theoremeupth2fi 16474* The only vertices of odd degree in a graph with an Eulerian path are the endpoints, and then only if the endpoints are distinct. (Contributed by Mario Carneiro, 8-Apr-2015.) (Revised by AV, 26-Feb-2021.)
𝑉 = (Vtx‘𝐺)    &   𝐼 = (iEdg‘𝐺)    &   (𝜑𝐺 ∈ UMGraph)    &   (𝜑 → Fun 𝐼)    &   (𝜑𝐹(EulerPaths‘𝐺)𝑃)    &   (𝜑𝑉 ∈ Fin)       (𝜑 → {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)} = if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}))
 
Theoremeulerpathprum 16475* A graph with an Eulerian path has either zero or two vertices of odd degree. (Contributed by Mario Carneiro, 7-Apr-2015.) (Revised by AV, 26-Feb-2021.)
𝑉 = (Vtx‘𝐺)       ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2})
 
Theoremeulerpathum 16476* A multigraph with an Eulerian path has either zero or two vertices of odd degree. (Contributed by Mario Carneiro, 7-Apr-2015.) (Revised by AV, 26-Feb-2021.)
𝑉 = (Vtx‘𝐺)       ((𝐺 ∈ UMGraph ∧ ∃𝑗 𝑗 ∈ (EulerPaths‘𝐺) ∧ 𝑉 ∈ Fin) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2})
 
12.4.2  The Königsberg Bridge problem

According to Wikipedia ("Seven Bridges of Königsberg", 9-Mar-2021, https://en.wikipedia.org/wiki/Seven_Bridges_of_Koenigsberg): "The Seven Bridges of Königsberg is a historically notable problem in mathematics. Its negative resolution by Leonhard Euler in 1736 laid the foundations of graph theory and prefigured the idea of topology. The city of Königsberg in [East] Prussia (now Kaliningrad, Russia) was set on both sides of the Pregel River, and included two large islands - Kneiphof and Lomse - which were connected to each other, or to the two mainland portions of the city, by seven bridges. The problem was to devise a walk through the city that would cross each of those bridges once and only once.". Euler proved that the problem has no solution by applying Euler's theorem to the Königsberg graph, which is obtained by replacing each land mass with an abstract "vertex" or node, and each bridge with an abstract connection, an "edge", which connects two land masses/vertices. The Königsberg graph 𝐺 is a multigraph consisting of 4 vertices and 7 edges, represented by the following ordered pair: 𝐺 = ⟨(0...3), ⟨“{0, 1}{0, 2} {0, 3}{1, 2}{1, 2}{2, 3}{2, 3}”⟩⟩, see konigsbergumgr 16482. konigsberg 16488 shows that the Königsberg graph has no Eulerian path, thus the Königsberg Bridge problem has no solution.

 
Theoremkonigsbergvtx 16477 The set of vertices of the Königsberg graph 𝐺. (Contributed by AV, 28-Feb-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       (Vtx‘𝐺) = (0...3)
 
Theoremkonigsbergiedg 16478 The indexed edges of the Königsberg graph 𝐺. (Contributed by AV, 28-Feb-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       (iEdg‘𝐺) = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩
 
Theoremkonigsbergiedgwen 16479* The indexed edges of the Königsberg graph 𝐺 is a word over the pairs of vertices. (Contributed by AV, 28-Feb-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       𝐸 ∈ Word {𝑥 ∈ 𝒫 𝑉𝑥 ≈ 2o}
 
Theoremkonigsbergssiedgwpren 16480* Each subset of the indexed edges of the Königsberg graph 𝐺 is a word over the pairs of vertices. (Contributed by AV, 28-Feb-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V ∧ 𝐸 = (𝐴 ++ 𝐵)) → 𝐴 ∈ Word {𝑥 ∈ 𝒫 𝑉𝑥 ≈ 2o})
 
Theoremkonigsbergssiedgwen 16481* Each subset of the indexed edges of the Königsberg graph 𝐺 is a word over the pairs of vertices. (Contributed by AV, 28-Feb-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V ∧ 𝐸 = (𝐴 ++ 𝐵)) → 𝐴 ∈ Word {𝑥 ∈ 𝒫 𝑉 ∣ (𝑥 ≈ 1o𝑥 ≈ 2o)})
 
Theoremkonigsbergumgr 16482 The Königsberg graph 𝐺 is a multigraph. (Contributed by AV, 28-Feb-2021.) (Revised by AV, 9-Mar-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       𝐺 ∈ UMGraph
 
Theoremkonigsberglem1 16483 Lemma 1 for konigsberg 16488: Vertex 0 has degree three. (Contributed by Mario Carneiro, 11-Mar-2015.) (Revised by Mario Carneiro, 28-Feb-2016.) (Revised by AV, 4-Mar-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       ((VtxDeg‘𝐺)‘0) = 3
 
Theoremkonigsberglem2 16484 Lemma 2 for konigsberg 16488: Vertex 1 has degree three. (Contributed by Mario Carneiro, 11-Mar-2015.) (Revised by Mario Carneiro, 28-Feb-2016.) (Revised by AV, 4-Mar-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       ((VtxDeg‘𝐺)‘1) = 3
 
Theoremkonigsberglem3 16485 Lemma 3 for konigsberg 16488: Vertex 3 has degree three. (Contributed by Mario Carneiro, 11-Mar-2015.) (Revised by Mario Carneiro, 28-Feb-2016.) (Revised by AV, 4-Mar-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       ((VtxDeg‘𝐺)‘3) = 3
 
Theoremkonigsberglem4 16486* Lemma 4 for konigsberg 16488: Vertices 0, 1, 3 are vertices of odd degree. (Contributed by Mario Carneiro, 11-Mar-2015.) (Revised by AV, 28-Feb-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       {0, 1, 3} ⊆ {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}
 
Theoremkonigsberglem5 16487* Lemma 5 for konigsberg 16488: The set of vertices of odd degree is greater than 2. (Contributed by Mario Carneiro, 11-Mar-2015.) (Revised by AV, 28-Feb-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       2 < (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)})
 
Theoremkonigsberg 16488 The Königsberg Bridge problem. If 𝐺 is the Königsberg graph, i.e. a graph on four vertices 0, 1, 2, 3, with edges {0, 1}, {0, 2}, {0, 3}, {1, 2}, {1, 2}, {2, 3}, {2, 3}, then vertices 0, 1, 3 each have degree three, and 2 has degree five, so there are four vertices of odd degree and thus by eulerpathum 16476 the graph cannot have an Eulerian path. It is sufficient to show that there are 3 vertices of odd degree, since a graph having an Eulerian path can only have 0 or 2 vertices of odd degree. This is Metamath 100 proof #54. (Contributed by Mario Carneiro, 11-Mar-2015.) (Revised by Mario Carneiro, 28-Feb-2016.) (Revised by AV, 9-Mar-2021.)
𝑉 = (0...3)    &   𝐸 = ⟨“{0, 1} {0, 2} {0, 3} {1, 2} {1, 2} {2, 3} {2, 3}”⟩    &   𝐺 = ⟨𝑉, 𝐸       (EulerPaths‘𝐺) = ∅
 
PART 13  GUIDES AND MISCELLANEA
 
13.1  Guides (conventions, explanations, and examples)
 
13.1.1  Conventions

This section describes the conventions we use. These conventions often refer to existing mathematical practices, which are discussed in more detail in other references. The following sources lay out how mathematics is developed without the law of the excluded middle. Of course, there are a greater number of sources which assume excluded middle and most of what is in them applies here too (especially in a treatment such as ours which is built on first-order logic and set theory, rather than, say, type theory). Studying how a topic is treated in the Metamath Proof Explorer and the references therein is often a good place to start (and is easy to compare with the Intuitionistic Logic Explorer). The textbooks provide a motivation for what we are doing, whereas Metamath lets you see in detail all hidden and implicit steps. Most standard theorems are accompanied by citations. Some closely followed texts include the following:

  • Axioms of propositional calculus - Stanford Encyclopedia of Philosophy or [Heyting].
  • Axioms of predicate calculus - our axioms are adapted from the ones in the Metamath Proof Explorer.
  • Theorems of propositional calculus - [Heyting].
  • Theorems of pure predicate calculus - Metamath Proof Explorer.
  • Theorems of equality and substitution - Metamath Proof Explorer.
  • Axioms of set theory - [Crosilla].
  • Development of set theory - Chapter 10 of [HoTT].
  • Construction of real and complex numbers - Chapter 11 of [HoTT]; [BauerTaylor].
  • Theorems about real numbers - [Geuvers].
 
Theoremconventions 16489 Unless there is a reason to diverge, we follow the conventions of the Metamath Proof Explorer (MPE, set.mm). This list of conventions is intended to be read in conjunction with the corresponding conventions in the Metamath Proof Explorer, and only the differences are described below.
  • Minimizing axioms and the axiom of choice. We prefer proofs that depend on fewer and/or weaker axioms, even if the proofs are longer. In particular, our choice of IZF (Intuitionistic Zermelo-Fraenkel) over CZF (Constructive Zermelo-Fraenkel, a weaker system) was just an expedient choice because IZF is easier to formalize in Metamath. You can find some development using CZF in BJ's mathbox starting at wbd 16582 (and the section header just above it). As for the axiom of choice, the full axiom of choice implies excluded middle as seen at acexmid 6049, although some authors will use countable choice or dependent choice. For example, countable choice or excluded middle is needed to show that the Cauchy reals coincide with the Dedekind reals - Corollary 11.4.3 of [HoTT], p. (varies).
  • Junk/undefined results. Much of the discussion of this topic in the Metamath Proof Explorer applies except that certain techniques are not available to us. For example, the Metamath Proof Explorer will often say "if a function is evaluated within its domain, a certain result follows; if the function is evaluated outside its domain, the same result follows. Since the function must be evaluated within its domain or outside it, the result follows unconditionally" (the use of excluded middle in this argument is perhaps obvious when stated this way). Often, the easiest fix will be to prove we are evaluating functions within their domains, other times it will be possible to use a theorem like relelfvdm 5702 which says that if a function value produces an inhabited set, then the function is being evaluated within its domain.
  • Bibliography references. The bibliography for the Intuitionistic Logic Explorer is separate from the one for the Metamath Proof Explorer but feel free to copy-paste a citation in either direction in order to cite it.

Label naming conventions

Here are a few of the label naming conventions:

  • Suffixes. We follow the conventions of the Metamath Proof Explorer with a few additions. A biconditional in set.mm which is an implication in iset.mm should have a "r" (for the reverse direction), or "i"/"im" (for the forward direction) appended. A theorem in set.mm which has a decidability condition added should add "dc" to the theorem name. A theorem in set.mm where "nonempty class" is changed to "inhabited class" should add "m" (for member) to the theorem name.
  • iset.mm versus set.mm names

    Theorems which are the same as in set.mm should be named the same (that is, where the statement of the theorem is the same; the proof can differ without a new name being called for). Theorems which are different should be named differently (we do have a small number of intentional exceptions to this rule but on the whole it serves us well).

    As for how to choose names so they are different between iset.mm and set.mm, when possible choose a name which reflect the difference in the theorems. For example, if a theorem in set.mm is an equality and the iset.mm analogue is a subset, add "ss" to the iset.mm name. If need be, add "i" to the iset.mm name (usually as a prefix to some portion of the name).

    As with set.mm, we welcome suggestions for better names (such as names which are more consistent with naming conventions).

    We do try to keep set.mm and iset.mm similar where we can. For example, if a theorem exists in both places but the name in set.mm isn't great, we tend to keep that name for iset.mm, or change it in both files together. This is mainly to make it easier to copy theorems, but also to generally help people browse proofs, find theorems, write proofs, etc.

The following table shows some commonly-used abbreviations in labels which are not found in the Metamath Proof Explorer, in alphabetical order. For each abbreviation we provide a mnenomic to help you remember it, the source theorem/assumption defining it, an expression showing what it looks like, whether or not it is a "syntax fragment" (an abbreviation that indicates a particular kind of syntax), and hyperlinks to label examples that use the abbreviation. The abbreviation is bolded if there is a df-NAME definition but the label fragment is not NAME.

For the "g" abbreviation, this is related to the set.mm usage, in which "is a set" conditions are converted from hypotheses to antecedents, but is also used where "is a set" conditions are added relative to similar set.mm theorems.

AbbreviationMnenomic/MeaningSource ExpressionSyntax?Example(s)
apapart df-pap 7559, df-ap 8856 Yes apadd1 8882, apne 8897
gwith "is a set" condition No 1stvalg 6336, brtposg 6485, setsmsbasg 15344
minhabited (from "member") 𝑥𝑥𝐴 No r19.2m 3596, negm 9947, ctm 7400, basmex 13272
seq3, sum3recursive sequence df-seqfrec 10810 Yes seq3-1 10824, fsum3 12073
taptight apartness df-tap 7564 Yes df-tap 7564

(Contributed by Jim Kingdon, 24-Feb-2020.) (New usage is discouraged.)

𝜑       𝜑
 
13.1.2  Definitional examples
 
Theoremex-or 16490 Example for ax-io 717. Example by David A. Wheeler. (Contributed by Mario Carneiro, 9-May-2015.)
(2 = 3 ∨ 4 = 4)
 
Theoremex-an 16491 Example for ax-ia1 106. Example by David A. Wheeler. (Contributed by Mario Carneiro, 9-May-2015.)
(2 = 2 ∧ 3 = 3)
 
Theorem1kp2ke3k 16492 Example for df-dec 9710, 1000 + 2000 = 3000.

This proof disproves (by counterexample) the assertion of Hao Wang, who stated, "There is a theorem in the primitive notation of set theory that corresponds to the arithmetic theorem 1000 + 2000 = 3000. The formula would be forbiddingly long... even if (one) knows the definitions and is asked to simplify the long formula according to them, chances are he will make errors and arrive at some incorrect result." (Hao Wang, "Theory and practice in mathematics" , In Thomas Tymoczko, editor, New Directions in the Philosophy of Mathematics, pp 129-152, Birkauser Boston, Inc., Boston, 1986. (QA8.6.N48). The quote itself is on page 140.)

This is noted in Metamath: A Computer Language for Pure Mathematics by Norman Megill (2007) section 1.1.3. Megill then states, "A number of writers have conveyed the impression that the kind of absolute rigor provided by Metamath is an impossible dream, suggesting that a complete, formal verification of a typical theorem would take millions of steps in untold volumes of books... These writers assume, however, that in order to achieve the kind of complete formal verification they desire one must break down a proof into individual primitive steps that make direct reference to the axioms. This is not necessary. There is no reason not to make use of previously proved theorems rather than proving them over and over... A hierarchy of theorems and definitions permits an exponential growth in the formula sizes and primitive proof steps to be described with only a linear growth in the number of symbols used. Of course, this is how ordinary informal mathematics is normally done anyway, but with Metamath it can be done with absolute rigor and precision."

The proof here starts with (2 + 1) = 3, commutes it, and repeatedly multiplies both sides by ten. This is certainly longer than traditional mathematical proofs, e.g., there are a number of steps explicitly shown here to show that we're allowed to do operations such as multiplication. However, while longer, the proof is clearly a manageable size - even though every step is rigorously derived all the way back to the primitive notions of set theory and logic. And while there's a risk of making errors, the many independent verifiers make it much less likely that an incorrect result will be accepted.

This proof heavily relies on the decimal constructor df-dec 9710 developed by Mario Carneiro in 2015. The underlying Metamath language has an intentionally very small set of primitives; it doesn't even have a built-in construct for numbers. Instead, the digits are defined using these primitives, and the decimal constructor is used to make it easy to express larger numbers as combinations of digits.

(Contributed by David A. Wheeler, 29-Jun-2016.) (Shortened by Mario Carneiro using the arithmetic algorithm in mmj2, 30-Jun-2016.)

(1000 + 2000) = 3000
 
Theoremex-fl 16493 Example for df-fl 10630. Example by David A. Wheeler. (Contributed by Mario Carneiro, 18-Jun-2015.)
((⌊‘(3 / 2)) = 1 ∧ (⌊‘-(3 / 2)) = -2)
 
Theoremex-ceil 16494 Example for df-ceil 10631. (Contributed by AV, 4-Sep-2021.)
((⌈‘(3 / 2)) = 2 ∧ (⌈‘-(3 / 2)) = -1)
 
Theoremex-exp 16495 Example for df-exp 10901. (Contributed by AV, 4-Sep-2021.)
((5↑2) = 25 ∧ (-3↑-2) = (1 / 9))
 
Theoremex-fac 16496 Example for df-fac 11088. (Contributed by AV, 4-Sep-2021.)
(!‘5) = 120
 
Theoremex-bc 16497 Example for df-bc 11110. (Contributed by AV, 4-Sep-2021.)
(5C3) = 10
 
Theoremex-dvds 16498 Example for df-dvds 12474: 3 divides into 6. (Contributed by David A. Wheeler, 19-May-2015.)
3 ∥ 6
 
Theoremex-gcd 16499 Example for df-gcd 12650. (Contributed by AV, 5-Sep-2021.)
(-6 gcd 9) = 3
 
PART 14  SUPPLEMENTARY MATERIAL (USERS' MATHBOXES)
 
14.1  Mathboxes for user contributions
 
14.1.1  Mathbox guidelines
 
Theoremmathbox 16500 (This theorem is a dummy placeholder for these guidelines. The label of this theorem, "mathbox", is hard-coded into the Metamath program to identify the start of the mathbox section for web page generation.)

A "mathbox" is a user-contributed section that is maintained by its contributor independently from the main part of iset.mm.

For contributors:

By making a contribution, you agree to release it into the public domain, according to the statement at the beginning of iset.mm.

Guidelines:

Mathboxes in iset.mm follow the same practices as in set.mm, so refer to the mathbox guidelines there for more details.

(Contributed by NM, 20-Feb-2007.) (Revised by the Metamath team, 9-Sep-2023.) (New usage is discouraged.)

𝜑       𝜑
    < Previous  Next >

Page List
Jump to page: Contents  1 1-100 2 101-200 3 201-300 4 301-400 5 401-500 6 501-600 7 601-700 8 701-800 9 801-900 10 901-1000 11 1001-1100 12 1101-1200 13 1201-1300 14 1301-1400 15 1401-1500 16 1501-1600 17 1601-1700 18 1701-1800 19 1801-1900 20 1901-2000 21 2001-2100 22 2101-2200 23 2201-2300 24 2301-2400 25 2401-2500 26 2501-2600 27 2601-2700 28 2701-2800 29 2801-2900 30 2901-3000 31 3001-3100 32 3101-3200 33 3201-3300 34 3301-3400 35 3401-3500 36 3501-3600 37 3601-3700 38 3701-3800 39 3801-3900 40 3901-4000 41 4001-4100 42 4101-4200 43 4201-4300 44 4301-4400 45 4401-4500 46 4501-4600 47 4601-4700 48 4701-4800 49 4801-4900 50 4901-5000 51 5001-5100 52 5101-5200 53 5201-5300 54 5301-5400 55 5401-5500 56 5501-5600 57 5601-5700 58 5701-5800 59 5801-5900 60 5901-6000 61 6001-6100 62 6101-6200 63 6201-6300 64 6301-6400 65 6401-6500 66 6501-6600 67 6601-6700 68 6701-6800 69 6801-6900 70 6901-7000 71 7001-7100 72 7101-7200 73 7201-7300 74 7301-7400 75 7401-7500 76 7501-7600 77 7601-7700 78 7701-7800 79 7801-7900 80 7901-8000 81 8001-8100 82 8101-8200 83 8201-8300 84 8301-8400 85 8401-8500 86 8501-8600 87 8601-8700 88 8701-8800 89 8801-8900 90 8901-9000 91 9001-9100 92 9101-9200 93 9201-9300 94 9301-9400 95 9401-9500 96 9501-9600 97 9601-9700 98 9701-9800 99 9801-9900 100 9901-10000 101 10001-10100 102 10101-10200 103 10201-10300 104 10301-10400 105 10401-10500 106 10501-10600 107 10601-10700 108 10701-10800 109 10801-10900 110 10901-11000 111 11001-11100 112 11101-11200 113 11201-11300 114 11301-11400 115 11401-11500 116 11501-11600 117 11601-11700 118 11701-11800 119 11801-11900 120 11901-12000 121 12001-12100 122 12101-12200 123 12201-12300 124 12301-12400 125 12401-12500 126 12501-12600 127 12601-12700 128 12701-12800 129 12801-12900 130 12901-13000 131 13001-13100 132 13101-13200 133 13201-13300 134 13301-13400 135 13401-13500 136 13501-13600 137 13601-13700 138 13701-13800 139 13801-13900 140 13901-14000 141 14001-14100 142 14101-14200 143 14201-14300 144 14301-14400 145 14401-14500 146 14501-14600 147 14601-14700 148 14701-14800 149 14801-14900 150 14901-15000 151 15001-15100 152 15101-15200 153 15201-15300 154 15301-15400 155 15401-15500 156 15501-15600 157 15601-15700 158 15701-15800 159 15801-15900 160 15901-16000 161 16001-16100 162 16101-16200 163 16201-16300 164 16301-16400 165 16401-16500 166 16501-16600 167 16601-16700 168 16701-16800 169 16801-16881
  Copyright terms: Public domain < Previous  Next >