Definition agree64 (a: Ptrofs.int) (b: Int64.int) : Prop :=
  Ptrofs.unsigned a = Int64.unsigned b.

(* Specifications: *)
Lemma agree64_repr: forall i, agree64 (Ptrofs.repr i) (Int64.repr i).
Lemma agree64_signed: forall a b, agree64 a b -> Ptrofs.signed a = Int64.signed b.
Lemma agree64_of_int: forall b, agree64 (of_int64 b) b.
Lemma agree64_of_int_eq: forall a b, agree64 a b -> of_int64 b = a.
Lemma agree64_to_int: forall a, agree64 a (to_int64 a).
Lemma agree64_to_int_eq: forall a b, agree64 a b -> to_int64 a = b.
Lemma agree64_neg: forall a1 b1, agree64 a1 b1 -> agree64 (Ptrofs.neg a1) (Int64.neg b1).
Lemma agree64_add: forall a1 b1 a2 b2, agree64 a1 b1 -> agree64 a2 b2 -> agree64 (Ptrofs.add a1 a2) (Int64.add b1 b2).
Lemma agree64_sub: forall a1 b1 a2 b2, agree64 a1 b1 -> agree64 a2 b2 -> agree64 (Ptrofs.sub a1 a2) (Int64.sub b1 b2).
Lemma agree64_mul: forall a1 b1 a2 b2, agree64 a1 b1 -> agree64 a2 b2 -> agree64 (Ptrofs.mul a1 a2) (Int64.mul b1 b2).
Lemma agree64_divs: forall a1 b1 a2 b2, agree64 a1 b1 -> agree64 a2 b2 -> agree64 (Ptrofs.divs a1 a2) (Int64.divs b1 b2).
Lemma of_int64_to_int64: forall n, of_int64 (to_int64 n) = n.
Lemma to_int64_of_int64: forall n, to_int64 (of_int64 n) = n.
Lemma agree64_repr: forall i, agree64 (Ptrofs.repr i) (Int64.repr i).
Lemma agree64_signed: forall a b, agree64 a b -> Ptrofs.signed a = Int64.signed b.
Lemma agree64_of_int: forall b, agree64 (of_int64 b) b.
Lemma agree64_of_int_eq: forall a b, agree64 a b -> of_int64 b = a.
Lemma agree64_to_int: forall a, agree64 a (to_int64 a).
Lemma agree64_to_int_eq: forall a b, agree64 a b -> to_int64 a = b.
Lemma agree64_neg: forall a1 b1, agree64 a1 b1 -> agree64 (Ptrofs.neg a1) (Int64.neg b1).
Lemma agree64_add: forall a1 b1 a2 b2, agree64 a1 b1 -> agree64 a2 b2 -> agree64 (Ptrofs.add a1 a2) (Int64.add b1 b2).
Lemma agree64_sub: forall a1 b1 a2 b2, agree64 a1 b1 -> agree64 a2 b2 -> agree64 (Ptrofs.sub a1 a2) (Int64.sub b1 b2).
Lemma agree64_mul: forall a1 b1 a2 b2, agree64 a1 b1 -> agree64 a2 b2 -> agree64 (Ptrofs.mul a1 a2) (Int64.mul b1 b2).
Lemma agree64_divs: forall a1 b1 a2 b2, agree64 a1 b1 -> agree64 a2 b2 -> agree64 (Ptrofs.divs a1 a2) (Int64.divs b1 b2).
Lemma of_int64_to_int64: forall n, of_int64 (to_int64 n) = n.
Lemma to_int64_of_int64: forall n, to_int64 (of_int64 n) = n.