Metamath Proof Explorer


Definition df-umgr

Description: Define the class of all undirected multigraphs. An (undirected) multigraph consists of a set v (of "vertices") and a function e (representing indexed "edges") into subsets of v of cardinality two, representing the two vertices incident to the edge. In contrast to a pseudograph, a multigraph has no loop. This is according to Chartrand, Gary and Zhang, Ping (2012): "A First Course in Graph Theory.", Dover, ISBN 978-0-486-48368-9, section 1.4, p. 26: "A multigraph M consists of a finite nonempty set V of vertices and a set E of edges, where every two vertices of M are joined by a finite number of edges (possibly zero). If two or more edges join the same pair of (distinct) vertices, then these edges are called parallel edges." To provide uniform definitions for all kinds of graphs, x e. ( ~P v \ { (/) } ) is used as restriction of the class abstraction, although x e. ~P v would be sufficient (see prprrab and isumgrs ). (Contributed by AV, 24-Nov-2020)

Ref Expression
Assertion df-umgr
|- UMGraph = { g | [. ( Vtx ` g ) / v ]. [. ( iEdg ` g ) / e ]. e : dom e --> { x e. ( ~P v \ { (/) } ) | ( # ` x ) = 2 } }

Detailed syntax breakdown

Step Hyp Ref Expression
0 cumgr
 |-  UMGraph
1 vg
 |-  g
2 cvtx
 |-  Vtx
3 1 cv
 |-  g
4 3 2 cfv
 |-  ( Vtx ` g )
5 vv
 |-  v
6 ciedg
 |-  iEdg
7 3 6 cfv
 |-  ( iEdg ` g )
8 ve
 |-  e
9 8 cv
 |-  e
10 9 cdm
 |-  dom e
11 vx
 |-  x
12 5 cv
 |-  v
13 12 cpw
 |-  ~P v
14 c0
 |-  (/)
15 14 csn
 |-  { (/) }
16 13 15 cdif
 |-  ( ~P v \ { (/) } )
17 chash
 |-  #
18 11 cv
 |-  x
19 18 17 cfv
 |-  ( # ` x )
20 c2
 |-  2
21 19 20 wceq
 |-  ( # ` x ) = 2
22 21 11 16 crab
 |-  { x e. ( ~P v \ { (/) } ) | ( # ` x ) = 2 }
23 10 22 9 wf
 |-  e : dom e --> { x e. ( ~P v \ { (/) } ) | ( # ` x ) = 2 }
24 23 8 7 wsbc
 |-  [. ( iEdg ` g ) / e ]. e : dom e --> { x e. ( ~P v \ { (/) } ) | ( # ` x ) = 2 }
25 24 5 4 wsbc
 |-  [. ( Vtx ` g ) / v ]. [. ( iEdg ` g ) / e ]. e : dom e --> { x e. ( ~P v \ { (/) } ) | ( # ` x ) = 2 }
26 25 1 cab
 |-  { g | [. ( Vtx ` g ) / v ]. [. ( iEdg ` g ) / e ]. e : dom e --> { x e. ( ~P v \ { (/) } ) | ( # ` x ) = 2 } }
27 0 26 wceq
 |-  UMGraph = { g | [. ( Vtx ` g ) / v ]. [. ( iEdg ` g ) / e ]. e : dom e --> { x e. ( ~P v \ { (/) } ) | ( # ` x ) = 2 } }