Faster zero-weight k-clique
Lax350013.ZeroWeightClique · concepts/Lax350013/ZeroWeightClique.lean · lax-350013
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
For every fixed , a zero-weight clique with one vertex in each of parts of size is decidable deterministically in word-RAM steps. Edge weights are polynomially bounded integers (Corollary 39).
Concept map
Evidence
Each proof establishes this claim relative to its assumptions.
Lean source view on GitHub
| 1 | /- |
| 2 | Copyright (c) 2026 Anthropic, PBC. All rights reserved. |
| 3 | Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | SPDX-License-Identifier: Apache-2.0 |
| 5 | -/ |
| 6 | /- |
| 7 | Modified for the independent Lax packaging by Édouard Bonnet, 2026. |
| 8 | Derived from 3sum-apsp/EndStatement.lean / PaperStatements.lean at upstream commit e1a4e6508154ea59f030480661590a9fe3018011. |
| 9 | Changes: Lax module/namespace layout, separated concepts and proofs, archive |
| 10 | annotations, and compatibility with the archive Lean/mathlib environment. |
| 11 | See NOTICE and README.md in the submission root for provenance and scope. |
| 12 | -/ |
| 13 | |
| 14 | import Lax350013.PolynomialTime |
| 15 | import Lax350013.ExactTriangle |
| 16 | |
| 17 | /-! |
| 18 | --- |
| 19 | title: Faster zero-weight k-clique |
| 20 | type: theorem |
| 21 | --- |
| 22 | For every fixed , a zero-weight clique with one vertex in each of parts of size is decidable deterministically in word-RAM steps. Edge weights are polynomially bounded integers (Corollary 39). |
| 23 | -/ |
| 24 | |
| 25 | namespace Lax350013.ZeroWeightClique |
| 26 | |
| 27 | open Lax350013.PolynomialTime |
| 28 | open Lax350013.ExactTriangle |
| 29 | |
| 30 | /-- `w i j u v`: weight between `u` in part `i` and `v` in part `j`. All `k²` blocks are input; only `i < j` counts. -/ |
| 31 | def ZeroWeightKClique (k : Nat) : Problem where |
| 32 | Instance n := Fin k → Fin k → Fin n → Fin n → Int |
| 33 | input w := (List.ofFn fun i => (List.ofFn fun j => rowByRow (w i j)).flatten).flatten |
| 34 | yes {n} w := ∃ v : Fin k → Fin n, |
| 35 | (List.ofFn fun j => (List.ofFn fun i => if i < j then w i j (v i) (v j) else 0).sum).sum = 0 |
| 36 | |
| 37 | /-- Corollary 39: «decide in O(n^(k−ε_T⌊k/3⌋)) time whether some k-clique … has total edge weight zero». -/ |
| 38 | def Corollary_39_ZeroWeight : Prop := |
| 39 | ∀ k ≥ 3, (ZeroWeightKClique k).SolvedInTime (k - ε_T * (k / 3 : Nat)) |
| 40 | |
| 41 | /-- Faster zero-weight k-clique: Corollary 39 ZeroWeight. -/ |
| 42 | axiom algorithm : Corollary_39_ZeroWeight |
| 43 | |
| 44 | end Lax350013.ZeroWeightClique |
| 45 |
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments