Module Goblint_constraint.ConstrSys

constraint system signatures.

module type SysVar = sig ... end
module type VarType = sig ... end
module Var2 (LV : VarType) (GV : VarType) : VarType with type t = [ `L of LV.t | `G of GV.t ]

Combined variables so that we can also use the more common EqConstrSys that uses only one kind of a variable.

type 'v sys_change_info = {
  1. obsolete : 'v list;
    (*

    Variables to destabilize.

    *)
  2. delete : 'v list;
    (*

    Variables to delete.

    *)
  3. reluctant : 'v list;
    (*

    Variables to solve reluctantly.

    *)
  4. restart : 'v list;
    (*

    Variables to restart.

    *)
}

Abstract incremental change to constraint system.

  • parameter 'v

    constrain system variable type

module type EqConstrSys = sig ... end

A side-effecting system.

module type GlobConstrSys = sig ... end

A side-effecting system with globals.

module CurrentVarEqConstrSys (S : EqConstrSys) : sig ... end

EqConstrSys where current_var indicates the variable whose right-hand side is currently being evaluated.