(* invariants sur les MapGet pour conv_0 *)

(* Specifications: *)
Lemma u_conv_0_invar_0 :
forall (d : preDTA) (a : ad) (ladj : state),
MapGet state d a = Some ladj ->
MapGet state (udta_conv_0 d) (uad_conv_0 a) = Some (umpl_conv_0 ladj).
Lemma u_conv_0_invar_1 :
forall (s : state) (c : ad) (p : prec_list),
MapGet prec_list s c = Some p ->
MapGet prec_list (umpl_conv_0 s) c = Some (upl_conv_0 p).
Lemma u_conv_0_invar_2 :
forall (d : preDTA) (a : ad) (ladj : state),
MapGet state (udta_conv_0 d) (uad_conv_0 a) = Some (umpl_conv_0 ladj) ->
MapGet state d a = Some ladj.
Lemma u_conv_0_invar_3 :
forall (s : state) (c : ad) (p : prec_list),
MapGet prec_list (umpl_conv_0 s) c = Some (upl_conv_0 p) ->
MapGet prec_list s c = Some p.
Lemma u_conv_0_invar_4 :
forall (d : preDTA) (a : ad) (ladj : state),
MapGet state (udta_conv_0 d) (uad_conv_0 a) = Some ladj ->
exists ladj0 : _, ladj = umpl_conv_0 ladj0.
Lemma u_conv_0_invar_5 :
forall (d : preDTA) (a : ad) (ladj : state),
MapGet state (udta_conv_0 d) (uad_conv_0 a) = Some ladj ->
exists ladj0 : _,
ladj = umpl_conv_0 ladj0 /\ MapGet state d a = Some ladj0.
Lemma u_conv_0_invar_6 :
forall (s : state) (c : ad) (p : prec_list),
MapGet prec_list (umpl_conv_0 s) c = Some p ->
exists p0 : prec_list, p = upl_conv_0 p0.
Lemma u_conv_0_invar_7 :
forall (s : state) (c : ad) (p : prec_list),
MapGet prec_list (umpl_conv_0 s) c = Some p ->
exists p0 : prec_list,
p = upl_conv_0 p0 /\ MapGet prec_list s c = Some p0.
Lemma u_conv_0_invar_8 :
forall (p0 : preDTA) (a0 : ad) (s0 : state),
MapGet state (udta_conv_0 p0) a0 = Some s0 ->
exists a1 : ad, a0 = uad_conv_0 a1.