Documentation

Complexitylib.Circuits.KeyedMinimumTournament.Defs

Keyed minimum tournaments -- definitions #

The tournament consumes count + 1 key-payload records. Its recursively appended input layout makes each construction step a literal prefix projection plus one final-record projection, avoiding arithmetic casts in the circuit DAG.

Width of count + 1 recursively appended fixed-width records.

Equations
Instances For
    instance Complexity.BitString.instNeZeroKeyedTournamentInputWidth (count keyWidth payloadWidth : ) [NeZero keyWidth] :
    NeZero (keyedTournamentInputWidth count (keyWidth + payloadWidth))
    def Complexity.BitString.packKeyedRecords {keyWidth payloadWidth : } (count : ) :
    (Fin (count + 1)BitString keyWidth)(Fin (count + 1)BitString payloadWidth)BitString (keyedTournamentInputWidth count (keyWidth + payloadWidth))

    Pack count + 1 key-payload records by recursively appending the last one.

    Equations
    Instances For
      def Complexity.BitString.unsignedMinimumKeyedRecord {keyWidth payloadWidth : } (count : ) :
      (Fin (count + 1)BitString keyWidth)(Fin (count + 1)BitString payloadWidth)BitString keyWidth × BitString payloadWidth

      Semantic winner of a left-associated keyed minimum tournament.

      Equations
      Instances For
        noncomputable def Complexity.Circuit.unsignedKeyedMinTournament (keyWidth payloadWidth : ) [NeZero keyWidth] (count : ) :
        (internalGates : ) × Circuit Basis.andOr2 (BitString.keyedTournamentInputWidth count (keyWidth + payloadWidth)) (keyWidth + payloadWidth) internalGates

        Sequential keyed-minimum tournament over count + 1 packed records.

        Equations
        Instances For