Definition rec_nonco_kill_def_0 (d : preDTA) (a a0 : ad) 
  (t : term) (pr : reconnaissance_co d a a0 t) :=
  preDTA_ref_ok d -> reconnaissance_co (predta_kill_non_coacc d a0) a a0 t.Definition rec_nonco_kill_def_1 (d : preDTA) (s : state) 
  (a0 : ad) (t : term) (pr : state_reconnait_co d s a0 t) :=
  preDTA_ref_ok d -> state_reconnait_co (predta_kill_non_coacc d a0) s a0 t.Definition rec_nonco_kill_def_2 (d : preDTA) (p : prec_list) 
  (a0 : ad) (tl : term_list) (pr : liste_reconnait_co d p a0 tl) :=
  preDTA_ref_ok d -> liste_reconnait_co (predta_kill_non_coacc d a0) p a0 tl.

(* Specifications: *)
Lemma rec_nonco_kill_0 : forall (d : preDTA) (a b : ad) (t : term) (ladj : state) (e : MapGet state d a = Some ladj) (s : state_reconnait_co d ladj b t), rec_nonco_kill_def_1 d ladj b t s -> forall c : coacc d b a, rec_nonco_kill_def_0 d a b t (rec_co_dta d a b t ladj e s c).
Lemma rec_nonco_kill_1 : forall (d : preDTA) (s : state) (c b : ad) (tl : term_list) (l : prec_list) (e : MapGet prec_list s c = Some l) (l0 : liste_reconnait_co d l b tl), rec_nonco_kill_def_2 d l b tl l0 -> rec_nonco_kill_def_1 d s b (app c tl) (rec_co_st d s c b tl l e l0).
Lemma rec_nonco_kill_2 : forall (d : preDTA) (b : ad), rec_nonco_kill_def_2 d prec_empty b tnil (rec_co_empty d b).
Lemma rec_nonco_kill_3 : forall (d : preDTA) (a : ad) (la ls : prec_list) (hd : term) (b : ad) (tl : term_list) (r : reconnaissance_co d a b hd), rec_nonco_kill_def_0 d a b hd r -> forall l : liste_reconnait_co d la b tl, rec_nonco_kill_def_2 d la b tl l -> rec_nonco_kill_def_2 d (prec_cons a la ls) b (tcons hd tl) (rec_co_consi d a la ls hd b tl r l).
Lemma rec_nonco_kill_4 : forall (d : preDTA) (a : ad) (la ls : prec_list) (hd : term) (b : ad) (tl : term_list) (l : liste_reconnait_co d ls b (tcons hd tl)), rec_nonco_kill_def_2 d ls b (tcons hd tl) l -> rec_nonco_kill_def_2 d (prec_cons a la ls) b (tcons hd tl) (rec_co_consn d a la ls hd b tl l).
Lemma rec_nonco_kill : forall (d : preDTA) (a a0 : ad) (t : term), reconnaissance_co d a a0 t -> preDTA_ref_ok d -> reconnaissance_co (predta_kill_non_coacc d a0) a a0 t.
Lemma predta_kill_non_coacc_dir : forall (d : preDTA) (a : ad) (t : term), preDTA_ref_ok d -> reconnaissance d a t -> reconnaissance (non_coacc_kill d (predta_coacc_states d a)) a t.
Lemma predta_kill_non_coacc_semantics : forall (d : DTA) (t : term), DTA_ref_ok d -> (reconnait d t <-> reconnait (dta_kill_non_coacc d) t).
Lemma predta_kill_non_coacc_lazy_semantics : forall (d : DTA) (t : term), DTA_ref_ok d -> (reconnait d t <-> reconnait (dta_kill_non_coacc_lazy d) t).