Section LEGAL_NO_COPY.
(** this inductive definition defines legal_no_copy as a predicate over a configuration c, which is accessible with legal transitions from a legal config c0, without using any copy transition *)
Variable c0 : Config.
Inductive legal_no_copy : Config -> Prop :=
| no_copy_init : legal c0 -> legal_no_copy c0
| after_no_copy :
forall (c : Config) (t : class_trans c),
~ copy_p c t -> legal_no_copy c -> legal_no_copy (transition c t).
End LEGAL_NO_COPY.
Definition no_message (c : Config) :=
forall s1 s2 : Site, In s1 LS -> In s2 LS -> bm c s1 s2 = empty Message.

Lemma decide_no_message :
forall c : Config, {no_message c} + {~ no_message c}.