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 empty : t = T_map.empty
|
||||||
|
|
||||||
let pp out (self:t) : unit =
|
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"
|
if is_empty self then Fmt.string out "0"
|
||||||
else Fmt.fprintf out "(@[+@ %a@])"
|
else Fmt.fprintf out "(@[%a@])"
|
||||||
Fmt.(iter ~sep:(return "@ ") pp_pair) (T_map.to_iter self)
|
Fmt.(iter ~sep:(return "@ + ") pp_pair) (T_map.to_iter self)
|
||||||
|
|
||||||
let iter = T_map.iter
|
let iter = T_map.iter
|
||||||
let return t : t = T_map.add t Z.one empty
|
let return t : t = T_map.add t Z.one empty
|
||||||
|
|
@ -288,8 +290,12 @@ module Make(A : ARG)
|
||||||
Sat m (* TODO: model *)
|
Sat m (* TODO: model *)
|
||||||
|
|
||||||
| Some (t, _) ->
|
| Some (t, _) ->
|
||||||
Log.debugf 30 (fun k->k "(@[intsolver.elim-var@ %a@])" A.pp_term t);
|
self.vars <- T_map.remove t self.vars;
|
||||||
assert false
|
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
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,18 @@
|
||||||
|
|
||||||
let tests : unit Alcotest.test list =
|
let tests : unit Alcotest.test list =
|
||||||
List.flatten @@ [
|
List.flatten @@ [
|
||||||
[Sidekick_test_simplex.tests];
|
|
||||||
[Sidekick_test_intsolver.tests];
|
[Sidekick_test_intsolver.tests];
|
||||||
|
[Sidekick_test_simplex.tests];
|
||||||
[Sidekick_test_minicc.tests];
|
[Sidekick_test_minicc.tests];
|
||||||
Sidekick_test_util.tests;
|
Sidekick_test_util.tests;
|
||||||
]
|
]
|
||||||
|
|
||||||
let props =
|
let props =
|
||||||
List.flatten
|
List.flatten
|
||||||
[ Sidekick_test_simplex.props;
|
[
|
||||||
Sidekick_test_util.props;
|
|
||||||
Sidekick_test_intsolver.props;
|
Sidekick_test_intsolver.props;
|
||||||
|
Sidekick_test_simplex.props;
|
||||||
|
Sidekick_test_util.props;
|
||||||
]
|
]
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
|
|
@ -21,6 +22,7 @@ let () =
|
||||||
let argv= Array.of_list (a0::tl) in
|
let argv= Array.of_list (a0::tl) in
|
||||||
Alcotest.run ~argv ~and_exit:true "arith tests" tests;
|
Alcotest.run ~argv ~and_exit:true "arith tests" tests;
|
||||||
| a0::"qcheck"::tl ->
|
| a0::"qcheck"::tl ->
|
||||||
|
Sidekick_util.Log.set_debug 50;
|
||||||
let argv= Array.of_list (a0::tl) in
|
let argv= Array.of_list (a0::tl) in
|
||||||
CCFormat.set_color_default true;
|
CCFormat.set_color_default true;
|
||||||
QCheck_runner.run_tests_main ~argv props
|
QCheck_runner.run_tests_main ~argv props
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue