Documentation

CslibFrontier.Computability.Complexity.Problems.CSP.RotationSystem.Relabel

Literal certificate transport under injective variable renaming #

An injection on occurring variable names preserves the actual dense incidence graph, edge positions and argument-order check. The very same successor table therefore passes exactly the same ordered numerical checker. Repeated variables and constraints retain their positions; the map can behave arbitrarily on unused names. No geometric equivalence is asserted.

theorem Cslib.Logic.PL.CSP.varCNF_relabel {Rel V W : Type} (F : CSP Rel V) (f : V → W) :

The positive-CNF adapter commutes with variable renaming, preserving every scope position.

theorem Cslib.Logic.PL.CSP.distinctVars_relabel_of_injOn {Rel V W : Type} [DecidableEq V] [DecidableEq W] (F : CSP Rel V) (f : V → W) (hf : Set.InjOn f {v : V | v ∈ F.vars}) :

Injectivity only on occurring names preserves their first-occurrence order.

theorem Cslib.Logic.PL.CSP.numVars_relabel_of_injOn {Rel V W : Type} [DecidableEq V] [DecidableEq W] (F : CSP Rel V) (f : V → W) (hf : Set.InjOn f {v : V | v ∈ F.vars}) :

Renaming injectively on the occurring names preserves the distinct-variable count.

theorem Cslib.Logic.PL.CSP.occurrences_relabel {Rel V W : Type} (F : CSP Rel V) (f : V → W) :
(relabel f F).occurrences = List.map (fun (x : ℕ × ℕ × V) => match x with | (constraintIndex, argumentIndex, variableName) => (constraintIndex, argumentIndex, f variableName)) F.occurrences

Variable renaming preserves the complete positional occurrence table.

Injectivity on used names preserves the literal listed incidence multigraph.

Renaming variables does not alter positional constraint and argument indices.

theorem Cslib.Complexity.CSP.scopeLength_relabel {Rel V W : Type} (F : Logic.PL.CSP Rel V) (f : V → W) (i : ℕ) :

A variable renaming retains every original scope length, including nullary scopes.

Exact cyclic argument successors survive arbitrary variable renaming.

The argument-order checker retains its exact Boolean result on every supplied table.

The same raw certificate has the same acceptance result after an injection on used names. This preserves argument chirality as well as the componentwise numerical genus check.