(**************************************************************************)
(*                                                                        *)
(*  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 real_Real_ must be appended to this file*)
logic min_real : real, real -> real

axiom min_def :
  (forall x:real. forall y:real. ((x <= y) -> (min_real(x, y) = x)))

axiom min_def1 :
  (forall x:real. forall y:real. ((not (x <= y)) -> (min_real(x, y) = y)))

logic max_real : real, real -> real

axiom max_def :
  (forall x:real. forall y:real. ((x <= y) -> (max_real(x, y) = y)))

axiom max_def1 :
  (forall x:real. forall y:real. ((not (x <= y)) -> (max_real(x, y) = x)))

axiom Min_r :
  (forall x:real. forall y:real. ((y <= x) -> (min_real(x, y) = y)))

axiom Max_l :
  (forall x:real. forall y:real. ((y <= x) -> (max_real(x, y) = x)))

axiom Min_comm :
  (forall x:real. forall y:real. (min_real(x, y) = min_real(y, x)))

axiom Max_comm :
  (forall x:real. forall y:real. (max_real(x, y) = max_real(y, x)))

axiom Min_assoc :
  (forall x:real. forall y:real. forall z:real. (min_real(min_real(x, y),
  z) = min_real(x, min_real(y, z))))

axiom Max_assoc :
  (forall x:real. forall y:real. forall z:real. (max_real(max_real(x, y),
  z) = max_real(x, max_real(y, z))))

