Protocol

Difficulty: moderate — 2 definitions, 0 abbreviations, 0 lemmas, 1 theorems, 0 examples.

definition theorem
legend
def Sender.step (poly : List Bool) (n : ℕ) :
  InformationSystem Bool (Bool × Frame poly n poly.length) (Frame poly n poly.length)
Show details
| Sender.step poly n = { step := fun x ack_e => (!ack_e.1, ack_e.2), conserves := ⋯ }

Complexity: 177 (size of the value term)

Used by: (none)

def Receiver.step (poly : List Bool) (n : ℕ) :
  InformationSystem Unit (Frame poly n poly.length) (Frame poly n poly.length × Bool)
Show details
| Receiver.step poly n = { step := fun x e => ((), e, decide (Frame.valid poly e)), conserves := ⋯ }

Complexity: 391 (size of the value term)

theorem Receiver.step_correct {poly : List Bool} {n : ℕ} (e : Frame poly n poly.length) :
  ((Receiver.step poly n).step () e).2.2 = true ↔ Frame.valid poly e
Show details
fun {poly} {n} e => decide_eq_true_iff

Complexity: 249 (size of the value term)

Proof dependencies: Bit, Frame.crc

Used by: (none)

Dependency diagram

Drag to pan, Ctrl+scroll (or Cmd+scroll, or pinch on a touch screen) to zoom, click a node to jump to it.

definitiontheoremdeclared elsewheredependencyproof dependency
legend