Polynomial-Time and Strict Reductions Are FPT-Reductions

Lax496464.WH_A5_Bridges · concepts/Lax496464/WH_A5_Bridges.lean · lax-496464

proven

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Theorem

    Most reductions in parameterized complexity are computable in polynomial time, and many are already proved in the archive in one of the following forms. Each yields an fpt-reduction.

    1. Runs of a program. A program that halts with the correct output within a fixed-parameter bound BB at every word length from BB on, and writes numbers of at most BB bits, computes the function in fixed-parameter time. This is the form in which a program verified in the archive's IMP+ language arrives, run on the tape x.length::xx.length :: x.
    2. Polynomial time on the word RAM. On the set of all words, polynomial time in the sense of WHA1FptTimeWH_A1_FptTime is Lax759944.RamPolytime.RamPolytimeLax759944.RamPolytime.RamPolytime. A polynomial-time reduction whose parameter is bounded by a computable function of the old one is an fpt-reduction.
    3. Polynomial time on a Turing machine (Lax759944.TuringPolytime.TuringPolytimeLax759944.TuringPolytime.TuringPolytime), by the archive's equivalence of the two machine models.
    4. The archive's strict fpt-reductions (Lax888481.ParameterizedComplexity.IsFptReductionLax888481.ParameterizedComplexity.IsFptReduction, time c g(k) (∣x∣+1)c\,g(k)\,(|x|+1) on the tape xx), when gg and hh are computable and the output entries have fixed-parameter bit length; likewise the archive's strict fpt-algorithms.
    Concept map
    9 concepts
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A
    Evidence

    This concept declares 9 statements. Each proof establishes one of them relative to its assumptions.

    Lean source view on GitHub

    1import Lax496464.WH_A2_FptReductions
    2import Lax759944.TuringPolytime
    3
    4/-!
    5---
    6title: Polynomial-Time and Strict Reductions Are FPT-Reductions
    7type: theorem
    8---
    9Most reductions in parameterized complexity are computable in polynomial time, and many are
    10already proved in the archive in one of the following forms. Each yields an fpt-reduction.
    11
    121. **Runs of a program.** A program that halts with the correct output within a fixed-parameter
    13 bound BB at every word length from BB on, and writes numbers of at most BB bits, computes the
    14 function in fixed-parameter time. This is the form in which a program verified in the archive's
    15 IMP+ language arrives, run on the tape `x.length :: x`.
    162. **Polynomial time on the word RAM.** On the set of all words, polynomial time in the sense of
    17 `WH_A1_FptTime` is `Lax759944.RamPolytime.RamPolytime`. A polynomial-time reduction whose parameter
    18 is bounded by a computable function of the old one is an fpt-reduction.
    193. **Polynomial time on a Turing machine** (`Lax759944.TuringPolytime.TuringPolytime`), by the
    20 archive's equivalence of the two machine models.
    214. **The archive's strict fpt-reductions** (`Lax888481.ParameterizedComplexity.IsFptReduction`,
    22 time c g(k) (∣x∣+1)c\,g(k)\,(|x|+1) on the tape xx), when gg and hh are computable and the output entries
    23 have fixed-parameter bit length; likewise the archive's strict fpt-algorithms.
    24
    25# Formalization Notes
    26
    27**Output entries in the strict case.** The strict definition bounds the running time but not the
    28size of the numbers written: a program that repeatedly squares a number writes, in mm steps, a
    29number of 2m2^m bits. Such an output cannot be read by a further reduction in fixed-parameter time.
    30The hypothesis `hout` excludes this; it holds for every reduction whose output numbers are
    31polynomially bounded in its input numbers.
    32
    33**Tapes.** The strict notion gives the program the word xx, the polynomial-time notions the word
    34`x.length :: x`; a program for one tape is converted into one for the other with constant
    35overhead.
    36-/
    37
    38namespace Lax496464.WH_A5_Bridges
    39
    40open Lax808846.Ram Lax808846.RamComputes Lax759944.BinaryWordEncoding
    41open Lax759944.RamPolytime Lax759944.TuringPolytime
    42open Lax888481.ParameterizedComplexity (Problem Fits Decides)
    43open Lax496464.WH_A1_FptTime Lax496464.WH_A2_FptReductions
    44
    45/-- On all words, polynomial time is the archive's polynomial time on the word RAM. -/
    46axiom polyTimeOn_univ_iff (F : List ℕ → List ℕ) : PolyTimeOn Set.univ F ↔ RamPolytime F
    47
    48/-- **From runs on the machine.** A program that, on the tape `x.length :: x` of every word `x` of
    49`D`, halts with output `F x` within `B = f(κ x) · (|x| + 1)^d` steps at every word length `w ≥ B`,
    50writing only numbers below `2 ^ B`, computes `F` in fixed-parameter time. -/
    51axiom fptTimeOn_of_runsTo {D : Set (List ℕ)} {κ : List ℕ → ℕ} {F : List ℕ → List ℕ}
    52 {p : Program} {f : ℕ → ℕ} {d : ℕ} (hf : Computable f)
    53 (hrun : ∀ x ∈ D, ∀ w : ℕ, fptBound f d (κ x) (bitSize x) ≤ w →
    54 ∃ t ≤ fptBound f d (κ x) (bitSize x), RunsTo w p (x.length :: x) (F x) t)
    55 (hout : ∀ x ∈ D, ∀ v ∈ F x, v < 2 ^ fptBound f d (κ x) (bitSize x)) :
    56 FptTimeOn D κ F
    57
    58/-- **From runs on the machine**, polynomial version: the same with the bound `c · (|x| + 1)^d`. -/
    59axiom polyTimeOn_of_runsTo {D : Set (List ℕ)} {F : List ℕ → List ℕ} {p : Program} {c d : ℕ}
    60 (hrun : ∀ x ∈ D, ∀ w : ℕ, c * (bitSize x + 1) ^ d ≤ w →
    61 ∃ t ≤ c * (bitSize x + 1) ^ d, RunsTo w p (x.length :: x) (F x) t)
    62 (hout : ∀ x ∈ D, ∀ v ∈ F x, v < 2 ^ (c * (bitSize x + 1) ^ d)) :
    63 PolyTimeOn D F
    64
    65/-- A polynomial-time computation on the word RAM is polynomial time on every set of inputs. -/
    66axiom polyTimeOn_of_ramPolytime {F : List ℕ → List ℕ} (D : Set (List ℕ)) :
    67 RamPolytime F → PolyTimeOn D F
    68
    69/-- A polynomial-time computation on a Turing machine is polynomial time on every set of inputs. -/
    70axiom polyTimeOn_of_turingPolytime {F : List ℕ → List ℕ} (D : Set (List ℕ)) :
    71 TuringPolytime F → PolyTimeOn D F
    72
    73/-- **A polynomial-time reduction with a computably bounded parameter is an fpt-reduction.** -/
    74axiom fptReduces_of_polyTime {P Q : Problem} {R : List ℕ → List ℕ} :
    75 IsReduction P Q R → ParamBounded P Q R → PolyTimeOn P.Domain R → P ≤ᶠᵖᵗ Q
    76
    77/-- A computation in the archive's strict linear fixed-parameter time, with a computable time factor
    78and outputs of fixed-parameter bit length, is a fixed-parameter computation. -/
    79axiom fptTimeOn_of_strict {D : Set (List ℕ)} {κ : List ℕ → ℕ} {F : List ℕ → List ℕ}
    80 {prog : Program} {c : ℕ} {g : ℕ → ℕ} (hg : Computable g)
    81 (htime : ∀ w : ℕ, ComputesInTime w prog {x | x ∈ D ∧ Fits c w x ∧ Fits c w (F x)} F
    82 fun x => c * g (κ x) * (x.length + 1))
    83 (hout : ∃ (e : ℕ → ℕ) (d : ℕ), Computable e ∧
    84 ∀ x ∈ D, ∀ v ∈ F x, v < 2 ^ (e (κ x) * (bitSize x + 1) ^ d)) :
    85 FptTimeOn D κ F
    86
    87/-- **A strict fpt-reduction of the archive** with computable functions and outputs of
    88fixed-parameter bit length **is an fpt-reduction.** -/
    89axiom fptReduces_of_strict {P Q : Problem} {R : List ℕ → List ℕ} {prog : Program} {c : ℕ}
    90 {g h : ℕ → ℕ} (hr : Lax888481.ParameterizedComplexity.IsFptReduction P Q R prog c g h)
    91 (hg : Computable g) (hh : Computable h)
    92 (hout : ∃ (e : ℕ → ℕ) (d : ℕ), Computable e ∧
    93 ∀ x ∈ P.Domain, ∀ v ∈ R x, v < 2 ^ (e (P.param x) * (bitSize x + 1) ^ d)) :
    94 P ≤ᶠᵖᵗ Q
    95
    96/-- **A strict fpt-algorithm of the archive** with a computable time factor puts a parameterized
    97problem into FPT. -/
    98axiom mem_FPT_of_decides {P : Problem} {prog : Program} {c : ℕ} {g : ℕ → ℕ}
    99 (hP : IsParameterized P) (hg : Computable g) (hd : Decides P prog c g) : P ∈ FPT
    100
    101end Lax496464.WH_A5_Bridges
    102
    Show ProofShow ProofShow ProofShow ProofShow ProofShow ProofShow ProofShow ProofShow Proof
    Formalization Notes

    Output entries in the strict case. The strict definition bounds the running time but not the size of the numbers written: a program that repeatedly squares a number writes, in mm steps, a number of 2m2^m bits. Such an output cannot be read by a further reduction in fixed-parameter time. The hypothesis houthout excludes this; it holds for every reduction whose output numbers are polynomially bounded in its input numbers.

    Tapes. The strict notion gives the program the word xx, the polynomial-time notions the word x.length::xx.length :: x; a program for one tape is converted into one for the other with constant overhead.

    Builds on
    Used by

    none

    From Mathlib

    none

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…