Definition predta_produit_1_def (d : preDTA) : Prop :=
forall (a : ad) (s : state) (a0 a1 : ad) (s0 s1 : state),
MapGet state (M1 state a s) a0 = Some s0 ->
MapGet state d a1 = Some s1 ->
MapGet state (preDTA_produit_r a s d) (iad_conv a1 a0) =
Some (s_produit s1 s0).

(* Specifications: *)
Lemma predta_produit_1_0 : predta_produit_1_def (M0 state).
Lemma predta_produit_1_1 :
forall (a : ad) (a0 : state), predta_produit_1_def (M1 state a a0).
Lemma predta_produit_1_2 :
forall m : preDTA,
predta_produit_1_def m ->
forall m0 : preDTA,
predta_produit_1_def m0 -> predta_produit_1_def (M2 state m m0).
Lemma predta_produit_1_3 : forall m : preDTA, predta_produit_1_def m.
Lemma predta_produit_1 :
forall (a : ad) (s : state) (d : preDTA) (a0 a1 : ad) (s0 s1 : state),
MapGet state (M1 state a s) a0 = Some s0 ->
MapGet state d a1 = Some s1 ->
MapGet state (preDTA_produit_r a s d) (iad_conv a1 a0) =
Some (s_produit s1 s0).
Lemma predta_produit_2 :
forall (d0 d1 : preDTA) (a0 a1 : ad) (s0 s1 : state),
MapGet state d0 a0 = Some s0 ->
MapGet state d1 a1 = Some s1 ->
MapGet state (preDTA_produit d0 d1) (iad_conv a0 a1) =
Some (s_produit s0 s1).