LustreGlobalsGlobal declarations for Lustre input
module HStringMap = HString.HStringMaptype state_var_bounds =
LustreExpr.expr LustreExpr.bound_or_fixed list StateVar.StateVarHashtbl.ttype adt_info = {disc_field : HString.t;ctor_fields : (HString.t * adt_field_info) list HStringMap.t;is_recursive : bool;}type adt_map = adt_info HStringMap.ttype t = {free_constants : (LustreIdent.t * Var.t LustreIndex.t * bool) list;Free constants: ident, variable index, is_generated
*)state_var_bounds : state_var_bounds;Register bounds of state variables for later use
*)global_constraints : LustreExpr.t list;Constraints on free constants
*)adt_map : adt_map;ADT type metadata for counterexample reconstruction
*)recursive_datatypes : Type.t list;Recursive ADTs, in dependency order
*)adt_junk_ufs : UfSymbol.t list;Uninterpreted functions giving a selector applied to an ADT value built with another constructor its (arbitrary, fixed) value
*)adt_global_constraints : LustreExpr.t list;Canonical-form constraints of the free constants of a type involving an ADT (see LustreDesugarADTs.mk_canonical_exprs); a system only needs those of the constants some node mentions
}