MachineEvents.lean
Cited in the paper
Concrete Byte Strings and CLI Trace Events
Concrete byte strings (HwBytes) and the event alphabet (CliEvent) for signal-session CLI execution traces.
@[expose] public sectionnamespace DY.Libsignalabbrev HwBytes
Concrete byte string, as opposed to symbolic DY. terms.
abbrev HwBytes := List (BitVec 8)end DY.Libsignalnamespace DY.Libsignal.HwEventsopen DY (Participant)open CryptoVerification.SignalSession (Cmd)structure RunEvent
One signal-session CLI invocation: caller party, command cmd, input bytes (bundle blob for init, stdin otherwise), coins file, and exit (some (code, stdout) or none on abort).
inductive EnvEvent
Environment events emitted between CLI runs: directory secret leaks, primitive breaks, public-key inversions, and corrupt identity registrations.
def EnvEvent.
Whether an environment event is a primitive break or key inversion.
def EnvEvent.IsBreakInvert : EnvEvent → Prop
| .breakDH | .breakKEM | .invertDH .. | .invertKEM .. => True
| .leak .. | .registerCorrupt .. => Falseend DY.Libsignal.HwEvents