Definition no_rt (c : Config) :=
  forall s1 : Site, In s1 LS -> s1 <> owner -> rt c s1 = false.

(* Specifications: *)
Lemma decide_no_rt : forall c : Config, {no_rt c} + {(exists s1 : Site, s1 <> owner /\ rt c s1 = true)}.
Lemma blocked_config : forall c : Config, legal c -> no_message c -> no_rt c -> ~ (exists t : class_trans c, ~ copy_p c t).
Lemma blocked_config2 : forall c : Config, legal c -> no_message c -> no_rt c -> forall t : class_trans c, copy_p c t.
Lemma ex_not_not_all : forall P : U -> Prop, (exists n : U, ~ P n) -> ~ (forall n : U, P n).
Lemma ex_not_not_all2 : forall P : U -> Prop, (exists n : U, P n) -> ~ (forall n : U, ~ P n).
Lemma PNNP : forall p : Prop, p -> ~ ~ p.
Lemma sigma_f_null : forall (E : Set) (f : E -> Z) (l : list E), (forall x_ : E, f x_ = 0%Z) -> sigma E l f = 0%Z.
Lemma null_st : forall (c0 : Config) (s0 : Site), legal c0 -> s0 <> owner -> no_message c0 -> st c0 s0 = 0%Z.
Lemma not_empty_implies_last : forall (E : Set) (q : queue E), q <> empty E -> exists x : E, first E q = value E x.
Lemma different_queue1 : forall (E : Set) (q : queue E) (m : E), input E m q <> first_out E q.
Lemma different_queue2 : forall (E : Set) (q : queue E) (m : E), first E q = value E m -> q <> first_out E q.
Lemma decide_no_copy_successor : forall c : Config, legal c -> (exists t : class_trans c, ~ copy_p c t /\ legal (transition c t)) \/ (forall t : class_trans c, copy_p c t).