mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-06 11:15:43 -05:00
wip: intsolver
This commit is contained in:
parent
f713106514
commit
417f4cf8ec
2 changed files with 16 additions and 8 deletions
|
|
@ -96,10 +96,12 @@ module Make(A : ARG)
|
|||
let empty : t = T_map.empty
|
||||
|
||||
let pp out (self:t) : unit =
|
||||
let pp_pair out (t,z) = Fmt.fprintf out "%a · %a" Z.pp z A.pp_term t in
|
||||
let pp_pair out (t,z) =
|
||||
if Z.(z = one) then A.pp_term out t
|
||||
else Fmt.fprintf out "%a · %a" Z.pp z A.pp_term t in
|
||||
if is_empty self then Fmt.string out "0"
|
||||
else Fmt.fprintf out "(@[+@ %a@])"
|
||||
Fmt.(iter ~sep:(return "@ ") pp_pair) (T_map.to_iter self)
|
||||
else Fmt.fprintf out "(@[%a@])"
|
||||
Fmt.(iter ~sep:(return "@ + ") pp_pair) (T_map.to_iter self)
|
||||
|
||||
let iter = T_map.iter
|
||||
let return t : t = T_map.add t Z.one empty
|
||||
|
|
@ -288,8 +290,12 @@ module Make(A : ARG)
|
|||
Sat m (* TODO: model *)
|
||||
|
||||
| Some (t, _) ->
|
||||
Log.debugf 30 (fun k->k "(@[intsolver.elim-var@ %a@])" A.pp_term t);
|
||||
assert false
|
||||
self.vars <- T_map.remove t self.vars;
|
||||
Log.debugf 30
|
||||
(fun k->k "(@[intsolver.elim-var@ %a@ :remaining %d@])"
|
||||
A.pp_term t (T_map.cardinal self.vars));
|
||||
|
||||
assert false (* TODO *)
|
||||
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,18 @@
|
|||
|
||||
let tests : unit Alcotest.test list =
|
||||
List.flatten @@ [
|
||||
[Sidekick_test_simplex.tests];
|
||||
[Sidekick_test_intsolver.tests];
|
||||
[Sidekick_test_simplex.tests];
|
||||
[Sidekick_test_minicc.tests];
|
||||
Sidekick_test_util.tests;
|
||||
]
|
||||
|
||||
let props =
|
||||
List.flatten
|
||||
[ Sidekick_test_simplex.props;
|
||||
Sidekick_test_util.props;
|
||||
[
|
||||
Sidekick_test_intsolver.props;
|
||||
Sidekick_test_simplex.props;
|
||||
Sidekick_test_util.props;
|
||||
]
|
||||
|
||||
let () =
|
||||
|
|
@ -21,6 +22,7 @@ let () =
|
|||
let argv= Array.of_list (a0::tl) in
|
||||
Alcotest.run ~argv ~and_exit:true "arith tests" tests;
|
||||
| a0::"qcheck"::tl ->
|
||||
Sidekick_util.Log.set_debug 50;
|
||||
let argv= Array.of_list (a0::tl) in
|
||||
CCFormat.set_color_default true;
|
||||
QCheck_runner.run_tests_main ~argv props
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue