(* démo si mapget power predta_coacc = true alors l'état est coaccessible *)

(* Specifications: *)
Lemma pl_coacc_rev :
forall (d : preDTA) (pl : prec_list) (a : ad),
MapGet bool (pl_coacc d pl) a = Some true -> prec_occur pl a.
Lemma st_coacc_rev :
forall (d : preDTA) (s : state) (a : ad),
MapGet bool (st_coacc d s) a = Some true ->
exists c : ad,
(exists p : prec_list,
MapGet prec_list s c = Some p /\ prec_occur p a).
Lemma predta_coacc_0_rev :
forall (d d' : preDTA) (b : ad) (m : Map bool),
MapGet bool (predta_coacc_0 d d' m) b = Some true ->
ensemble_base state d' m ->
exists a : ad,
(exists s : state,
(exists c : ad,
(exists p : prec_list,
MapGet state d' a = Some s /\
MapGet prec_list s c = Some p /\
prec_occur p b /\ MapGet bool m a = Some true))).
Lemma predta_coacc_rev :
forall (d : preDTA) (a : ad) (m : Map bool) (b : ad),
MapGet bool (predta_coacc d a m) b = Some true ->
ensemble_base state d m ->
(exists a0 : ad,
(exists s : state,
(exists c : ad,
(exists p : prec_list,
MapGet state d a0 = Some s /\
MapGet prec_list s c = Some p /\
prec_occur p b /\ MapGet bool m a0 = Some true)))) \/
a = b.
Lemma predta_coacc_reverse :
forall (n : nat) (d : preDTA) (a b : ad),
MapGet bool (power (Map bool) (predta_coacc d a) (map_mini state d) n) b =
Some true -> coacc d a b.
Lemma predta_coacc_fix_0 :
forall (d : preDTA) (a : ad),
lower_fix_point bool (ensemble_base state d) (lemd d)
(predta_coacc d a) (predta_coacc_states d a).
Lemma predta_coacc_fix_1 :
forall (d : preDTA) (a a0 : ad) (n : nat),
MapGet bool (power (Map bool) (predta_coacc d a) (map_mini state d) n) a0 =
Some true -> MapGet bool (predta_coacc_states d a) a0 = Some true.
Lemma predta_coacc_fix_2 :
forall (d : preDTA) (a a0 : ad),
MapGet bool (predta_coacc_states d a) a0 = Some true ->
exists n : nat,
MapGet bool (power (Map bool) (predta_coacc d a) (map_mini state d) n) a0 =
Some true.
Lemma predta_coacc_fix :
forall (d : preDTA) (a a0 : ad),
preDTA_ref_ok d ->
(MapGet bool (predta_coacc_states d a) a0 = Some true <-> coacc d a a0).
Lemma predta_coacc_0_fix :
forall (d : preDTA) (a a0 : ad),
preDTA_ref_ok d ->
(MapGet bool (predta_coacc_states_0 d a) a0 = Some true <->
coacc d a a0).