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_compact: compaction preserves satisfiability.
References #
Rename each variable by its first position among all literal occurrences.
Instances For
@[simp]
Compaction keeps all clauses, their order, and their lengths.
@[simp]
Compaction preserves the number of clauses.
Compaction preserves satisfiability, without requiring a finite variable type.