OAI/Computability/MaxCut/PCP/GraphGap.lean
78 declarations, 0 contain sorry, 0 declared as axioms
Actual finite counting for rounding copied dart labels. Minority color classes are small enough for the cloud's directed-cut expansion. Their boundary darts inject into all label disagreements. A separate endpoint charge counts at most two affected original darts per changed copied label.
- def
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.rejectionCountsline 17 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.rejectionCounts_nonemptyline 21 - def
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.minimumRejectionsline 26 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.minimumRejections_leline 29 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.exists_minimizerline 34 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.le_minimumRejections_iffline 41 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.minimumRejections_le_cardline 51 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.rejectionCount_eq_zero_iffline 58 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.minimumRejections_eq_zero_iffline 73 - def
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.gapline 83 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.gap_nonnegativeline 86 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.gap_le_oneline 89 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.gap_eq_zero_iffline 95 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.le_gap_iffline 102Source documentation
A lower bound on the actual minimum is exactly the universal count bound.
theorem le_gap_iff [Nonempty E] (G : ConstraintGraph V E A) (ε : ℝ) : ε ≤ G.gap ↔ ∀ labeling : V → A, ε * Fintype.card E ≤ (G.rejectionCount labeling : ℝ) := by … - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.inverse_card_le_gap_of_unsatisfiableline 115 - def
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.reindexline 130Source documentation
Explicit changes of vertex, dart, and label coordinates.
def reindex (G : ConstraintGraph V E A) (vertices : V ≃ W) (darts : E ≃ D) (labels : A ≃ B) : ConstraintGraph W D B where … - def
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.labelingEquivline 144 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.reindex_edgeSatisfiedline 150 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.reindex_rejectionCountline 157 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.rejectionCounts_reindexline 181 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.minimumRejections_reindexline 198 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.gap_reindexline 204 - theorem
OAI.MaxCutGames.Foundations.PCP.ConstraintGraph.satisfiable_reindexline 210 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.overlayPortsline 225Source documentation
Old ports precede expander ports.
def overlayPorts (d e : Nat) : (Fin d ⊕ Fin e) ≃ Fin (d + e) := finSumFinEquiv
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.overlayPorts_inl_valline 227 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.overlayPorts_inr_valline 230 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.lazyPortsline 235Source documentation
False/stay ports occupy rows
0,...,d-1; true/move ports occupy rowsd,...,2*d-1, before the vertex offset is added.def lazyPorts (d : Nat) : (Bool × Fin d) ≃ Fin (2 * d) := …
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.lazyPorts_false_valline 238 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.lazyPorts_true_valline 242 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.materializeline 249Source documentation
Materialize explicitly supplied pair-dart semantics in numbered port coordinates. The executable rotation only conjugates
G.reversebyports. The hypothesis about reversal affects proofs, not stored data.def materialize {n d : Nat} {D : Type*} (G : ConstraintGraph (Fin n) (Fin n × D) PortTables.Label) (ports : D ≃ Fin d) : PortTables.Table n d := …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.PortTables.Label, OAI.MaxCutGames.Foundations.PCP.PortTables.Table
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.rotation_materializeline 262 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.rotation_materialize_imageline 273 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.accepts_materializeline 280 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.constraintGraph_ext_inline_PreprocessingOverlayTablesline 287 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.baseGraph_materializeline 301 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.overlayline 318Source documentation
Add the expander's stored ports; every new constraint always accepts.
def overlay {n d e : Nat} (G : PortTables.Table n d) (H : ExpanderTables.Table n e) : PortTables.Table n (d + e) := …Mentions: OAI.MaxCutGames.Foundations.PCP.PortTables.Table, OAI.MaxCutGames.Foundations.PCP.ExpanderTables.Table
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.overlay_rotation_oldline 323 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.overlay_rotation_expanderline 330 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.overlay_accepts_oldline 337 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.overlay_accepts_expanderline 344 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.overlay_semanticsline 350 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.lazyline 358 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.lazy_rotation_falseline 361 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.lazy_rotation_trueline 367 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.lazy_accepts_falseline 374 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.lazy_accepts_trueline 380 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingOverlayTables.lazy_semanticsline 387 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.dart_rejection_count_leline 406 - def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.colorSetline 455 - def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.minoritySetline 458 - def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.directedCutline 461 - def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.disagreementSetline 464 - abbrev
OAI.MaxCutGames.Foundations.PCP.CloudRounding.Nonmajorline 467 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.exists_max_colorline 470 - def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.majorityline 477 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.majority_maximalline 481 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.nonchosen_color_twice_leline 487Source documentation
Every nonchosen color occupies at most half the cloud.
theorem nonchosen_color_twice_le (ell : X → A) (m : A) (maximal : ∀ a, (colorSet ell a).card ≤ (colorSet ell m).card) (a : A) (ha : a ≠ m) : 2 * (colorSet ell a).card ≤ Fintype.card X := by …Mentions: OAI.MaxCutGames.Foundations.PCP.CloudRounding.colorSet
- def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.minorityEquivline 506 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.minority_card_eq_sumline 523 - def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.minorityCutEmbeddingline 529Source documentation
The tail label determines the forgotten minority color.
def minorityCutEmbedding (ell : X → A) (next : X × D → X) (m : A) : (Σ a : Nonmajor m, ↥(directedCut next (colorSet ell a.val))) ↪ ↥(disagreementSet ell next) where …Mentions: OAI.MaxCutGames.Foundations.PCP.CloudRounding.Nonmajor, OAI.MaxCutGames.Foundations.PCP.CloudRounding.directedCut, OAI.MaxCutGames.Foundations.PCP.CloudRounding.colorSet, OAI.MaxCutGames.Foundations.PCP.CloudRounding.disagreementSet
- theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.minority_cut_sum_leline 555 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.minority_expansion_boundline 563Source documentation
Sum genuine directed-cut expansion over the nonchosen color classes.
theorem minority_expansion_bound (ell : X → A) (next : X × D → X) (m : A) (h : ℚ) (maximal : ∀ a, (colorSet ell a).card ≤ (colorSet ell m).card) (expansion : ∀ S : Finset X, S.card ≤ Fintype.card X / 2 → h * (S.card : ℚ) ≤ ((directedCut next S).card : ℚ)) : h * ((minoritySet ell m).card : ℚ) ≤ ((disagreementSet ell next).card : ℚ) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.CloudRounding.colorSet, OAI.MaxCutGames.Foundations.PCP.CloudRounding.directedCut, OAI.MaxCutGames.Foundations.PCP.CloudRounding.minoritySet, OAI.MaxCutGames.Foundations.PCP.CloudRounding.disagreementSet
- def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.mismatchSetline 593 - def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.copiedRejectionCountline 597 - def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.innerDisagreementSetline 600 - def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.roundLabelsline 604 - def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.mismatchFiberEquivline 609Source documentation
Every changed dart belongs to precisely one tail fiber.
def mismatchFiberEquiv (G : ConstraintGraph V E A) (ell : E → A) (rounded : V → A) : (Σ v, ↥(minoritySet (fun e : Cloud G v => ell e.val) (rounded v))) ≃ ↥(mismatchSet G ell rounded) where …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.CloudRounding.minoritySet, OAI.MaxCutGames.Foundations.PCP.CloudRounding.mismatchSet
- theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.mismatch_card_eq_sumline 627 - def
OAI.MaxCutGames.Foundations.PCP.CloudRounding.disagreementFiberEquivline 635Source documentation
A cloud disagreement is the same actual internal dart in global coordinates.
def disagreementFiberEquiv (G : ConstraintGraph V E A) (H : ∀ v, PortGraph (Cloud G v) D) (ell : E → A) : (Σ v, ↥(disagreementSet (fun e : Cloud G v => ell e.val) (fun ed => ((H v).rot ed).1))) ≃ ↥(innerDisagreementSet G H ell) where …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.CloudRounding.disagreementSet, OAI.MaxCutGames.Foundations.PCP.CloudRounding.innerDisagreementSet
- theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.disagreement_card_eq_sumline 657 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.rounded_mismatch_expansionline 666Source documentation
No uniform cloud-size hypothesis occurs in this finite sum.
theorem rounded_mismatch_expansion [Nonempty A] (G : ConstraintGraph V E A) (H : ∀ v, PortGraph (Cloud G v) D) (ell : E → A) (h : ℚ) (expansion : ∀ v (S : Finset (Cloud G v)), S.card ≤ Fintype.card (Cloud G v) / 2 → h * (S.card : ℚ) ≤ ((directedCut (fun ed => ((H v).rot ed).1) S).card : ℚ)) : h * ((mismatchSet G ell (roundLabels G ell)).card : ℚ) ≤ ((innerDisagreementSet G H ell).card : ℚ) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.CloudRounding.directedCut, OAI.MaxCutGames.Foundations.PCP.CloudRounding.mismatchSet, OAI.MaxCutGames.Foundations.PCP.CloudRounding.roundLabels, OAI.MaxCutGames.Foundations.PCP.CloudRounding.innerDisagreementSet
- theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.rounded_endpoint_boundline 683 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.copied_satisfied_inlline 690 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.copied_satisfied_inrline 696 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.replacement_rejection_splitline 703Source documentation
Exact rejection count for arbitrary copied labels, including cloud violations.
theorem replacement_rejection_split (G : ConstraintGraph V E A) (H : ∀ v, PortGraph (Cloud G v) D) (ell : E → A) : (replacementGraph G H).rejectionCount ell = copiedRejectionCount G ell + (innerDisagreementSet G H ell).card := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.CloudRounding.copiedRejectionCount, OAI.MaxCutGames.Foundations.PCP.CloudRounding.innerDisagreementSet
- theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.replacement_soundnessline 716Source documentation
Directed expansion by two pays for both changed endpoints exactly.
theorem replacement_soundness [Nonempty A] (G : ConstraintGraph V E A) (H : ∀ v, PortGraph (Cloud G v) D) (expansion : ∀ v (S : Finset (Cloud G v)), S.card ≤ Fintype.card (Cloud G v) / 2 → 2 * S.card ≤ (directedCut (fun ed => ((H v).rot ed).1) S).card) (ell : E → A) : G.rejectionCount (roundLabels G ell) ≤ (replacementGraph G H).rejectionCount ell := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.CloudRounding.directedCut, OAI.MaxCutGames.Foundations.PCP.CloudRounding.roundLabels
- theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.padded_replacement_soundnessline 733Source documentation
Padding changes the normalization, but never the rounded absolute rejection count.
theorem padded_replacement_soundness [Nonempty A] (G : ConstraintGraph V E A) (dummy : V → Type*) [∀ v, Fintype (dummy v)] [∀ v, DecidableEq (dummy v)] (H : ∀ v, PortGraph (Cloud (paddedGraph G dummy) v) D) (expansion : ∀ v (S : Finset (Cloud (paddedGraph G dummy) v)), S.card ≤ Fintype.card (Cloud (paddedGraph G dummy) v) / 2 → 2 * S.card ≤ (directedCut (fun ed => ((H v).rot ed).1) S).card) (ell : PaddedDart G dummy → A) : G.rejectionCount (roundLabels (paddedGraph G dummy) ell) ≤ (paddedReplacementGraph G dummy H).rejectionCount ell := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.CloudRounding.directedCut, OAI.MaxCutGames.Foundations.PCP.CloudRounding.roundLabels
- theorem
OAI.MaxCutGames.Foundations.PCP.CloudRounding.combine_countsline 749Source documentation
The exact coefficient obtained by combining endpoint charging and expansion.
theorem combine_counts (R b M c : Nat) (h : ℚ) (hh : 0 < h) (endpoint : R ≤ b + 2 * M) (cloud : h * (M : ℚ) ≤ (c : ℚ)) : (R : ℚ) ≤ max 1 (2 / h) * ((b : ℚ) + (c : ℚ)) := by …