Definition agree32 (a: Ptrofs.int) (b: Int.int) : Prop :=
  Ptrofs.unsigned a = Int.unsigned b.

(* Specifications: *)
Lemma agree32_repr: forall i, agree32 (Ptrofs.repr i) (Int.repr i).
Lemma agree32_signed: forall a b, agree32 a b -> Ptrofs.signed a = Int.signed b.
Lemma agree32_of_int: forall b, agree32 (of_int b) b.
Lemma agree32_of_ints: forall b, agree32 (of_ints b) b.
Lemma agree32_of_int_eq: forall a b, agree32 a b -> of_int b = a.
Lemma agree32_of_ints_eq: forall a b, agree32 a b -> of_ints b = a.
Lemma agree32_to_int: forall a, agree32 a (to_int a).
Lemma agree32_to_int_eq: forall a b, agree32 a b -> to_int a = b.
Lemma agree32_neg: forall a1 b1, agree32 a1 b1 -> agree32 (Ptrofs.neg a1) (Int.neg b1).
Lemma agree32_add: forall a1 b1 a2 b2, agree32 a1 b1 -> agree32 a2 b2 -> agree32 (Ptrofs.add a1 a2) (Int.add b1 b2).
Lemma agree32_sub: forall a1 b1 a2 b2, agree32 a1 b1 -> agree32 a2 b2 -> agree32 (Ptrofs.sub a1 a2) (Int.sub b1 b2).
Lemma agree32_mul: forall a1 b1 a2 b2, agree32 a1 b1 -> agree32 a2 b2 -> agree32 (Ptrofs.mul a1 a2) (Int.mul b1 b2).
Lemma agree32_divs: forall a1 b1 a2 b2, agree32 a1 b1 -> agree32 a2 b2 -> agree32 (Ptrofs.divs a1 a2) (Int.divs b1 b2).
Lemma of_int_to_int: forall n, of_int (to_int n) = n.
Lemma to_int_of_int: forall n, to_int (of_int n) = n.
Lemma modulus_eq64: modulus = Int64.modulus.
Lemma eqm64: forall x y, Int64.eqm x y <-> eqm x y.
Lemma agree32_repr: forall i, agree32 (Ptrofs.repr i) (Int.repr i).
Lemma agree32_signed: forall a b, agree32 a b -> Ptrofs.signed a = Int.signed b.
Lemma agree32_of_int: forall b, agree32 (of_int b) b.
Lemma agree32_of_ints: forall b, agree32 (of_ints b) b.
Lemma agree32_of_int_eq: forall a b, agree32 a b -> of_int b = a.
Lemma agree32_of_ints_eq: forall a b, agree32 a b -> of_ints b = a.
Lemma agree32_to_int: forall a, agree32 a (to_int a).
Lemma agree32_to_int_eq: forall a b, agree32 a b -> to_int a = b.
Lemma agree32_neg: forall a1 b1, agree32 a1 b1 -> agree32 (Ptrofs.neg a1) (Int.neg b1).
Lemma agree32_add: forall a1 b1 a2 b2, agree32 a1 b1 -> agree32 a2 b2 -> agree32 (Ptrofs.add a1 a2) (Int.add b1 b2).
Lemma agree32_sub: forall a1 b1 a2 b2, agree32 a1 b1 -> agree32 a2 b2 -> agree32 (Ptrofs.sub a1 a2) (Int.sub b1 b2).
Lemma agree32_mul: forall a1 b1 a2 b2, agree32 a1 b1 -> agree32 a2 b2 -> agree32 (Ptrofs.mul a1 a2) (Int.mul b1 b2).
Lemma agree32_divs: forall a1 b1 a2 b2, agree32 a1 b1 -> agree32 a2 b2 -> agree32 (Ptrofs.divs a1 a2) (Int.divs b1 b2).
Lemma of_int_to_int: forall n, of_int (to_int n) = n.
Lemma to_int_of_int: forall n, to_int (of_int n) = n.
Lemma modulus_eq64: modulus = Int64.modulus.
Lemma eqm64: forall x y, Int64.eqm x y <-> eqm x y.