diff --git a/src/lib/frontend/frontend.ml b/src/lib/frontend/frontend.ml index 1e2e07f5cd..711f55db02 100644 --- a/src/lib/frontend/frontend.ml +++ b/src/lib/frontend/frontend.ml @@ -384,10 +384,6 @@ module Make(SAT : Sat_solver_sig.S) : S with type sat_env = SAT.t = struct (Some time) (Some steps) - - - - let init_with_replay_used acc f = assert (Sys.file_exists f); let cin = open_in f in diff --git a/src/lib/frontend/models.ml b/src/lib/frontend/models.ml index 0cb4434285..ffe5cb104f 100644 --- a/src/lib/frontend/models.ml +++ b/src/lib/frontend/models.ml @@ -56,7 +56,8 @@ type t = { constants : ModelMap.t; functions : ModelMap.t; arrays : ModelMap.t; - objectives: (Expr.t * objective_value) Util.MI.t + objectives: (Expr.t * objective_value) Util.MI.t; + terms_values : (Shostak.Combine.r * string) Expr.Map.t } module Pp_smtlib_term = struct @@ -437,9 +438,6 @@ module SmtlibCounterExample = struct ) fprofs; !records - let output_arrays_counterexample fmt _arrays = - fprintf fmt "@ ; Arrays not yet supported@ " - let output_objectives fmt objectives = (* TODO: we can decide to print objectives to stderr if Options.get_objectives_in_interpretation() is enabled *) diff --git a/src/lib/frontend/models.mli b/src/lib/frontend/models.mli index 3377bc2377..9ba841e256 100644 --- a/src/lib/frontend/models.mli +++ b/src/lib/frontend/models.mli @@ -41,7 +41,10 @@ type t = { constants : ModelMap.t; functions : ModelMap.t; arrays : ModelMap.t; - objectives: (Expr.t * objective_value) Util.MI.t + objectives: (Expr.t * objective_value) Util.MI.t; + terms_values : (Shostak.Combine.r * string) Expr.Map.t + (** A map from terms to their values in the model (as a + representative of type X.r and as a string. *) } val output_concrete_model : t Fmt.t diff --git a/src/lib/reasoners/uf.ml b/src/lib/reasoners/uf.ml index 3773ae9ee1..ad3ced567e 100644 --- a/src/lib/reasoners/uf.ml +++ b/src/lib/reasoners/uf.ml @@ -1182,7 +1182,8 @@ let extract_concrete_model ~prop_model ~optimized_splits env = in let objectives = compute_objectives ~optimized_splits env mrepr in { Models.propositional = prop_model; - functions; constants; arrays; objectives } + functions; constants; arrays; objectives; + terms_values = mrepr } )) else None