liquid-fixpoint-0.1.0.0: external/fixpoint/solve.mli
(*
* IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
* FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
* IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY
* OF SUCH DAMAGE.
*
* THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION
* TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
*
*)
type t
module type SOLVER = sig
type soln
type bind
val create : bind FixConfig.cfg -> FixConstraint.soln option -> (t * soln)
val solve : t -> soln -> (soln * (FixConstraint.t list) * Counterexample.cex list)
val save : string -> t -> soln -> unit
val read : soln -> FixConstraint.soln
val min_read : soln -> FixConstraint.soln
val read_bind : soln -> Ast.Symbol.t -> bind
val cone : t -> FixConstraint.id -> FixConstraint.tag Ast.Cone.t
(* val meet : soln -> soln -> soln *)
end
module Make (Dom : SolverArch.DOMAIN) : SOLVER
with type bind = Dom.bind
with type soln = Dom.t