Documentation

Complexity.Logics.Propositional.CNF.ModelCount.Relabel

Model counts under CNF relabelling #

Relabelling preserves the count when it is injective on the occurring variables. Collisions outside that support are harmless, including when the source variable type is infinite or empty.

Main results #

References #

These are original elementary transport proofs for the existing occurring-variable model count.

theorem Cslib.Logic.PL.CNF.modelCount_relabel_of_injOn {V : Type u_1} {W : Type u_2} [DecidableEq V] [DecidableEq W] {f : V → W} (φ : CNF V) (hf : Set.InjOn f {v : V | v ∈ φ.vars}) :

Relabelling injectively on the occurring variables preserves the number of satisfying assignments. No injectivity is required outside those variables.

theorem Cslib.Logic.PL.CNF.modelCount_relabel {V : Type u_1} {W : Type u_2} [DecidableEq V] [DecidableEq W] {f : V → W} (hf : Function.Injective f) (φ : CNF V) :

Relabelling along an injective map preserves the number of satisfying assignments.