Documentation

Complexity.Computability.Kolmogorov.MINcKT

The Conditional Time-Bounded Kolmogorov Complexity Problem (MINcKT) #

This module defines the conditional time-bounded Kolmogorov complexity decision problem Cslib.Kolmogorov.MINcKT (the conditional analogue of MINKT from Hirahara, Definition 9), its fixed-parameter counterpart Cslib.Kolmogorov.MINcKTAt, and the conditional promise problem Cslib.Kolmogorov.GapMINcKT (the conditional analogue of GapMINKT from Hirahara, Definition 11), and proves that MINcKT lies in NP (and that MINcKTAt t s lies in NP whenever t and s are computable in polynomial time in unary).

The underlying conditional reference machine condUniversalTM and conditional complexity measures condPlain, condTimeBounded, condTimeBoundedAt, and condLevinKt are developed in Complexity.Computability.Kolmogorov.Conditional.

Threshold conventions #

As with MINKT and MINKTAt, both threshold conventions are provided and bridged:

Main definitions #

Main results #

References #

The Minimum Conditional Time-Bounded Kolmogorov Complexity Problem (MINcKT) #

An instance of MINcKT: a target binary string string, a condition binary string cond, a step bound time, and a program size threshold size (conditional analogue of Hirahara, Definition 9).

  • string : List Bool

    The target binary string x.

  • cond : List Bool

    The auxiliary condition binary string y.

  • time : ℕ

    The step bound t for the described multi-tape machine.

  • size : ℕ

    The maximum allowed program length s.

Instances For

    The Minimum Conditional Time-Bounded Kolmogorov Complexity Problem (MINcKT) (conditional analogue of Hirahara, Definition 9): the set of instances (x, y, t, s) such that condTimeBoundedAt t x y ≤ s.

    Instances For

      Standard encoding of MINcKT.Instance: pairs (i.string, i.cond) with the unary thresholds (i.time, i.size).

      Instances For

        The unary size parameter i.size is at most (enc i).length.

        The unary time parameter i.time is at most (enc i).length.

        i ∈ MINcKT iff condTimeBoundedAt i.time i.string i.cond ≤ i.size.

        @[simp]
        theorem Cslib.Kolmogorov.MINcKT.mk_mem_iff {x y : List Bool} {t s : ℕ} :
        { string := x, cond := y, time := t, size := s } ∈ MINcKT ↔ condTimeBoundedAt t x y ≤ ↑s

        ⟨x, y, t, s⟩ ∈ MINcKT iff condTimeBoundedAt t x y ≤ s.

        i ∈ MINcKT iff some program of length at most i.size outputs i.string given i.cond within i.time steps.

        theorem Cslib.Kolmogorov.MINcKT.mem_of_size_le {x y : List Bool} {t s₁ s₂ : ℕ} (h : { string := x, cond := y, time := t, size := s₁ } ∈ MINcKT) (hs : s₁ ≤ s₂) :
        { string := x, cond := y, time := t, size := s₂ } ∈ MINcKT

        Monotonicity of MINcKT in the size threshold s.

        theorem Cslib.Kolmogorov.MINcKT.mem_of_time_le {x y : List Bool} {t₁ t₂ s : ℕ} (h : { string := x, cond := y, time := t₁, size := s } ∈ MINcKT) (ht : t₁ ≤ t₂) :
        { string := x, cond := y, time := t₂, size := s } ∈ MINcKT

        Monotonicity of MINcKT in the step budget t.

        The witness check for MINcKT: given an instance i and a candidate program p, checks that p.length ≤ i.size and that condUniversalTMRunFor p i.cond i.time = some i.string.

        Instances For

          check (i, p) = true iff p.length ≤ i.size and p outputs i.string given i.cond within i.time steps.

          MINcKT is in NP (conditional analogue of Hirahara, Definition 9): a witness for (x, y, 1^t, 1^s) is a binary program p of length at most s ≤ |(x, y, 1^t, 1^s)|, verified in polynomial time by MINcKT.check.

          Fixed-threshold formulation (MINcKTAt) #

          Fixed-threshold MINcKT (MINcKTAt t s): the language of string pairs (x, y) (encoded by encPair encBits encBits) such that condTimeBounded t x y ≤ s x.length.

          Instances For
            @[simp]
            theorem Cslib.Kolmogorov.mem_MINcKTAt_iff_mem_MINcKT {t s : ℕ → ℕ} {x y : List Bool} :
            (x, y) ∈ MINcKTAt t s ↔ { string := x, cond := y, time := t x.length, size := s x.length } ∈ MINcKT

            (x, y) ∈ MINcKTAt t s iff ⟨x, y, t x.length, s x.length⟩ ∈ MINcKT.

            Embeds a pair (x, y) into MINcKT.Instance using threshold functions t and s at |x|.

            Instances For

              Conditional promise problem GapMINcKT #

              The yes-instances of GapMINcKT: instances (x, y, t, s) with $K^t(x \mid y) \le s$ (conditional analogue of Hirahara, Definition 11).

              Instances For

                The no-instances of GapMINcKT[σ, τ]: instances (x, y, t, s) with $K^{\tau(|x|, |y|, t)}(x \mid y) > \sigma(|x|, |y|, s)$ (conditional analogue of Hirahara, Definition 11, parameterized here by gap functions σ, τ : ℕ → ℕ → ℕ → ℕ of |x|, |y|, and the threshold).

                Instances For
                  theorem Cslib.Kolmogorov.GapMINcKT.disjoint_yesSet_noSet {σ τ : ℕ → ℕ → ℕ → ℕ} (hσ : ∀ (n m s : ℕ), s ≤ σ n m s) (hτ : ∀ (n m t : ℕ), t ≤ τ n m t) :

                  When s ≤ σ n m s and t ≤ τ n m t, GapMINcKT.yesSet and GapMINcKT.noSet σ τ are disjoint.

                  theorem Cslib.Kolmogorov.GapMINcKT.noSet_id_eq_compl :
                  (noSet (fun (x x_1 s : ℕ) => s) fun (x x_1 t : ℕ) => t) = MINcKTᶜ

                  With trivial gap functions σ n m s = s and τ n m t = t, GapMINcKT.noSet is MINcKTᶜ.

                  def Cslib.Kolmogorov.GapMINcKT (σ τ : ℕ → ℕ → ℕ → ℕ) (hσ : ∀ (n m s : ℕ), s ≤ σ n m s) (hτ : ∀ (n m t : ℕ), t ≤ τ n m t) :

                  Conditional promise problem GapMINcKT (conditional analogue of Hirahara, Definition 11, parameterized by gap functions σ, τ : ℕ → ℕ → ℕ → ℕ): separates MINcKT from GapMINcKT.noSet σ τ when s ≤ σ n m s and t ≤ τ n m t.

                  Instances For
                    @[simp]
                    theorem Cslib.Kolmogorov.GapMINcKT.yes_eq {σ τ : ℕ → ℕ → ℕ → ℕ} (hσ : ∀ (n m s : ℕ), s ≤ σ n m s) (hτ : ∀ (n m t : ℕ), t ≤ τ n m t) :
                    (GapMINcKT σ τ hσ hτ).yes = MINcKT

                    The yes-set of GapMINcKT σ τ hσ hτ is MINcKT.

                    @[simp]
                    theorem Cslib.Kolmogorov.GapMINcKT.no_eq {σ τ : ℕ → ℕ → ℕ → ℕ} (hσ : ∀ (n m s : ℕ), s ≤ σ n m s) (hτ : ∀ (n m t : ℕ), t ≤ τ n m t) :
                    (GapMINcKT σ τ hσ hτ).no = noSet σ τ

                    The no-set of GapMINcKT σ τ hσ hτ is GapMINcKT.noSet σ τ.

                    @[simp]
                    theorem Cslib.Kolmogorov.GapMINcKT.id_eq :
                    GapMINcKT (fun (x x_1 s : ℕ) => s) (fun (x x_1 t : ℕ) => t) ⋯ ⋯ = Complexity.PromiseProblem.ofSet MINcKT

                    With no gap (σ n m s = s and τ n m t = t), GapMINcKT is PromiseProblem.ofSet MINcKT.