Raw truth-table MCSP -- proof internals #
theorem
Complexity.MCSP.canonicalToRaw_rawToCanonical_internal
(threshold : ℕ → ℕ)
{bits : List Bool}
(hraw : IsRawTruthTable bits)
:
theorem
Complexity.MCSP.rawToCanonical_canonicalToRaw_encode_internal
(threshold : ℕ → ℕ)
(inst : Instance)
:
rawToCanonical threshold (canonicalToRaw inst.encode) = (inst.withThreshold (threshold inst.arity)).encode
theorem
Complexity.MCSP.mem_rawAtThreshold_tableBits_iff_internal
(threshold : ℕ → ℕ)
(inst : Instance)
:
theorem
Complexity.GapMCSP.mem_rawSliceYesLanguage_tableBits_iff_internal
(parameters : SliceParameters)
(inst : MCSP.Instance)
:
inst.tableBits ∈ rawSliceYesLanguage parameters ↔ inst.minimumSize ≤ parameters.yesThreshold inst.arity
theorem
Complexity.GapMCSP.mem_rawSliceNoLanguage_tableBits_iff_internal
(parameters : SliceParameters)
(inst : MCSP.Instance)
:
inst.tableBits ∈ rawSliceNoLanguage parameters ↔ parameters.noThreshold inst.arity < inst.minimumSize
theorem
Complexity.GapMCSP.disjoint_rawSliceLanguages_internal
(parameters : SliceParameters)
(hgap : parameters.IsGap)
:
Disjoint (rawSliceYesLanguage parameters) (rawSliceNoLanguage parameters)
theorem
Complexity.GapMCSP.mem_rawSliceYesLanguage_imp_isRawTruthTable_internal
(parameters : SliceParameters)
{bits : List Bool}
(hmem : bits ∈ rawSliceYesLanguage parameters)
:
MCSP.IsRawTruthTable bits
theorem
Complexity.GapMCSP.mem_rawSliceNoLanguage_imp_isRawTruthTable_internal
(parameters : SliceParameters)
{bits : List Bool}
(hmem : bits ∈ rawSliceNoLanguage parameters)
:
MCSP.IsRawTruthTable bits
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