Ltac i2z_refl :=
    i2z_gen;
    match goal with |- ?t =>
      let e := p2ep t in
      change (ep2p e); apply norm_ep_correct2; simpl
    end.Definition t := Z.Definition _0 := 0.Definition _1 := 1.Definition _2 := 2.Definition _3 := 3.Definition add := Z.add.Definition opp := Z.opp.Definition sub := Z.sub.Definition mul := Z.mul.Definition max := Z.max.Definition eqb := Z.eqb.Definition ltb := Z.ltb.Definition leb := Z.leb.Definition eq_dec := Z.eq_dec.Definition gt_le_dec i j : {i > j} + { i <= j }.Definition ge_lt_dec i j : {i >= j} + { i < j }.Definition i2z : t -> Z := fun n => n.

Lemma i2z_mul n p : i2z (n * p) = i2z n * i2z p.