diff --git a/sidekick.opam b/sidekick.opam index 49f9e558..074e09b2 100644 --- a/sidekick.opam +++ b/sidekick.opam @@ -11,10 +11,10 @@ build: [ ["dune" "runtest" "-p" name "-j" jobs] {with-test} ] depends: [ - "dune" { >= "1.1" } - "containers" { >= "3.0" & < "4.0" } + "dune" { >= "2.0" } + "containers" { >= "3.6" & < "4.0" } "iter" { >= "1.0" & < "2.0" } - "ocaml" { >= "4.04" } + "ocaml" { >= "4.08" } "zarith" { with-test } "alcotest" {with-test} "odoc" {with-doc} diff --git a/src/cc/Sidekick_cc.ml b/src/cc/Sidekick_cc.ml index 79adf3f9..20d3d418 100644 --- a/src/cc/Sidekick_cc.ml +++ b/src/cc/Sidekick_cc.ml @@ -308,7 +308,6 @@ module Make (A: CC_ARG) mutable on_conflict: ev_on_conflict list; mutable on_propagate: ev_on_propagate list; mutable on_is_subterm : ev_on_is_subterm list; - stat: Stat.t; count_conflict: int Stat.counter; count_props: int Stat.counter; count_merge: int Stat.counter; @@ -639,7 +638,7 @@ module Make (A: CC_ARG) T_tbl.remove cc.tbl t); (* add term to the table *) T_tbl.add cc.tbl t n; - if CCOpt.is_some sig0 then ( + if Option.is_some sig0 then ( (* [n] might be merged with other equiv classes *) push_pending cc n; ); @@ -1164,7 +1163,6 @@ module Make (A: CC_ARG) undo=Backtrack_stack.create(); true_; false_; - stat; field_marked_explain; count_conflict=Stat.mk_int stat "cc.conflicts"; count_props=Stat.mk_int stat "cc.propagations"; diff --git a/src/drup/sidekick_drup.ml b/src/drup/sidekick_drup.ml index d21efe14..cdd29e28 100644 --- a/src/drup/sidekick_drup.ml +++ b/src/drup/sidekick_drup.ml @@ -185,7 +185,6 @@ module Make() : S = struct val del_clause : t -> Clause.t -> unit end = struct type t = { - cstore: Clause.store; assign: Atom.Assign.t; (* atom -> is_true(atom) *) trail: Atom.Stack.t; (* current assignment *) mutable trail_ptr : int; (* offset in trail for propagation *) @@ -193,10 +192,9 @@ module Make() : S = struct watches: Clause.t Vec.t Atom.Map.t; (* atom -> clauses it watches *) } - let create cstore : t = + let create _cstore : t = { trail=Atom.Stack.create(); trail_ptr = 0; - cstore; active_clauses=Clause.Tbl.create 32; assign=Atom.Assign.create(); watches=Atom.Map.create(); diff --git a/src/intsolver/sidekick_intsolver.ml b/src/intsolver/sidekick_intsolver.ml index 853a1817..dea33cc6 100644 --- a/src/intsolver/sidekick_intsolver.ml +++ b/src/intsolver/sidekick_intsolver.ml @@ -173,7 +173,7 @@ module Make(A : ARG) while Z.(!n <= n0) do if is_prime !n then k !n done - end + end [@@warning "-60"] module Op = struct diff --git a/src/lia/intf_lia.ml b/src/lia/intf_lia.ml index 6e213a2f..6719f237 100644 --- a/src/lia/intf_lia.ml +++ b/src/lia/intf_lia.ml @@ -1,5 +1,4 @@ -open Sidekick_core module type RATIONAL = Sidekick_arith.RATIONAL module type INT = Sidekick_arith.INT diff --git a/src/lra/sidekick_arith_lra.ml b/src/lra/sidekick_arith_lra.ml index 53aca04d..72eb5be1 100644 --- a/src/lra/sidekick_arith_lra.ml +++ b/src/lra/sidekick_arith_lra.ml @@ -157,7 +157,6 @@ module Make(A : ARG) : S with module A = A = struct let mk_lit _ _ _ = assert false end) module Subst = SimpSolver.Subst - module Q_tbl = CCHashtbl.Make(A.Q) module Comb_map = CCMap.Make(LE_.Comb) @@ -243,7 +242,6 @@ module Make(A : ARG) : S with module A = A = struct mutable encoded_le: T.t Comb_map.t; (* [le] -> var encoding [le] *) simplex: SimpSolver.t; mutable last_res: SimpSolver.result option; - stat_th_comb: int Stat.counter; } let create ?(stat=Stat.create()) (si:SI.t) : state = @@ -262,7 +260,6 @@ module Make(A : ARG) : S with module A = A = struct encoded_le=Comb_map.empty; simplex=SimpSolver.create ~stat (); last_res=None; - stat_th_comb=Stat.mk_int stat "lra.th-comb"; } let[@inline] reset_res_ (self:state) : unit = @@ -537,8 +534,6 @@ module Make(A : ARG) : S with module A = A = struct ) | _ -> None - module Q_map = CCMap.Make(A.Q) - (* raise conflict from certificate *) let fail_with_cert si acts cert : 'a = Profile.with1 "lra.simplex.check-cert" SimpSolver._check_cert cert; @@ -624,7 +619,7 @@ module Make(A : ARG) : S with module A = A = struct (* evaluate a term directly, as a variable *) let eval_in_subst_ subst t = match A.view_as_lra t with | LRA_const n -> n - | _ -> Subst.eval subst t |> CCOpt.get_or ~default:A.Q.zero + | _ -> Subst.eval subst t |> Option.value ~default:A.Q.zero (* evaluate a linear expression *) let eval_le_in_subst_ subst (le:LE.t) = @@ -754,7 +749,7 @@ module Make(A : ARG) : S with module A = A = struct begin match A.view_as_lra t with | LRA_const n -> Some n (* always eval constants to themselves *) | _ -> SimpSolver.V_map.get t m - end |> CCOpt.map (t_const self) + end |> Option.map (t_const self) | _ -> None end diff --git a/src/sat/Solver.ml b/src/sat/Solver.ml index 54c32636..d6cf8691 100644 --- a/src/sat/Solver.ml +++ b/src/sat/Solver.ml @@ -730,10 +730,6 @@ module Make(Plugin : PLUGIN) (* learnt clauses (tautologies true at any time, whatever the user level). GC'd regularly. *) - clauses_dead : CVec.t; - (* dead clauses, to be removed at next GC. - invariant: all satisfy [Clause.dead store c]. *) - clause_pools : clause_pool Vec.t; (* custom clause pools *) @@ -754,7 +750,7 @@ module Make(Plugin : PLUGIN) var_levels : VecSmallInt.t; (* decision levels in [trail] *) - mutable assumptions: AVec.t; + assumptions: AVec.t; (* current assumptions *) mutable th_head : int; @@ -824,7 +820,6 @@ module Make(Plugin : PLUGIN) ~descr:(fun () -> "cp.learnt-clauses") ~max_size:max_clauses_learnt (); delayed_actions=Delayed_actions.create(); - clauses_dead = CVec.create(); clause_pools = Vec.create(); to_clear=Vec.create(); diff --git a/src/simplex/linear_expr.ml b/src/simplex/linear_expr.ml index 9873e93c..b381d931 100644 --- a/src/simplex/linear_expr.ml +++ b/src/simplex/linear_expr.ml @@ -146,7 +146,7 @@ module Make(C : COEFF)(Var : VAR) = struct } let compare c c' = - CCOrd.(compare c.op c'.op + CCOrd.(poly c.op c'.op (Expr.compare, c.expr, c'.expr)) let pp_op out o = diff --git a/src/smt-solver/Sidekick_smt_solver.ml b/src/smt-solver/Sidekick_smt_solver.ml index a667129d..c20e8554 100644 --- a/src/smt-solver/Sidekick_smt_solver.ml +++ b/src/smt-solver/Sidekick_smt_solver.ml @@ -88,7 +88,6 @@ module Make(A : ARG) module Term = T.Term module Lit = A.Lit type term = Term.t - type value = term type ty = Ty.t type proof = A.proof type proof_step = A.proof_step @@ -354,8 +353,8 @@ module Make(A : ARG) let on_th_combination self f = self.on_th_combination <- f :: self.on_th_combination let on_preprocess self f = self.preprocess <- f :: self.preprocess let on_model ?ask ?complete self = - CCOpt.iter (fun f -> self.model_ask <- f :: self.model_ask) ask; - CCOpt.iter (fun f -> self.model_complete <- f :: self.model_complete) complete; + Option.iter (fun f -> self.model_ask <- f :: self.model_ask) ask; + Option.iter (fun f -> self.model_complete <- f :: self.model_complete) complete; () let[@inline] raise_conflict self (acts:theory_actions) c proof : 'a = @@ -472,7 +471,7 @@ module Make(A : ARG) (* simplify a literal, then preprocess it *) let[@inline] simp_lit lit = let lit, pr = simplify_and_preproc_lit_ self lit in - CCOpt.iter (fun pr -> steps := pr :: !steps) pr; + Option.iter (fun pr -> steps := pr :: !steps) pr; lit in let c' = A.map simp_lit c in @@ -1014,7 +1013,7 @@ module Make(A : ARG) (fun k->k "(@[sidekick.smt-solver: SAT@ actual: UNKNOWN@ :reason incomplete-fragment@])"); Unknown Unknown.U_incomplete - | Sat_solver.Sat (module SAT) -> + | Sat_solver.Sat _ -> Log.debug 1 "(sidekick.smt-solver: SAT)"; Log.debugf 5 diff --git a/src/smtlib/Process.ml b/src/smtlib/Process.ml index ef33c043..5052c27b 100644 --- a/src/smtlib/Process.ml +++ b/src/smtlib/Process.ml @@ -156,8 +156,8 @@ let solve let should_stop = match time, memory with | None, None -> None | _ -> - let time = CCOpt.get_or ~default:3600. time in (* default: 1 hour *) - let memory = CCOpt.get_or ~default:4e9 memory in (* default: 4 GB *) + let time = Option.value ~default:3600. time in (* default: 1 hour *) + let memory = Option.value ~default:4e9 memory in (* default: 4 GB *) let stop _ _ = Sys.time () -. t1 > time || (Gc.quick_stat()).Gc.major_words *. 8. > memory diff --git a/src/th-bool-static/Sidekick_th_bool_static.ml b/src/th-bool-static/Sidekick_th_bool_static.ml index 9c865d30..7b3db517 100644 --- a/src/th-bool-static/Sidekick_th_bool_static.ml +++ b/src/th-bool-static/Sidekick_th_bool_static.ml @@ -167,7 +167,7 @@ module Make(A : ARG) : S with module A = A = struct (* directly simplify [a] so that maybe we never will simplify one of the branches *) let a, prf_a = SI.Simplify.normalize_t simp a in - CCOpt.iter add_step_ prf_a; + Option.iter add_step_ prf_a; begin match A.view_as_bool a with | B_bool true -> add_step_eq t b ~using:(Iter.of_opt prf_a)