Skip to content

Commit 880b78f

Browse files
committed
Reorg
1 parent 86bbf84 commit 880b78f

12 files changed

Lines changed: 1186 additions & 658 deletions

File tree

Matroid/Graph/Planarity/Cut.lean

Lines changed: 0 additions & 72 deletions
This file was deleted.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import Matroid.Graph.Planarity.GraphContinuum.Realization
2+
import Matroid.Graph.Planarity.Topology.ConnPartition
3+
4+
variable {α β : Type*} {G : Graph α β} {S T : Set α}
5+
6+
open Set Function TopologicalSpace Topology Relation UniformSpace Sum Path WList
7+
open scoped unitInterval
8+
9+
/-!
10+
# Basic properties of graph continua
11+
-/
12+
13+
class GraphContinuum (α : Type*) extends EMetricSpace α, CompactSpace α where
14+
verts : Set α
15+
graphLike : ∀ T ∈ ComponentPartition verts, T ≃ₜ (Set.Ioo 0 1 : Set ℝ)
16+
17+
namespace GraphContinuum
18+
19+
variable [GraphContinuum α]
20+
21+
scoped notation "V(" α ")" => GraphContinuum.verts (α := α)
22+
23+
def edges (α) [GraphContinuum α] : Partition (Set α) := ComponentPartition V(α)
24+
25+
scoped notation "E(" α ")" => GraphContinuum.edges (α := α)
26+
27+
def homeo_Ioo (hT : T ∈ E(α)) : T ≃ₜ (Set.Ioo 0 1 : Set ℝ) := graphLike T hT
28+
29+
File renamed without changes.

Matroid/Graph/Planarity/RealizationConnected.lean

Lines changed: 0 additions & 128 deletions
This file was deleted.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
import Mathlib.Analysis.InnerProductSpace.PiL2 -- inefficient import
2+
import Mathlib.Topology.UniformSpace.Path -- inefficient import
3+
import Mathlib.Topology.Separation.Connected -- inefficient import
4+
import Mathlib.Topology.LocallyConstant.Basic -- inefficient import
5+
import Matroid.ForMathlib.Partition.Set
6+
import Matroid.Graph.Basic
7+
8+
open Set Function Partition
9+
variable {α : Type*} [TopologicalSpace α] {S T T₁ T₂ : Set α} {u v w : α}
10+
11+
instance : IsTrans α (JoinedIn S) where
12+
trans _ _ _ := JoinedIn.trans
13+
14+
instance : Std.Symm (JoinedIn S) where
15+
symm _ _ := JoinedIn.symm
16+
17+
def ComponentPartition (S : Set α) : Partition (Set α) := Partition.ofRel (JoinedIn Sᶜ)
18+
19+
@[simp]
20+
lemma componentPartition_supp (S : Set α) : (ComponentPartition S).supp = Sᶜ := by
21+
ext v
22+
simp only [ComponentPartition, ofRel_supp, Relation.mem_domain_iff, mem_compl_iff]
23+
exact ⟨fun ⟨x, hx⟩ => hx.source_mem, fun hv => ⟨v, JoinedIn.refl hv⟩⟩
24+
25+
@[simp]
26+
lemma componentPartition_partOf (S : Set α) :
27+
(ComponentPartition S).partOf v = pathComponentIn Sᶜ v := by
28+
simp [ComponentPartition, partOf, Relation.fiber, pathComponentIn, comm_of]
29+
30+
lemma mem_componentPartition_iff (S T : Set α) :
31+
T ∈ ComponentPartition S ↔ ∃ v ∈ Sᶜ, pathComponentIn Sᶜ v = T := by
32+
refine ⟨fun hT => ?_, fun ⟨v, hv, h⟩ => h ▸ componentPartition_partOf S ▸ partOf_mem <| by simpa⟩
33+
obtain ⟨v, hv⟩ := (ComponentPartition S).nonempty_of_mem hT
34+
exact ⟨v, componentPartition_supp S ▸ (ComponentPartition S).subset_of_mem hT hv,
35+
componentPartition_partOf S ▸ (ComponentPartition S).eq_partOf_of_mem hT hv |>.symm⟩
36+
37+
lemma componentPartition_parts (S : Set α) :
38+
(ComponentPartition S).parts = (pathComponentIn Sᶜ) '' Sᶜ := by
39+
ext T
40+
rw [mem_parts, mem_componentPartition_iff, mem_image]
41+
42+
lemma IsClosed.componentPartition_isOpen [LocPathConnectedSpace α] (hT : T ∈ ComponentPartition S)
43+
(h : IsClosed S) : IsOpen T := by
44+
obtain ⟨v, hv, rfl⟩ := mem_componentPartition_iff S T |>.mp hT
45+
exact h.isOpen_compl.pathComponentIn v
46+
47+
lemma frontier_subset_of_mem_componentPartition [LocPathConnectedSpace α]
48+
(hT : T ∈ ComponentPartition S) (h : IsClosed S) : frontier T ⊆ S := by
49+
rintro u ⟨huc, hui⟩
50+
rw [(h.componentPartition_isOpen hT).interior_eq] at hui
51+
obtain ⟨v, -, rfl⟩ := mem_componentPartition_iff S T |>.mp hT
52+
by_contra huS
53+
have hUopen : IsOpen (pathComponentIn Sᶜ u) := h.isOpen_compl.pathComponentIn u
54+
have huU : u ∈ pathComponentIn Sᶜ u := mem_pathComponentIn_self huS
55+
obtain ⟨z, hzU, hzT⟩ := mem_closure_iff_nhds.1 huc _ (hUopen.mem_nhds huU)
56+
exact hui ((pathComponentIn_congr hzU).symm.trans (pathComponentIn_congr hzT) ▸ huU)
57+
58+
structure AdjRegion (S T₁ T₂ : Set α) : Prop where
59+
hT₁ : T₁ ∈ ComponentPartition S
60+
hT₂ : T₂ ∈ ComponentPartition S
61+
h : (frontier T₁) ∩ (frontier T₂) |>.Nonempty
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import Mathlib.Analysis.InnerProductSpace.PiL2 -- inefficient import
2+
import Mathlib.Topology.UniformSpace.Path
3+
import Mathlib.Topology.Separation.Connected
4+
import Matroid.ForMathlib.List
5+
import Mathlib.Analysis.Complex.Circle
6+
import Mathlib.Topology.MetricSpace.Basic
7+
8+
universe u
9+
variable {α β : Type u} [TopologicalSpace α] {a b c u v w x y z : α} {C L : List α} {X Y : Set α}
10+
11+
open Set Function TopologicalSpace Topology Metric Nat unitInterval
12+
13+
structure Curve (α) [TopologicalSpace α] (x y : α) extends Path x y where
14+
toFun_inj : Injective toFun
15+
16+
structure JordanCurve (α) [TopologicalSpace α] extends C(Circle, α) where
17+
toFun_inj : Injective toFun
18+
19+
structure JordanDecomposition [MetricSpace α] (γ : JordanCurve α) where
20+
interior : Set α
21+
exterior : Set α
22+
partition : range γ.toFun ∪ interior ∪ exterior = univ
23+
interior_isConnected : IsConnected interior
24+
exterior_isConnected : IsConnected exterior
25+
interior_isOpen : IsOpen interior
26+
exterior_isOpen : IsOpen exterior
27+
frontier_interior : frontier interior = range γ.toFun
28+
frontier_exterior : frontier exterior = range γ.toFun
29+
30+
def HasJordan (α) [MetricSpace α] : Prop := ∀ γ : JordanCurve α, Nonempty (JordanDecomposition γ)
31+
32+
lemma foo (γ : JordanCurve α) (hu : u ∈ range γ.toFun) (hv : v ∈ range γ.toFun) (P : Curve α u v)
33+
(hP : range P.toFun ∩ range γ.toFun = {u, v}) :
34+
∃ S₁ S₂ S₃, S₁ ∪ S₂ ∪ S₃ ∪ range γ.toFun ∪ range P.toFun = univ ∧
35+
IsOpen S₁ ∧ IsOpen S₂ ∧ IsOpen S₃ ∧ IsConnected S₁ ∧ IsConnected S₂ ∧ IsConnected S₃ ∧
36+
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)