OAI/Computability/UniqueGames/PCP/OverlayLemmas.lean
96 declarations, 0 contain sorry, 0 declared as axioms
Overlay a regular constraint graph with an actual regular port graph whose new constraints always accept. The port sets are disjoint, so all original rejected darts are retained exactly. The averaging operator is the actual degree-weighted mixture of the two graph averages.
- def
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.originalPortGraphline 30 - def
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.rotateline 34 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.rotate_involutiveline 39 - def
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.portGraphline 48 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.portGraph_rot_inlline 56 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.portGraph_rot_inrline 61 - def
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.constraintGraphline 67Source documentation
Keep the original tests and add always-accepting tests on the overlay ports.
def constraintGraph (G : ConstraintGraph V (V × D) A) (H : PortGraph V E) : ConstraintGraph V (V × (D ⊕ E)) A where …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ConstraintGraph
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.constraintGraph_tailline 81 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.constraintGraph_portGraphline 84 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.edgeSatisfied_inlline 88 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.edgeSatisfied_inrline 98 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.completeline 102 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.satisfiable_iffline 112 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.rejectionCount_eqline 125Source documentation
Every labeling rejects exactly the same number of darts before and after overlay.
theorem rejectionCount_eq [Fintype V] [Fintype D] [Fintype E] (G : ConstraintGraph V (V × D) A) (H : PortGraph V E) (htail : G.tail = Prod.fst) (labeling : V → A) : (constraintGraph G H).rejectionCount labeling = G.rejectionCount labeling := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ConstraintGraph, OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.constraintGraph
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.card_portsline 134 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.card_dartsline 137 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.operator_mixline 148Source documentation
The normalized graph average weights the components by their actual port counts.
theorem operator_mix [Nonempty D] [Nonempty E] (G : PortGraph V D) (H : PortGraph V E) (f : V → ℝ) (v : V) : averagingOperator (portGraph G H) f v = (Fintype.card D : ℝ) / ((Fintype.card D : ℝ) + Fintype.card E) * averagingOperator G f v + (Fintype.card E : ℝ) / ((Fintype.card D : ℝ) + Fintype.card E) * averagingOperator H f v := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.portGraph
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.energy_convex_mixline 168Source documentation
Convexity of the squared energy, proved pointwise before taking the finite mean.
theorem energy_convex_mix (a b : ℝ) (ha : 0 ≤ a) (hb : 0 ≤ b) (hab : a + b = 1) (f g : V → ℝ) : energy (fun v => a * f v + b * g v) ≤ a * energy f + b * energy g := by … - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.energy_boundline 185Source documentation
Actual overlay contraction from the supplied graph's spectral bound and the proved energy contraction of an arbitrary reversible regular graph.
theorem energy_bound [Nonempty V] [Nonempty D] [Nonempty E] (G : PortGraph V D) (H : PortGraph V E) (lambda : ℝ) (certificate : SpectralCertificate H lambda) (f : V → ℝ) (hf : mean f = 0) : energy (averagingOperator (portGraph G H) f) ≤ ((Fintype.card D : ℝ) + (Fintype.card E : ℝ) * lambda ^ 2) / ((Fintype.card D : ℝ) + Fintype.card E) * energy f := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.portGraph
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.energy_bound_three_quartersline 222Source documentation
With one more original port than overlay ports, a half-spectral overlay has squared contraction at most three quarters.
theorem energy_bound_three_quarters [Nonempty V] (G : PortGraph V D) (H : PortGraph V E) (hdegree : Fintype.card D = Fintype.card E + 1) (hpositive : 1 ≤ Fintype.card E) (certificate : SpectralCertificate H (1 / 2 : ℝ)) (f : V → ℝ) (hf : mean f = 0) : energy (averagingOperator (portGraph G H) f) ≤ (3 / 4 : ℝ) * energy f := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.portGraph
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.spectralCertificate_seven_eighthsline 241 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.constraintGraph_spectralCertificateline 255Source documentation
The certificate belongs to the exact underlying graph of the overlaid constraints.
theorem constraintGraph_spectralCertificate [Nonempty V] (G : ConstraintGraph V (V × D) A) (H : PortGraph V E) (hdegree : Fintype.card D = Fintype.card E + 1) (hpositive : 1 ≤ Fintype.card E) (certificate : SpectralCertificate H (1 / 2 : ℝ)) : SpectralCertificate (originalPortGraph (constraintGraph G H)) (7 / 8 : ℝ) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ConstraintGraph, OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.originalPortGraph, OAI.UniqueGamesTheorem.Foundations.PCP.Overlay.constraintGraph
- def
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.constraintGraphline 282 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.constraintGraph_tailline 294 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.constraintGraph_reverseline 297 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.constraintGraph_portGraphline 300 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.edgeSatisfied_falseline 304 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.edgeSatisfied_trueline 308 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.completeline 317 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.complete_iffline 327 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.satisfiable_iffline 338 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.rejectionCount_eqline 347Source documentation
The equality holds for every labeling, including nonsatisfying ones.
theorem rejectionCount_eq [Fintype V] [Fintype D] (G : ConstraintGraph V (V × D) A) (htail : G.tail = Prod.fst) (labeling : V → A) : (constraintGraph G).rejectionCount labeling = G.rejectionCount labeling := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ConstraintGraph, OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.constraintGraph
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.card_portsline 356 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.card_dartsline 360 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.rejection_density_eq_halfline 366Source documentation
The actual normalized rejection probability is halved. The identity also holds for empty dart types, using the field's totalized division.
theorem rejection_density_eq_half [Fintype V] [Fintype D] (G : ConstraintGraph V (V × D) A) (htail : G.tail = Prod.fst) (labeling : V → A) : ((constraintGraph G).rejectionCount labeling : ℝ) / (Fintype.card (V × (Bool × D)) : ℝ) = ((G.rejectionCount labeling : ℝ) / (Fintype.card (V × D) : ℝ)) / 2 := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ConstraintGraph, OAI.UniqueGamesTheorem.Foundations.PCP.LazyConstraint.constraintGraph
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.listEquivline 400Source documentation
An explicit complete list supplies both directions of a finite encoding. The forward direction searches the list; its inverse performs list indexing.
def listEquiv {α : Type*} [BEq α] [LawfulBEq α] (xs : List α) (nodup : xs.Nodup) (complete : ∀ a, a ∈ xs) : α ≃ Fin xs.length where … - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.listEquiv_valline 409 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.listEquiv_symm_applyline 413 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudDartsline 418Source documentation
Retain the input dart order and test only the stored tail index.
def cloudDarts (t : Table) (v : Fin t.vertices) : List (Fin t.darts) := …
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.mem_cloudDartsline 421 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudDarts_nodupline 425 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudDarts_sublistline 431Source documentation
Filtering preserves the original ordering, including repeated row values at different dart indices.
theorem cloudDarts_sublist (t : Table) (v : Fin t.vertices) : (cloudDarts t v).Sublist (List.finRange t.darts) := List.filter_sublistMentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudDarts
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSizeline 434 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSize_le_dartsline 436 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSelectline 441Source documentation
Read the original dart stored at a valid local cloud index.
def cloudSelect (t : Table) (v : Fin t.vertices) (i : Fin (cloudSize t v)) : Cloud (semantics t) v := …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSize
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudRankline 447Source documentation
Find the local index of an original dart belonging to this cloud.
def cloudRank (t : Table) (v : Fin t.vertices) (e : Cloud (semantics t) v) : Fin (cloudSize t v) := …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSize
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSelect_valline 452 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudRank_valline 456 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSelect_cloudRankline 460 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudRank_cloudSelectline 465 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudEquivline 472Source documentation
This equivalence contains executable rank and select functions, including when both its domain and codomain are empty.
def cloudEquiv (t : Table) (v : Fin t.vertices) : Cloud (semantics t) v ≃ Fin (cloudSize t v) where …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSize
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSize_eq_card_cloudline 479 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudDarts_eq_nil_iffline 483 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSize_eq_zero_iffline 487 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.sum_cloudSizeline 491 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.oldCloudIndexline 501Source documentation
An original global dart carries its own owner and executable local rank.
def oldCloudIndex (t : Table) (e : Fin t.darts) : Fin (cloudSize t t.rows[e].tail) := cloudRank t t.rows[e].tail ⟨e, rfl⟩Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSize, OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudRank
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSelect_oldCloudIndexline 504 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.PaddedCloudline 510Source documentation
Padding counts are supplied as executable natural-valued data, without choosing enumerations of the semantic clouds by their cardinalities.
abbrev PaddedCloud (t : Table) (padding : Fin t.vertices → Nat) (v : Fin t.vertices) := … - def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedOldline 514 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedNewline 518 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedCloudEquivline 523Source documentation
Local padded order: old cloud indices first, then increasing dummy index.
def paddedCloudEquiv (t : Table) (padding : Fin t.vertices → Nat) (v : Fin t.vertices) : PaddedCloud t padding v ≃ Fin (cloudSize t v + padding v) := …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.PaddedCloud, OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.cloudSize
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRankline 529 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedCloudSelectline 533 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedCloudSelect_rankline 537 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRank_selectline 542 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRank_oldline 547 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRank_newline 552 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRank_old_valline 557 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRank_new_valline 562 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedCloudSelect_castAddline 567 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.paddedCloudSelect_natAddline 579 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingCloudIndex.card_paddedCloudline 585 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.levelLoopline 598 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.levelLoop_level_leline 605Source documentation
At most
fuelcontinuing iterations can increment the exponent.theorem levelLoop_level_le (g k fuel e s : Nat) : (levelLoop g k fuel e s).1 ≤ e + fuel := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.levelLoop
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.levelLoop_powerline 617Source documentation
The carried size remains the exact power of the carried exponent.
theorem levelLoop_power (g k fuel e : Nat) : (levelLoop g k fuel e (g ^ e)).2 = g ^ (levelLoop g k fuel e (g ^ e)).1 := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.levelLoop
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.levelLoop_coversline 628 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.levelLoop_le_of_covering_powerline 645Source documentation
The search never passes an exponent whose power already covers the request. This remains true even without a sufficient fuel budget.
theorem levelLoop_le_of_covering_power (g k fuel e j : Nat) (he : e ≤ j) (hj : k ≤ g ^ j) : (levelLoop g k fuel e (g ^ e)).1 ≤ j := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.levelLoop
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.searchResultline 662 - def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.boundedLevelline 666Source documentation
An executable exponent, computed with at most
kmultiplications.def boundedLevel (k : Nat) : Nat := (searchResult k).1
Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.searchResult
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.paddedSizeline 669Source documentation
The algorithm returns the power it has already computed.
def paddedSize (k : Nat) : Nat := (searchResult k).2
Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.searchResult
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.boundedLevel_zeroline 671 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.paddedSize_zeroline 673 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.boundedLevel_le_inputline 675 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.paddedSize_powerline 679 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.le_paddedSizeline 684 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.boundedLevel_eq_levelline 689Source documentation
The bounded multiplication loop computes the existing ceiling logarithm.
theorem boundedLevel_eq_level (k : Nat) : boundedLevel k = ExpanderFamily.level k := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.boundedLevel, OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.level
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.paddedSize_eq_sizeline 699 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.boundedLevel_le_of_le_powerline 704Source documentation
The returned exponent is the least exponent whose power covers
k.theorem boundedLevel_le_of_le_power {k j : Nat} (h : k ≤ ExpanderFamily.growth ^ j) : boundedLevel k ≤ j := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.growth, OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.boundedLevel
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.paddedSize_positiveline 709 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.paddedSize_boundsline 715Source documentation
Positive cloud sizes and positive whole-graph vertex counts increase by at most the single fixed growth factor.
theorem paddedSize_bounds {k : Nat} (hk : 0 < k) : k ≤ paddedSize k ∧ paddedSize k ≤ ExpanderFamily.growth * k := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.paddedSize, OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.growth
- def
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.cloudPaddedSizeline 721Source documentation
Empty clouds remain empty; nonempty clouds use the geometric family.
def cloudPaddedSize (k : Nat) : Nat := if k = 0 then 0 else paddedSize k
Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.paddedSize
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.cloudPaddedSize_zeroline 723 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.cloudPaddedSize_of_posline 725 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.cloudPaddedSize_boundsline 729 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.table_vertexCount_eq_paddedSizeline 738Source documentation
The executable table family has exactly the size returned by the loop.
theorem table_vertexCount_eq_paddedSize (k : Nat) : ExpanderTables.vertexCount (Expanders.baseDegree * Expanders.baseDegree) (boundedLevel k) = paddedSize k := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderTables.vertexCount, OAI.UniqueGamesTheorem.Foundations.PCP.Expanders.baseDegree, OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.boundedLevel, OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.paddedSize
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.PreprocessingLevels.family_row_count_at_sizeline 749