OAI/Computability/UniqueGames/PCP/ZigzagGraphsLemmas.lean
93 declarations, 0 contain sorry, 0 declared as axioms
Actual graph squares and zigzag products
Rotations operate on actual vertex-port pairs. All returned ports are retained, including ports belonging to loops and parallel edges. Each construction is a palindrome of involutions and hence defines a reversible regular port graph.
- def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.involutionEquivline 26Source documentation
Regard a checked involution as a permutation with the same inverse.
def involutionEquiv {A : Type*} (f : A → A) (hf : Function.Involutive f) : A ≃ A where … - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.palindrome_involutiveline 33Source documentation
A palindrome of two involutions is itself an involution.
theorem palindrome_involutive {A : Type*} (B P : A ≃ A) (hB : Function.Involutive B) (hP : Function.Involutive P) : Function.Involutive (B.trans (P.trans B)) := by … - def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.squareFirstline 41Source documentation
Cross an original edge using the first port; retain its return port.
def squareFirst (G : PortGraph V D) (s : V × (D × D)) : V × (D × D) := …
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.squareFirst_involutiveline 45 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.squareSwapline 51 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.squareSwap_involutiveline 53 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.squareline 58Source documentation
The actual graph square. The two return ports appear in reverse order.
def square (G : PortGraph V D) : PortGraph V (D × D) := by …
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.square_rot_applyline 66 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.square_nextline 72 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.cloudFirstline 76Source documentation
One inner step in a cloud, retaining its return port and the unused port.
def cloudFirst (H : PortGraph D E) (s : (V × D) × (E × E)) : (V × D) × (E × E) := … - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.cloudFirst_involutiveline 81 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.crossCloudline 89Source documentation
Cross the outer graph edge and swap the two inner ports.
def crossCloud (G : PortGraph V D) (s : (V × D) × (E × E)) : (V × D) × (E × E) := (G.rot s.1, (s.2.2, s.2.1)) - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.crossCloud_involutiveline 92 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.zigzagline 99Source documentation
The actual zigzag product: inner step, outer edge, inner step.
def zigzag (G : PortGraph V D) (H : PortGraph D E) : PortGraph (V × D) (E × E) := by …
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.zigzag_rot_applyline 107 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.natCard_square_portsline 115 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.natCard_square_edgesline 118 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.natCard_zigzag_verticesline 122 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.natCard_zigzag_portsline 125 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.natCard_zigzag_edgesline 128 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.cloudOperatorline 138Source documentation
Average only the inner cloud coordinate, keeping the outer vertex fixed.
def cloudOperator [Fintype E] (H : PortGraph D E) (f : V × D → ℝ) (x : V × D) : ℝ := …
- def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.graphPermutationline 142Source documentation
The permutation on cloud vertices induced by the actual outer rotation.
def graphPermutation (G : PortGraph V D) (f : V × D → ℝ) (x : V × D) : ℝ := …
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.averagingOperator_squareline 146Source documentation
Uniform averaging on the graph square is two original averaging steps.
theorem averagingOperator_square [Fintype D] (G : PortGraph V D) (f : V → ℝ) : SpectralReturn.averagingOperator (square G) f = SpectralReturn.averagingOperator G (SpectralReturn.averagingOperator G f) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.SpectralReturn.averagingOperator, OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.square
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.averagingOperator_zigzagline 157Source documentation
The zigzag operator is precisely inner average, outer permutation, inner average. This factorization follows from the actual rotation formula.
theorem averagingOperator_zigzag [Fintype E] (G : PortGraph V D) (H : PortGraph D E) (f : V × D → ℝ) : SpectralReturn.averagingOperator (zigzag G H) f = cloudOperator H (graphPermutation G (cloudOperator H f)) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.SpectralReturn.averagingOperator, OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.zigzag, OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.cloudOperator, OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagGraphs.graphPermutation
- def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.cloudMeanline 195 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.liftCloudline 198 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.projectionline 200 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.centeredline 203 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.mean_liftCloudline 205 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.energy_liftCloudline 211 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.mean_cloudMeanline 215 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.energy_prodline 218 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.cloudMean_centered_zeroline 222 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.energy_centered_eq_subline 228 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.projection_energy_decompositionline 251 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.energy_projection_leline 256 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.energy_centered_leline 262 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.mean_sq_le_energyline 268Source documentation
Squared normalized mean is bounded by normalized squared energy.
theorem mean_sq_le_energy {A : Type*} [Fintype A] [Nonempty A] (f : A → ℝ) : mean f ^ 2 ≤ energy f := by … - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.averaging_energy_leline 274Source documentation
Every actual reversible regular graph average is an energy contraction.
theorem averaging_energy_le [Fintype V] [Fintype D] [Nonempty V] [Nonempty D] (G : PortGraph V D) (f : V → ℝ) : energy (averagingOperator G f) ≤ energy f := by … - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.cloudOperator_addline 283 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.cloudOperator_subline 288 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.cloudOperator_projectionline 293 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.cloudOperator_centeredline 299 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.graphPermutation_energyline 305 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.cloud_energy_leline 309 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.cloud_centered_contractionline 319 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.cloud_residual_boundline 331 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.projection_graphPermutation_projectionline 342Source documentation
Cloud projection of the outer permutation is the genuine outer graph average when its input is constant on each cloud.
theorem projection_graphPermutation_projection [Fintype D] (G : PortGraph V D) (f : V × D → ℝ) : projection (graphPermutation G (projection f)) = liftCloud (averagingOperator G (cloudMean f)) := rflMentions: OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.projection, OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.liftCloud, OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.cloudMean
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.projected_outer_boundline 347 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.energy_add_three_leline 361 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.zigzag_energy_boundline 374Source documentation
A deliberately loose bound sufficient for the expander iteration.
theorem zigzag_energy_bound [Fintype V] [Fintype D] [Fintype E] [Nonempty D] [Nonempty E] (G : PortGraph V D) (H : PortGraph D E) (lambdaG lambdaH : ℝ) (hG : SpectralCertificate G lambdaG) (hH : SpectralCertificate H lambdaH) (f : V × D → ℝ) (hf : mean f = 0) : energy (averagingOperator (zigzag G H) f) ≤ 3 * (lambdaG ^ 2 + lambdaH ^ 2) * energy f := by … - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.square_certificateline 426 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ZigzagSpectral.square_zigzag_halfCertificateline 446Source documentation
Squaring an outer graph with certificate
1/2, then zigzagging with an inner graph with certificate1/100, again has certificate1/2.theorem square_zigzag_halfCertificate [Fintype V] [Fintype D] [Fintype E] [Nonempty V] [Nonempty D] [Nonempty E] (G : PortGraph V D) (H : PortGraph (D × D) E) (hG : SpectralCertificate G (1 / 2)) (hH : SpectralCertificate H (1 / 100)) : SpectralCertificate (zigzag (square G) H) (1 / 2) where … - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.Portline 481 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.CloudPortline 482 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.growthline 483 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.card_portline 485 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.card_cloudPortline 489 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.growth_gt_oneline 495 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.port_degree_ge_eightline 498 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.baseVertexEquivline 502 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.baseOnCloudline 505 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.baseOnCloud_certificateline 508 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.Vertexline 511 - instance
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.vertexFintypeline 515 - instance
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.basePortNonemptyline 523 - instance
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.vertexNonemptyline 526 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.graphline 535Source documentation
The family is a recursive rotation algorithm when its fixed base is given.
def graph (H : PortGraph CloudPort BasePort) : (n : Nat) → PortGraph (Vertex n) Port | 0 => { rot := Equiv.refl _, rot_involutive := fun _ => rfl } …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.CloudPort, OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.Vertex, OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.Port
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.graph_certificateline 539 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.familyline 562 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.family_certificateline 564 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.card_vertexline 567 - def
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.levelline 576Source documentation
The least geometric level covering a requested size.
Nat.clogis the ordinary finite ceiling logarithm algorithm.def level (k : Nat) : Nat := Nat.clog growth k
Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.growth
- def
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.sizeline 578 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.le_sizeline 580 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.size_le_mulline 582 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.padded_family_sizeline 596 - def
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.paddedSizeline 625Source documentation
Leave empty clouds empty; pad every positive size to a geometric level.
def paddedSize (k : Nat) : Nat := if k = 0 then 0 else ExpanderFamily.size k
Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.size
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.paddedSize_zeroline 627 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.paddedSize_of_posline 629 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.le_paddedSizeline 633 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.paddedSize_le_mulline 640 - def
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.paddedCloudEquivline 649Source documentation
The actual padded tail fiber contains old darts and exactly the dummy darts indexed by that tail, with transport along the sigma index equality.
def paddedCloudEquiv (G : ConstraintGraph V E A) (dummy : V → Type*) (v : V) : Cloud (paddedGraph G dummy) v ≃ Cloud G v ⊕ dummy v where …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ConstraintGraph, OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.dummy
- def
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.dartCloudEquivline 673Source documentation
Every original dart occurs in exactly one cloud.
def dartCloudEquiv (G : ConstraintGraph V E A) : E ≃ Σ v : V, Cloud G v where …
Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ConstraintGraph
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.sum_card_cloudline 686 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.card_padded_cloudline 690 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.dummyline 697Source documentation
The precise number of always-accepting loop darts to add at each vertex.
abbrev dummy (G : ConstraintGraph V E A) (v : V) := …
Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ConstraintGraph
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.card_cloudline 700 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.card_dummy_of_emptyline 708 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.card_cloud_of_emptyline 712 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.card_cloud_eq_familyline 717 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.card_paddedDart_eq_sumline 726Source documentation
Exact count over all padded tail fibers, including empty original fibers.
theorem card_paddedDart_eq_sum (G : ConstraintGraph V E A) : Fintype.card (PaddedDart G (dummy G)) = ∑ v, paddedSize (Fintype.card (Cloud G v)) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ConstraintGraph, OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.dummy, OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.paddedSize
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.card_paddedDart_leline 740Source documentation
Padding increases the total number of darts by at most the fixed family growth factor, independent of the number of empty vertices.
theorem card_paddedDart_le (G : ConstraintGraph V E A) : Fintype.card (PaddedDart G (dummy G)) ≤ ExpanderFamily.growth * Fintype.card E := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.ConstraintGraph, OAI.UniqueGamesTheorem.Foundations.PCP.CloudPadding.dummy, OAI.UniqueGamesTheorem.Foundations.PCP.ExpanderFamily.growth