Constant-factor hardness of directed feedback vertex set
Lean is a language for mathematical statements and proofs that a computer can verify. This page shows one statement file from OpenAI’s release, possible paper matches and independent reports. The code-like names below identify the definitions or theorems selected by the proof-verification settings.
Theorem selected for verification:OAI.DirectedFeedback.main
The lines of the Lean statement that state the theorem, then the definitions in the file that it uses.
defMainStatement : Prop := ∀ A : ℝ, 1 ≤ A → ∀ language : List Bool → Prop, InNP language → Nonempty (GapReduction A language)⋮theoremDirectedFeedback.main : DirectedFeedback.MainStatement := bysorry
A Lean statement states the theorem and leaves its proof as sorry on purpose. OpenAI’s proof is in a separate solution module, and a program called Comparator checks that proof against this statement.
Definitions needed to read it
Local definitions the statement names, followed through the definitions they name in turn. The match is by name in the source text, so a name reached only through notation can be missed; the full file is below.
noncomputabledefdfvs (G : Digraph) : ℕ := by classical exact Nat.find (show ∃ k : ℕ, ∃ F : Finset (Fin G.n), G.Feedback F ∧ F.card = k from ⟨G.n, Finset.univ, by intro r c _ exact ⟨0, Finset.mem_univ _⟩, by simp⟩)
structureGapReduction (A : ℝ) (language : List Bool → Prop) where construct : List Bool → GapInstance computation : Turing.TM2ComputableInPolyTime (id : List Bool → List Bool) GapInstance.bits construct finiteAlphabet : FiniteAlphabet computation.tm completeness : ∀ input, language input → (construct input).graph.dfvs ≤ (construct input).k soundness : ∀ input, ¬ language input → A * ((construct input).k : ℝ) < ((construct input).graph.dfvs : ℝ)
No confident match with a paper statement
No paper theorem is paired with this Lean statement.
Why none: no paper statement matches the Lean text clearly enough to pair, so the closest candidates are listed below.
Statements in Constant-factor hardness of directed feedback vertex set come first because the release’s name for this Lean statement shares words with that paper’s title.
Other possible paper matches, closest wording first
Theorem 1.1 of Constant-factor hardness of directed feedback vertex set. Words of the Lean statement, its names split into words, that also appear in the theorem: dfvs, minimum, directed, feedback, real, digraphs and nine more. Found in the paper’s title, which its main theorem states: hardness. Shared only with the release’s name for the Lean statement or OpenAI’s note on it: approximate, unweighted and within.
Corollary 8.3 of Constant-factor hardness of directed feedback vertex set. Words of the Lean statement, its names split into words, that also appear in the theorem: arc, loopless, directed, feedback, real, digraph and ten more. Shared only with the release’s name for the Lean statement or OpenAI’s note on it: approximating, unweighted and within.
Theorem 1.1 of Constant-factor hardness of Min-UnCut. Words of the Lean statement, its names split into words, that also appear in the theorem: oracle, many, pair, undirected, length, encoded and 13 more. Found in the paper’s title, which its main theorem states: hardness and factor. Shared only with the release’s name for the Lean statement or OpenAI’s note on it: unweighted.
Theorem 1.1 of The Factor-Two Hardness Threshold for Vertex Cover. Words of the Lean statement, its names split into words, that also appear in the theorem: vertices, undirected, explicitly, output, explicit, sat and ten more. Found in the paper’s title, which its main theorem states: threshold, hardness, vertex and factor. Shared only with the release’s name for the Lean statement or OpenAI’s note on it: unweighted.
Proposition 3.7 of Constant-factor hardness of directed feedback vertex set. Words of the Lean statement, its names split into words, that also appear in the theorem: loopless, costs, digraph, bounded, positive, input and five more.
How Atlas selects possible matches: it compares words in the Lean statement with every statement in the family. It also splits Lean names into words. The release’s label and note receive less weight; a main theorem wins a close match. If the Lean wording yields no clear match, Atlas uses the catalogue description. This selects passages to compare; it does not establish that they mean the same thing.
Reported Comparator runs
Atlas has no report of an independent group using Comparator to verify OpenAI’s proof of this Lean statement at the version shown here. Each group reports its own Comparator run for this statement file. Atlas has not repeated the runs.
For a configured theorem, Comparator tests whether OpenAI’s proof proves the exact Lean statement. Some files instead configure definitions for comparison by name and type. Acceptance does not establish that the statement means the same thing as the paper’s theorem.
Every Comparator challenge re-run on Linux with nanoda switched on, decided by a preregistered rule; every family’s challenge statements read against OpenAI’s headline, clause by clause. Decider: Comparator (leanprover/comparator d03acab1 = tag v4.34.0, built with the release’s toolchain v4.34.1), lean4export 076e8e57, landrun 811cfff5, nanoda_lib 3a240721 — on GitHub’s Linux runners (.github/workflows/openai-math-kernel.yml), one j…
No verdict reachedTheir term: “REFUSED”.
Re-run through Comparator did not reach a verdict (the job ended (failure) in the step "comparator, Lean’s kernel and nanoda" without uploading a result: the runner terminated it (GitHub: The hosted runner lost communication with the server. Anything in your workflow that terminates the runner process, starves it for CPU/Memory, or blocks its network access can cause this error.)).
If Comparator is run under this configuration and accepts, the solution proves the configured theorem using only the allowed axioms, and the Lean kernel accepts every step.
This configuration lists no definition holes, so every definition the statement uses is compared as it is written in this file.
Acceptance leaves open whether the Lean statement means the same thing as the paper’s theorem, whether the paper’s other claims are correct, and whether the result is new. Those questions require comparing the definitions and statements, reviewing the paper’s arguments, and reading the earlier literature.
Do family 102’s Lean statements express the advertised result?
These assessments compare all the family’s Lean statements with the whole result OpenAI describes in its catalogue. They do not assess this statement alone. Each group uses its own published rules.
MathVet and cert-machine agree on how much of the advertised result the Lean statements express.
Finds the whole advertised result stated or impliedTheir term: “full”.
The challenge statements imply the headline claim after unpacking definitions or one routine step. Their record
Their note: None found; all five hardness statements are formalized as polynomial-time (Mathlib TM2, finite stack alphabets) Karp gap reductions from binary 3SAT (or an arbitrary NP verifier language), which is the standard NP-hardness encoding. Cone is ~190k lines and uses 'Std'/'Lean' (core) only; the OptimalMaxCut axiom_files flag is a comment-only false positive.
Definitions the group asks readers to compare with the paper: Complexity notions are Mathlib's Turing.TM2ComputableInPolyTime (note: Mathlib's FinTM2 only forces the input stack alphabet to be finite, so every challenge adds finiteAlphabet : ∀ k, Finite (computation.tm.Γ k)), outputs are measured in explicit unary/binary encodings (gameBits writes every number in unary); alphaGW is defined as an sInf over ρ ∈ [-1,1) (equals the GW constant, checked); InNP is the certificate definition via NPVerifier with a polynomial witnessBound
OpenAI’s own note on what this Lean statement covers
“The formalization proves hardness of approximating the minimum such set within any fixed constant factor. For every real factor $A\ge1$ and every language in NP, it constructs a polynomial-time gap reduction to unweighted directed graphs with the stated completeness and soundness separation. Thus a fixed-factor polynomial-time approximation would imply a polynomial-time algorithm for every NP language.”
An AI agent drafted an interpretation of that note, classifying this statement as “states a paper’s theorem as the paper does”. No human review of the draft is recorded.
Supporting material
The complete Lean statement file
101 lines, copied from release version fd4aeeb. A name defined in this file links to its line; pointing at the name shows its definition.
Declared in this fileOpenAI’s library at fd4aeebOther linked names open the current documentation for Mathlib, Lean’s mathematical library.
Links in the file: 19 to its own declarations, 61 to Mathlib’s documentation. 15 declared names also link to the same declaration in OpenAI’s library. OpenAI uses Mathlib version d13f23b. The linked documentation describes the current version, so names that have since changed may be missing there.
import Mathlibnamespace OAInamespace DirectedFeedback/-- Unary self-delimiting natural numbers. Outputs are explicit, not succinct. -/defnatBits (n : ℕ) : ListBool := List.replicate n true ++ [false]/-- The explicit framing used for an input and its NP certificate. -/defpairBits (p : ListBool × ListBool) : ListBool :=natBits p.1.length ++ p.1 ++ p.2/-- Finitely many stacks and control states are already part of `FinTM2`.This additionally excludes infinite stack alphabets. -/defFiniteAlphabet (M : Turing.FinTM2) : Prop := ∀ k, Finite (M.Γ k)/-- Polynomially bounded certificates checked by an actual deterministicfinite-alphabet machine, on the explicitly encoded input/certificate pair. -/structureNPVerifierwherewitnessBound : Polynomialℕverify : (ListBool × ListBool) → Boolcomputation : Turing.TM2ComputableInPolyTimepairBits (fun b : Bool => [b]) verifyfiniteAlphabet : FiniteAlphabet computation.tmdefNPVerifier.Accepts (V : NPVerifier) (input : ListBool) : Prop := ∃ witness : ListBool, witness.length ≤ V.witnessBound.eval input.length ∧ V.verify (input, witness) = true/-- NP is defined independently of SAT or any hardness assertion. -/defInNP (language : ListBool → Prop) : Prop := ∃ V : NPVerifier, ∀ input, language input ↔ V.Accepts input/-- Finite loopless digraph. Opposite arcs are permitted. Every arc is listedexplicitly. No symmetric closure or undirected-cycle convention is used. -/structureDigraphwheren : ℕarcs : List (Fin n × Fin n)loopless : ∀ e ∈ arcs, e.1 ≠ e.2nodup : arcs.Nodupnamespace Digraph/-- An actual simple directed cycle of positive length. A cyclic enumerationof `r + 1` distinct vertices supplies every successive arc, including theclosing arc. A 2-cycle is allowed; looplessness rules out length 1. -/defIsCycle (G : Digraph) {r : ℕ} (c : Fin (r + 1) → Fin G.n) : Prop :=Function.Injective c ∧ ∀ i, (c i, c (i + 1)) ∈ G.arcs/-- A feedback set intersects EVERY actual directed cycle. -/defFeedback (G : Digraph) (F : Finset (Fin G.n)) : Prop := ∀ (r : ℕ) (c : Fin (r + 1) → Fin G.n), G.IsCycle c → ∃ i, c i ∈ F/-- Minimum number of vertices of a feedback set. No weights or auxiliarycost oracle appear in this definition. -/noncomputabledefdfvs (G : Digraph) : ℕ := byclassicalexactNat.find (show ∃ k : ℕ, ∃ F : Finset (Fin G.n), G.Feedback F ∧ F.card = k from ⟨G.n, Finset.univ, byintro r c _exact ⟨0, Finset.mem_univ _⟩, bysimp⟩)/-- Full explicit vertex and arc serialization, including isolated vertices. -/defbits (G : Digraph) : ListBool := ([G.n] ++ List.range G.n ++ [G.arcs.length] ++ G.arcs.flatMap (fun e => [e.1.val, e.2.val])).flatMap natBitsend Digraph/-- Output includes a strictly positive integer threshold. -/structureGapInstancewheregraph : Digraphk : ℕk_pos : 0 < kdefGapInstance.bits (I : GapInstance) : ListBool :=natBits I.k ++ I.graph.bits/-- A strict YES/NO gap reduction implemented by a finite-alphabet machinewith polynomial runtime in the raw input bit length. -/structureGapReduction (A : ℝ) (language : ListBool → Prop) whereconstruct : ListBool → GapInstancecomputation : Turing.TM2ComputableInPolyTime (id : ListBool → ListBool)GapInstance.bits constructfiniteAlphabet : FiniteAlphabet computation.tmcompleteness : ∀ input, language input → (construct input).graph.dfvs ≤ (construct input).ksoundness : ∀ input, ¬ language input → A * ((construct input).k : ℝ) < ((construct input).graph.dfvs : ℝ)/-- Constant-factor directed feedback vertex set hardness for all NP languages. -/defMainStatement : Prop := ∀ A : ℝ, 1 ≤ A → ∀ language : ListBool → Prop,InNP language → Nonempty (GapReduction A language)end DirectedFeedbacktheoremDirectedFeedback.main : DirectedFeedback.MainStatement := bysorryend OAI
Every extracted statement of the accompanying papers
The statements the atlas extracted automatically from each accompanying paper’s TeX source, with links to the full sources.
For every fixed \varepsilon,\delta\in(0,1/2), there are an integer s\ge1 and a deterministic polynomial-time reduction from \mathrm{3SAT} to explicit unweighted Unique Games instances G_\varphi over K=\F_2^s such that
The graph is simple and bipartite, and every constraint is a translation a(v_e)=a(u_e)+c_e of K. The alphabet, the degree of the running-time polynomial, and its constants depend only on \varepsilon,\delta.
For every fixed \(\varepsilon,\delta\in(0,1/2)\), there are an integer
\(s\ge1\) and a deterministic polynomial-time reduction from
\(\mathrm{3SAT}\) to explicit unweighted Unique Games instances
\(G_\varphi\) over \(K=\F_2^s\) such that
\[
\begin{aligned}
\varphi\text{ satisfiable}
&\quad\Longrightarrow\quad \val(G_\varphi)\ge1-\varepsilon,\\
\varphi\text{ unsatisfiable}
&\quad\Longrightarrow\quad \val(G_\varphi)\le\delta.
\end{aligned}
\]
The graph is simple and bipartite, and every constraint is a translation
\(a(v_e)=a(u_e)+c_e\) of \(K\). The alphabet, the degree of the
running-time polynomial, and its constants depend only on
\(\varepsilon,\delta\).
For every fixed $\alpha$ with $\GW<\alpha\le1$, it is NP-hard to approximate
Max-Cut within a factor of $\alpha$. This holds for simple unweighted graphs.
Theorem
Fix a rational t\in(0,1) and a constant 0<\eps<(t-B(t))/4. For graphs equipped with a rational probability distribution on edges, it is NP-hard to distinguish
Fix a rational $t\in(0,1)$ and a constant
$0<\eps<(t-B(t))/4$. For graphs equipped with a rational probability
distribution on edges, it is NP-hard to distinguish
\begin{align*}
\textnormal{YES:}\quad&\Val\ge\frac{1+t}{2}-\eps,\\
\textnormal{NO:}\quad&\Val\le\frac{1+B(t)}{2}+\eps,
\end{align*}
where $\Val$ is the maximum cut weight.
For every fixed integer m\geq4, there is a deterministic polynomial-time reduction from \mathrm{3SAT} to finite simple undirected unweighted graphs with the following guarantees:
\begin{array}{ll}
\text{the formula is satisfiable}
&\Longrightarrow\quad
\tau(G)<\left(\dfrac12+\dfrac1m\right)|V(G)|,\\[6pt]
\text{the formula is unsatisfiable}
&\Longrightarrow\quad
\tau(G)>\left(1-\dfrac1m\right)|V(G)|.
\end{array}
The output lists all vertices and edges explicitly.
For every fixed integer \(m\geq4\), there is a deterministic
polynomial-time reduction from \(\mathrm{3SAT}\) to finite simple
undirected unweighted graphs with the following guarantees:
\[
\begin{array}{ll}
\text{the formula is satisfiable}
&\Longrightarrow\quad
\tau(G)<\left(\dfrac12+\dfrac1m\right)|V(G)|,\\[6pt]
\text{the formula is unsatisfiable}
&\Longrightarrow\quad
\tau(G)>\left(1-\dfrac1m\right)|V(G)|.
\end{array}
\]
The output lists all vertices and edges explicitly.
Corollary
For every fixed real \alpha with 1\leq\alpha<2, approximating Vertex Cover within factor \alpha is NP-hard. Thus, unless \mathrm P=\mathrm{NP}, no deterministic polynomial-time algorithm achieves factor 2-\varepsilon for any fixed \varepsilon\in(0,1].
For every fixed real \(\alpha\) with \(1\leq\alpha<2\),
approximating Vertex Cover within factor \(\alpha\) is NP-hard.
Thus, unless \(\mathrm P=\mathrm{NP}\), no deterministic
polynomial-time algorithm achieves factor \(2-\varepsilon\)
for any fixed \(\varepsilon\in(0,1]\).
For every fixed integer K\ge2, there is a deterministic polynomial-time many-one reduction mapping a 3SAT formula \varphi to a pair (G,k), where G is an explicit finite simple undirected unweighted graph and k\ge1 is a binary-encoded integer, such that
For each fixed K, the graph size, full construction work, and bit complexity are polynomial in the bit length of \varphi. All constants are effective; no advice or oracle is supplied to the reduction.
For every fixed integer $K\ge2$, there is a deterministic polynomial-time
many-one reduction mapping a $3$SAT formula $\varphi$ to a pair $(G,k)$, where
$G$ is an explicit finite simple undirected unweighted graph and $k\ge1$ is
a binary-encoded integer, such that
\[
\begin{aligned}
\varphi\text{ satisfiable}&\quad\Longrightarrow\quad
\OPT_{\rm uncut}(G)\le k,\\
\varphi\text{ unsatisfiable}&\quad\Longrightarrow\quad
\OPT_{\rm uncut}(G)>Kk.
\end{aligned}
\]
For each fixed $K$, the graph size, full construction work, and bit complexity
are polynomial in the bit length of $\varphi$. All constants are effective;
no advice or oracle is supplied to the reduction.
Corollary
For every fixed real C>1, minimum 2CNF clause deletion is NP-hard to approximate within factor C. In particular, a deterministic polynomial-time C-approximation would imply \mathsf P=\NP.
For every fixed real $C>1$, minimum $2$CNF clause deletion is NP-hard to
approximate within factor $C$. In particular, a deterministic polynomial-time
$C$-approximation would imply $\mathsf P=\NP$.
For every fixed real constant A\ge1, it is NP-hard to approximate minimum directed feedback vertex set within factor A on unweighted digraphs. More precisely, there is a deterministic polynomial-time reduction from an NP-hard promise problem to instances (G,k) with k\in\N_{>0}. The polynomial and its constants may depend on A. The reduction has the following alternatives:
For every fixed real constant $A\ge1$, it is NP-hard to approximate
minimum directed feedback vertex set within factor $A$ on unweighted
digraphs. More precisely, there is a deterministic polynomial-time
reduction from an NP-hard promise problem to instances $(G,k)$ with
$k\in\N_{>0}$. The polynomial and its constants may depend on $A$.
The reduction has the following alternatives:
\[
\textnormal{YES: }\DFVS(G)\le k,
\qquad
\textnormal{NO: }\DFVS(G)>Ak.
\]
OpenAI’s Lean catalogue does not list this as a main result; the release’s Lean notes for family 102 link it.
Solution module
OAI.Computability.DirectedFeedback.Main
Allowed axioms
propext, Quot.sound, Classical.choiceThe axioms this configuration allows a proof to use. A replay shows which of them a proof uses.
Imports
Mathlib
Imports from outside Mathlib
None
Local vocabulary
15 local vocabulary declarations
Lines of Lean, without comments or blank lines
52
Second proof-verification program (nanoda)
Off in OpenAI's configuration.
Statement comparison
A shareable summary of this page: the proposed paper match, what the Lean statement expresses, and which reviews are recorded.
Plectis Atlas
Constant-factor hardness of directed feedback vertex set
Family 102: The Unique Games Conjecture and optimal approximation thresholds
No paper statement selected
no paper statement matches the Lean text clearly enough to pair, so the closest candidates are listed below.
The Lean statement says
defMainStatement : Prop := ∀ A : ℝ, 1 ≤ A → ∀ language : List Bool → Prop, InNP language → Nonempty (GapReduction A language)⋮theoremDirectedFeedback.main : DirectedFeedback.MainStatement := bysorry
A Lean statement states the theorem and leaves its proof as sorry on purpose. OpenAI’s proof is in a separate solution module, and a program called Comparator checks that proof against this statement.
Recorded comparisons with the paper
Atlas records no contributed comparison of this statement with the paper.
Contributed Comparator run reports
Atlas records no contributed report of running Comparator for this statement file.