(** we define the analysis A(h) of h as being 
    the infinite union of the sequence (analysis_seq h) *)
Definition analysis_def (h : hedge) (M N : Msg) :=
  exists n : nat, analysis_seq h n M N.

(* Specifications: *)
Lemma synthesis_analysis_seq : forall (h : hedge) (M N : Msg), synthesis (analysis_def h) M N -> exists n : nat, synthesis (analysis_seq h n) M N.
Lemma analysis_is_analysis : forall h : hedge, is_analysis h (analysis_def h).