OAI/Computability/MaxCut/Estimates/Vec.lean
75 declarations, 0 contain sorry, 0 declared as axioms
Exact tree gate and slice symmetry. Sign values are encoded in ZMod 2: b encodes (-1)^b.
- abbrev
OAI.OptimalMaxCut.Unweighted.Vecline 11 - def
OAI.OptimalMaxCut.Unweighted.dotline 13 - theorem
OAI.OptimalMaxCut.Unweighted.card_vecline 17 - theorem
OAI.OptimalMaxCut.Unweighted.dot_commline 21 - theorem
OAI.OptimalMaxCut.Unweighted.dot_add_rightline 24 - theorem
OAI.OptimalMaxCut.Unweighted.dot_sub_leftline 28 - theorem
OAI.OptimalMaxCut.Unweighted.dot_zero_rightline 32 - def
OAI.OptimalMaxCut.Unweighted.dotCharline 34 - theorem
OAI.OptimalMaxCut.Unweighted.norm_stdCharline 39 - theorem
OAI.OptimalMaxCut.Unweighted.dotChar_ne_oneline 43 - theorem
OAI.OptimalMaxCut.Unweighted.sum_dotCharline 55 - theorem
OAI.OptimalMaxCut.Unweighted.conj_stdCharline 63 - theorem
OAI.OptimalMaxCut.Unweighted.orthogonalityline 67 - theorem
OAI.OptimalMaxCut.Unweighted.rectangle_energyline 76 - theorem
OAI.OptimalMaxCut.Unweighted.rectangle_character_boundline 89 - def
OAI.OptimalMaxCut.Unweighted.betaline 120Source documentation
Fourier coefficient of the residue indicator, probability normalization.
noncomputable def beta (I : Finset (ZMod p)) (h : ZMod p) : ℂ := …
- theorem
OAI.OptimalMaxCut.Unweighted.beta_zeroline 123 - theorem
OAI.OptimalMaxCut.Unweighted.beta_norm_le_oneline 126 - theorem
OAI.OptimalMaxCut.Unweighted.residue_fourierline 139 - def
OAI.OptimalMaxCut.Unweighted.rectangleCountline 157 - theorem
OAI.OptimalMaxCut.Unweighted.rectangle_fourierline 161Source documentation
Isolate the zero frequency in the rectangle count.
theorem rectangle_fourier (I : Finset (ZMod p)) (S T : Finset (Vec p)) : (rectangleCount I S T : ℂ) - (I.card : ℂ) / p * S.card * T.card = ∑ h ∈ (univ : Finset (ZMod p)).erase 0, beta I h * ∑ x ∈ S, ∑ y ∈ T, ZMod.stdAddChar (h * dot x y) := by …Mentions: OAI.OptimalMaxCut.Unweighted.Vec, OAI.OptimalMaxCut.Unweighted.rectangleCount, OAI.OptimalMaxCut.Unweighted.beta, OAI.OptimalMaxCut.Unweighted.dot
- theorem
OAI.OptimalMaxCut.Unweighted.rectangle_discrepancy_countline 182Source documentation
Absolute discrepancy in edge counts before dividing by Q=p^12.
theorem rectangle_discrepancy_count (I : Finset (ZMod p)) (S T : Finset (Vec p)) : |(rectangleCount I S T : ℝ) - (I.card : ℝ) / p * S.card * T.card| ≤ (p : ℝ) ^ 10 := by …Mentions: OAI.OptimalMaxCut.Unweighted.Vec, OAI.OptimalMaxCut.Unweighted.rectangleCount
- def
OAI.OptimalMaxCut.Unweighted.residueSetline 207 - theorem
OAI.OptimalMaxCut.Unweighted.card_residueSetline 210 - theorem
OAI.OptimalMaxCut.Unweighted.residue_density_errorline 223Source documentation
The exact rounding loss uses the original rational weight, not a renormalized one.
theorem residue_density_error (w : ℚ) (hw : 0 ≤ w) (hw1 : w ≤ 1) : |((residueSet (p := p) w).card : ℝ) / p - w| ≤ 1 / (p : ℝ) := by …Mentions: OAI.OptimalMaxCut.Unweighted.residueSet
- theorem
OAI.OptimalMaxCut.Unweighted.rectangle_discrepancyline 238 - def
OAI.OptimalMaxCut.Unweighted.cutMassline 292 - theorem
OAI.OptimalMaxCut.Unweighted.sum_cutMassline 295 - theorem
OAI.OptimalMaxCut.Unweighted.cutMass_nonnegline 301 - theorem
OAI.OptimalMaxCut.Unweighted.independent_pairline 308Source documentation
Two distinct coordinates of a product law, proved by finite product expansion.
theorem independent_pair (f : V → Bool → ℝ) (hf : ∀ i, ∑ b : Bool, f i b = 1) (u v : V) (huv : u ≠ v) (g k : Bool → ℝ) : ∑ σ : V → Bool, (∏ i, f i (σ i)) * g (σ u) * k (σ v) = (∑ b : Bool, f u b * g b) * (∑ b : Bool, f v b * k b) := by … - theorem
OAI.OptimalMaxCut.Unweighted.cutMass_crossingline 335Source documentation
Probability that two distinct vertices receive different cut signs.
theorem cutMass_crossing (a : V → ℝ) (u v : V) (huv : u ≠ v) : ∑ σ : V → Bool, cutMass a σ * (if σ u ≠ σ v then 1 else 0) = a u * (1 - a v) + (1 - a u) * a v := by …Mentions: OAI.OptimalMaxCut.Unweighted.cutMass
- def
OAI.OptimalMaxCut.Unweighted.weightedCutline 355Source documentation
Weighted cut on unordered distinct vertex pairs, on the original weight scale.
def weightedCut {N : ℕ} (w : Fin N → Fin N → ℝ) (σ : Fin N → Bool) : ℝ := … - def
OAI.OptimalMaxCut.Unweighted.weightedMaxline 358 - theorem
OAI.OptimalMaxCut.Unweighted.weightedCut_le_maxline 361 - theorem
OAI.OptimalMaxCut.Unweighted.weightedMax_attainedline 365 - def
OAI.OptimalMaxCut.Unweighted.fractionalCutline 372Source documentation
Expected cut weight under independent randomized rounding.
def fractionalCut {N : ℕ} (w : Fin N → Fin N → ℝ) (a : Fin N → ℝ) : ℝ := … - theorem
OAI.OptimalMaxCut.Unweighted.fractionalCut_expectationline 375 - theorem
OAI.OptimalMaxCut.Unweighted.fractionalCut_le_maxline 396Source documentation
Rounding cannot exceed an actual integral maximum cut.
theorem fractionalCut_le_max {N : ℕ} (w : Fin N → Fin N → ℝ) (a : Fin N → ℝ) (ha : ∀ u, 0 ≤ a u ∧ a u ≤ 1) : fractionalCut w a ≤ weightedMax w := by …Mentions: OAI.OptimalMaxCut.Unweighted.fractionalCut, OAI.OptimalMaxCut.Unweighted.weightedMax
- def
OAI.OptimalMaxCut.Unweighted.vecEquivline 405 - def
OAI.OptimalMaxCut.Unweighted.vertexEquivline 410Source documentation
Explicit lexicographic indexing of all Np^6 output vertices.
def vertexEquiv (N : ℕ) : (Fin N × Vec p) ≃ Fin (N * p ^ 6) := …
Mentions: OAI.OptimalMaxCut.Unweighted.Vec
- theorem
OAI.OptimalMaxCut.Unweighted.vertexEquiv_valline 413 - theorem
OAI.OptimalMaxCut.Unweighted.vertexEquiv_lt_of_ltline 416 - theorem
OAI.OptimalMaxCut.Unweighted.vertexEquiv_lt_iff_of_neline 423 - def
OAI.OptimalMaxCut.Unweighted.blowupGraphline 433Source documentation
The actual simple unweighted finite output graph, not an abstract promise.
def blowupGraph {N : ℕ} (w : Fin N → Fin N → ℚ) (hw : ∀ u v, w u v = w v u) : Graph where …Mentions: OAI.OptimalMaxCut.Graph
- def
OAI.OptimalMaxCut.Unweighted.blowupOutputline 446Source documentation
The scale is p^12, not the output number of edges.
def blowupOutput {N : ℕ} (w : Fin N → Fin N → ℚ) (hw : ∀ u v, w u v = w v u) : ScaledGraph where …Mentions: OAI.OptimalMaxCut.ScaledGraph
- theorem
OAI.OptimalMaxCut.Unweighted.blowup_adjline 451 - def
OAI.OptimalMaxCut.Unweighted.clusterCutCountline 458Source documentation
A cut expressed in cluster coordinates.
def clusterCutCount {N : ℕ} (w : Fin N → Fin N → ℚ) (σ : Fin N → Vec p → Bool) : ℕ := …Mentions: OAI.OptimalMaxCut.Unweighted.Vec
- theorem
OAI.OptimalMaxCut.Unweighted.blowup_cutSizeline 463 - def
OAI.OptimalMaxCut.Unweighted.cutSetline 499Source documentation
Either side of a cut inside one cluster.
def cutSet (σ : Vec p → Bool) (b : Bool) : Finset (Vec p) := …
Mentions: OAI.OptimalMaxCut.Unweighted.Vec
- theorem
OAI.OptimalMaxCut.Unweighted.mem_cutSetline 502 - theorem
OAI.OptimalMaxCut.Unweighted.cutSet_card_partitionline 505 - def
OAI.OptimalMaxCut.Unweighted.cutFractionline 512Source documentation
Fraction of a cluster on the positive side, on the exact p^6 scale.
noncomputable def cutFraction (σ : Vec p → Bool) : ℝ := (cutSet σ true).card / (p : ℝ) ^ 6
Mentions: OAI.OptimalMaxCut.Unweighted.Vec, OAI.OptimalMaxCut.Unweighted.cutSet
- theorem
OAI.OptimalMaxCut.Unweighted.cutFraction_memline 514 - theorem
OAI.OptimalMaxCut.Unweighted.cutFraction_falseline 523 - def
OAI.OptimalMaxCut.Unweighted.pairCutCountline 533Source documentation
The exact edge count crossing between two distinct clusters.
def pairCutCount (w : ℚ) (σ τ : Vec p → Bool) : ℕ := …
Mentions: OAI.OptimalMaxCut.Unweighted.Vec
- theorem
OAI.OptimalMaxCut.Unweighted.rectangle_cutSetline 536 - theorem
OAI.OptimalMaxCut.Unweighted.pairCutCount_rectanglesline 549 - theorem
OAI.OptimalMaxCut.Unweighted.pairCutCount_discrepancyline 562 - theorem
OAI.OptimalMaxCut.Unweighted.twice_pair_countline 583Source documentation
Twice the number of unordered distinct pairs, including N=0 and N=1.
theorem twice_pair_count (N : ℕ) : (∑ u : Fin N, ∑ v : Fin N, if u < v then (2 : ℝ) else 0) = (N : ℝ) * ((N : ℝ) - 1) := by … - theorem
OAI.OptimalMaxCut.Unweighted.clusterCutCount_discrepancyline 595Source documentation
Summing the exact pair loss on the common unnormalized scale.
theorem clusterCutCount_discrepancy {N : ℕ} (w : Fin N → Fin N → ℚ) (hbound : ∀ u v, u < v → 0 ≤ w u v ∧ w u v ≤ 1) (σ : Fin N → Vec p → Bool) : |(clusterCutCount w σ : ℝ) / (p : ℝ) ^ 12 - fractionalCut (fun u v => (w u v : ℝ)) (fun u => cutFraction (σ u))| ≤ (N : ℝ) * ((N : ℝ) - 1) * (1 / (p : ℝ) + 1 / (p : ℝ) ^ 2) := by …Mentions: OAI.OptimalMaxCut.Unweighted.Vec, OAI.OptimalMaxCut.Unweighted.clusterCutCount, OAI.OptimalMaxCut.Unweighted.fractionalCut, OAI.OptimalMaxCut.Unweighted.cutFraction
- theorem
OAI.OptimalMaxCut.Unweighted.graph_cut_le_maxline 633Source documentation
Every cut lies below the finite unweighted optimum.
theorem graph_cut_le_max (G : Graph) (σ : Fin G.vertices → Bool) : G.cutSize σ ≤ G.maxCut := by …Mentions: OAI.OptimalMaxCut.Graph
- theorem
OAI.OptimalMaxCut.Unweighted.graph_max_attainedline 639Source documentation
The finite unweighted optimum is attained by an actual cut.
theorem graph_max_attained (G : Graph) : ∃ σ, G.cutSize σ = G.maxCut := by …
Mentions: OAI.OptimalMaxCut.Graph
- theorem
OAI.OptimalMaxCut.Unweighted.cutFraction_constline 646 - theorem
OAI.OptimalMaxCut.Unweighted.fractionalCut_integralline 651 - theorem
OAI.OptimalMaxCut.Unweighted.blowup_maxCut_errorline 662Source documentation
Full optimum comparison for the actual simple finite graph. No complexity certificate is asserted in this analytic/combinatorial theorem.
theorem blowup_maxCut_error {N : ℕ} (w : Fin N → Fin N → ℚ) (hw : ∀ u v, w u v = w v u) (hbound : ∀ u v, u < v → 0 ≤ w u v ∧ w u v ≤ 1) : |((blowupGraph (p := p) w hw).maxCut : ℝ) / (p : ℝ) ^ 12 - …Mentions: OAI.OptimalMaxCut.Unweighted.blowupGraph
- def
OAI.OptimalMaxCut.Unweighted.totalWeightline 694 - theorem
OAI.OptimalMaxCut.Unweighted.normalized_pair_boundline 697 - def
OAI.OptimalMaxCut.Unweighted.searchPrimeline 719Source documentation
Bounded deterministic prime search. Its bound follows from Bertrand, not a prime oracle or an unbounded assumed operation.
def searchPrime (m : ℕ) : ℕ := …
- theorem
OAI.OptimalMaxCut.Unweighted.searchPrime_specline 722 - def
OAI.OptimalMaxCut.Unweighted.deterministicOutputline 740 - theorem
OAI.OptimalMaxCut.Unweighted.selected_prime_errorline 746 - theorem
OAI.OptimalMaxCut.Unweighted.deterministicOutput_errorline 778 - theorem
OAI.OptimalMaxCut.Unweighted.deterministicOutput_vertex_boundline 791Source documentation
Explicit polynomial vertex bound for fixed K. It is a size bound, not by itself a certificate of polynomial running time.
theorem deterministicOutput_vertex_bound {N : ℕ} (K : ℕ) (w : Fin N → Fin N → ℚ) (hw : ∀ u v, w u v = w v u) : (deterministicOutput K w hw).graph.vertices ≤ N * (2 * (K * (N + 1) ^ 2 + 1)) ^ 6 := by … - theorem
OAI.OptimalMaxCut.Unweighted.deterministicOutput_scale_boundline 796 - theorem
OAI.OptimalMaxCut.Unweighted.unweighted_finite_errorline 801