mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-06 03:05:31 -05:00
36 lines
1.5 KiB
OCaml
36 lines
1.5 KiB
OCaml
(**************************************************************************)
|
|
(* *)
|
|
(* Cubicle *)
|
|
(* Combining model checking algorithms and SMT solvers *)
|
|
(* *)
|
|
(* Sylvain Conchon and Alain Mebsout *)
|
|
(* Stephane Lescuyer *)
|
|
(* INRIA, Universite Paris-Sud 11 *)
|
|
(* *)
|
|
(* Copyright 2011. This file is distributed under the terms of the *)
|
|
(* Apache Software License version 2.0 *)
|
|
(* *)
|
|
(**************************************************************************)
|
|
|
|
module type S = sig
|
|
(** Signature for explanations. To be modified to allow passing bulks of assumptions to the theories. *)
|
|
|
|
type t
|
|
type exp
|
|
type atom
|
|
|
|
val empty : t
|
|
val singleton : atom -> t
|
|
|
|
val union : t -> t -> t
|
|
val merge : t -> t -> t
|
|
|
|
val iter_atoms : (atom -> unit) -> t -> unit
|
|
val fold_atoms : (atom -> 'a -> 'a ) -> t -> 'a -> 'a
|
|
|
|
val fresh_exp : unit -> int
|
|
val add_fresh : int -> t -> t
|
|
val remove_fresh : int -> t -> t option
|
|
|
|
val print : Format.formatter -> t -> unit
|
|
end
|