OAI/Algebra/GroupRing/MapEuler.lean
46 declarations, 0 contain sorry, 0 declared as axioms
The weighted centroid needed by planar dual-tree separator constructions. This is an actual theorem for finite Mathlib trees, not a separator assumption.
- lemma
OAI.TorsionFreeZeroDivisors.MapEuler.component_card_one_of_connectedline 15 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.connected_of_component_card_oneline 23 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.connected_iff_component_card_oneline 37Source documentation
Literal connectedness can be read from the map's component quotient.
lemma connected_iff_component_card_one : (graph σ α ha).Connected ↔ Nat.card (Component σ α)=1 := …Mentions: OAI.TorsionFreeZeroDivisors.MapEuler.graph, OAI.TorsionFreeZeroDivisors.MapEuler.Component
- lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subpairing_commuteline 51 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.complement_involutiveline 65 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.complement_subpairingline 73 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.complement_faceline 81 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subpairing_support_subsetline 90 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.complement_supportline 98 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.complement_support_cardline 108 - theorem
OAI.TorsionFreeZeroDivisors.MapEuler.genusZero_complement_dualline 115Source documentation
Deleting a chosen set of primal edges is actual complementary-pair deletion in the dual map, not an assumed planar-minor interface.
theorem genusZero_complement_dual (hz : GenusZero σ α) : GenusZero (α*σ) (α*β) := …
- lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_subpairingline 127 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_support_treeline 133 - theorem
OAI.TorsionFreeZeroDivisors.MapEuler.tree_contour_cardline 140Source documentation
The literal contour permutation of a chosen spanning tree has one cycle.
theorem tree_contour_card (hz : GenusZero σ α) (ht : T.IsTree) : Nat.card (Cycle (subgraphPair σ α ha T hT*σ))=1 := by …Mentions: OAI.TorsionFreeZeroDivisors.MapEuler.GenusZero, OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair
- lemma
OAI.TorsionFreeZeroDivisors.MapEuler.cotree_supportline 154Source documentation
The complementary edge matching in the original dual rotation has exactly one fewer edge than dual vertices.
lemma cotree_support (hz : GenusZero σ α) (ht : T.IsTree) : (α*subgraphPair σ α ha T hT).support.card+2=2*Nat.card (Cycle (α*σ)) := by …Mentions: OAI.TorsionFreeZeroDivisors.MapEuler.GenusZero, OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair
- theorem
OAI.TorsionFreeZeroDivisors.MapEuler.spanning_cotree_isTreeline 166Source documentation
Tree--cotree duality proved from actual permutations and Euler equality. Loops and parallel edges in the original map are allowed. No embedding or planar-duality axiom is used.
theorem spanning_cotree_isTree (hz : GenusZero σ α) (ht : T.IsTree) : (graph (α*σ) (α*subgraphPair σ α ha T hT) (complement_involutive α _ ha (subgraphPair_involutive σ α ha T hT) (subgraphPair_subpairing σ α ha T hT))).IsTree := by …Mentions: OAI.TorsionFreeZeroDivisors.MapEuler.GenusZero, OAI.TorsionFreeZeroDivisors.MapEuler.graph, OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair, OAI.TorsionFreeZeroDivisors.MapEuler.complement_involutive, OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_involutive, OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_subpairing
- lemma
OAI.TorsionFreeZeroDivisors.MapEuler.sameCycle_of_card_oneline 194 - theorem
OAI.TorsionFreeZeroDivisors.MapEuler.contour_interval_reachableline 202Source documentation
In a cyclic contour with at most one exit from S, the labels of all members of S are connected using only steps internal to S. This finite orbit argument replaces a geometric assertion that tree-subtree corners form an interval.
theorem contour_interval_reachable (θ : Equiv.Perm O) (hθ : ∀ x y,θ.SameCycle x y) (S : Set O) (p : O) (hout : ∀ x∈S,θ x∉S → x=p) (H : SimpleGraph V) (label : O → V) (hstep : ∀ x∈S,θ x∈S → H.Reachable (label x) (label (θ x))) (x : O) (hx : x∈S) : H.Reachable (label p) (label x) := by … - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.pairFinset_adjline 235 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.pairFinset_cycle_injectiveline 242 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_nonfixed_memline 254 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_nonfixed_applyline 259 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_adjline 263 - theorem
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_dart_uniqueline 271Source documentation
A realized simple subgraph has exactly one dart per directed adjacency.
theorem subgraphPair_dart_unique {x y : O} (hx : subgraphPair σ α ha T hT x≠x) (hy : subgraphPair σ α ha T hT y≠y) (h₁ : cycle σ x=cycle σ y) (h₂ : cycle σ (subgraphPair σ α ha T hT x)=cycle σ (subgraphPair σ α ha T hT y)) : x=y := by … - def
OAI.TorsionFreeZeroDivisors.TreeCentroid.pathline 295 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.path_isPathline 296 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.path_lengthline 298 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.eq_pathline 300 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.path_distline 303 - def
OAI.TorsionFreeZeroDivisors.TreeCentroid.nextline 306 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.next_adjline 307 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.next_neline 309 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.next_concatline 311 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.next_adjacentline 317 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.next_walkline 329 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.dist_nextline 338 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.dist_not_nextline 344 - def
OAI.TorsionFreeZeroDivisors.TreeCentroid.branchline 355 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.mem_branchline 356 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.branch_adjline 358 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.branch_closedline 361 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.branch_disjointline 365 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.distance_stepline 370 - def
OAI.TorsionFreeZeroDivisors.TreeCentroid.potentialline 386 - lemma
OAI.TorsionFreeZeroDivisors.TreeCentroid.potential_stepline 387 - theorem
OAI.TorsionFreeZeroDivisors.TreeCentroid.exists_centroidline 402Source documentation
A finite tree has a weighted centroid: every branch after its deletion has at most half of the total nonnegative integral weight. Zero weights allowed.
theorem exists_centroid (w : V → ℕ) : ∃ c : V,∀ n : V,2*(∑ z∈(branch h) c n,w z)≤∑ z,w z := by …