Keyed minimum tournaments -- proof internals #
theorem
Complexity.Circuit.eval_unsignedKeyedMinTournament_internal
(keyWidth payloadWidth : ℕ)
[NeZero keyWidth]
(count : ℕ)
(keys : Fin (count + 1) → BitString keyWidth)
(payloads : Fin (count + 1) → BitString payloadWidth)
:
(unsignedKeyedMinTournament keyWidth payloadWidth count).snd.eval (BitString.packKeyedRecords count keys payloads) = have winner := BitString.unsignedMinimumKeyedRecord count keys payloads;
Fin.append winner.1 winner.2