Documentation

Complexitylib.Metacomplexity.MINKT.Gap.Logarithmic

Logarithmic-gap MINKT #

This module exposes the exact Gap_tau MINKT promise from Hirahara's 2022 Definition 3.3. For (x,1^t,1^s), it distinguishes C^t(x) <= s from C^tau(x) > s + log_2(tau). It also packages Fact 3.4's numerical estimator sandwich and proves that thresholding any such estimator solves the promise.

theorem Complexity.GapMINKT.Logarithmic.transformedTime_ge (parameters : Parameters) (hwidening : parameters.IsWidening) (inst : MINKT.Instance) :
inst.time parameters.transformedTime inst

Widening places the transformed clock after the source clock.

theorem Complexity.GapMINKT.Logarithmic.isNo_iff_no_relaxedWitness {tapes : } (inst : Instance) (machine : TM tapes) (parameters : Parameters) :
IsNo inst machine parameters ¬∃ (program : List Bool), IsRelaxedWitness inst machine parameters program

The logarithmic no condition excludes exactly the programs meeting its relaxed description budget and transformed clock.

theorem Complexity.GapMINKT.Logarithmic.not_isNo_of_isYes {tapes : } (inst : Instance) (machine : TM tapes) (parameters : Parameters) (hwidening : parameters.IsWidening) (hyes : inst.IsYes machine) :
¬IsNo inst machine parameters

A widening clock prevents a source yes-instance from also satisfying the exact logarithmic no condition.

@[simp]
theorem Complexity.GapMINKT.Logarithmic.mem_yesLanguage_encode_iff {tapes : } (machine : TM tapes) (inst : Instance) :
inst.encode yesLanguage machine inst.IsYes machine

Canonical yes membership is the source bounded-complexity inequality.

@[simp]
theorem Complexity.GapMINKT.Logarithmic.mem_noLanguage_encode_iff {tapes : } (machine : TM tapes) (parameters : Parameters) (inst : Instance) :
inst.encode noLanguage machine parameters IsNo inst machine parameters

Canonical no membership is the exact transformed-clock lower bound.

theorem Complexity.GapMINKT.Logarithmic.disjoint_yesLanguage_noLanguage {tapes : } (machine : TM tapes) (parameters : Parameters) (hwidening : parameters.IsWidening) :
Disjoint (yesLanguage machine) (noLanguage machine parameters)

Widening makes the exact logarithmic promise sides disjoint.

theorem Complexity.GapMINKT.Logarithmic.Estimator.SatisfiesBounds.le_threshold_of_isYes {tapes : } {machine : TM tapes} {parameters : Parameters} {estimate : Estimator} (hestimate : estimate.SatisfiesBounds machine parameters) (inst : Instance) (hyes : inst.IsYes machine) :
estimate inst.base inst.threshold

The estimator's upper bound places it below every yes threshold.

theorem Complexity.GapMINKT.Logarithmic.Estimator.SatisfiesBounds.threshold_lt_of_isNo {tapes : } {machine : TM tapes} {parameters : Parameters} {estimate : Estimator} (hestimate : estimate.SatisfiesBounds machine parameters) (inst : Instance) (hno : IsNo inst machine parameters) :
inst.threshold < estimate inst.base

The estimator's lower bound places it above every no threshold.

@[simp]

Canonical estimator-language membership is numerical thresholding.

Executable thresholding characterizes the estimator completion.

@[simp]

Adding a threshold and then forgetting it recovers the original MINKT instance.

theorem Complexity.GapMINKT.Logarithmic.firstAcceptedThreshold_spec_of_accepted (decide : List BoolBool) (inst : MINKT.Instance) {cap threshold : } (hthreshold : threshold cap) (haccept : decide (thresholdInstance inst threshold).encode = true) :
decide (thresholdInstance inst (firstAcceptedThreshold decide inst cap)).encode = true firstAcceptedThreshold decide inst cap threshold

If some threshold up to the cap is accepted, bounded search returns an accepted threshold no larger than that witness.

theorem Complexity.GapMINKT.Logarithmic.Estimator.SatisfiesBounds.yesLanguage_subset {tapes : } {machine : TM tapes} {parameters : Parameters} {estimate : Estimator} (hestimate : estimate.SatisfiesBounds machine parameters) :
yesLanguage machineestimatorLanguage estimate

A valid estimator completion contains the yes language.

theorem Complexity.GapMINKT.Logarithmic.Estimator.SatisfiesBounds.disjoint_noLanguage {tapes : } {machine : TM tapes} {parameters : Parameters} {estimate : Estimator} (hestimate : estimate.SatisfiesBounds machine parameters) :
Disjoint (estimatorLanguage estimate) (noLanguage machine parameters)

A valid estimator completion excludes the logarithmic no language.

theorem Complexity.GapMINKT.Logarithmic.Estimator.SatisfiesBounds.decision_eq_true_of_mem_yesLanguage {tapes : } {machine : TM tapes} {parameters : Parameters} {estimate : Estimator} (hestimate : estimate.SatisfiesBounds machine parameters) {bits : List Bool} (hyes : bits yesLanguage machine) :
decisionOfEstimator estimate bits = true

Thresholding a valid estimator accepts every promised yes-instance.

theorem Complexity.GapMINKT.Logarithmic.Estimator.SatisfiesBounds.decision_eq_false_of_mem_noLanguage {tapes : } {machine : TM tapes} {parameters : Parameters} {estimate : Estimator} (hestimate : estimate.SatisfiesBounds machine parameters) {bits : List Bool} (hno : bits noLanguage machine parameters) :

Thresholding a valid estimator rejects every promised no-instance.

def Complexity.GapMINKT.Logarithmic.problem {tapes : } (machine : TM tapes) (parameters : Parameters) (hwidening : parameters.IsWidening) :

The widening-certified exact logarithmic GapMINKT promise.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem Complexity.GapMINKT.Logarithmic.problem_yesInstances {tapes : } (machine : TM tapes) (parameters : Parameters) (hwidening : parameters.IsWidening) :
    (problem machine parameters hwidening).yesInstances = yesLanguage machine
    @[simp]
    theorem Complexity.GapMINKT.Logarithmic.problem_noInstances {tapes : } (machine : TM tapes) (parameters : Parameters) (hwidening : parameters.IsWidening) :
    (problem machine parameters hwidening).noInstances = noLanguage machine parameters
    theorem Complexity.GapMINKT.Logarithmic.timeSearchEstimator_satisfiesBoundsAt {tapes : } {machine : TM tapes} {parameters : Parameters} (hwidening : parameters.IsWidening) {decide : List BoolBool} (hsolve : (problem machine parameters hwidening).SolvedBy decide) (inst : MINKT.Instance) (hfinite : machine.timeBoundedKolmogorovComplexity inst.output inst.time ) :
    (timeSearchEstimator decide inst) machine.timeBoundedKolmogorovComplexity inst.output inst.time machine.timeBoundedKolmogorovComplexity inst.output (parameters.transformedTime inst) ↑(timeSearchEstimator decide inst + parameters.logarithmicSlack inst)

    The reverse numerical direction of Fact 3.4 at one finite source instance.

    Bounded threshold search against any solver for logarithmic GapMINKT returns a value between the later-clock complexity minus logarithmic slack and the exact source-clock complexity.

    theorem Complexity.GapMINKT.Logarithmic.timeSearchEstimator_satisfiesBoundsOn {tapes : } {machine : TM tapes} {parameters : Parameters} (hwidening : parameters.IsWidening) {decide : List BoolBool} {eligible : MINKT.InstanceProp} (hsolve : (problem machine parameters hwidening).SolvedBy decide) (hfinite : ∀ (inst : MINKT.Instance), eligible instmachine.timeBoundedKolmogorovComplexity inst.output inst.time ) :
    (timeSearchEstimator decide).SatisfiesBoundsOn machine parameters eligible

    A gap solver yields the Fact 3.4 estimator sandwich on every explicitly eligible input whose source-clock complexity is finite.

    theorem Complexity.GapMINKT.Logarithmic.timeSearchEstimator_satisfiesBoundsOn_lengthWithinTime {tapes : } {machine : TM tapes} {parameters : Parameters} (hwidening : parameters.IsWidening) {decide : List BoolBool} (hsolve : (problem machine parameters hwidening).SolvedBy decide) (hfinite : ∀ (inst : MINKT.Instance), IsLengthWithinTime instmachine.timeBoundedKolmogorovComplexity inst.output inst.time ) :

    Exact domain-restricted reverse Fact 3.4: on inputs with |x| <= t, it is enough that the source complexity be finite on that same domain.

    theorem Complexity.GapMINKT.Logarithmic.timeSearchEstimator_satisfiesBounds {tapes : } {machine : TM tapes} {parameters : Parameters} (hwidening : parameters.IsWidening) {decide : List BoolBool} (hsolve : (problem machine parameters hwidening).SolvedBy decide) (hfinite : ∀ (inst : MINKT.Instance), machine.timeBoundedKolmogorovComplexity inst.output inst.time ) :
    (timeSearchEstimator decide).SatisfiesBounds machine parameters

    If source-clock complexity is finite on every input, bounded threshold search converts a logarithmic-gap solver into a global Fact 3.4 estimator.

    theorem Complexity.GapMINKT.Logarithmic.problem_solvedBy_decisionOfEstimator {tapes : } {machine : TM tapes} {parameters : Parameters} (hwidening : parameters.IsWidening) {estimate : Estimator} (hestimate : estimate.SatisfiesBounds machine parameters) :
    (problem machine parameters hwidening).SolvedBy (decisionOfEstimator estimate)

    Thresholding a valid estimator solves the exact logarithmic promise.

    theorem Complexity.GapMINKT.Logarithmic.problem_mem_PromiseP_of_estimatorLanguage_mem_P {tapes : } {machine : TM tapes} {parameters : Parameters} (hwidening : parameters.IsWidening) {estimate : Estimator} (hestimate : estimate.SatisfiesBounds machine parameters) (hpolynomial : estimatorLanguage estimate P) :
    problem machine parameters hwidening PromiseP

    If a valid estimator's threshold language is in P, it completes the exact logarithmic promise in deterministic polynomial time.