Skip to content

public_reduct

Module to transform a program into its public reduct.

ReplacePositiveOutputPredicates

Bases: Transformer

Replace all positive output predicates by their auxiliary version.

__init__(outputs: set[Predicate], auxiliaries: Auxiliaries) -> None

Store the output predicates and auxiliary suffix.

visit_Literal(node: AST) -> AST

Transform positive output literals.

TransformRuleHeads

Bases: Transformer

Transform rule heads.

  1. empty heads: :- body. is turned into unsat :- body.

  2. literal heads: unchanged

  3. choice heads: { l' } :- body. with l output, is changed to l' :- body, l.

__init__(outputs: set[Predicate], auxiliaries: Auxiliaries) -> None

Store the output predicates and auxiliary names.

visit_Rule(node: AST) -> AST

Transform choices and constraints into basic rules.