1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
(**************************************************************************)
(* *)
(* This file is part of Frama-C. *)
(* *)
(* Copyright (C) 2007-2010 *)
(* CEA (Commissariat l'nergie atomique et aux nergies *)
(* alternatives) *)
(* INRIA (Institut National de Recherche en Informatique et en *)
(* Automatique) *)
(* *)
(* you can redistribute it and/or modify it under the terms of the GNU *)
(* Lesser General Public License as published by the Free Software *)
(* Foundation, version 2.1. *)
(* *)
(* It is distributed in the hope that it will be useful, *)
(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)
(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)
(* GNU Lesser General Public License for more details. *)
(* *)
(* See the GNU Lesser General Public License version v2.1 *)
(* for more details (enclosed in the file licenses/LGPLv2.1). *)
(* *)
(**************************************************************************)
(** axiomatics of comparison operators **)
type comparison
logic Eq: comparison
logic Neq: comparison
logic Lt: comparison
logic Le: comparison
logic Gt: comparison
logic Ge: comparison
logic neg_comp: comparison -> comparison
logic swap_comp:comparison -> comparison
axiom neg_comp_involutive:
forall c:comparison. neg_comp (neg_comp(c)) =c
axiom neg_Eq_Neq: neg_comp(Eq) = Neq
axiom neg_Lt_Ge : neg_comp(Lt)=Ge
axiom neg_Gt_Le : neg_comp(Gt)=Le
axiom swap_comp_involutive:
forall c:comparison. swap_comp (swap_comp(c)) =c
axiom swap_Eq_Eq: swap_comp(Eq)= Eq
axiom swap_Neq_Neq: swap_comp(Neq)=Neq
axiom swap_Lt_Gt: swap_comp(Lt)= Gt
axiom swap_Le_Ge: swap_comp(Le)= Ge
|