Documentation

Complexitylib.Metacomplexity.MCSP.Succinct.Internal

Succinct MCSP -- proof internals #

This module proves exactness of the nested sampled-instance codec and the basic semantic facts used by the public SuccinctMCSP interface.

theorem Complexity.SuccinctMCSP.Sample.decode?_encode_internal {arity : } (sample : Sample arity) :
decode? arity sample.encode = some sample
theorem Complexity.SuccinctMCSP.Sample.decode?_eq_some_iff_internal {arity : } (bits : List Bool) (sample : Sample arity) :
decode? arity bits = some sample bits = sample.encode
theorem Complexity.SuccinctMCSP.Sample.length_encode_internal {arity : } (sample : Sample arity) :
sample.encode.length = 2 * arity + 3
theorem Complexity.SuccinctMCSP.decodeSamples?_encodeSamples_internal {arity : } (samples : List (Sample arity)) :
decodeSamples? arity samples.length (encodeSamples samples) = some samples
theorem Complexity.SuccinctMCSP.decodeSamples?_eq_some_iff_internal {arity count : } (bits : List Bool) (samples : List (Sample arity)) :
decodeSamples? arity count bits = some samples samples.length = count bits = encodeSamples samples
theorem Complexity.SuccinctMCSP.length_encodeSamples_internal {arity : } (samples : List (Sample arity)) :
(encodeSamples samples).length = samples.length * (4 * arity + 8)
theorem Complexity.SuccinctMCSP.Instance.samplesFunction_ofInputs_internal {arity threshold : } (f : BitString arityBool) (inputs : List (BitString arity)) :
(ofInputs threshold f inputs).SamplesFunction f
theorem Complexity.SuccinctMCSP.Instance.hasCircuitAtMost_iff_exists_circuit_internal (inst : Instance) [NeZero inst.arity] :
inst.HasCircuitAtMost ∃ (internalGates : ) (circuit : Circuit Basis.andOr2 inst.arity 1 internalGates), circuit.size inst.threshold inst.SamplesFunction fun (input : BitString inst.arity) => circuit.eval input 0
theorem Complexity.SuccinctMCSP.Instance.hasCircuitAtMost_threshold_mono_internal (inst : Instance) {first second : } (hthreshold : first second) (hsmall : { arity := inst.arity, samples := inst.samples, threshold := first }.HasCircuitAtMost) :
{ arity := inst.arity, samples := inst.samples, threshold := second }.HasCircuitAtMost