Documentation

CslibFrontier.Logics.BooleanClone.Basic

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 #

Main results #

A clone of positive-arity Boolean operations. Nullary operations are excluded.

Instances For

    AND as a binary operation.

    Instances For

      OR as a binary operation.

      Instances For
        theorem Cslib.Logic.BooleanClone.minor (C : BooleanClone) {m n : ℕ} (hm : 0 < m) (hn : 0 < n) {f : (Fin m → Bool) → Bool} (hf : f ∈ C.operations m) (p : Fin m → Fin n) :
        (fun (a : Fin n → Bool) => f (a ∘ p)) ∈ C.operations n

        Identifying, permuting or adding dummy variables preserves clone membership.

        theorem Cslib.Logic.BooleanClone.diagonal (C : BooleanClone) {n : ℕ} (hn : 0 < n) {f : (Fin n → Bool) → Bool} (hf : f ∈ C.operations n) :
        (fun (a : Fin 1 → Bool) => f fun (x : Fin n) => a 0) ∈ C.operations 1

        Applying an operation to a constant tuple gives a unary operation in the clone.

        theorem Cslib.Logic.BooleanClone.arity_pos (C : BooleanClone) {n : ℕ} {f : (Fin n → Bool) → Bool} (hf : f ∈ C.operations n) :
        0 < n

        Every operation in a positive-arity clone has positive arity.

        def Cslib.Logic.BooleanClone.binaryTable (b00 b01 b10 b11 : Bool) (a : Fin 2 → Bool) :

        A binary Boolean operation specified by its four truth-table entries.

        Instances For

          A binary operation is determined by its four truth-table entries.