Td3.BaseSourcemodule HM : Batteries.Hashtbl.S with type key = S.vmodule UpdateRule : Td3UpdateRule.Sinclude sig ... endtype solver_data = {st : (S.Var.t * S.Dom.t) list;infl : VS.t HM.t;sides : VS.t HM.t;update_rule_data : UpdateRule.data;rho : S.Dom.t HM.t;wpoint_gas : int HM.t;Tracks the widening gas of both side-effected and non-side-effected variables. Although they may have different gas budgets, they can be in the same map since no side-effected variable may ever have a rhs.
*)stable : unit HM.t;side_dep : VS.t HM.t;Dependencies of side-effected variables. Knowing these allows restarting them and re-triggering all side effects.
*)side_infl : VS.t HM.t;Influences to side-effected variables. Not normally in infl, but used for restarting them.
var_messages : Messages.Message.t HM.t;Messages from right-hand sides of variables. Used for incremental postsolving.
*)rho_write : S.Dom.t HM.t HM.t;Side effects from variables to write-only variables with values. Used for fast incremental restarting of write-only variables.
*)dep : VS.t HM.t;Dependencies of variables. Inverse of infl. Used for fast pre-reachable pruning in incremental postsolving.
weak_dep : VS.t HM.t;Weak dependencies of variables via demand (if enabled).
}val solve :
(S.Var.t * S.Dom.t) list ->
HM.key list ->
solver_data option ->
S.Dom.t HM.t * solver_data