Section DelegatingCalculator.
Variables (l1 l2 : Label).
Hypothesis (lab_disj : l2 != l1).
Variable f : input -> option nat.
Variable prec : input -> bool.
Variables (cs1 cls1 : seq nid).
Variables (cs2 cls2 : seq nid).
Notation nodes1 := (cs1 ++ cls1).
Notation nodes2 := (cs2 ++ cls2).
Hypothesis Huniq1 : uniq nodes1.
Hypothesis Huniq2 : uniq nodes2.
(* Protocol I'm a server in *)
Notation cal1 := (cal_with_inv l1 f prec cs1 cls1).
Notation cal2 := (cal_with_inv l2 f prec cs2 cls2).
Notation W1 := (mkWorld cal1).
Notation W2 := (mkWorld cal2).
(* Composite world *)
Definition V := W1 \+ W2.

Lemma validV : valid V.