Proof of `Rank shift of type trees`

groundedproofs/Lax185574Proofs/RankShift.lean · lax-185574

What this proof establishes

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

In the paper

  • page 44 of this submission's paper

Description

The program runs the glue program ShiftRam.glueShiftRam.glue and the restriction program of the restriction lemma in the loop driver loopsoundloop_sound. In its first round the glue program reads the tree, finds the first extension with guard 00, which exists since dist(a1,a1)=0dist(a₁, a₁) = 0, and asks for the restriction of its child to the first ℓℓ positions. In its second round it outputs the answer. The child is tree_{k+1,q−1}(ā b) for a vertex bb, so the answer is tree_{k+1,q−1}(ā), as in the proof of the rank shift lemma. Every run inside the driver is right at an admissible word length: the runs of the glue program because their values are polynomial in the input, the run of the restriction program because its query is admissible at the word length of its region. The constant absorbs the constant of the restriction program at rank (k+1,q)(k + 1, q), and the degree is that of the restriction program plus two.

The proof is carried out for the notion Lax185574.Computing.ComputesLax185574.Computing.Computes, and transferred to Lax185574.Algorithms.Algorithm.ComputesLax185574.Algorithms.Algorithm.Computes through Lax185574Proofs.InterfaceLax185574Proofs.Interface.