Definition predta_produit_3_def (d0 : preDTA) : Prop :=
forall (a a0 : ad) (s s0 : state),
MapGet state (preDTA_produit_l a0 s0 d0) a = Some s ->
exists a1 : ad,
(exists a2 : ad,
(exists s1 : state,
(exists s2 : state,
a = iad_conv a1 a2 /\
MapGet state (M1 state a0 s0) a1 = Some s1 /\
MapGet state d0 a2 = Some s2))).

(* Specifications: *)
Lemma predta_produit_3_0 : predta_produit_3_def (M0 state).
Lemma predta_produit_3_1 :
forall (a : ad) (a0 : state), predta_produit_3_def (M1 state a a0).
Lemma predta_produit_3_2 :
forall m : preDTA,
predta_produit_3_def m ->
forall m0 : preDTA,
predta_produit_3_def m0 -> predta_produit_3_def (M2 state m m0).
Lemma predta_produit_3_3 : forall m : preDTA, predta_produit_3_def m.
Lemma predta_produit_3 :
forall (d0 : preDTA) (a a0 : ad) (s s0 : state),
MapGet state (preDTA_produit_l a0 s0 d0) a = Some s ->
exists a1 : ad,
(exists a2 : ad,
(exists s1 : state,
(exists s2 : state,
a = iad_conv a1 a2 /\
MapGet state (M1 state a0 s0) a1 = Some s1 /\
MapGet state d0 a2 = Some s2))).