Module B (H:Hedge).
Definition hedge := H.t.
Definition message_relation := relation MessageSpi.t.
Definition relation_of_hedge (h:hedge) (m n:MessageSpi.t) := H.In (m,n) h.
Inductive hedge_synthesis_relation (h:message_relation) : message_relation :=
| SynInc : forall (m n:MessageSpi.t),(h m n)->(hedge_synthesis_relation h m
n).
Fixpoint hedge_in_synthesis (h:hedge) (m:MessageSpi.t) (n:MessageSpi.t)
{struct m} : bool :=
if H.mem (m,n) h
then true
else false.
Definition hedge_synthesis_spec (h:hedge) := hedge_synthesis_relation
(relation_of_hedge h).

Lemma hedge_in_synthesis_impl_hedge_synthesis_spec : forall (h:hedge),forall
(m n:MessageSpi.t),(hedge_in_synthesis h m n)=true->(hedge_synthesis_spec h m
n).