Skip to content

Commit ee2cc7d

Browse files
committed
Use Expr.definition as input of pred_def
1 parent e2f9dc2 commit ee2cc7d

File tree

9 files changed

+22
-41
lines changed

9 files changed

+22
-41
lines changed

src/lib/frontend/frontend.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,8 +352,8 @@ module Make(SAT : Sat_solver_sig.S) : S with type sat_env = SAT.t = struct
352352

353353
let internal_pred_def ?(loc = DStd.Loc.dummy) (E.{ name; axiom; _ } as def) env =
354354
if not (unused_context name env.used_context) then
355-
let expl = mk_root_dep name def.E.axiom loc in
356-
SAT.pred_def env.sat_env axiom name expl loc;
355+
let expl = mk_root_dep name axiom loc in
356+
SAT.pred_def env.sat_env def expl;
357357
env.expl <- expl
358358

359359
let internal_query ?(loc = DStd.Loc.dummy) (n, f, sort) env =

src/lib/reasoners/fun_sat.ml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1766,13 +1766,11 @@ module Make (Th : Theory.S) = struct
17661766
'unknown' right away. *)
17671767
{env with unknown_reason = Some (Step_limit n)}
17681768

1769-
let pred_def env f name dep _loc =
1770-
Debug.pred_def f;
1771-
let gf = mk_gf f name true false in
1769+
let pred_def env def dep =
1770+
Debug.pred_def def.E.axiom;
17721771
let guard = env.guards.current_guard in
1773-
{ env with
1774-
inst =
1775-
Inst.add_predicate env.inst ~guard ~name gf dep }
1772+
let inst = Inst.add_predicate env.inst ~guard def dep in
1773+
{ env with inst }
17761774

17771775
let unsat env fg =
17781776
Timers.with_timer Timers.M_Sat Timers.F_unsat @@ fun () ->

src/lib/reasoners/fun_sat.mli

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ module Make (_ : Theory.S) : sig
5050

5151
val assume_th_elt : t -> Expr.th_elt -> Explanation.t -> t
5252

53-
val pred_def :
54-
t -> Expr.t -> string -> Explanation.t -> Dolmen.Std.Loc.loc -> t
53+
val pred_def : t -> Expr.def -> Explanation.t -> t
5554

5655
val unsat : t -> Expr.gformula -> Explanation.t
5756

src/lib/reasoners/fun_sat_frontend.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ module Make (Th : Theory.S) : Sat_solver_sig.S = struct
4848
let assume_th_elt t th expl =
4949
exn_handler (fun env -> t := FS.assume_th_elt env th expl) t
5050

51-
let pred_def t expr n expl loc =
52-
exn_handler (fun env -> t := FS.pred_def env expr n expl loc) t
51+
let pred_def t def expl =
52+
exn_handler (fun env -> t := FS.pred_def env def expl) t
5353

5454
let unsat t g =
5555
exn_handler (fun env -> FS.unsat env g) t

src/lib/reasoners/instances.ml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ module type S = sig
4343
val add_predicate :
4444
t ->
4545
guard:Expr.t ->
46-
name:string ->
47-
Expr.gformula ->
46+
Expr.def ->
4847
Ex.t ->
4948
t
5049

@@ -162,11 +161,9 @@ module Make(X : Theory.S) : S with type tbox = X.t = struct
162161
guards = ME.add guard guarded env.guards
163162
}
164163

165-
166-
let add_predicate env ~guard ~name gf ex =
167-
let { Expr.ff = f; age = age; _ } = gf in
168-
let env = { env with
169-
matching = EM.max_term_depth env.matching (E.depth f) } in
164+
let add_predicate env ~guard E.{ name; axiom = f; _ } ex =
165+
let matching = EM.max_term_depth env.matching (E.depth f) in
166+
let env = { env with matching } in
170167
match E.form_view f with
171168
| E.Iff(f1, f2) ->
172169
let p = E.mk_term (Symbols.name name) [] Ty.Tbool in
@@ -191,7 +188,7 @@ module Make(X : Theory.S) : S with type tbox = X.t = struct
191188
| E.Lemma _ ->
192189
let guarded = try ME.find guard env.guards with Not_found -> [] in
193190
{ env with
194-
predicates = ME.add f (guard, age, ex) env.predicates;
191+
predicates = ME.add f (guard, 0, ex) env.predicates;
195192
guards = ME.add guard ((f, false) :: guarded) env.guards
196193
}
197194
| E.Unit _ | E.Clause _ | E.Xor _
@@ -409,9 +406,9 @@ module Make(X : Theory.S) : S with type tbox = X.t = struct
409406
Timers.with_timer Timers.M_Match Timers.F_add_lemma @@ fun () ->
410407
add_lemma env gf dep
411408

412-
let add_predicate env ~guard ~name gf =
409+
let add_predicate env ~guard def dep =
413410
Timers.with_timer Timers.M_Match Timers.F_add_predicate @@ fun () ->
414-
add_predicate env ~guard ~name gf
411+
add_predicate env ~guard def dep
415412

416413
let m_lemmas mconf env tbox selector ilvl =
417414
Timers.with_timer Timers.M_Match Timers.F_m_lemmas @@ fun () ->

src/lib/reasoners/instances.mli

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ module type S = sig
3636
val add_predicate :
3737
t ->
3838
guard:Expr.t ->
39-
name:string ->
40-
Expr.gformula ->
39+
Expr.def ->
4140
Explanation.t ->
4241
t
4342

src/lib/reasoners/sat_solver_sig.ml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,7 @@ module type S = sig
109109
(** [assume env f exp] assumes a new formula [f] with the explanation [exp]
110110
in the theory environment of [env]. *)
111111

112-
val pred_def :
113-
t ->
114-
Expr.t ->
115-
string ->
116-
Explanation.t ->
117-
Dolmen.Std.Loc.loc ->
118-
unit
112+
val pred_def : t -> Expr.def -> Explanation.t -> unit
119113
(** [pred_def env f] assumes a new predicate definition [f] in [env]. *)
120114

121115
val optimize : t -> Objective.Function.t -> unit

src/lib/reasoners/sat_solver_sig.mli

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,7 @@ module type S = sig
8989
(** [assume env f exp] assumes a new formula [f] with the explanation [exp]
9090
in the theory environment of [env]. *)
9191

92-
val pred_def :
93-
t ->
94-
Expr.t ->
95-
string ->
96-
Explanation.t ->
97-
Dolmen.Std.Loc.loc ->
98-
unit
92+
val pred_def : t -> Expr.def -> Explanation.t -> unit
9993
(** [pred_def env f] assumes a new predicate definition [f] in [env]. *)
10094

10195
val optimize : t -> Objective.Function.t -> unit

src/lib/reasoners/satml_frontend.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -456,11 +456,11 @@ module Make (Th : Theory.S) : Sat_solver_sig.S = struct
456456
)acc l
457457

458458

459-
let pred_def env f name dep _loc =
459+
let pred_def env def dep =
460460
(* dep currently not used. No unsat-cores in satML yet *)
461-
Debug.pred_def f;
461+
Debug.pred_def def.E.axiom;
462462
let guard = env.guards.current_guard in
463-
env.inst <- Inst.add_predicate env.inst ~guard ~name (mk_gf f) dep
463+
env.inst <- Inst.add_predicate env.inst ~guard def dep
464464

465465
let axiom_def env gf ex =
466466
env.inst <- Inst.add_lemma env.inst gf ex

0 commit comments

Comments
 (0)