Proof of `Lifting type trees through a merge`
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.
In the paper
- page 48 of this submission's paper
Description
The program is one pass over the tree followed by restoring canonical form, as in the proof of the merge lift lemma. The pass reads the tree and the colors and , lists the nodes of the tree in breadth-first order, and writes for every node, from the last to the first, its transformed atoms and its extensions. An atom is transformed by replacing the color by in every atom and . The guards are kept, and the child of an extension is referred to by the indices of the jobs of the child. Nothing is sorted in the pass. The canonical form is then restored from the leaves up by the program of the canonical form observation, called once for every set of the result (), which merges atoms that become equal. This is the semantic core , whose correctness is . No tree grows, so the time is polynomial in the length of the input.
The proof is carried out for the notion , and transferred to through .