(**************************************************************************)
(*                                                                        *)
(*  The Why3 Verification Platform   /   The Why3 Development Team        *)
(*  Copyright 2010-2013   --   INRIA - CNRS - Paris-Sud University        *)
(*                                                                        *)
(*  This software is distributed under the terms of the GNU Lesser        *)
(*  General Public License version 2.1, with the special exception        *)
(*  on linking described in file LICENSE.                                 *)
(*                                                                        *)
(*  File modified by CEA (Commissariat à l'énergie atomique et aux        *)
(*                        énergies alternatives).                         *)
(*                                                                        *)
(**************************************************************************)

(* this is a prelude for Alt-Ergo*)
(** The theory BuiltIn_ must be appended to this file*)
(** The theory Bool_ must be appended to this file*)
(** The theory int_Int_ must be appended to this file*)
logic min_int : int, int -> int

axiom min_def :
  (forall x:int. forall y:int. ((x <= y) -> (min_int(x, y) = x)))

axiom min_def1 :
  (forall x:int. forall y:int. ((not (x <= y)) -> (min_int(x, y) = y)))

logic max_int : int, int -> int

axiom max_def :
  (forall x:int. forall y:int. ((x <= y) -> (max_int(x, y) = y)))

axiom max_def1 :
  (forall x:int. forall y:int. ((not (x <= y)) -> (max_int(x, y) = x)))

axiom Min_r : (forall x:int. forall y:int. ((y <= x) -> (min_int(x, y) = y)))

axiom Max_l : (forall x:int. forall y:int. ((y <= x) -> (max_int(x, y) = x)))

axiom Min_comm :
  (forall x:int. forall y:int. (min_int(x, y) = min_int(y, x)))

axiom Max_comm :
  (forall x:int. forall y:int. (max_int(x, y) = max_int(y, x)))

axiom Min_assoc :
  (forall x:int. forall y:int. forall z:int. (min_int(min_int(x, y),
  z) = min_int(x, min_int(y, z))))

axiom Max_assoc :
  (forall x:int. forall y:int. forall z:int. (max_int(max_int(x, y),
  z) = max_int(x, max_int(y, z))))

