Exact polynomial-time linear programming on a word RAM
Lax109476.PolynomialTimeSolver · concepts/Lax109476/PolynomialTimeSolver.lean · lax-109476
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
There is one polynomial-time word-RAM algorithm that solves every rational linear program exactly. It returns either an optimal primal point and matching dual multipliers, an infeasibility certificate, or a feasible point and an improving recession direction certifying unboundedness.
Concept map
Evidence
Each proof establishes this claim relative to its assumptions.
Lean source view on GitHub
| 1 | import Lax109476.RationalEncoding |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Exact polynomial-time linear programming on a word RAM |
| 6 | type: theorem |
| 7 | --- |
| 8 | There is one polynomial-time word-RAM algorithm that solves every rational |
| 9 | linear program exactly. It returns either an optimal primal point and matching |
| 10 | dual multipliers, an infeasibility certificate, or a feasible point and an |
| 11 | improving recession direction certifying unboundedness. |
| 12 | |
| 13 | # Formalization notes |
| 14 | |
| 15 | This is the classical polynomial-time solvability theorem for rational |
| 16 | linear programming, with the outcomes stated through exact certificates. |
| 17 | The computation predicate is `Lax759944.RamPolytime.RamPolytime`, using the |
| 18 | registered word RAM and the input's binary size. The returned word must |
| 19 | equal the encoding of the same certificate whose conditions are checked. |
| 20 | No fixed dimension, bounded coefficient magnitude, or feasibility promise |
| 21 | is imposed. Empty dimensions are included. |
| 22 | |
| 23 | The existence of a polynomial-time solver is the algorithmic obligation; |
| 24 | ellipsoid-method internals are not separate claims in this submission. |
| 25 | -/ |
| 26 | |
| 27 | namespace Lax109476.PolynomialTimeSolver |
| 28 | |
| 29 | open Lax109476.LinearProgram Lax109476.RationalCertificates Lax109476.RationalEncoding |
| 30 | open Lax759944.RamPolytime |
| 31 | |
| 32 | /-- One uniform polynomial-time RAM produces exact certificates for every LP. -/ |
| 33 | axiom exists_exact_polynomial_time_solver : |
| 34 | ∃ solve : List ℕ → List ℕ, RamPolytime solve ∧ |
| 35 | ∀ (m n : ℕ) (P : Program ℚ m n), ∃ certificate : Certificate m n, |
| 36 | solve (encodeProgram P) = encodeCertificate certificate ∧ |
| 37 | IsValidCertificate P certificate |
| 38 | |
| 39 | end Lax109476.PolynomialTimeSolver |
| 40 |
Formalization notes
This is the classical polynomial-time solvability theorem for rational linear programming, with the outcomes stated through exact certificates. The computation predicate is , using the registered word RAM and the input's binary size. The returned word must equal the encoding of the same certificate whose conditions are checked. No fixed dimension, bounded coefficient magnitude, or feasibility promise is imposed. Empty dimensions are included.
The existence of a polynomial-time solver is the algorithmic obligation; ellipsoid-method internals are not separate claims in this submission.
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments