Isomorphism from a multigraph to a simple graph
Lax683916.MultigraphIsomorphism · concepts/Lax683916/MultigraphIsomorphism.lean · lax-683916
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
A multigraph and a simple graph are isomorphic when their actual vertex and edge sets are in bijection and these bijections preserve endpoints.
Concept map
Lean source view on GitHub
| 1 | import Mathlib.Combinatorics.Graph.Simple |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Isomorphism from a multigraph to a simple graph |
| 6 | type: definition |
| 7 | --- |
| 8 | A multigraph and a simple graph are isomorphic when their actual vertex and |
| 9 | edge sets are in bijection and these bijections preserve endpoints. |
| 10 | |
| 11 | # Formalization notes |
| 12 | |
| 13 | `Graph α β` stores vertex and edge sets inside ambient types, whereas |
| 14 | `SimpleGraph V` takes the vertex type itself as its vertex set and represents |
| 15 | edges canonically as unordered pairs. The comparison therefore uses |
| 16 | equivalences between the subtypes `G.vertexSet` and `G.edgeSet`, not between |
| 17 | the ambient types `α`, `β` and the canonical carriers. |
| 18 | -/ |
| 19 | |
| 20 | namespace Lax683916.MultigraphIsomorphism |
| 21 | |
| 22 | /-- An incidence-preserving vertex-and-edge isomorphism from a multigraph to a simple graph. -/ |
| 23 | structure IsomorphicToSimpleGraph {α β V : Type*} (G : Graph α β) (H : SimpleGraph V) where |
| 24 | /-- The bijection between the actual vertices of the two graphs. -/ |
| 25 | vertexEquiv : G.vertexSet ≃ V |
| 26 | /-- The bijection between the actual edges of the two graphs. -/ |
| 27 | edgeEquiv : G.edgeSet ≃ H.edgeSet |
| 28 | /-- The vertex and edge bijections preserve the endpoint relation. -/ |
| 29 | map_isLink : ∀ (e : G.edgeSet) (u v : G.vertexSet), |
| 30 | G.IsLink e.1 u.1 v.1 ↔ |
| 31 | (edgeEquiv e).1 = s(vertexEquiv u, vertexEquiv v) |
| 32 | |
| 33 | end Lax683916.MultigraphIsomorphism |
| 34 |
Formalization notes
stores vertex and edge sets inside ambient types, whereas takes the vertex type itself as its vertex set and represents edges canonically as unordered pairs. The comparison therefore uses equivalences between the subtypes and , not between the ambient types , and the canonical carriers.
Builds on
none
From Mathlib
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments