Deleting edges from an ordinary polygonal drawing
ProvedOrdinaryPolygonalDrawingDeleteEdgescrossing-numbergraph-theory
Let be a finite simple graph, let be an ordinary polygonal drawing of , and let be a finite set of unordered vertex pairs. After deleting from every edge whose unordered pair lies in , there is an ordinary polygonal drawing of the resulting graph such that
where the retained-edge condition is expressed by the displayed Lean filter over the original edge finset. Moreover, the new edge count is
This interface formalizes the operation of deleting a prescribed collection of edges while retaining the original drawing data and exactly the crossings that remain supported by undeleted edges.
Formalization Note Unordered edges are represented by Sym2 V, and the retained crossing condition is stated using the original edge finset of .
Preamble
import Definitions.Def_OrdinaryPolygonalDrawing import Mathlib.Combinatorics.SimpleGraph.Copy open Classical noncomputable section
Formal statement
lemma OrdinaryPolygonalDrawingDeleteEdges {V : Type*} [Fintype V] (G : SimpleGraph V)
[Fintype G.edgeSet] (D : OrdinaryPolygonalDrawing G)
(S : Finset (Sym2 V)) :
∃ D' : OrdinaryPolygonalDrawing (G.deleteEdges (S : Set (Sym2 V))),
D'.crossingSet =
D.crossingSet.filter (fun p =>
∃ e₁ e₂ : G.edgeFinset,
e₁ ≠ e₂ ∧ e₁.1 ∉ S ∧ e₂.1 ∉ S ∧
p ∈ (D.edgeArc e₁).relativeInterior ∧
p ∈ (D.edgeArc e₂).relativeInterior) ∧
(G.deleteEdges (S : Set (Sym2 V))).edgeFinset.card =
G.edgeFinset.card - (S ∩ G.edgeFinset).card := by sorrySource