Documentation

Complexitylib.Circuits.Encoding.Formula.Batch.Defs

Batch compilation of Boolean formulas #

This file defines small finite conjunction and disjunction constructors and a proof-free batch compiler for BoolFormula. Every formula in a batch is compiled against the same incoming wire prefix. The individual formula outputs are then copied into one contiguous block, in list order.

The contiguous block is the key interface for clients that represent a structured value by many Boolean formulas: later fragments can address the result by a base wire and an index without retaining the variable-sized offset of every formula tree.

A Boolean literal testing whether an existing wire has the requested value.

Equations
Instances For

    Conjoin a finite list of formulas. The empty conjunction is true.

    Equations
    Instances For

      Disjoin a finite list of formulas. The empty disjunction is false.

      Equations
      Instances For

        Raw formulas compiled in sequence, together with their absolute output wires.

        • The concatenated formula fragments, before output packing.

        • outputs : List

          One absolute output wire per source formula, in source order.

        Instances For

          Compile formulas successively, recording each variable-sized output wire.

          Every formula may refer only to wires in the prefix present at the start of the whole batch. The increasing available parameter is used solely to place the emitted fragments after one another.

          Equations
          Instances For

            First wire of the packed output block of a formula batch.

            Equations
            Instances For

              Compile formulas successively and copy their results into a contiguous block.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For