ComparatorChallenges/AlgorithmicThinTrees.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: OpenAI's pinned repository says an unreleased internal model produced the manuscripts and supporting proof artifacts. The collection builds on the mathematics community's accumulated problems, results, language, and formal libraries; each manuscript's BibTeX and bibliography are the authority for individual scholarly credit.
Project sources: Pinned openai/math documentation, Pinned formalization catalogue
38 declarations, 1 contain sorry, 0 declared as axioms
Deterministic polynomial-time construction of strong thin trees.
- structure
OAI.StrongThinTree.MultiGraphA finite loopless multigraph with individually indexed edge copies line 9L4DEL explanation
every parallel copy counts separately
MultiGraph n mhas verticesFin nand edge copiesFin m. Each edge copy has a left and right endpoint, andlooplessrules out an edge whose two endpoints coincide.- Parallel edges are allowed because two different members of
Fin mmay have the same endpoint pair. - The edge index is therefore an identity for a copy, not merely a pair of vertices. That distinction matters when cuts, trees, and binary multiplicities count parallel copies.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: ComparatorChallenges/StrongThinTree.lean:7 (same declaration text), OAI/Combinatorics/ThinTrees/Model.lean:7 (same declaration text).
structure MultiGraph (n m : ℕ) where …
- Parallel edges are allowed because two different members of
- def
OAI.StrongThinTree.MultiGraph.cutThe selected edges crossing a vertex cut line 16L4DEL explanation
every parallel copy counts separately
G.cut T Skeeps exactly those edge copies inTwith one endpoint in the vertex setSand the other endpoint outside it.- The two disjuncts cover both endpoint orientations, so the definition describes an undirected cut even though every edge stores
leftandrightendpoints. - Supplying
T = Finset.univgives the whole graph cut. Supplying a proposed tree edge set gives the part of that cut used by the tree.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: ComparatorChallenges/StrongThinTree.lean:14 (same declaration text), OAI/Combinatorics/ThinTrees/Model.lean:14 (same declaration text).
def cut {n m : ℕ} (G : MultiGraph n m) (T : Finset (Fin m)) (S : Finset (Fin n)) : Finset (Fin m) := …Mentions: OAI.StrongThinTree.MultiGraph
- The two disjuncts cover both endpoint orientations, so the definition describes an undirected cut even though every edge stores
- def
OAI.StrongThinTree.MultiGraph.ConnectedConnectivity of a chosen edge set line 21L4DEL explanation
every parallel copy counts separately
G.Connected Tsays every nonempty proper set of vertices has at least one edge ofTcrossing to its complement.- This cut condition is the finite-graph characterization of connectedness; it is stated directly so it also applies to a selected subset of multigraph edge copies.
- Empty and full vertex sets are excluded because their cuts are necessarily empty and say nothing about connectivity.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: ComparatorChallenges/StrongThinTree.lean:19 (same declaration text), OAI/Combinatorics/ThinTrees/Model.lean:19 (same declaration text).
def Connected {n m : ℕ} (G : MultiGraph n m) (T : Finset (Fin m)) : Prop := …Mentions: OAI.StrongThinTree.MultiGraph
- def
OAI.StrongThinTree.MultiGraph.SpanningTreeA minimally connected spanning edge set line 24L4DEL explanation
The problem is to make the same tree thin on every cocircuit B.
G.SpanningTree TmeansTconnects all vertices and deleting any one edge ofTdestroys that connectivity.- The vertex set is already all of
Fin n; “spanning” is expressed by testing cuts of the entire vertex type rather than by storing a separate vertex subset. - Minimal connectedness supplies the acyclicity normally used in the definition of a finite spanning tree.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), Luis Goddyn, Thin Trees conjecture page (archived)
Also declared: ComparatorChallenges/StrongThinTree.lean:22 (same declaration text), OAI/Combinatorics/ThinTrees/Model.lean:22 (same declaration text).
def SpanningTree {n m : ℕ} (G : MultiGraph n m) (T : Finset (Fin m)) : Prop := …Mentions: OAI.StrongThinTree.MultiGraph
- The vertex set is already all of
- def
OAI.StrongThinTree.MultiGraph.EdgeConnectedAt least $k$ edge copies cross every nontrivial cut line 27L4DEL explanation
any k-edge-connected unweighted graph has a polyloglog(n)/k-thin spanning tree.
G.EdgeConnected ksays each nonempty proper vertex set has a whole-graph cut containing at leastkedge copies.- The call
G.cut Finset.univ Scounts every indexed edge copy ofG, including parallel copies. - This is the hypothesis that provides the denominator scale in the desired $C/k$ thinness bound.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), Nima Anari and Shayan Oveis Gharan, Effective-Resistance-Reducing Flows, Spectrally Thin Trees, and Asymmetric TSP
Also declared: ComparatorChallenges/StrongThinTree.lean:25 (same declaration text), OAI/Combinatorics/ThinTrees/Model.lean:25 (same declaration text).
def EdgeConnected {n m : ℕ} (G : MultiGraph n m) (k : ℕ) : Prop := …Mentions: OAI.StrongThinTree.MultiGraph
- The call
- def
OAI.CurrentKS.frameA self-delimiting Boolean-list frame line 36L4DEL explanation
in time polynomial in the total binary input length
frameencodes each payload bit asfalsefollowed by that bit, then terminates the framed list withtrue.- The empty payload becomes
[true]; a nonempty payload begins withfalse, so a decoder can distinguish continuation from termination without an external length. - This is a serialization helper for the formal stack-machine input, not a mathematical ingredient of the thin-tree theorem.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:8 (same declaration text).
def frame : List Bool → List Bool | [] => [true] | b :: bs => false :: b :: frame bs
- The empty payload becomes
- def
OAI.CurrentKS.encodeNatA framed bit encoding of a natural number line 40L4DEL explanation
in time polynomial in the total binary input length
encodeNat napplies the file's self-delimitingframeto Mathlib's computability-oriented Boolean encoding ofn.- Framing lets multiple natural-number encodings be concatenated while preserving their boundaries.
- The theorem measures runtime against the length of the resulting encoded input, so this choice participates in the formal complexity statement.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:12 (same declaration text).
def encodeNat (n : ℕ) : List Bool := frame (Computability.encodeNat n)
Mentions: OAI.CurrentKS.frame
- inductive
OAI.CurrentKS.StackActionThe three permitted updates to one Boolean stack line 42L4DEL explanation
in time polynomial in the total binary input length
A
StackActioneither leaves a stack alone, removes its head, or pushes one specified Boolean bit.- An instruction chooses one such action independently for each stack.
- This deliberately small instruction language makes the existential algorithm a concrete finite machine rather than an unspecified Lean function.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:75 (same declaration text).
inductive StackAction where …
- def
OAI.CurrentKS.StackAction.applyExecute one action on one Boolean stack line 48L4DEL explanation
in time polynomial in the total binary input length
stayreturns the stack unchanged,poptakes its tail, andpush bprependsb.- Lean's
List.tailmakes popping an empty stack return the empty stack, so this transition operation is total. Machine.stepapplies these actions simultaneously to all indexed stacks.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:81 (same declaration text).
def StackAction.apply : StackAction → List Bool → List Bool | .stay, xs => xs | .pop, xs => xs.tail | .push b, xs => b :: xs
Mentions: OAI.CurrentKS.StackAction
- Lean's
- structure
OAI.CurrentKS.InstructionOne transition of a finite multi-stack machine line 53L4DEL explanation
in time polynomial in the total binary input length
An
Instruction k qcontains an optional next state amongqstates and one stack action for each ofkstacks.- A present next state continues computation;
nonerepresents a halted configuration. - Because both the state and stack indices are finite, a
Machinecan store a finite transition table for these instructions.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:86 (same declaration text).
structure Instruction (k q : ℕ) where …
- A present next state continues computation;
- def
OAI.CurrentKS.Instruction.haltThe default halting instruction line 57L4DEL explanation
in time polynomial in the total binary input length
Instruction.halt k qsets the next state tononeand leaves every stack unchanged.Machine.stepuses this instruction when a computed transition-table index is absent.- Thus an incomplete finite table has a defined, conservative behavior rather than an out-of-bounds transition.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:90 (same declaration text).
def Instruction.halt (k q : ℕ) : Instruction k q := ⟨none, fun _ => .stay⟩
Mentions: OAI.CurrentKS.Instruction
- structure
OAI.CurrentKS.MachineA finite Boolean-stack machine with designated input and output stacks line 59L4DEL explanation
in time polynomial in the total binary input length
Machinerecords finite numbers of stacks and states, an initial state, designated input and output stacks, and a finite instruction table.- The fields use
Finindices, so constructing a machine also supplies proofs that its initial state and designated stacks exist within the declared sizes. - This is the formalization's computational model for “deterministic algorithm”; the manuscript does not claim that its mathematical algorithm is literally presented as this Lean table.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:92 (same declaration text).
structure Machine where …
- The fields use
- structure
OAI.CurrentKS.ConfigA machine state together with all current stacks line 67L4DEL explanation
in time polynomial in the total binary input length
Config k qstores either a current state amongqstates ornonefor halting, plus one Boolean list for each ofkstacks.- A configuration is the complete instantaneous state consumed and produced by
Machine.step. - Halting is represented inside the configuration, allowing the final proposition to assert
result.state = noneafter bounded fuel.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:100 (same declaration text).
structure Config (k q : ℕ) where …
- A configuration is the complete instantaneous state consumed and produced by
- def
OAI.CurrentKS.topCodeEncode a stack's visible head as one of three cases line 71L4DEL explanation
in time polynomial in the total binary input length
topCodereturns0for an empty stack,1for a leadingfalse, and2for a leadingtrue.- Only the top cell is visible to a single machine transition.
- The three-valued code is one base-$3$ digit used by
headsCodeto select a table instruction.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:104 (same declaration text).
def topCode : List Bool → ℕ | [] => 0 | false :: _ => 1 | true :: _ => 2
- def
OAI.CurrentKS.headsCodeCombine all visible stack heads into one base-$3$ number line 76L4DEL explanation
in time polynomial in the total binary input length
headsCode k srecursively packs the empty/false/true status of each of thekstack heads into a natural number.- Stack zero is the least significant base-$3$ digit; subsequent stacks contribute after multiplication by
3. - The result ranges over the observation patterns used to index the machine's finite transition table.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:109 (same declaration text).
def headsCode : (k : ℕ) → (Fin k → List Bool) → ℕ | 0, _ => 0 | k + 1, s => topCode (s 0) + 3 * headsCode k (fun j => s j.succ)
Mentions: OAI.CurrentKS.topCode
- Stack zero is the least significant base-$3$ digit; subsequent stacks contribute after multiplication by
- def
OAI.CurrentKS.Machine.stepPerform one deterministic machine transition line 80L4DEL explanation
in time polynomial in the total binary input length
A halted configuration stays fixed. Otherwise the current state and all visible stack heads select one instruction, whose next state and stack actions produce the next configuration.
- The table index is
3 ^ stackCount * state + headsCode, separating each state's block of stack-head patterns. getDchooses the halting instruction when that index lies beyond the finite table, and each selected stack action is applied to its corresponding stack.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:113 (same declaration text).
def Machine.step (M : Machine) (c : Config M.stackCount M.states) : Config M.stackCount M.states := …Mentions: OAI.CurrentKS.Machine, OAI.CurrentKS.Config
- The table index is
- def
OAI.CurrentKS.Machine.initInitialize the machine from an encoded input line 90L4DEL explanation
in time polynomial in the total binary input length
M.init inputstarts inM.initial, places the entire Boolean input onM.inputStack, and makes every other stack empty.- The output stack is not granted any special initial contents; it is merely the stack read after the bounded run.
- If input and output designations coincide, the structure permits that explicitly rather than assuming distinct stacks.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:123 (same declaration text).
def Machine.init (M : Machine) (input : List Bool) : Config M.stackCount M.states := …
Mentions: OAI.CurrentKS.Machine, OAI.CurrentKS.Config
- def
OAI.CurrentKS.Machine.runRun a machine for exactly the supplied fuel line 93L4DEL explanation
in time polynomial in the total binary input length
M.run input fuelinitializesMand iterates its one-step transition exactlyfueltimes.- Because halted configurations are fixed points of
step, extra fuel after halting does not change the result. - The final proposition supplies polynomial fuel and then explicitly requires the resulting state to be
none; fuel alone does not assert termination.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Analysis/MatrixSigning/Model.lean:126 (same declaration text).
def Machine.run (M : Machine) (input : List Bool) (fuel : ℕ) : Config M.stackCount M.states := (M.step^[fuel]) (M.init input) …Mentions: OAI.CurrentKS.Machine, OAI.CurrentKS.Config
- Because halted configurations are fixed points of
- structure
OAI.AlgorithmicThinTrees.ExplicitInputA thin-tree instance with every edge copy listed explicitly line 101L4DEL explanation
every parallel copy counts separately
ExplicitInputpackages the number of verticesn, number of edge copiesm, connectivity parameterk, and an actualMultiGraph n m.- Parallel copies occupy separate positions of
Fin m, so the input size grows with the total expanded multiplicity. - This representation is one branch of the common
Inputtype handled by the claimed machine.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:13 (same declaration text).
structure ExplicitInput where …
- Parallel copies occupy separate positions of
- structure
OAI.AlgorithmicThinTrees.BinaryInputA multiplicity-compressed multigraph input line 107L4DEL explanation
in time polynomial in the total binary input length
BinaryInputlistspdistinct ordered endpoint pairs and assigns a natural-number multiplicity to each pair instead of enumerating every parallel edge copy.orderedproves the endpoints differ and chooses a canonical orientationleft < right;distinctprevents the same unordered pair from appearing twice.- Large multiplicities remain compact when
BinaryInput.encodeserializes those natural numbers in binary-oriented form.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:19 (same declaration text).
structure BinaryInput where …
- abbrev
OAI.AlgorithmicThinTrees.BinaryInput.EdgeOne concrete edge copy in a compressed binary input line 117L4DEL explanation
every parallel copy counts separately
x.Edgeis a dependent pair: an endpoint-pair indexi, followed by a copy index belowx.multiplicity i.- A pair with multiplicity zero contributes no inhabitants because
Fin 0is empty. - This expands multiplicities mathematically while the serialized input can remain compressed.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:29 (same declaration text).
abbrev BinaryInput.Edge (x : BinaryInput) := Σ i : Fin x.p, Fin (x.multiplicity i)
Mentions: OAI.AlgorithmicThinTrees.BinaryInput
- A pair with multiplicity zero contributes no inhabitants because
- def
OAI.AlgorithmicThinTrees.BinaryInput.edgeEquivNumber all expanded binary-input edge copies line 119L4DEL explanation
every parallel copy counts separately
edgeEquivchooses an equivalence between the finite typex.Edgeand consecutive indicesFin (Fintype.card x.Edge).- It is
noncomputablebecause Lean selects a finite equivalence abstractly rather than defining a particular executable ordering. - Later definitions use this equivalence consistently to build a
MultiGraphand translate decoded output edges back to its indices.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:31 (same declaration text).
noncomputable def BinaryInput.edgeEquiv (x : BinaryInput) : x.Edge ≃ Fin (Fintype.card x.Edge) := Fintype.equivFin x.EdgeMentions: OAI.AlgorithmicThinTrees.BinaryInput
- It is
- def
OAI.AlgorithmicThinTrees.BinaryInput.graphExpand compressed multiplicities into a loopless multigraph line 122L4DEL explanation
every parallel copy counts separately
x.graphturns every inhabitant ofx.Edgeinto its own indexed edge copy and assigns it the endpoints of its pair index.- The inverse of
edgeEquivrecovers the dependent pair from a consecutive edge index. - The proof
left < rightsupplied byBinaryInput.orderedestablishes that every expanded copy is loopless.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:34 (same declaration text).
noncomputable def BinaryInput.graph (x : BinaryInput) : MultiGraph x.n (Fintype.card x.Edge) where …Mentions: OAI.AlgorithmicThinTrees.BinaryInput
- The inverse of
- inductive
OAI.AlgorithmicThinTrees.InputEither an explicit or multiplicity-compressed graph instance line 128L4DEL explanation
in time polynomial in the total binary input length
Inputis a tagged union whoseexplicitbranch contains every edge copy and whosebinarybranch contains endpoint pairs with multiplicities.- Subsequent definitions pattern-match on this tag so validation, size, decoding, and correctness have one common interface.
- The final algorithmic proposition requires one fixed machine to handle both representations.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:40 (same declaration text).
inductive Input where …
- def
OAI.AlgorithmicThinTrees.ExplicitInput.encodeSerialize an explicitly listed multigraph line 132L4DEL explanation
every parallel copy counts separately
The encoding concatenates framed natural numbers for
n,m, andk, then for every edge index concatenates its two endpoint indices.List.ofFntraverses the finite edge-index type, andflattenjoins the per-edge encodings into one Boolean list.- Since every parallel copy appears separately, the encoded length reflects the expanded edge count.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:44 (same declaration text).
def ExplicitInput.encode (x : ExplicitInput) : List Bool := …
Mentions: OAI.AlgorithmicThinTrees.ExplicitInput
- def
OAI.AlgorithmicThinTrees.BinaryInput.encodeSerialize a multiplicity-compressed multigraph line 138L4DEL explanation
in time polynomial in the total binary input length
The encoding writes
n, the numberpof endpoint pairs, andk, followed by each pair's endpoints and multiplicity.- It does not emit one record per edge copy; a multiplicity is emitted once as a framed natural number.
- The theorem's runtime bound uses this compressed Boolean-list length, so it is stronger than polynomial time in an expanded graph when multiplicities are huge.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:50 (same declaration text).
def BinaryInput.encode (x : BinaryInput) : List Bool := …
Mentions: OAI.AlgorithmicThinTrees.BinaryInput
- def
OAI.AlgorithmicThinTrees.Input.encodeTag and serialize either input representation line 144L4DEL explanation
in time polynomial in the total binary input length
Input.encodeprefixesfalsefor an explicit input andtruefor a binary-multiplicity input, then appends that branch's encoding.- The first bit makes the two formats distinguishable to the one machine required by
AlgorithmicStrongThinTrees. - The branch encoders then provide self-delimiting framed naturals for the graph data.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:56 (same declaration text).
def Input.encode : Input → List Bool | .explicit x => false :: x.encode | .binary x => true :: x.encode
Mentions: OAI.AlgorithmicThinTrees.Input
- The first bit makes the two formats distinguishable to the one machine required by
- def
OAI.AlgorithmicThinTrees.Input.lengthThe bit length used by the polynomial runtime bound line 148L4DEL explanation
in time polynomial in the total binary input length
x.lengthis exactly the length ofx.encode, including the representation tag and all framing bits.AlgorithmicStrongThinTreessupplies fuel polynomial inx.length + 1.- This is an encoding-dependent complexity measure; it is not the number of vertices, endpoint pairs, or expanded edge copies alone.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:60 (same declaration text).
def Input.length (x : Input) : ℕ := x.encode.length
Mentions: OAI.AlgorithmicThinTrees.Input
- def
OAI.AlgorithmicThinTrees.Input.nRead the vertex count from either input branch line 150L4DEL explanation
in time polynomial in the total binary input length
Input.nreturns the stored number of vertices whether the graph was represented explicitly or by binary multiplicities.GoodOutputuses this common projection to impose the special empty output for a one-vertex graph.- No decoding or graph expansion is needed to obtain this value.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:62 (same declaration text).
def Input.n : Input → ℕ | .explicit x => x.n | .binary x => x.n
Mentions: OAI.AlgorithmicThinTrees.Input
- def
OAI.AlgorithmicThinTrees.ValidThe admissible $k$-edge-connected inputs line 154L4DEL explanation
any k-edge-connected unweighted graph has a polyloglog(n)/k-thin spanning tree.
An input is
Validwhen it has at least one vertex, has positivek, and its explicit or expanded multigraph is $k$-edge-connected.- The two branches impose the same mathematical conditions after the binary branch expands its multiplicities into edge copies.
- The final proposition promises behavior only under this predicate; malformed or insufficiently connected encodings are outside its guarantee.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), Nima Anari and Shayan Oveis Gharan, Effective-Resistance-Reducing Flows, Spectrally Thin Trees, and Asymmetric TSP
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:66 (same declaration text).
def Valid : Input → Prop | .explicit x => 1 ≤ x.n ∧ 1 ≤ x.k ∧ x.graph.EdgeConnected x.k | .binary x => 1 ≤ x.n ∧ 1 ≤ x.k ∧ x.graph.EdgeConnected x.k
Mentions: OAI.AlgorithmicThinTrees.Input
- def
OAI.AlgorithmicThinTrees.ThinTreeA spanning tree uniformly thin across every cut line 158L4DEL explanation
The problem is to make the same tree thin on every cocircuit B.
any k-edge-connected unweighted graph has a polyloglog(n)/k-thin spanning tree.
ThinTree C k G TrequiresTto be a spanning tree and to use at most a $C/k$ fraction of the whole graph's edges across every nontrivial vertex cut.- Both sides count indexed edge copies, so parallel multiplicity contributes to the tree cut and the graph cut in the same model.
- The same
Tmust satisfy the inequality for all cuts; it is not allowed to choose a different tree for each cut.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), Luis Goddyn, Thin Trees conjecture page (archived), Nima Anari and Shayan Oveis Gharan, Effective-Resistance-Reducing Flows, Spectrally Thin Trees, and Asymmetric TSP
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:70 (same declaration text).
def ThinTree {n m : ℕ} (C : ℝ) (k : ℕ) (G : MultiGraph n m) (T : Finset (Fin m)) : Prop := … - def
OAI.AlgorithmicThinTrees.ExplicitInput.encodeEdgesSerialize a list of explicit edge indices line 163L4DEL explanation
every parallel copy counts separately
encodeEdgesconcatenates the framed natural-number value of every explicit edge index in the proposed output list.- The output carries only edge identities; the input graph supplies their endpoints.
TreeOutputseparately requires the decoded list to contain no duplicate edge indices.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:75 (same declaration text).
def ExplicitInput.encodeEdges (x : ExplicitInput) (edges : List (Fin x.m)) : List Bool := …
Mentions: OAI.AlgorithmicThinTrees.ExplicitInput
- def
OAI.AlgorithmicThinTrees.BinaryInput.encodeEdgesSerialize selected copies from a compressed multigraph line 166L4DEL explanation
every parallel copy counts separately
Each output edge is encoded by its endpoint-pair index and its copy index within that pair's multiplicity.
- This pair of naturals identifies one inhabitant of the dependent edge-copy type
x.Edge. - The encoding therefore distinguishes parallel copies without expanding the input representation itself.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:78 (same declaration text).
def BinaryInput.encodeEdges (x : BinaryInput) (edges : List x.Edge) : List Bool := …
Mentions: OAI.AlgorithmicThinTrees.BinaryInput
- This pair of naturals identifies one inhabitant of the dependent edge-copy type
- def
OAI.AlgorithmicThinTrees.BinaryInput.selectedConvert decoded binary-input edge copies to multigraph indices line 169L4DEL explanation
every parallel copy counts separately
selectedremoves repetitions from a decoded edge list and maps each dependent edge copy throughedgeEquivinto theFinindices used byx.graph.- The result is a
Finset, which is the representation expected bySpanningTree,cut, andThinTree. - This definition is
noncomputablefor the same reason asedgeEquiv; it specifies output correctness rather than implementing the stack machine's decoder.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:81 (same declaration text).
noncomputable def BinaryInput.selected (x : BinaryInput) (edges : List x.Edge) : Finset (Fin (Fintype.card x.Edge)) := edges.toFinset.map x.edgeEquiv.toEmbeddingMentions: OAI.AlgorithmicThinTrees.BinaryInput
- The result is a
- def
OAI.AlgorithmicThinTrees.TreeOutputThe output bits encode a duplicate-free thin spanning tree line 172L4DEL explanation
meeting every cut in at most a C/k fraction
TreeOutput C x bitsmeans there exists a duplicate-free list of valid edge copies whose branch-specific serialization is exactlybitsand whose selected edge set isThinTree C.- In the explicit branch, edge indices already refer directly to
x.graph; in the binary branch, dependent edge copies are translated byx.selected. - The existential decoded list is the certificate connecting raw output bits to the mathematical thin-tree property.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:84 (same declaration text).
def TreeOutput (C : ℝ) : Input → List Bool → Prop | .explicit x, bits => ∃ edges : List (Fin x.m), edges.Nodup ∧ bits = x.encodeEdges edges ∧ ThinTree C x.k x.graph edges.toFinset | .binary x, bits => ∃ edges : List x.Edge, edges.Nodup ∧ bits = x.encodeEdges edges ∧ ThinTree C x.k x.graph (x.selected edges)Mentions: OAI.AlgorithmicThinTrees.Input, OAI.AlgorithmicThinTrees.ThinTree
- In the explicit branch, edge indices already refer directly to
- def
OAI.AlgorithmicThinTrees.GoodOutputA valid tree output with a canonical one-vertex case line 178L4DEL explanation
meeting every cut in at most a C/k fraction
GoodOutput C x bitsrequires aTreeOutputand additionally requiresbits = []whenever the input has exactly one vertex.- A one-vertex graph's spanning tree has no edges, and the extra clause fixes its serialization to the empty Boolean list.
- For larger inputs, all output requirements come from
TreeOutput.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:90 (same declaration text).
def GoodOutput (C : ℝ) (x : Input) (bits : List Bool) : Prop := …
Mentions: OAI.AlgorithmicThinTrees.Input
- def
OAI.AlgorithmicThinTrees.AlgorithmicStrongThinTreesThe complete deterministic polynomial-time strong thin-tree proposition line 181L4DEL explanation
meeting every cut in at most a C/k fraction
any k-edge-connected unweighted graph has a polyloglog(n)/k-thin spanning tree.
There exist one positive real constant
C, one fixed finite stack machineM, and natural numbersaanddegreewitha > 0such that every valid input is solved withina * (length + 1) ^ degreesteps.- The result after that exact fuel must be halted, and the designated output stack must satisfy
GoodOutput Cfor the original input. - Quantifying over
C,M,a, anddegreebeforexmakes them uniform across all graph sizes, connectivities, and both encodings. - This proposition specifies an algorithm and its certificate format. It does not itself construct the machine; the following theorem is intended to prove this proposition but currently has body
by sorry.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript, Nima Anari and Shayan Oveis Gharan, Effective-Resistance-Reducing Flows, Spectrally Thin Trees, and Asymmetric TSP
Also declared: OAI/Combinatorics/ThinTrees/Encoding/Specification.lean:93 (same declaration text).
def AlgorithmicStrongThinTrees : Prop := …
- The result after that exact fuel must be halted, and the designated output stack must satisfy
- theorem
OAI.AlgorithmicThinTrees.algorithmic_strong_thin_treesChallenge statement: A deterministic polynomial-time strong thin-tree construction sorry line 191L4DEL explanation
meeting every cut in at most a C/k fraction
Every k-edge connected graph has O(1/k)-thin spanning tree.
There is one universal constant $C>0$ and one deterministic finite stack machine that, from either of the statement's two encodings of any finite loopless $k$-edge-connected multigraph, halts in polynomially many steps and outputs a spanning tree whose share of every nontrivial cut is at most $C/k$ times the graph's share of that cut.
Inputhas two cases.explicitlists every edge separately;binarylists distinct endpoint pairs and binary-encoded parallel-edge multiplicities.Validrequires at least one vertex, positive $k$, and at least $k$ graph edges across every nontrivial cut.AlgorithmicStrongThinTreessupplies a positive real constantC, a concreteCurrentKS.Machine, a positive natural coefficienta, and a natural exponentdegreethat may be zero. On every valid encoding the machine must halt withina * (x.length + 1) ^ degreesteps.- The output decodes to a duplicate-free edge list forming a spanning tree
T, and every nonempty proper vertex set $S$ satisfies $|\delta_T(S)|\le (C/k)|\delta_G(S)|$. For the one-vertex case the bit output is required to be empty. - Nima Anari's Simons Institute lecture states the strong form associated with Luis Goddyn as an existence conjecture. The pinned manuscript's additional claim is constructive: one deterministic polynomial-time algorithm works even when parallel multiplicities are compressed in binary.
- Trust boundary: this comparator declaration ends in
by sorry. The pinned comparator configuration pairs it withOAI.Combinatorics.ThinTrees.AlgorithmicMain; the site's Lean trust result, not this prose or the manuscript, determines whether that separate solution module checks.
Sources and attribution: Pinned Lean source (fd4aeeb2ee4f), OpenAI algorithmic strong-thin-tree manuscript, Pinned OpenAI formalization note 174, Nima Anari, Thin Trees and Interlacing Families lecture slides (Simons Institute)
Distinct definitions of this name: OAI/Combinatorics/ThinTrees/Encoding/AlgorithmicMain.lean:65 (same statement text; different proof or body). Qualify references as OAI.AlgorithmicThinTrees.algorithmic_strong_thin_trees@path.
strong thin tree: a spanning tree that crosses every cut using at most an $O(1/k)$ fraction of the original cut in a $k$-edge-connected graph
edge connectivity: the minimum number of graph edges crossing any nonempty proper vertex cut
theorem algorithmic_strong_thin_trees : AlgorithmicStrongThinTrees := by …
Mentions: OAI.AlgorithmicThinTrees.AlgorithmicStrongThinTrees