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.