mirror of
https://github.com/c-cube/sidekick.git
synced 2026-01-23 01:46:43 -05:00
24 lines
493 B
OCaml
24 lines
493 B
OCaml
|
|
(** {1 Signatures for booleans} *)
|
|
|
|
type 'a view =
|
|
| B_not of 'a
|
|
| B_and of 'a IArray.t
|
|
| B_or of 'a IArray.t
|
|
| B_imply of 'a IArray.t * 'a
|
|
| B_atom of 'a
|
|
|
|
(** {2 Interface for a representation of boolean terms} *)
|
|
module type BOOL_TERM = sig
|
|
type t
|
|
type state
|
|
|
|
val equal : t -> t -> bool
|
|
val hash : t -> int
|
|
|
|
val view_as_bool : t -> t view
|
|
(** View a term as a boolean formula *)
|
|
|
|
val make : state -> t view -> t
|
|
(** Build a boolean term from a formula view *)
|
|
end
|