Preprocessors¶
These examples highlight how to use clingexplaid's native pre-processors.
AssumptionPreprocessor¶
Transforming facts to Assumptions¶
from clingexplaid.preprocessors import AssumptionPreprocessor
from clingexplaid.preprocessors import (
FilterSignature,
FilterPattern,
)
PROGRAM = """
a(book;magazine;video).
b(test).
c(1..10).
d(1..3).
"""
ap = AssumptionPreprocessor(filters=[FilterSignature("a", 1), FilterPattern("d(2)")])
result = ap.process(PROGRAM)
# You can either use the return value of `ap.process`
print(result)
# Or use `ap.control` with your transformed program already added
print(ap.control)
Transforming facts to Assumptions with custom Control¶
import clingo
from clingexplaid.preprocessors import AssumptionPreprocessor, FilterSignature, FilterPattern
FILE = "local/encoding.lp"
ctl = clingo.Control("0")
ap = AssumptionPreprocessor(control=ctl, filters=[FilterSignature("a", 1), FilterPattern("d(2)")])
ap.process_files([FILE])
# The transformed files are added to ctl so it can be directly used
ctl.ground([("base", [])])
ctl.solve()