A fixed RAM program constructs the rounded blow-up
Lax263307.NativeBlowUp · concepts/Lax263307/NativeBlowUp.lean · lax-263307
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
One finite RAM program reads the original weighted graph, clips negative weights, computes rounded copy counts, and constructs the adjacency matrix of the canonically numbered independent blow-up. Its output starts with the blow-up order and then gives the adjacency matrix in row-major order.
Concept map
Lean source view on GitHub
| 1 | import Lax263307.WeightedAlgorithm |
| 2 | import Lax808846.Ram |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: A fixed RAM program constructs the rounded blow-up |
| 7 | type: theorem |
| 8 | --- |
| 9 | One finite RAM program reads the original weighted graph, clips negative |
| 10 | weights, computes rounded copy counts, and constructs the adjacency matrix |
| 11 | of the canonically numbered independent blow-up. Its output starts with the |
| 12 | blow-up order and then gives the adjacency matrix in row-major order. |
| 13 | |
| 14 | # Formalization notes |
| 15 | |
| 16 | The execution proof includes the actual unprefixed input reader, maximum |
| 17 | scan, natural-number quotient for copy counts, owner-array construction, |
| 18 | and every adjacency lookup. Copy owners agree exactly with the computable |
| 19 | finite-sigma labeling used by the weighted algorithm. Time and sufficient |
| 20 | word width are quadratic in the original order, blow-up order, and input |
| 21 | rational height. This is the preprocessing program; the complete recursive |
| 22 | RAM solver and its global quasipolynomial bound remain separate obligations. |
| 23 | -/ |
| 24 | |
| 25 | namespace Lax263307.NativeBlowUp |
| 26 | |
| 27 | open WeightRounding WeightedIndependentSet WeightedAlgorithm |
| 28 | |
| 29 | def encode {n : ℕ} (G : SimpleGraph (Fin n)) [DecidableRel G.Adj] : List ℕ := |
| 30 | n :: (List.ofFn fun u => List.ofFn fun v => if G.Adj u v then 1 else 0).flatten |
| 31 | |
| 32 | axiom exists_program : ∃ p : Lax808846.Ram.Program, ∃ c : ℕ, 0<c ∧ |
| 33 | ∀ (n h : ℕ), 1≤h → ∀ (G : SimpleGraph (Fin n)) [DecidableRel G.Adj] |
| 34 | (w : Fin n → ℚ) (ε : ℚ), 0<ε → |
| 35 | (∀ i,(w i).num.natAbs≤2^h ∧ (w i).den≤2^h) → |
| 36 | ε.num.natAbs≤2^h → ε.den≤2^h → |
| 37 | let cs := copies (fun v => max (w v) 0) ε |
| 38 | let N := ∑ v,cs v |
| 39 | ∀ width : ℕ,c*(n+N+h+1)^2≤width → |
| 40 | ∃ t≤c*(n+N+h+1)^2,Lax808846.Ram.RunsTo width p (encodeInput G w ε) |
| 41 | (encode (numbered G cs)) t |
| 42 | |
| 43 | end Lax263307.NativeBlowUp |
| 44 |
Formalization notes
The execution proof includes the actual unprefixed input reader, maximum scan, natural-number quotient for copy counts, owner-array construction, and every adjacency lookup. Copy owners agree exactly with the computable finite-sigma labeling used by the weighted algorithm. Time and sufficient word width are quadratic in the original order, blow-up order, and input rational height. This is the preprocessing program; the complete recursive RAM solver and its global quasipolynomial bound remain separate obligations.
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments