Documentation

FMMidgard.ProofProtocol.Catalogue.Ledger.AtLeastOneInput

Rule : At Least One Input #

See Midgard Spec Section 5.1.3

Property

AtLeastOneInput
= ∀ t ∈ Ledger:
    0 < |spend_inputs(t)|

The spec claims that it is enough to check that:

ZeroInput
= ∃ t ∈ txs :
  |spend_inputs(t)| = 0

There is a technical detail missing stating that the transaction (or transactions) belong to block b.

Invalid-Range
= ∃ b ∈ ledger, t ∈ b.txs :
  |spend_inputs(t)| = 0

Logic Consistency #

Placeholder section.

TODO: Check rule consistency.