First-occurrence order under injective CNF relabeling #
Compaction assigns the position of a variable's first literal occurrence. The list of distinct variables keeps its order under this renaming, even though compact names may have gaps.
Main results #
Cslib.Logic.PL.CNF.distinctVars_relabel_of_injOn,Cslib.Logic.PL.CNF.numVars_relabel_of_injOn,Cslib.Logic.PL.CNF.numVars_relabel: injective variable relabelings preservedistinctVarsorder andnumVars.Cslib.Logic.PL.CNF.distinctVars_compact: exact ordered list of compact variable names.Cslib.Logic.PL.CNF.idxOf_distinctVars_compact: graph vertex indices are preserved.
References #
These are elementary list identities for the existing CNF compaction operation.
Relabeling injectively on the used variables preserves their first-occurrence order.
Relabeling along an injective map preserves numVars.
Compaction preserves the exact order of the distinct variables. Any lawful Boolean equality on the original variable type gives the same first-occurrence names.
The index of a used variable in the distinct-variable list is unchanged by compaction.
Drawing data indexed by the distinct-variable list retain the same lookup after compaction.
Compaction relabels the full variable-occurrence list in its original order.
Every used variable keeps its exact literal-occurrence count after compaction.
A bound on all original literal-occurrence counts also bounds every compact variable.
Relabeling preserves literal-occurrence order and both occurrence indices.