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))).