(* démo : si un état est coaccessible alors il existe n tel que ... *)

(* Specifications: *)
Lemma pl_coacc_contain_coacc_ads :
forall (d : preDTA) (p : prec_list) (a : ad),
prec_occur p a ->
prec_list_ref_ok p d -> MapGet bool (pl_coacc d p) a = Some true.
Lemma st_coacc_contain_coacc_ads :
forall (d : preDTA) (s : state) (c : ad) (p : prec_list) (a : ad),
state_ref_ok s d ->
MapGet prec_list s c = Some p ->
prec_occur p a -> MapGet bool (st_coacc d s) a = Some true.
Lemma predta_coacc_0_contain_coacc_ads :
forall (d d' : preDTA) (a : ad) (s : state) (c : ad)
(p : prec_list) (b : ad) (m : Map bool),
preDTA_ref_ok_distinct d' d ->
MapGet state d' a = Some s ->
MapGet prec_list s c = Some p ->
prec_occur p b ->
ensemble_base state d' m ->
MapGet bool m a = Some true ->
MapGet bool (predta_coacc_0 d d' m) b = Some true.
Lemma predta_coacc_contain_coacc_ads_0 :
forall (d : preDTA) (a0 a : ad) (s : state) (c : ad)
(p : prec_list) (b : ad) (m : Map bool),
preDTA_ref_ok d ->
MapGet state d a = Some s ->
MapGet prec_list s c = Some p ->
prec_occur p b ->
ensemble_base state d m ->
MapGet bool m a = Some true ->
MapGet bool (predta_coacc d a0 m) b = Some true.