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