(** h is an analysis of g if h could be an analysis of g and 
   if for all other candidates h' which could be an analysis of g, 
   h is included in h' *)
Definition is_analysis (g h : hedge) :=
  analysis_cond g h /\
  (forall h' : hedge, analysis_cond g h' -> inclusion h h').

(* Specifications: *)
Lemma analysis_seq_incl_analysis : forall g h : hedge, is_analysis g h -> forall n : nat, inclusion (analysis_seq g n) h.
Lemma analysis_unique : forall g h h' : hedge, is_analysis g h -> is_analysis g h' -> equal h h'.
Lemma analysis_trans : forall g h h' : hedge, is_analysis g h -> is_analysis h h' -> is_analysis g h'.
Lemma analysis_analysed : forall g h h' : hedge, is_analysis g h -> is_analysis h h' -> equal h h'.
Lemma analysis_seq_approx_analysis : forall (h : hedge) (n : nat), stable_analysis (analysis_seq h n) -> is_analysis h (analysis_seq h n).