You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
letadd_objectiveenvfnvalue=(* We have to add the term [fn] and its subterms as the MaxSMT syntax allows to optimize expressions that are not part of the current context. *)let expr = fn.Objective.Function.e inlet env = add_term env ~add_in_cs:false expr in(* Add the term for matching. *)let terms =Expr.Set.add expr env.terms inlet objectives =Objective.Model.add fn value env.objectives in
{ env with objectives; terms }
I don't think we introduce regressions while merging OptimAE as in the original PR, terms weren't added to CC(X).
It looks like terms that are used only inside an
optimize
statement are not added to the matching environment. Consider:We have:
This is incorrect. Uncommenting the tautology
(or (>= (myabs x) 0) (<= (myabs x) 0))
gives the following instead:Unsure whether this was always the case or if it is a regression introduced by #921.
The text was updated successfully, but these errors were encountered: