Lifting type trees through a merge
Lax185574.MergeLift · concepts/Lax185574/MergeLift.lean · lax-185574
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
Fix ℓ ≤ k and q ∈ ℕ. Let G be a partial graph and ā ∈ V(G)^ℓ. Given tree^G_{k,q}(ā) and two distinct colors P, Q, one can compute tree^H_{k,q}(ā), where H = merge_{P,Q}(G), in time poly_{k,q}(‖tree^G_{k,q}(ā)‖).
Concept map
Evidence
Each proof establishes this claim relative to its assumptions.
In the paper
- page 48 of this submission's paper
Lean source view on GitHub
| 1 | import Lax185574.TypeTrees |
| 2 | import Lax185574.ConstructionSequences |
| 3 | import Lax185574.Algorithms |
| 4 | |
| 5 | /-! |
| 6 | --- |
| 7 | title: Lifting type trees through a merge |
| 8 | type: lemma |
| 9 | --- |
| 10 | Fix ℓ ≤ k and q ∈ ℕ. Let G be a partial graph and ā ∈ V(G)^ℓ. Given |
| 11 | tree^G_{k,q}(ā) and two distinct colors P, Q, one can compute |
| 12 | tree^H_{k,q}(ā), where H = merge_{P,Q}(G), in time |
| 13 | poly_{k,q}(‖tree^G_{k,q}(ā)‖). |
| 14 | |
| 15 | # Formalization notes |
| 16 | |
| 17 | The merge is `Lax185574.ConstructionSequences.merge`, which recolors Q |
| 18 | to P. The algorithm is an algorithm in the sense of |
| 19 | `Lax185574.Algorithms`, one for all k and q. Its input is the triple of |
| 20 | the type tree, P and Q. The size ‖τ‖ is the length of the encoding of |
| 21 | τ, and the time is `O((‖τ‖ + 1)^a)`, where the degree `a` and the |
| 22 | constant `c` may depend on k and q. |
| 23 | -/ |
| 24 | |
| 25 | namespace Lax185574.MergeLift |
| 26 | |
| 27 | open Lax185574.Encoding Lax185574.Algorithms |
| 28 | open Lax185574.PartialGraphs Lax185574.TypeTrees Lax185574.ConstructionSequences |
| 29 | |
| 30 | /-- **Merge lift.** One algorithm computes the type tree of a tuple |
| 31 | after a merge from its type tree before, in time polynomial in the size |
| 32 | of the tree. -/ |
| 33 | axiom exists_program_mergeLift : |
| 34 | ∃ A : Algorithm, ∀ k q : ℕ, ∃ c a : ℕ, |
| 35 | ∀ (n : ℕ) (G : PartialGraph (Fin n)) (ℓ : ℕ) (u : Fin ℓ → Fin n) (P Q : ℕ), |
| 36 | ℓ ≤ k → P ≠ Q → |
| 37 | A.Computes c (tree G k q u, P, Q) (tree (merge G P Q) k q u) |
| 38 | (((encode (tree G k q u)).length + 1) ^ a) |
| 39 | |
| 40 | end Lax185574.MergeLift |
| 41 |
Formalization notes
The merge is , which recolors Q to P. The algorithm is an algorithm in the sense of , one for all k and q. Its input is the triple of the type tree, P and Q. The size ‖τ‖ is the length of the encoding of τ, and the time is , where the degree and the constant may depend on k and q.
Used by
none
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments