Documentation

Complexity.Computability.Circuit.Monotone.Basic

Monotone circuits #

The monotone basis has the Boolean constants, binary conjunction and binary disjunction: the De Morgan basis (Cslib.Circuits.Boolean.signature) without negation. Each of its operations is monotone (interpretation_mono), and so is every function computed by a monotone circuit. The depth of monotone formulas charges AND and OR gates and lets constants be free (binaryCost), as for De Morgan formulas, and the monotone basis maps into the De Morgan basis (toDeMorgan) keeping meanings and these costs (binaryCost_toDeMorgan).

Main definitions #

Main results #

References #

Operations of the monotone basis.

  • const (b : Bool) : Op

    A Boolean constant.

  • and : Op

    Binary conjunction.

  • or : Op

    Binary disjunction.

Instances For
    Instances For
      @[reducible, inline]

      The monotone signature: constants, binary conjunction and binary disjunction.

      Instances For

        The Boolean interpretation of the monotone basis.

        Instances For
          theorem Cslib.Circuits.Monotone.interpretation_mono (op : Op) {x y : Fin (signature.Arity op) → Bool} (h : ∀ (i : Fin (signature.Arity op)), x i ≤ y i) :

          The operations of the monotone basis are monotone.

          The cost function charging one for each AND and OR gate and nothing for constants, the monotone counterpart of Boolean.binaryCost (binaryCost_toDeMorgan).

          Instances For
            @[simp]

            An AND gate costs one level.

            @[simp]

            An OR gate costs one level.

            @[simp]

            Constants are free.

            Count AND gates, with constants and OR gates free.

            Instances For

              The monotone basis inside the De Morgan basis #

              The monotone basis is the De Morgan basis without negation.

              Instances For
                @[simp]

                The De Morgan image of an operation costs what it costs in the monotone basis.

                The monotone operations embed injectively into the De Morgan basis.