Compact variable numbering for CNF formulas #
Variables are renamed by their first positions in the list of literal occurrences. The resulting indices are smaller than the number of occurrences, even when the original names have a succinct encoding. Repeated variables retain the same name. This prepares reductions whose output indices are unary without expanding binary input names into unary integers.
Main definitions #
Cslib.Logic.PL.CNF.compact: rename variables by their first occurrences.
Main results #
Cslib.Logic.PL.CNF.satisfiable_relabel_idxOf: renaming variables by their positions in a list containing them preserves satisfiability.Cslib.Logic.PL.CNF.satisfiable_compact: compaction preserves satisfiability.
References #
Rename each variable by its first position among all literal occurrences.
Instances For
Compaction keeps all clauses, their order, and their lengths.
Compaction preserves the number of clauses.
Renaming each variable by its position in a list l containing all variables of φ is undone
by reading the names back from l.
Renaming by positions in a list containing all variables preserves satisfiability.
Compaction preserves satisfiability, without requiring a finite variable type.