OAI/Algebra/GroupRing/FullPairing.lean
52 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.TorsionFreeZeroDivisors.SampleGraph.FullPairing.closed_splitline 16Source documentation
Transfer the SAME separator sets/parts/cost to the actual short-closed paths. In particular no extra charge for the appended tails is introduced.
def closed_split (d : DecidableEq (ClosedWords.Piece s cap)) (S : Finset (ClosedWords.Piece s cap)) (P : @RecursiveSeparator.Split (ClosedWords.Piece s cap) d (PairingClusters.Rel (fun z : Position (BalancedRotation.len s.paths cap hc)=>z.1) (a.α cap hc)) S) : @RecursiveSeparator.Split (ClosedWords.Piece s cap) d (PairingClusters.Rel (fun z : Position (fun t=>((a.closed cap hc hL hd).paths t).length)=>z.1) (a.closed cap hc hL hd).comparisons.pairing.partner) S := …Mentions: OAI.TorsionFreeZeroDivisors.SampleGraph.ClosedWords.Piece, OAI.TorsionFreeZeroDivisors.RecursiveSeparator.Split, OAI.TorsionFreeZeroDivisors.PairingClusters.Rel, OAI.TorsionFreeZeroDivisors.BalancedRotation.len
- lemma
OAI.TorsionFreeZeroDivisors.SampleGraph.Picture.segmented_genusZeroline 38Source documentation
The actual segmented words of a reduced lifted disk picture have genus zero, with their literal segment-boundary rotation and full letter pairing. This does not assert the missing sharp planar separator theorem.
lemma segmented_genusZero : MapEuler.GenusZero (BoundaryRotation.perm (BalancedRotation.len (system a hzw hr hz).paths cap hc)) ((pairing a hzw hr hz).α cap hc) := …Mentions: OAI.TorsionFreeZeroDivisors.MapEuler.GenusZero, OAI.TorsionFreeZeroDivisors.BoundaryRotation.perm, OAI.TorsionFreeZeroDivisors.BalancedRotation.len, OAI.TorsionFreeZeroDivisors.SampleGraph.Picture.system, OAI.TorsionFreeZeroDivisors.SampleGraph.Picture.pairing
- theorem
OAI.TorsionFreeZeroDivisors.MapEuler.genusZero_subpairingline 56Source documentation
Any submatching of a literal genus-zero map is still genus zero; dangling half-edges are retained as fixed points. No embedding predicate is assumed.
theorem genusZero_subpairing (σ α β : Equiv.Perm O) (ha : Function.Involutive α) (_hb : Function.Involutive β) (hsub : ∀ x, β x = x ∨ β x = α x) (hz : GenusZero σ α) : GenusZero σ β := by … - def
OAI.TorsionFreeZeroDivisors.MapEuler.inducedPairFunline 91Source documentation
Keep a pair precisely when both its actual endpoint darts satisfy P.
def inducedPairFun (α : Equiv.Perm O) (P : O → Prop) (x : O) : O := …
- lemma
OAI.TorsionFreeZeroDivisors.MapEuler.inducedPairFun_involutiveline 95 - def
OAI.TorsionFreeZeroDivisors.MapEuler.inducedPairline 104 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.inducedPair_applyline 112 - theorem
OAI.TorsionFreeZeroDivisors.MapEuler.genusZero_inducedPairline 118Source documentation
The rotation of every vertex is unchanged; only crossing/outside pairs are removed. This handles loops, parallel edges, and disconnected graphs.
theorem genusZero_inducedPair (σ α : Equiv.Perm O) (ha : Function.Involutive α) (P : O → Prop) (hz : GenusZero σ α) : GenusZero σ (inducedPair α ha P) := by …Mentions: OAI.TorsionFreeZeroDivisors.MapEuler.GenusZero, OAI.TorsionFreeZeroDivisors.MapEuler.inducedPair
- def
OAI.TorsionFreeZeroDivisors.MapEuler.graphline 127Source documentation
The underlying simple graph of the actual permutation map. Ignoring loops and parallel copies does not discard any adjacency between distinct vertices.
def graph (σ α : Equiv.Perm O) (ha : Function.Involutive α) : SimpleGraph (Cycle σ) where …
- lemma
OAI.TorsionFreeZeroDivisors.MapEuler.graph_adjline 135 - theorem
OAI.TorsionFreeZeroDivisors.MapEuler.graph_inducedPairline 142Source documentation
The graph after matching deletion is exactly the induced relation on the chosen vertices, with the other vertices isolated. This is literal equality of adjacencies, not an assumption of inherited planarity.
theorem graph_inducedPair (σ α : Equiv.Perm O) (ha : Function.Involutive α) (S : Set (Cycle σ)) (v w : Cycle σ) : (graph σ (inducedPair α ha (fun x=>cycle σ x∈S)) (inducedPairFun_involutive α ha _)).Adj v w ↔ (graph σ α ha).Adj v w ∧ v ∈ S ∧ w ∈ S := by …Mentions: OAI.TorsionFreeZeroDivisors.MapEuler.graph, OAI.TorsionFreeZeroDivisors.MapEuler.inducedPair, OAI.TorsionFreeZeroDivisors.MapEuler.inducedPairFun_involutive
- lemma
OAI.TorsionFreeZeroDivisors.MapEuler.component_rotline 170 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.component_pairline 172 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.reachable_pairline 176 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.reachable_of_componentline 183 - def
OAI.TorsionFreeZeroDivisors.MapEuler.vertexComponentline 199 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.vertexComponent_cycleline 202 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.vertexComponent_adjline 205 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.vertexComponent_reachableline 211 - theorem
OAI.TorsionFreeZeroDivisors.MapEuler.component_eq_iff_reachableline 220Source documentation
Equality of actual map components is exactly graph reachability, including unpaired darts, loops and parallel edges. No graph planarity predicate intervenes.
theorem component_eq_iff_reachable (x y : O) : component σ α x=component σ α y ↔ (graph σ α ha).Reachable (cycle σ x) (cycle σ y) := …Mentions: OAI.TorsionFreeZeroDivisors.MapEuler.component, OAI.TorsionFreeZeroDivisors.MapEuler.graph
- def
OAI.TorsionFreeZeroDivisors.MapEuler.graphComponentEquivline 226Source documentation
The map and the underlying simple graph have literally the same components.
def graphComponentEquiv : Component σ α ≃ (graph σ α ha).ConnectedComponent where …
Mentions: OAI.TorsionFreeZeroDivisors.MapEuler.Component, OAI.TorsionFreeZeroDivisors.MapEuler.graph
- lemma
OAI.TorsionFreeZeroDivisors.MapEuler.graphComponent_cardline 241 - def
OAI.TorsionFreeZeroDivisors.MapEuler.realizeDartline 253Source documentation
Pick an actual occurrence realizing each directed edge; this is injective because both endpoint vertices of an occurrence are fixed.
def realizeDart (d : (graph σ α ha).Dart) : O := d.adj.2.choose …
- lemma
OAI.TorsionFreeZeroDivisors.MapEuler.realizeDart_fstline 255 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.realizeDart_sndline 258 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.realizeDart_memline 260 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.realizeDart_injectiveline 266 - theorem
OAI.TorsionFreeZeroDivisors.MapEuler.twice_graph_edges_le_supportline 274Source documentation
Removing loops and parallel copies lowers the true paired-edge count.
theorem twice_graph_edges_le_support : 2*Nat.card (graph σ α ha).edgeSet≤α.support.card := by … - theorem
OAI.TorsionFreeZeroDivisors.MapEuler.graph_isTree_of_supportline 287Source documentation
A connected map with the minimal possible true edge count is a tree, even though the ambient definition permits loops and parallel edges.
theorem graph_isTree_of_support (hc : (graph σ α ha).Connected) (he : α.support.card+2=2*Nat.card (Cycle σ)) : (graph σ α ha).IsTree := by … - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.edge_has_realizerline 301 - def
OAI.TorsionFreeZeroDivisors.MapEuler.edgeRepline 314 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.edgeRep_neline 315 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.edgeRep_edgeline 317 - def
OAI.TorsionFreeZeroDivisors.MapEuler.edgeOfSubgraphline 322 - def
OAI.TorsionFreeZeroDivisors.MapEuler.pairFinsetline 324 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.pairFinset_cardline 328 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.pairFinset_nonfixedline 330 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.pairFinset_pairline 336 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.pairFinset_edgeline 342 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.pairFinset_disjointline 350 - def
OAI.TorsionFreeZeroDivisors.MapEuler.pickedDartsline 358 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.mem_pickedDartsline 359 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.pickedDarts_nonfixedline 362 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.pickedDarts_pairline 365 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.pickedDarts_cardline 368 - def
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPairline 377Source documentation
A chosen simple subgraph is realized by exactly one original paired edge per simple edge, with the original vertex rotations unchanged.
def subgraphPair : Equiv.Perm O := inducedPair α ha (fun x=>x∈pickedDarts σ α ha T hT)
Mentions: OAI.TorsionFreeZeroDivisors.MapEuler.inducedPair, OAI.TorsionFreeZeroDivisors.MapEuler.pickedDarts
- lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_involutiveline 378 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_applyline 380 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_supportline 386 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_support_cardline 395 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.subgraphPair_graphline 398 - lemma
OAI.TorsionFreeZeroDivisors.MapEuler.genusZero_subgraphPairline 426