While this submission is a draft, it cannot be used by other submissions.

Proof of `Construction 2` (2nd statement)

groundedproofs/Lax470956Proofs/EmitProg.lean · lax-470956

What this proof establishes

no assumptions

Assuming the claims on the left, the claim on the right holds — checked by the archive's pipeline. Proof code is not displayed here.

Read the Lean proof on GitHub

Description

The program reads the two header entries, copies the clause block into an array, and writes the six blocks of the encoding in order. The copy costs 1212 per entry; the three passes that decode a clause job cost 104104, 104104 and 124124 per job, the weights 1010, the offsets 2424; and the compiler charges ten machine instructions per unit of IMP+ cost. With V3CV ≤ 3C the number of jobs is at most 12C12C and the word's length is 2+9C2 + 9C, so the whole is linear in the length of the input, and 5881(x+1)5881 · (|x| + 1) covers it.

The bound on the values is the length of the word plus its largest entry: every number the program forms is an entry it read, a count of them, or a machine index, and the machine indices are bounded by 2V+3C2V + 3C.