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
|
(** {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
|