(* démo : un état apparait dans non_coacc_kill ssi il est coacc *)

(* Specifications: *)
Lemma non_coacc_kill_0 :
forall (d : preDTA) (a : ad) (s : state) (m : Map bool),
ensemble_base state d m ->
MapGet state d a = Some s ->
MapGet bool m a = Some true ->
MapGet state (non_coacc_kill d m) a = Some s.
Lemma non_coacc_kill_1 :
forall (d : preDTA) (a : ad) (s : state) (m : Map bool),
ensemble_base state d m ->
MapGet state (non_coacc_kill d m) a = Some s ->
MapGet state d a = Some s /\ MapGet bool m a = Some true.
Lemma predta_kill_non_coacc_0 :
forall (d : preDTA) (a a0 : ad) (s : state),
preDTA_ref_ok d ->
(MapGet state d a0 = Some s /\ coacc d a a0 <->
MapGet state (predta_kill_non_coacc d a) a0 = Some s).