OAI/Computability/MaxCut/Games/Subdivision.lean
38 declarations, 0 contain sorry, 0 declared as axioms
The four-edge subdivision. Every input occurrence has its own three interior vertices, even when the original endpoints coincide or another occurrence has the same endpoints. The left/right presentation inverts the permutation on the fourth edge.
- def
OAI.MaxCutGames.Explicit.OccurrenceGame.satisfiedCountline 21 - theorem
OAI.MaxCutGames.Explicit.OccurrenceGame.satisfiedCount_eq_sum_satisfiedline 24 - def
OAI.MaxCutGames.Explicit.OccurrenceGame.maxSatisfiedline 39 - def
OAI.MaxCutGames.Explicit.OccurrenceGame.valueline 43 - theorem
OAI.MaxCutGames.Explicit.OccurrenceGame.satisfiedCount_le_maxSatisfiedline 46 - theorem
OAI.MaxCutGames.Explicit.OccurrenceGame.maxSatisfied_attainedline 51 - def
OAI.MaxCutGames.Explicit.BipartiteGame.satisfiedCountline 64 - theorem
OAI.MaxCutGames.Explicit.BipartiteGame.satisfiedCount_eq_sum_satisfiedline 67 - def
OAI.MaxCutGames.Explicit.BipartiteGame.maxSatisfiedline 83 - def
OAI.MaxCutGames.Explicit.BipartiteGame.valueline 87 - theorem
OAI.MaxCutGames.Explicit.BipartiteGame.satisfiedCount_le_maxSatisfiedline 90 - theorem
OAI.MaxCutGames.Explicit.BipartiteGame.maxSatisfied_attainedline 96 - abbrev
OAI.MaxCutGames.Explicit.Subdivision.Leftline 111Source documentation
Original vertices and the middle vertices
q_e.abbrev Left (V E : Type*) := V ⊕ E
- abbrev
OAI.MaxCutGames.Explicit.Subdivision.Rightline 114Source documentation
falseisp_e, andtrueisr_e.abbrev Right (E : Type*) := E × Bool
- abbrev
OAI.MaxCutGames.Explicit.Subdivision.Edgeline 116 - def
OAI.MaxCutGames.Explicit.Subdivision.leftline 118 - def
OAI.MaxCutGames.Explicit.Subdivision.rightline 123 - def
OAI.MaxCutGames.Explicit.Subdivision.permutationline 125 - theorem
OAI.MaxCutGames.Explicit.Subdivision.endpoints_injectiveline 130Source documentation
The private occurrence identifier prevents parallel edges after subdivision. This also handles a loop, which becomes a genuine four-cycle.
theorem endpoints_injective (g : OccurrenceGame V E A) : Function.Injective (fun ei : Edge E => (left g ei, right ei)) := by …Mentions: OAI.MaxCutGames.Explicit.OccurrenceGame, OAI.MaxCutGames.Explicit.Subdivision.Edge, OAI.MaxCutGames.Explicit.Subdivision.left, OAI.MaxCutGames.Explicit.Subdivision.right
- def
OAI.MaxCutGames.Explicit.Subdivision.gameline 137 - theorem
OAI.MaxCutGames.Explicit.Subdivision.isTranslationline 145Source documentation
Reversing the last edge negates its translation offset.
theorem isTranslation [AddGroup A] (g : OccurrenceGame V E A) (hg : g.IsTranslation) : (game g).IsTranslation := by …Mentions: OAI.MaxCutGames.Explicit.OccurrenceGame, OAI.MaxCutGames.Explicit.Subdivision.game
- theorem
OAI.MaxCutGames.Explicit.Subdivision.binary_translation_offsetsline 158Source documentation
In a binary additive alphabet the inverse offset is the original offset.
theorem binary_translation_offsets [AddGroup A] (hbinary : ∀ a : A, a + a = 0) (g : OccurrenceGame V E A) (c : E → A) (hc : ∀ e a, g.permutation e a = a + c e) : ∀ ei a, (game g).permutation ei a = a + (if ei.2 = 3 then c ei.1 else 0) := by …Mentions: OAI.MaxCutGames.Explicit.OccurrenceGame, OAI.MaxCutGames.Explicit.Subdivision.game, OAI.MaxCutGames.Explicit.Subdivision.permutation
- def
OAI.MaxCutGames.Explicit.Subdivision.restrictline 171Source documentation
Restrict any output labeling to the original vertices.
def restrict (a : Left V E → A) : V → A := fun v => a (Sum.inl v)
- def
OAI.MaxCutGames.Explicit.Subdivision.extendLeftline 173 - def
OAI.MaxCutGames.Explicit.Subdivision.extendRightline 176 - theorem
OAI.MaxCutGames.Explicit.Subdivision.restrict_extendLeftline 179 - theorem
OAI.MaxCutGames.Explicit.Subdivision.four_satisfied_implies_originalline 183Source documentation
All four equations along the path force the original permutation equation.
theorem four_satisfied_implies_original (ρ : Equiv.Perm A) (u p q r v : A) (h₀ : u = p) (h₁ : q = p) (h₂ : q = r) (h₃ : ρ.symm v = r) : ρ u = v := by … - theorem
OAI.MaxCutGames.Explicit.Subdivision.local_count_leline 193Source documentation
The strongest possible path score for fixed endpoint labels is exactly three plus the old satisfaction indicator.
theorem local_count_le (ρ : Equiv.Perm A) (u p q r v : A) : (if u = p then 1 else 0) + (if q = p then 1 else 0) + (if q = r then 1 else 0) + (if ρ.symm v = r then 1 else 0) ≤ 3 + (if ρ u = v then 1 else 0 : Nat) := by … - theorem
OAI.MaxCutGames.Explicit.Subdivision.local_count_extendline 201 - theorem
OAI.MaxCutGames.Explicit.Subdivision.count_on_occurrence_leline 214 - theorem
OAI.MaxCutGames.Explicit.Subdivision.count_on_occurrence_extendline 225 - theorem
OAI.MaxCutGames.Explicit.Subdivision.satisfiedCount_leline 236 - theorem
OAI.MaxCutGames.Explicit.Subdivision.satisfiedCount_extendline 249Source documentation
Fresh interiors can be assigned independently, so the upper bound is attained.
theorem satisfiedCount_extend (g : OccurrenceGame V E A) (a : V → A) : (game g).satisfiedCount (extendLeft g a) (extendRight g a) = 3 * Fintype.card E + g.satisfiedCount a := by …Mentions: OAI.MaxCutGames.Explicit.OccurrenceGame, OAI.MaxCutGames.Explicit.Subdivision.game, OAI.MaxCutGames.Explicit.Subdivision.extendLeft, OAI.MaxCutGames.Explicit.Subdivision.extendRight
- theorem
OAI.MaxCutGames.Explicit.Subdivision.edge_countline 257 - theorem
OAI.MaxCutGames.Explicit.Subdivision.left_countline 260 - theorem
OAI.MaxCutGames.Explicit.Subdivision.right_countline 264 - theorem
OAI.MaxCutGames.Explicit.Subdivision.maxSatisfied_eqline 269 - theorem
OAI.MaxCutGames.Explicit.Subdivision.value_eqline 281