@@ -239,7 +239,7 @@ namespace smtfd {
239
239
m_nv_trail.shrink (m_nv_trail.size () - n);
240
240
}
241
241
242
- std::ostream& display (std::ostream& out) {
242
+ std::ostream& display (std::ostream& out) const {
243
243
return out << " abs:\n " << m_atoms << " \n " ;
244
244
}
245
245
@@ -639,15 +639,18 @@ namespace smtfd {
639
639
ref<::solver> m_fd_solver;
640
640
ref<::solver> m_smt_solver;
641
641
expr_ref_vector m_assertions;
642
- unsigned_vector m_assertions_lim;
642
+ unsigned_vector m_assertions_lim;
643
643
unsigned m_assertions_qhead;
644
644
expr_ref_vector m_toggles;
645
- expr_ref m_toggle, m_not_toggle;
645
+ expr_ref m_toggle;
646
+ expr_ref m_not_toggle;
646
647
model_ref m_model;
647
648
std::string m_reason_unknown;
648
649
unsigned m_max_lemmas;
649
650
stats m_stats;
650
- unsigned m_useful_smt, m_non_useful_smt, m_max_conflicts;
651
+ unsigned m_useful_smt;
652
+ unsigned m_non_useful_smt;
653
+ unsigned m_max_conflicts;
651
654
bool m_smt_known;
652
655
653
656
void flush_assertions () {
@@ -688,7 +691,7 @@ namespace smtfd {
688
691
if (r == l_false) {
689
692
m_fd_solver->get_unsat_core (core);
690
693
TRACE (" smtfd" , display (tout << core););
691
- core.erase (m_not_toggle);
694
+ core.erase (m_not_toggle. get () );
692
695
SASSERT (!asms.contains (m_not_toggle));
693
696
SASSERT (!asms.contains (m_toggle));
694
697
}
@@ -772,7 +775,7 @@ namespace smtfd {
772
775
asms.push_back (m.mk_not (a));
773
776
}
774
777
}
775
- asms.erase (m_toggle);
778
+ asms.erase (m_toggle. get () );
776
779
}
777
780
778
781
void checkpoint () {
@@ -794,8 +797,8 @@ namespace smtfd {
794
797
}
795
798
}
796
799
797
- std::ostream& display (std::ostream& out) {
798
- init () ;
800
+ std::ostream& display (std::ostream& out, unsigned n = 0 , expr * const * assumptions = nullptr ) const override {
801
+ if (!m_fd_solver) return out ;
799
802
m_fd_solver->display (out);
800
803
m_smt_solver->display (out);
801
804
out << m_assumptions << " \n " ;
@@ -811,9 +814,9 @@ namespace smtfd {
811
814
solver (ast_manager& m, params_ref const & p):
812
815
solver_na2as (m),
813
816
m (m),
817
+ m_abs (m),
814
818
m_assertions (m),
815
819
m_assertions_qhead (0 ),
816
- m_abs (m),
817
820
m_toggles (m),
818
821
m_toggle (m.mk_true(), m),
819
822
m_not_toggle (m.mk_false(), m),
@@ -933,7 +936,7 @@ namespace smtfd {
933
936
}
934
937
void get_unsat_core (expr_ref_vector & r) override {
935
938
m_fd_solver->get_unsat_core (r);
936
- r.erase (m_toggle);
939
+ r.erase (m_toggle. get () );
937
940
rep (r);
938
941
}
939
942
void get_model_core (model_ref & mdl) override {
0 commit comments