mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-10 13:14:09 -05:00
fix: restore the module type coercion
This commit is contained in:
parent
c9d8fd2f51
commit
d1aec70cbe
1 changed files with 7 additions and 6 deletions
|
|
@ -12,7 +12,7 @@ end
|
||||||
module type S = Sidekick_core.SOLVER
|
module type S = Sidekick_core.SOLVER
|
||||||
|
|
||||||
module Make(A : ARG)
|
module Make(A : ARG)
|
||||||
(* : S with module A = A *)
|
: S with module A = A
|
||||||
= struct
|
= struct
|
||||||
module A = A
|
module A = A
|
||||||
module T = A.Term
|
module T = A.Term
|
||||||
|
|
@ -21,7 +21,7 @@ module Make(A : ARG)
|
||||||
type ty = Ty.t
|
type ty = Ty.t
|
||||||
type lemma = A.Proof.t
|
type lemma = A.Proof.t
|
||||||
|
|
||||||
module Lit = struct
|
module Lit_ = struct
|
||||||
type t = {
|
type t = {
|
||||||
lit_term: term;
|
lit_term: term;
|
||||||
lit_sign : bool
|
lit_sign : bool
|
||||||
|
|
@ -61,15 +61,15 @@ module Make(A : ARG)
|
||||||
let norm l = let l, sign = norm_sign l in l, if sign then Msat.Same_sign else Msat.Negated
|
let norm l = let l, sign = norm_sign l in l, if sign then Msat.Same_sign else Msat.Negated
|
||||||
end
|
end
|
||||||
|
|
||||||
type lit = Lit.t
|
type lit = Lit_.t
|
||||||
|
|
||||||
(* actions from msat *)
|
(* actions from msat *)
|
||||||
type msat_acts = (Msat.void, Lit.t, Msat.void, A.Proof.t) Msat.acts
|
type msat_acts = (Msat.void, lit, Msat.void, A.Proof.t) Msat.acts
|
||||||
|
|
||||||
(* the full argument to the congruence closure *)
|
(* the full argument to the congruence closure *)
|
||||||
module CC_A = struct
|
module CC_A = struct
|
||||||
module A = A
|
module A = A
|
||||||
module Lit = Lit
|
module Lit = Lit_
|
||||||
let cc_view = A.cc_view
|
let cc_view = A.cc_view
|
||||||
|
|
||||||
module Actions = struct
|
module Actions = struct
|
||||||
|
|
@ -90,7 +90,7 @@ module Make(A : ARG)
|
||||||
module Solver_internal = struct
|
module Solver_internal = struct
|
||||||
module A = A
|
module A = A
|
||||||
module CC_A = CC_A
|
module CC_A = CC_A
|
||||||
module Lit = Lit
|
module Lit = Lit_
|
||||||
module CC = CC
|
module CC = CC
|
||||||
module N = CC.N
|
module N = CC.N
|
||||||
type term = T.t
|
type term = T.t
|
||||||
|
|
@ -360,6 +360,7 @@ module Make(A : ARG)
|
||||||
ignore (Lazy.force @@ self.cc : CC.t);
|
ignore (Lazy.force @@ self.cc : CC.t);
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
module Lit = Solver_internal.Lit
|
||||||
|
|
||||||
(** the parametrized SAT Solver *)
|
(** the parametrized SAT Solver *)
|
||||||
module Sat_solver = Msat.Make_cdcl_t(Solver_internal)
|
module Sat_solver = Msat.Make_cdcl_t(Solver_internal)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue