Positive-arity Boolean clones #
A clone contains every coordinate projection and is closed under superposition. Nullary operations are excluded; constant functions of positive arity are allowed. This is the common algebraic interface for the Boolean Schaefer classification and Post's completeness criterion.
Main definitions #
Cslib.Logic.BooleanClone: positive-arity Boolean clones.
Main results #
Cslib.Logic.BooleanClone.minor: variable identification, permutation and dummy variables.Cslib.Logic.BooleanClone.diagonal: identifying every argument gives a unary operation.
A clone of positive-arity Boolean operations. Nullary operations are excluded.
Operations of each arity.
There are no nullary operations.
Every coordinate projection belongs to the clone.
- comp {m n : ℕ} (hm : 0 < m) (hn : 0 < n) {f : (Fin m → Bool) → Bool} {g : Fin m → (Fin n → Bool) → Bool} (hf : f ∈ self.operations m) (hg : ∀ (i : Fin m), g i ∈ self.operations n) : (fun (a : Fin n → Bool) => f fun (i : Fin m) => g i a) ∈ self.operations n
Superposition of positive-arity operations belongs to the clone.
Instances For
AND as a binary operation.
Instances For
OR as a binary operation.
Instances For
Identifying, permuting or adding dummy variables preserves clone membership.
Applying an operation to a constant tuple gives a unary operation in the clone.
Every operation in a positive-arity clone has positive arity.