Files
why3/stdlib/bool.mlw
MARCHE Claude 7dd2b50449 Pmodule: t->t->t functions can be overloaded as X->X->t functions
allows to add program equality on Booleans
2024-09-19 10:54:24 +02:00

53 lines
819 B
Plaintext

(** {1 Booleans} *)
(** {2 Basic theory of Booleans} *)
module Bool
let function andb (x y : bool) : bool =
match x with
| True -> y
| False -> False
end
let function orb (x y : bool) : bool =
match x with
| False -> y
| True -> True
end
let function notb (x : bool) : bool =
match x with
| False -> True
| True -> False
end
let function xorb (x y : bool) : bool =
match x with
| False -> y
| True -> notb y
end
let function implb (x y : bool) : bool =
match x with
| False -> True
| True -> y
end
val (=) (x y : bool) : bool ensures { result <-> x = y }
end
(** {2 Operator if-then-else} *)
module Ite
let function ite (b:bool) (x y : 'a) : 'a =
match b with
| True -> x
| False -> y
end
end