Imports
Computable serialized SUBSET-SUM construction from 3-CNF
namespace CLRS.Chapter34.SubsetSumReductionlocal instance (formula : CNF) : Decidable (IsThreeCNF formula) := by
unfold IsThreeCNF
infer_instanceProof-free list data produced by the textbook numeric construction.
def cnfToSubsetSumData (formula : CNF) : SubsetSumData :=
(cnfToSubsetSum formula).toDataFromList (reductionItemList formula)Canonical serialized target for a decoded 3-CNF formula.
def encodeCnfToSubsetSum (formula : CNF) : List SubsetSumSym :=
encodeSubsetSumData (cnfToSubsetSumData formula)A fixed no-instance used for source strings that are not 3-CNF.
def subsetSumNoData : SubsetSumData where
target := 1
values := []Total raw reduction function from the project's 3-CNF alphabet.
def rawThreeCNFToSubsetSum (input : List CNFSym) : List SubsetSumSym :=
let formula := decodeCNF input
if IsThreeCNF formula then
encodeCnfToSubsetSum formula
else
encodeSubsetSumData subsetSumNoDataend CLRS.Chapter34.SubsetSumReduction