File: comparison.why

package info (click to toggle)
frama-c 20100401%2Bboron%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 12,908 kB
  • ctags: 19,772
  • sloc: ml: 117,445; ansic: 10,764; makefile: 1,706; lisp: 176; sh: 27
file content (53 lines) | stat: -rw-r--r-- 2,461 bytes parent folder | download
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