GeneratedIdentifiersmodule StringMap = HString.HStringMapmodule StringSet = HString.HStringSettype source = | Local| Input| Output| Ghost| ClockedOutput of LustreAst.exprOutput of an equation pulled out of a when-block branch; the expression is the (polarity-adjusted) conjunction of the enclosing when-block guards. Node calls in such an equation must be activated on that clock.
*)type t = {node_args : (HString.t * bool * LustreAst.lustre_type * LustreAst.expr) list;locals : LustreAst.lustre_type StringMap.t;free_constants : (HString.t * LustreAst.lustre_type) list;contract_calls : (Lib.position
* (Lib.position * NodeId.t) list
* LustreAst.contract_node_equation list)
StringMap.t;oracles : (HString.t * LustreAst.lustre_type * LustreAst.expr) list;ib_oracles : (HString.t * LustreAst.lustre_type) list;calls : (Lib.position
* HString.t
* LustreAst.expr
* LustreAst.expr
* HString.t option
* NodeId.t
* LustreAst.expr list
* LustreAst.expr list option
* bool)
list;refinement_type_constraints : (source
* Lib.position
* HString.t
* LustreAst.expr
* NodeId.t option)
list;selector_obligations : (Lib.position * HString.t * LustreAst.expr) list;empty_maps : (HString.t * LustreAst.lustre_type * LustreAst.lustre_type) list;empty_sets : (HString.t * LustreAst.lustre_type) list;map_element_updates : (HString.t
* LustreAst.expr
* LustreAst.expr
* LustreAst.expr
* HString.t
* LustreAst.lustre_type
* LustreAst.lustre_type)
list;map_subtractions : (HString.t
* LustreAst.expr
* LustreAst.expr
* HString.t
* LustreAst.lustre_type
* LustreAst.lustre_type)
list;set_insertions : (HString.t
* LustreAst.expr
* LustreAst.expr
* HString.t
* LustreAst.lustre_type)
list;set_binops : (HString.t
* LustreAst.expr
* LustreAst.expr
* HString.t
* LustreAst.binary_operator
* LustreAst.lustre_type)
list;expanded_variables : StringSet.t;equations : (LustreAst.typed_ident list
* (Lib.position * NodeId.t) list
* LustreAst.eq_lhs
* LustreAst.expr
* source option)
list;nonvacuity_props : StringSet.t;clocked_call_ties : (HString.t * HString.t option * HString.t * HString.t) list;Tuples (tie, init_tie, t, x) where x is a when-block variable whose off-branch holds its previous value, t is the local bound to the output of the node call activated on the when-block guard, tie is a generated boolean local defined as x = t, and init_tie, if any, is a generated boolean local defined as x = init, where init is the initial value of x. Used to generate candidate invariants tying the held variable to the (frozen) call output.
array_literal_vars : StringSet.t;expr_source_map : LustreAst.expr StringMap.t;prop_source_map : LustreAst.expr StringMap.t;type_ascription_exprs : LustreAst.expr NodeId.Map.t;history_vars : HString.t StringMap.t;}val ctr_id : HString.tval var_is_iboracle : HString.t -> boolChecks if a variable name corresponds to an iboracle
val var_is_discarded_output : HString.t -> boolChecks if a variable name corresponds to a discarded call-statement result
val var_is_last_local : HString.t -> boolChecks if a variable name corresponds to a 'last'-operator local
val empty : unit -> t