(** Minimum / maximum *)
Definition max (i1 i2 : int) :=
if (i1 <=? i2)%uint63 then i2 else i1.

(* Specifications: *)
Lemma min_spec (x y : int) :
φ (min x y) = Z.min (φ x) (φ y).
Lemma max_spec (x y : int) :
φ (max x y) = Z.max (φ x) (φ y).
Lemma min_add_min_n_same (m i1 i2 : int) :
to_Z i1 + to_Z i2 < wB ->
Uint63.min m (Uint63.min m i1 + i2) = Uint63.min m (i1 + i2).
Lemma min_add_n_min_same (m i1 i2 : int) :
to_Z i1 + to_Z i2 < wB ->
Uint63.min m (i1 + Uint63.min m i2) = Uint63.min m (i1 + i2).