Conditional Time-Bounded Kolmogorov Complexity (K(x | y), K^t(x | y), and Kt(x | y)) #
This module defines the conditional universal multi-tape Turing machine description method
Cslib.Kolmogorov.DescriptionMethod.condUniversalTM (a conditional description method
List Bool → DescriptionMethod (List Bool) in the sense of
Complexity.Computability.Kolmogorov.ChainRule) and the associated conditional plain,
time-bounded, and Levin Kolmogorov complexities:
Cslib.Kolmogorov.condPlain($K(x \mid y)$) andCslib.Kolmogorov.condPlainNat,Cslib.Kolmogorov.condTimeBoundedAt($K^t(x \mid y)$, the conditional analogue of Hirahara, Definition 7),Cslib.Kolmogorov.condTimeBounded, andCslib.Kolmogorov.condTimeBoundedNat, andCslib.Kolmogorov.condLevinKt($\mathrm{Kt}(x \mid y)$, the conditional analogue of Allender et al., Definition 1) andCslib.Kolmogorov.condLevinKtNat.
Modeling conventions #
- Conditioning via
universalTMon paired inputs: Given an auxiliary (condition) stringy : List Bool, a binary programp : List Boolis parsed into its machine descriptionunframe pand program argumentdropFrame p, and executed underuniversalTMon the re-framed programframe (unframe p) ++ encPair encBits encBits (dropFrame p, y). Byunframe_frame_appendanddropFrame_frame_append, at step budgettthis runs the described multi-tape machinedecodeDesc (unframe p)on the paired inputencPair encBits encBits (dropFrame p, y)fortsteps of the described machine (the conditional analogue of the unconditionaluniversalTMclock convention inComplexity.Computability.Kolmogorov.TimeBounded). - Reuse of
universalTMandDescriptionMethod: BecausecondUniversalTM yis aDescriptionMethod (List Bool)defined directly fromuniversalTM.run, it is a conditional description method in the sense ofComplexity.Computability.Kolmogorov.ChainRuleand inherits step monotonicity fromuniversalTM, polynomial-time evaluation fromcomputableInPolyTime_universalTMRunFor, and counting / incompressibility bounds for every fixed conditionyfromCslib.Kolmogorov.DescriptionMethod(Complexity.Computability.Kolmogorov.Incompressibility).
Main definitions #
Cslib.Kolmogorov.DescriptionMethod.condUniversalTMProgram,Cslib.Kolmogorov.DescriptionMethod.condUniversalTMRunFor,Cslib.Kolmogorov.DescriptionMethod.condUniversalTM: the conditional universal multi-tape description method for condition stringy.Cslib.Kolmogorov.condPlain,Cslib.Kolmogorov.condPlainNat: conditional plain Kolmogorov complexity $K(x \mid y)$ inℕ∞andℕ.Cslib.Kolmogorov.condTimeBoundedAt,Cslib.Kolmogorov.condTimeBounded,Cslib.Kolmogorov.condTimeBoundedNat: step-indexed and function-indexed conditional time-bounded Kolmogorov complexity $K^t(x \mid y)$ inℕ∞andℕ.Cslib.Kolmogorov.condLevinKt,Cslib.Kolmogorov.condLevinKtNat: conditional Levin complexity $\mathrm{Kt}(x \mid y)$ inℕ∞andℕ.
Main results #
Cslib.Kolmogorov.DescriptionMethod.computableInPolyTime_condUniversalTMRunFor: polynomial-time evaluation ofcondUniversalTMRunFor.DescriptionMethod.exists_etimeBoundedComplexity_condUniversalTM_le_ofMultiTapeTM: clock-preserving conditional simulation of every finite-state binaryMultiTapeTMoperating onencPair encBits encBits (w, y).Cslib.Kolmogorov.exists_condTimeBoundedAt_le_of_computableInPolyTime: for any polynomial-timeF : List Bool × List Bool → List Bool, $K^t(F(w, y) \mid y) \le |w| + O(1)$ at polynomial time.Cslib.Kolmogorov.exists_condTimeBoundedAt_apply_le,Cslib.Kolmogorov.exists_condTimeBoundedAt_self_le: $K^t(f(y) \mid y) \le O(1)$ and $K^t(y \mid y) \le O(1)$ for polynomial-time $f$.Cslib.Kolmogorov.exists_condTimeBoundedAt_le_length_add,Cslib.Kolmogorov.condPlain_ne_top,Cslib.Kolmogorov.condLevinKt_ne_top: $K^t(x \mid y) \le |x| + O(1)$ and finiteness ofcondPlainandcondLevinKt.Cslib.Kolmogorov.encard_setOf_condTimeBoundedAt_lt,Cslib.Kolmogorov.exists_length_eq_forall_le_condTimeBoundedAt,Cslib.Kolmogorov.two_pow_lt_ncard_setOf_length_eq_le_condTimeBounded_add: counting and incompressibility for $K^t(\cdot \mid y)$ at any fixed condition $y$.
References #
The conditional universal multi-tape description method (condUniversalTM) #
Re-frames a conditional program p with the auxiliary condition string y into a program for
universalTM whose machine description is unframe p and whose input is
encPair encBits encBits (dropFrame p, y).
Instances For
The conditional universal multi-tape Turing machine description method for binary strings,
conditioned on y : List Bool (a conditional description method in the sense of
Complexity.Computability.Kolmogorov.ChainRule, and the conditional analogue of universalTM in
Complexity.Computability.Kolmogorov.TimeBounded / Hirahara, Definition 7).
Instances For
((condUniversalTM y).run p).runFor t is condUniversalTMRunFor p y t.
Running condUniversalTMRunFor for 0 steps always returns none.
Step monotonicity of condUniversalTMRunFor.
At 0 steps, (condUniversalTM y).etimeBoundedComplexity 0 x = ⊤.
condUniversalTMProgram is computable in polynomial time.
Evaluating condUniversalTMRunFor on (p, (y, t)) is computable in polynomial time when t is
given in unary.
Clock-preserving conditional simulation of every binary MultiTapeTM #
Clock-preserving conditional simulation of MultiTapeTM: for every finite-state binary
MultiTapeTM, there is a constant c such that whenever tm on input
encPair encBits encBits (w, y) halts within t steps and outputs x, condUniversalTM y
outputs x within t steps from a program of length at most w.length + c.
Conditional Kolmogorov complexity measures (condPlain, condTimeBoundedAt, #
Conditional plain Kolmogorov complexity $K(x \mid y)$ under condUniversalTM y, in ℕ∞
Li and Vitányi, Chapter 2.
Instances For
Conditional plain Kolmogorov complexity $K(x \mid y)$ as a natural number.
Instances For
Step-indexed conditional time-bounded Kolmogorov complexity $K^t(x \mid y)$ at step budget
t : ℕ (the conditional analogue of Hirahara, Definition 7), in ℕ∞.
Instances For
condTimeBounded t x y is condTimeBoundedAt (t x.length) x y.
Conditional Levin time-bounded Kolmogorov complexity
$\mathrm{Kt}(x \mid y) = \inf_{s \in \mathbb{N}} \bigl(K^s(x \mid y) + \lceil \log_2 s \rceil\bigr)$
(the conditional analogue of levinKt in
Allender et al., Definition 1), in ℕ∞.
Instances For
Conditional Levin complexity $\mathrm{Kt}(x \mid y)$ as a natural number.
Instances For
Basic properties and equivalence bridges #
At 0 steps, condTimeBoundedAt 0 x y = ⊤.
condTimeBoundedAt t x y ≤ k iff some program of length at most k outputs x given y
within t steps.
condTimeBoundedAt t x y < k iff some program of length strictly less than k outputs x
given y within t steps.
condTimeBounded t x y ≤ k iff some program of length at most k outputs x given y
within t |x| steps.
Whenever condTimeBounded t x y ≠ ⊤, condTimeBoundedNat t x y casts back to
condTimeBounded t x y.
Antitonicity of condTimeBoundedAt in the step bound t.
If t₁ ≤ t₂, then condTimeBoundedAt t₂ x y ≤ condTimeBoundedAt t₁ x y.
Antitonicity of condTimeBounded in the time function t.
Dropping the step bound cannot increase conditional complexity (K(x | y) ≤ K^t(x | y)).
Dropping the time function cannot increase conditional complexity (K(x | y) ≤ K^t(x | y)).
condPlain x y is the infimum of condTimeBoundedAt t x y over t : ℕ.
For every step count s, condLevinKt x y ≤ condTimeBoundedAt s x y + Nat.clog 2 s.
Conditional plain complexity bounds conditional Levin complexity from below
(K(x | y) ≤ Kt(x | y)).
Threshold characterization of condLevinKt: $\mathrm{Kt}(x \mid y) \le k$ iff some program $p$
outputs $x$ given $y$ within $s$ steps with $|p| + \lceil \log_2 s \rceil \le k$.
Exponential-step characterization of condLevinKt: $\mathrm{Kt}(x \mid y) \le k$ iff some
program $p$ of length at most $k$ outputs $x$ given $y$ within $2^{k - |p|}$ steps.
Polynomial-time conditional upper bounds ($K^t(F(w, y) \mid y) \le |w| + O(1)$) #
Polynomial-time conditional evaluation bound: for any polynomial-time function
F : List Bool × List Bool → List Bool, there exist a monotone polynomial pF (with
n + 1 ≤ pF.eval n) and a constant c such that for all w y : List Bool and step budgets
t ≥ pF.eval (encPair encBits encBits (w, y)).length,
$$K^t(F(w, y) \mid y) \le |w| + c.$$
Conditional complexity of a polynomial-time function of the condition ($K^t(f(y) \mid y) \le O(1)$): for any f : List Bool → List Bool computable in polynomial time, there exist a monotone
polynomial q (with n + 1 ≤ q.eval n) and a constant c such that for all y : List Bool and
t ≥ q.eval (y.length + 1), condTimeBoundedAt t (f y) y ≤ c and condPlain (f y) y ≤ c.
Self-conditioning ($K^t(y \mid y) \le O(1)$): there exist a monotone polynomial q and a
constant c such that condTimeBoundedAt t y y ≤ c whenever q.eval (y.length + 1) ≤ t, and
condPlain y y ≤ c for all y.
Trivial conditional upper bound ($K^t(x \mid y) \le |x| + O(1)$): there exist a monotone
polynomial q (with n + 1 ≤ q.eval n) and a constant c such that for all x y : List Bool and
t ≥ q.eval (2 * x.length + 1 + y.length), condTimeBoundedAt t x y ≤ (x.length + c : ℕ) and
condPlain x y ≤ (x.length + c : ℕ).
Casting condPlainNat x y to ℕ∞ yields condPlain x y.
Conditional Levin complexity condLevinKt x y is always finite.
Casting condLevinKtNat x y to ℕ∞ yields condLevinKt x y.
ℕ-valued threshold characterization of condLevinKtNat.
Counting and incompressibility for conditional complexity #
For every condition string y, step bound t, length n, and threshold r, fewer than
2 ^ r strings x of length n have condTimeBoundedAt t x y < r.
Existence of conditionally incompressible strings: for every condition string y and length
n, some string x of length n satisfies n ≤ condPlain x y (and hence
n ≤ condTimeBoundedAt t x y for all t).
For every condition string y, time function t, and n c : ℕ, all but fewer than
2 ^ (n - c) of the 2 ^ n strings x of length n satisfy
(n - c : ℕ) ≤ condTimeBounded t x y.