package mc2
A mcsat-based SMT solver in pure OCaml
Install
Dune Dependency
Authors
Maintainers
Sources
v0.1.tar.gz
md5=92de696251ec76fbf3eba6ee917fd80f
sha512=e88ba0cfc23186570a52172a0bd7c56053273941eaf3cda0b80fb6752e05d1b75986b01a4e4d46d9711124318e57cba1cd92d302e81d34f9f1ae8b49f39114f0
doc/src/mc2.core/Statement.ml.html
Source file Statement.ml
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
open Solver_types type t = statement = | Stmt_set_logic of string | Stmt_set_option of string list | Stmt_set_info of string * string (* | Stmt_data of data list *) | Stmt_ty_decl of ID.t * int (* new atomic cstor *) | Stmt_decl of ID.t * ty list * ty | Stmt_define of definition list | Stmt_assert_clauses of atom list list | Stmt_check_sat | Stmt_exit let pp_def out (d:definition) : unit = let id, vars, ret, body = d in Fmt.fprintf out "@[%a (@[%a@]) %a@ %a@]" ID.pp id (Util.pp_list Bound_var.pp_with_ty) vars Type.pp ret Term.pp body let pp out = function | Stmt_set_logic s -> Fmt.fprintf out "(set-logic %s)" s | Stmt_set_option l -> Fmt.fprintf out "(@[set-logic@ %a@])" (Util.pp_list Fmt.string) l | Stmt_set_info (a,b) -> Fmt.fprintf out "(@[set-info@ %s@ %s@])" a b | Stmt_check_sat -> Fmt.string out "(check-sat)" | Stmt_ty_decl (s,n) -> Fmt.fprintf out "(@[declare-sort@ %a %d@])" ID.pp s n | Stmt_decl (id,args,ret) -> Fmt.fprintf out "(@[<1>declare-fun@ %a (@[%a@])@ %a@])" ID.pp id (Util.pp_list Type.pp) args Type.pp ret | Stmt_assert_clauses cs -> let pp_c out c = Fmt.fprintf out "(@[assert-clause@ %a@])" (Util.pp_list Atom.pp) c in Fmt.fprintf out "@[<v>%a@]" (Util.pp_list pp_c) cs | Stmt_exit -> Fmt.string out "(exit)" | Stmt_define [def] -> Fmt.fprintf out "(@[define-fun %a@])" pp_def def | Stmt_define defs -> Fmt.fprintf out "(@[define-funs (@[%a@])@])" (Util.pp_list pp_def) defs
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>