A uniform RAM program for the rounded ellipsoid update
Lax263307.NativeRoundedStep · concepts/Lax263307/NativeRoundedStep.lean · lax-263307
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
One fixed finite RAM program reads a rational shape, an integer cut normal, a rational center, and the iteration index, and writes the rounded next shape and center. Both its instruction count and sufficient word length are polynomial in the dimension, iteration index, and coordinate bit bound. It works at every larger word length. The input has no length prefix.
Concept map
Lean source view on GitHub
| 1 | import Lax263307.RoundedOracleSearch |
| 2 | import Lax808846.Ram |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: A uniform RAM program for the rounded ellipsoid update |
| 7 | type: theorem |
| 8 | --- |
| 9 | One fixed finite RAM program reads a rational shape, an integer cut normal, |
| 10 | a rational center, and the iteration index, and writes the rounded next |
| 11 | shape and center. Both its instruction count and sufficient word length |
| 12 | are polynomial in the dimension, iteration index, and coordinate bit bound. |
| 13 | It works at every larger word length. The input has no length prefix. |
| 14 | |
| 15 | # Formalization notes |
| 16 | |
| 17 | This statement concerns actual `Lax808846.Ram.RunsTo`. The proof compiles |
| 18 | the registered LP submission's complete rational ellipsoid update, adding |
| 19 | the input reader and canonical output writer. It is one subroutine of the |
| 20 | recursive QPTAS; it does not assert that the complete QPTAS program exists. |
| 21 | -/ |
| 22 | |
| 23 | namespace Lax263307.NativeRoundedStep |
| 24 | |
| 25 | open Matrix Lax263307.RoundedOracleSearch Lax109476.RationalEncoding |
| 26 | |
| 27 | def height (q : ℚ) (h : ℕ) : Prop := q.num.natAbs ≤ 2 ^ h ∧ q.den ≤ 2 ^ h |
| 28 | |
| 29 | def encodeInput {n : ℕ} (k : ℕ) (state : State n) (a : Fin n → ℤ) : List ℕ := |
| 30 | [n, k] ++ (List.ofFn fun i => encodeVector (state.1 i)).flatten ++ |
| 31 | encodeVector (rationalNormal a) ++ encodeVector state.2 |
| 32 | |
| 33 | def encodeOutput {n : ℕ} (state : State n) : List ℕ := |
| 34 | (List.ofFn fun i : Fin (n * n) => state.1 i.divNat i.modNat).flatMap encodeRational ++ |
| 35 | encodeVector state.2 |
| 36 | |
| 37 | axiom exists_program : ∃ p : Lax808846.Ram.Program, ∃ c : ℕ, 0 < c ∧ |
| 38 | ∀ (n k h : ℕ), 2 ≤ n → 1 ≤ h → |
| 39 | ∀ (state : State n) (a : Fin n → ℤ), |
| 40 | (∀ i j, height (state.1 i j) h) → |
| 41 | (∀ i, height (rationalNormal a i) h) → (∀ i, height (state.2 i) h) → |
| 42 | 0 < rationalNormal a ⬝ᵥ (state.1 *ᵥ rationalNormal a) → |
| 43 | ∀ w : ℕ, c * (n + h + k + 1) ^ 12 ≤ w → |
| 44 | ∃ t ≤ c * (n + h + k + 1) ^ 12, Lax808846.Ram.RunsTo w p |
| 45 | (encodeInput k state a) (encodeOutput (update k state a)) t |
| 46 | |
| 47 | end Lax263307.NativeRoundedStep |
| 48 |
Formalization notes
This statement concerns actual . The proof compiles the registered LP submission's complete rational ellipsoid update, adding the input reader and canonical output writer. It is one subroutine of the recursive QPTAS; it does not assert that the complete QPTAS program exists.
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments