Global state of the entire system.

The global state consists of a local state for each individual node.
StateMap : Type
StateMap = HonestVec LocalState
Other than that, it recors in-flight messages, and the whole history of previous messages.
TPMessage  = Time × Pid × Message
TPMessages = List TPMessage

record GlobalState : Type where
  constructor mkGlobalState
  field
    currentTime   : Time
    stateMap      : StateMap  -- A map assigning each PID its local state.
    networkBuffer : TPMessages -- Messages in transit on the network.
    history       : Messages  -- All messages seen so far.
The initial global state starts at epoch 1 with no messages and initial local states.
initStateMap : StateMap
initStateMap = V.replicate _ initLocalState

initGlobalState : GlobalState
initGlobalState = mkGlobalState 0 initStateMap [] []
-- Retrieve a replica's local state.
_@ᵐ_ : StateMap   p  _ : Honest p   LocalState
sm @ᵐ p = pLookup sm p

_@ᵐᵖ_ : StateMap  HonestPid  LocalState
sm @ᵐᵖ hp = pLookup′ sm hp

_@_ : GlobalState   p  _ : Honest p   LocalState
s  p = s .stateMap @ᵐ p

_@ʰ_ : GlobalState   {p}  Honest p  LocalState
s @ʰ hp = pLookup′ (s .stateMap) (_  hp)

_@ʰᵖ_ : GlobalState  HonestPid  LocalState
s @ʰᵖ hp = pLookup′ (s .stateMap) hp

-- Update a replica's local state.
_@_%=_ : GlobalState   p  _ : Honest p   Op₁ LocalState  GlobalState
s  p %= f = record s
  { stateMap = s .stateMap [ p ]%= f }

-- Set a replica's local state.
_@_≔_ : GlobalState   p  _ : Honest p   LocalState  GlobalState
s  p  ls = record s
  { stateMap = s .stateMap [ p ]≔ ls }

–>