Section ResourceProtocol.
Variable server : nid.
Variable clients : seq nid.
Hypothesis Hnin : server \notin clients.
Hypothesis Huniq : uniq clients.
Definition nodes := [:: server] ++ clients.
Notation epoch := nat (only parsing).
Notation client := nid (only parsing).
Definition value := nat.
Inductive request :=
| Update of client * epoch * value
| Read of client * epoch.
Definition request_eq (r1 r2 : request) : bool :=
match r1, r2 with
| Update x1, Update x2 => x1 == x2
| Read x1, Read x2 => x1 == x2
| _, _ => false
end.

Lemma request_eqP : Equality.axiom request_eq.