Parity constraints in conjunctive normal form #
The constraint that the parity of the variables in a finite set B is c has a formula in
conjunctive normal form with one clause for each assignment to B of the other parity, excluding
that assignment (CNF.parityOnEq); assignments to B are indexed by the subsets of B on which
they are true. Its clauses have #B literals each, and there are at most
2 ^ #B of them (CNF.length_parityOnEq_le).
Main definitions #
Cslib.Logic.PL.Clause.exclude: the clause excluding the values of an assignment on a set of variables.Cslib.Logic.PL.CNF.parityOnEq: the parity constraint on a finite set of variables.
Main results #
Cslib.Logic.PL.CNF.eval_parityOnEq_eq_true_iff:CNF.parityOnEq B cholds exactly when the parity of the variables inBisc.Cslib.Logic.PL.CNF.length_parityOnEq_le: it has at most2 ^ #Bclauses.
References #
- A. Urquhart, Hard examples for resolution, for parity constraints in conjunctive normal form as the clauses of Tseitin formulas
A formula in conjunctive normal form saying that the parity of the variables in B is c: for
each subset A of B such that the assignment true on A and false on the rest of B has the
other parity, a clause excludes that assignment.
Instances For
The semantics of parity constraints: CNF.parityOnEq B c holds exactly when the parity of
the variables in B is c.
A clause of CNF.parityOnEq B c excludes an assignment to B.
The clauses of CNF.parityOnEq B c have #B literals.
CNF.parityOnEq B c has at most 2 ^ #B clauses: one per subset of B.