OAI/Computability/MaxCut/Games/PartnerProjection.lean
104 declarations, 0 contain sorry, 0 declared as axioms
Finite cardinality of the concrete projection kernel. This packages the explicit bit parametrization of Lemma 6.1 as a genuine equivalence, then counts its points. No vector-space dimension formula is assumed.
- inductive
OAI.MaxCutGames.Soundness.PartnerProjection.Slotline 8 - structure
OAI.MaxCutGames.Soundness.PartnerProjection.Tripleline 12 - def
OAI.MaxCutGames.Soundness.PartnerProjection.zeroTripleline 18 - def
OAI.MaxCutGames.Soundness.PartnerProjection.parityline 20 - def
OAI.MaxCutGames.Soundness.PartnerProjection.addTripleline 22 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.parity_addline 25 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.and_xorline 31 - def
OAI.MaxCutGames.Soundness.PartnerProjection.retainedline 35 - def
OAI.MaxCutGames.Soundness.PartnerProjection.freeBitline 41 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.retained_addline 47 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.freeBit_addline 51 - def
OAI.MaxCutGames.Soundness.PartnerProjection.completeline 56Source documentation
Reconstruct a parity-constrained triple from its retained bit and one free bit.
def complete (s : Slot) (p r f : Bool) : Triple := …
Mentions: OAI.MaxCutGames.Soundness.PartnerProjection.Slot, OAI.MaxCutGames.Soundness.PartnerProjection.Triple
- theorem
OAI.MaxCutGames.Soundness.PartnerProjection.parity_completeline 62 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.retained_completeline 66 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.freeBit_completeline 70 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.complete_coordinatesline 74 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.retained_zeroline 79 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.freeBit_zeroline 82 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.complete_zeroline 85 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.complete_kernel_addline 88 - structure
OAI.MaxCutGames.Soundness.PartnerProjection.SourcePointline 95 - structure
OAI.MaxCutGames.Soundness.PartnerProjection.PartnerPointline 100 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.source_extline 108 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.partner_extline 116 - def
OAI.MaxCutGames.Soundness.PartnerProjection.projectline 126 - def
OAI.MaxCutGames.Soundness.PartnerProjection.liftline 135Source documentation
The constructive preimage used in Lemma 6.1: choose the free bit to be zero.
def lift (y : PartnerPoint rhs active) : SourcePoint rhs where …
Mentions: OAI.MaxCutGames.Soundness.PartnerProjection.PartnerPoint, OAI.MaxCutGames.Soundness.PartnerProjection.SourcePoint
- theorem
OAI.MaxCutGames.Soundness.PartnerProjection.project_liftline 146 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.project_surjectiveline 159 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.homogeneous_preservedline 164 - def
OAI.MaxCutGames.Soundness.PartnerProjection.zeroSourceline 167 - def
OAI.MaxCutGames.Soundness.PartnerProjection.zeroPartnerline 172 - def
OAI.MaxCutGames.Soundness.PartnerProjection.addSourceline 180 - def
OAI.MaxCutGames.Soundness.PartnerProjection.addPartnerline 187 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.project_addline 204Source documentation
The projection preserves F₂ addition, as well as zero.
theorem project_add (x y : SourcePoint rhs) : project rhs active slot (addSource rhs x y) = addPartner rhs active (project rhs active slot x) (project rhs active slot y) := by …Mentions: OAI.MaxCutGames.Soundness.PartnerProjection.SourcePoint, OAI.MaxCutGames.Soundness.PartnerProjection.project, OAI.MaxCutGames.Soundness.PartnerProjection.addSource, OAI.MaxCutGames.Soundness.PartnerProjection.addPartner
- theorem
OAI.MaxCutGames.Soundness.PartnerProjection.project_zeroline 214 - def
OAI.MaxCutGames.Soundness.PartnerProjection.InKernelline 223 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.kernel_characterizationline 226 - structure
OAI.MaxCutGames.Soundness.PartnerProjection.ActiveBitsline 253Source documentation
One coefficient bit at every active position; all other coefficients vanish.
structure ActiveBits where …
- theorem
OAI.MaxCutGames.Soundness.PartnerProjection.activeBits_extline 257 - def
OAI.MaxCutGames.Soundness.PartnerProjection.addActiveBitsline 264 - def
OAI.MaxCutGames.Soundness.PartnerProjection.kernelPointline 271 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.kernelPoint_addline 276 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.kernelPoint_memline 284 - def
OAI.MaxCutGames.Soundness.PartnerProjection.kernelCoefficientsline 293 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.kernelPoint_coefficientsline 301 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.coefficients_kernelPointline 317 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.kernelPoint_injectiveline 324 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.kernel_unique_coefficientsline 336Source documentation
Every kernel vector is uniquely determined by one bit per active position.
theorem kernel_unique_coefficients (x : SourcePoint rhs) (hx : InKernel rhs active slot x) : ∃ a : ActiveBits active, kernelPoint rhs active slot a = x ∧ ∀ b : ActiveBits active, kernelPoint rhs active slot b = x → b = a := by …Mentions: OAI.MaxCutGames.Soundness.PartnerProjection.SourcePoint, OAI.MaxCutGames.Soundness.PartnerProjection.InKernel, OAI.MaxCutGames.Soundness.PartnerProjection.ActiveBits, OAI.MaxCutGames.Soundness.PartnerProjection.kernelPoint
- def
OAI.MaxCutGames.Soundness.PartnerProjection.extendActiveline 346Source documentation
Extend an arbitrary function on the active positions by zero.
def extendActive (f : {j : Position // active j = true} → Bool) : ActiveBits active where …Mentions: OAI.MaxCutGames.Soundness.PartnerProjection.ActiveBits
- theorem
OAI.MaxCutGames.Soundness.PartnerProjection.kernel_realizes_activeline 350 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.kernel_determined_by_activeline 359 - theorem
OAI.MaxCutGames.Soundness.PartnerProjection.disjoint_kernels_intersection_zeroline 377Source documentation
The final assertion of Lemma 6.1, including arbitrary retained indices.
theorem disjoint_kernels_intersection_zero (active' : Position → Bool) (slot' : Position → Slot) (hdisjoint : ∀ j, active j = true → active' j = false) (x : SourcePoint rhs) (hx : InKernel rhs active slot x) (hx' : InKernel rhs active' slot' x) : x = zeroSource rhs := by …Mentions: OAI.MaxCutGames.Soundness.PartnerProjection.Slot, OAI.MaxCutGames.Soundness.PartnerProjection.SourcePoint, OAI.MaxCutGames.Soundness.PartnerProjection.InKernel, OAI.MaxCutGames.Soundness.PartnerProjection.zeroSource
- abbrev
OAI.MaxCutGames.Soundness.KernelCardinality.Kernelline 406 - def
OAI.MaxCutGames.Soundness.KernelCardinality.kernelEquivline 409Source documentation
Exactly one freely chosen bit per active position parametrizes the kernel.
def kernelEquiv : Kernel rhs active slot ≃ ({j : P // active j = true} → Bool) where …Mentions: OAI.MaxCutGames.Soundness.KernelCardinality.Kernel
- instance
OAI.MaxCutGames.Soundness.KernelCardinality.kernelFintypeline 424 - theorem
OAI.MaxCutGames.Soundness.KernelCardinality.kernel_cardline 429Source documentation
The actual kernel has
2^tpoints when there aretactive positions.theorem kernel_card [Fintype P] : Fintype.card (Kernel rhs active slot) = 2 ^ Fintype.card {j : P // active j = true} := by …Mentions: OAI.MaxCutGames.Soundness.KernelCardinality.Kernel
- theorem
OAI.MaxCutGames.Soundness.KernelCardinality.kernel_card_of_active_cardline 438 - theorem
OAI.MaxCutGames.Gadget.LinearKernelCount.card_binary_spaceline 464Source documentation
A finite-dimensional binary vector space has
2^dimensionvectors.theorem card_binary_space : Nat.card V = 2 ^ Module.finrank (ZMod 2) V := by …
- theorem
OAI.MaxCutGames.Gadget.LinearKernelCount.kernel_card_mul_pow_rankline 469Source documentation
Exact cross-multiplied uniform kernel probability:
|ker f| * 2^rank f = |V|.theorem kernel_card_mul_pow_rank (f : V →ₗ[ZMod 2] P) : Nat.card f.ker * 2 ^ Module.finrank (ZMod 2) f.range = Nat.card V := by … - theorem
OAI.MaxCutGames.Gadget.LinearKernelCount.card_source_posline 477Source documentation
The denominator of the uniform vector experiment is positive.
theorem card_source_pos : 0 < Nat.card V := by …
- theorem
OAI.MaxCutGames.Gadget.LinearKernelCount.kernel_card_eq_pow_sub_rankline 482Source documentation
The kernel size itself is the familiar power of the nullity.
theorem kernel_card_eq_pow_sub_rank (f : V →ₗ[ZMod 2] P) : Nat.card f.ker = 2 ^ (Module.finrank (ZMod 2) V - Module.finrank (ZMod 2) f.range) := by … - theorem
OAI.MaxCutGames.Gadget.LinearKernelCount.zero_event_card_mul_pow_rankline 491Source documentation
The kernel formula expressed directly as the cardinality of the zero event.
theorem zero_event_card_mul_pow_rank (f : V →ₗ[ZMod 2] P) : Nat.card {x : V // f x = 0} * 2 ^ Module.finrank (ZMod 2) f.range = Nat.card V := … - theorem
OAI.MaxCutGames.Gadget.LinearKernelCount.zero_event_card_mul_pow_leline 496Source documentation
A rank threshold gives the exact cleared-denominator bound used on a good leaf.
theorem zero_event_card_mul_pow_le (f : V →ₗ[ZMod 2] P) (r : Nat) (hr : r ≤ Module.finrank (ZMod 2) f.range) : Nat.card {x : V // f x = 0} * 2 ^ r ≤ Nat.card V := by … - theorem
OAI.MaxCutGames.Gadget.LinearKernelCount.zero_event_finset_count_mul_pow_rankline 506Source documentation
The same exact probability identity for a direct count over a finite universe.
theorem zero_event_finset_count_mul_pow_rank [Fintype V] [DecidableEq P] (f : V →ₗ[ZMod 2] P) : (Finset.univ.filter (fun x : V => f x = 0)).card * 2 ^ Module.finrank (ZMod 2) f.range = Fintype.card V := by … - theorem
OAI.MaxCutGames.Gadget.LinearKernelCount.zero_event_finset_count_mul_pow_leline 514Source documentation
A rank-r lower bound yields a
2⁻ʳbound on the actual finite zero-event count.theorem zero_event_finset_count_mul_pow_le [Fintype V] [DecidableEq P] (f : V →ₗ[ZMod 2] P) (r : Nat) (hr : r ≤ Module.finrank (ZMod 2) f.range) : (Finset.univ.filter (fun x : V => f x = 0)).card * 2 ^ r ≤ Fintype.card V := by … - abbrev
OAI.MaxCutGames.Soundness.PartnerLinear.SourceCoordinatesline 531 - abbrev
OAI.MaxCutGames.Soundness.PartnerLinear.Activeline 532 - abbrev
OAI.MaxCutGames.Soundness.PartnerLinear.Inactiveline 533 - abbrev
OAI.MaxCutGames.Soundness.PartnerLinear.PartnerCoordinatesline 534 - def
OAI.MaxCutGames.Soundness.PartnerLinear.sourceCoordinatesline 536 - def
OAI.MaxCutGames.Soundness.PartnerLinear.sourceFromCoordinatesline 539 - def
OAI.MaxCutGames.Soundness.PartnerLinear.sourceEquivline 545 - def
OAI.MaxCutGames.Soundness.PartnerLinear.partnerCoordinatesline 563 - def
OAI.MaxCutGames.Soundness.PartnerLinear.partnerFromCoordinatesline 568 - def
OAI.MaxCutGames.Soundness.PartnerLinear.partnerEquivline 579 - instance
OAI.MaxCutGames.Soundness.PartnerLinear.sourceAddCommGroupline 608 - instance
OAI.MaxCutGames.Soundness.PartnerLinear.sourceModuleline 611 - instance
OAI.MaxCutGames.Soundness.PartnerLinear.partnerAddCommGroupline 614 - instance
OAI.MaxCutGames.Soundness.PartnerLinear.partnerModuleline 617 - def
OAI.MaxCutGames.Soundness.PartnerLinear.sourceLinearEquivline 620 - def
OAI.MaxCutGames.Soundness.PartnerLinear.partnerLinearEquivline 623 - instance
OAI.MaxCutGames.Soundness.PartnerLinear.sourceFintypeline 626 - instance
OAI.MaxCutGames.Soundness.PartnerLinear.partnerFintypeline 630 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.source_addline 634 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.source_zeroline 643 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.partner_addline 649 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.partner_zeroline 662 - def
OAI.MaxCutGames.Soundness.PartnerLinear.projectionline 668 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.projection_applyline 677 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.projection_surjectiveline 680 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.mem_projection_kerline 683 - instance
OAI.MaxCutGames.Soundness.PartnerLinear.sourceFiniteDimensionalline 689 - instance
OAI.MaxCutGames.Soundness.PartnerLinear.partnerFiniteDimensionalline 693 - def
OAI.MaxCutGames.Soundness.PartnerLinear.kernelEquivline 698Source documentation
Identifies the actual linear kernel with the previously counted concrete kernel.
noncomputable def kernelEquiv : (projection rhs active slot).ker ≃ KernelCardinality.Kernel rhs active slot where …Mentions: OAI.MaxCutGames.Soundness.PartnerLinear.projection, OAI.MaxCutGames.Soundness.KernelCardinality.Kernel
- theorem
OAI.MaxCutGames.Soundness.PartnerLinear.projection_ker_cardline 705 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.projection_ker_finrankline 710 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.projection_ker_finrank_of_cardline 717 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.source_finrankline 722 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.disjoint_projection_kernelsline 728Source documentation
Distinct coordinate blocks make disjoint active-set kernels have trivial intersection.
theorem disjoint_projection_kernels (active' : P → Bool) (slot' : P → Slot) (hdisjoint : ∀ j, active j = true → active' j = false) : (projection rhs active slot).ker ⊓ (projection rhs active' slot').ker = ⊥ := by …Mentions: OAI.MaxCutGames.Soundness.PartnerLinear.projection
- def
OAI.MaxCutGames.Soundness.PartnerLinear.sourceTauline 741 - def
OAI.MaxCutGames.Soundness.PartnerLinear.partnerTauline 744 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.sourceTau_applyline 748 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.partnerTau_applyline 749 - theorem
OAI.MaxCutGames.Soundness.PartnerLinear.tau_comp_projectionline 752