A reader acknowledges only what it has read #
A History is a ghost record of every box a reader passed, read or not. Inv ties the reader's
state to it; every operation keeps Inv, and under it run names a box read along with every box
before it (run_safe). See "Opportunistic acknowledgements and backfill" in the group chat spec.
Every box a reader has passed, in order, and whether it has read it.
Equations
Instances For
Every box up to and including the one named has been read.
Equations
- One or more equations did not get rendered due to their size.
- Cryptlib.Protocols.GroupComm.GroupChatKatzenqt1.Member.Safe h none = True
Instances For
What the reader keeps is true of its history.
- covered (p : ℕ) (c : Index) : h[p]? = some (c, false) → (∃ e ∈ r.kept, e.2.1 = p) ∨ ∃ (l : ℕ) (b : Option Index), r.lost = some (l, b) ∧ l ≤ p
Every box passed unread is kept, or at or after the first one given up on.
Instances For
Histories only grow and only gain reads #
h' extends h, with boxes possibly turned from unread to read.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The acknowledgement is safe #
Giving up on boxes dropped: each is then at or after the first one given up on.
What reading a box adds to the history.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reading a box keeps Inv.
What a walk adds to the history: every box it stepped past, unread.
Equations
Instances For
A jump keeps Inv. all is every box the walk stepped past, of which the driver handed back
the last skipped.
A walk keeps Inv.