Documentation

Complexitylib.Metacomplexity.MCSP.Raw.Internal

Raw truth-table MCSP -- proof internals #

theorem Complexity.MCSP.rawArity_eq_of_length_eq_pow_internal (bits : List Bool) {arity : ℕ} (hlength : bits.length = 2 ^ arity) :
rawArity bits = arity
theorem Complexity.MCSP.rawDecode?_tableBits_internal (threshold : ℕ → ℕ) (inst : Instance) :
rawDecode? threshold inst.tableBits = some (inst.withThreshold (threshold inst.arity))
theorem Complexity.MCSP.rawDecode?_eq_some_iff_internal (threshold : ℕ → ℕ) (bits : List Bool) (inst : Instance) :
rawDecode? threshold bits = some inst ↔ bits = inst.tableBits ∧ inst.threshold = threshold inst.arity
theorem Complexity.MCSP.rawToCanonical_tableBits_internal (threshold : ℕ → ℕ) (inst : Instance) :
rawToCanonical threshold inst.tableBits = (inst.withThreshold (threshold inst.arity)).encode
theorem Complexity.MCSP.canonicalToRaw_rawToCanonical_internal (threshold : ℕ → ℕ) {bits : List Bool} (hraw : IsRawTruthTable bits) :
canonicalToRaw (rawToCanonical threshold bits) = bits
theorem Complexity.MCSP.mem_rawAtThreshold_iff_exists_internal (threshold : ℕ → ℕ) (bits : List Bool) :
bits ∈ rawAtThreshold threshold ↔ ∃ (inst : Instance), bits = inst.tableBits ∧ inst.minimumSize ≤ threshold inst.arity
theorem Complexity.GapMCSP.rawSliceProblem_mapReducesVia_rawToCanonical_internal (parameters : SliceParameters) (hgap : parameters.IsGap) :
{ yesInstances := rawSliceYesLanguage parameters, noInstances := rawSliceNoLanguage parameters, disjoint := ⋯ }.MapReducesVia { yesInstances := sliceYesLanguage parameters, noInstances := sliceNoLanguage parameters, disjoint := ⋯ } (MCSP.rawToCanonical parameters.yesThreshold)
theorem Complexity.GapMCSP.sliceProblem_mapReducesVia_canonicalToRaw_internal (parameters : SliceParameters) (hgap : parameters.IsGap) :
{ yesInstances := sliceYesLanguage parameters, noInstances := sliceNoLanguage parameters, disjoint := ⋯ }.MapReducesVia { yesInstances := rawSliceYesLanguage parameters, noInstances := rawSliceNoLanguage parameters, disjoint := ⋯ } MCSP.canonicalToRaw