Restricting parameters and deleting constraints #
The simplifications of a fair semi-circuit, each preserving well-formedness:
SemiCircuit.restrict: restricting a parameter to a constant or to a literal of another parameter, the restrictions (UF) and (PF) of Mishra and Santhanam;SemiCircuit.deleteGate: deleting a gate that computes a literal of one of its inputs, or a constant, or that is unused, rerouting its uses, the deletions (D1) and (D2);SemiCircuit.deleteEqn: deleting an equationv = ℓtogether with its auxiliary variablev, reroutingvtoℓ, the deletion (D3);SemiCircuit.dropEqn: deleting an equation together with an auxiliary variable occurring nowhere else, the second half of (D4), andSemiCircuit.dropTrivialEqn: deleting an equation without terms.
A consistent assignment of a restriction is consistent for the original semi-circuit once the
restricted parameter takes the value of its literal (SemiCircuit.consistent_restrict), and
consistent assignments of the deletions lift to the original semi-circuit
(SemiCircuit.DeleteGateOK.liftsTo, SemiCircuit.DeleteEqnOK.liftsTo,
SemiCircuit.DropEqnOK.liftsTo, SemiCircuit.liftsTo_dropTrivialEqn).
Main definitions #
Cslib.Circuits.Boolean.SemiCircuit.restrict,Cslib.Circuits.Boolean.SemiCircuit.deleteGate,Cslib.Circuits.Boolean.SemiCircuit.DeleteGateOK,Cslib.Circuits.Boolean.SemiCircuit.deleteEqn,Cslib.Circuits.Boolean.SemiCircuit.DeleteEqnOK,Cslib.Circuits.Boolean.SemiCircuit.dropEqn,Cslib.Circuits.Boolean.SemiCircuit.DropEqnOK,Cslib.Circuits.Boolean.SemiCircuit.dropTrivialEqn: the simplifications and their preconditions.
Main results #
Cslib.Circuits.Boolean.SemiCircuit.WellFormed.restrict,WellFormed.deleteGate,WellFormed.deleteEqn,WellFormed.dropEqn,WellFormed.dropTrivialEqn: the simplifications preserve well-formedness.
References #
Restricting a parameter #
Restrict the parameter x to the literal ℓ: reroute x to ℓ and remove it from the
parameters.
Instances For
Restricting a parameter to a literal reading at most another parameter preserves well-formedness.
A consistent assignment of a restriction, with the restricted parameter given the value of its literal, is consistent for the original semi-circuit.
Evaluating the output of C.restrict x ℓ under val equals evaluating the output of C
after updating x to ℓ.eval val.
Deleting a gate #
Delete the gate J, rerouting its uses to the literal ℓ.
Instances For
The hypotheses of a gate deletion: J is a gate, ℓ reads at most an input of J, and
either J computes ℓ on the solutions of the affine system or nothing reads J.
Instances For
Any live node of C distinct from J remains live in C.deleteGate J ℓ.
Deleting a gate preserves well-formedness.
A consistent assignment of a gate deletion lifts, by giving the deleted gate its value.
Deleting an equation #
Delete the equation e, which reads v = ℓ, and the auxiliary variable v, rerouting v
to ℓ.
Instances For
The hypotheses of deleting an equation: e is an equation stating v = ℓ for an auxiliary
variable v and a literal ℓ reading at most another term of e.
Instances For
Deleting an equation v = ℓ with its auxiliary variable preserves well-formedness.
A consistent assignment after deleting v = ℓ lifts, by giving v the value of ℓ.
Dropping an equation #
Delete the equation e together with an auxiliary variable v occurring nowhere else.
Instances For
The hypotheses of dropping an equation: the auxiliary variable v occurs in the equation
e and nowhere else.
Instances For
Dropping an equation with an auxiliary variable occurring only there preserves well-formedness.
A consistent assignment after dropping an equation lifts, by solving the equation for the dropped auxiliary variable.
Delete an equation without terms.
Instances For
Dropping an equation with no terms preserves well-formedness.
Every consistent assignment after dropping an equation with no terms is consistent for the original semi-circuit.