InputSystemDelegate to concrete functions for input formats.
All functionality outside this module should be agnostic of the input format, with the exception of modules specialized to a particular input. Only here we distinguish the actual input format and delegate to the respective functions.
val read_input_lustre : bool -> string -> LustreNode.t t optionread_input_lustre only_parse filename read input from filename and returns None if only_parse is true, or an input system otherwise.
See LustreInput.of_file for potential exceptions thrown by this function.
val read_input_native : string -> TransSys.t tRead native input from file
val read_input_moxi : string -> TransSys.t t optionRead MoXI input from file
Returns the scopes of all the systems in an input systems, in topological order.
val analyzable_subsystems : 'a t -> 'a SubSystem.t listval maximal_abstraction_for_testgen :
'a t ->
Scope.t ->
Analysis.assumptions ->
Analysis.param optionReturns the analysis param for top that abstracts all its abstractable subsystems if top has a contract with modes.
val next_analysis_of_strategy :
'a t ->
Analysis.results ->
Analysis.param optionReturn the next system to analyze and the systems to abstract
val interpreter_param : 'a t -> Analysis.paramval monitor_param : 'a t -> Analysis.paramval mcs_params : 'a t -> Analysis.param listval contract_check_params : 'a t -> (Analysis.param * bool) listReturn analysis parameters for all systems without an implementation
If the system has a contract, the boolean argument is true
val moxi_params : 'a t -> Analysis.param listval trans_sys_of_analysis :
?preserve_sig:bool ->
?slice_nodes:Flags.slice_nodes ->
?add_functional_constraints:bool ->
?slice_to_prop:Property.t ->
'a t ->
Analysis.param ->
TransSys.t * 'a tReturn a transition system for an analysis run
val pp_print_path_pt :
?full_contract:bool ->
?prop_name:string ->
_ t ->
TransSys.t ->
bool ->
Stdlib.Format.formatter ->
Model.path ->
unitOutput a path in the input system
val pp_print_path_xml :
?prop_name:string ->
_ t ->
TransSys.t ->
bool ->
Stdlib.Format.formatter ->
Model.path ->
unitOutput a path in the input system. prop_name names the property a counterexample belongs to, if any; see LustrePath.pp_print_path_xml.
val pp_print_path_json :
?prop_name:string ->
_ t ->
TransSys.t ->
bool ->
Stdlib.Format.formatter ->
Model.path ->
unitOutput a path in the input system
val pp_print_path_json_testgen :
_ t ->
TransSys.t ->
bool ->
Stdlib.Format.formatter ->
Model.path ->
unitOutput a path in the input system. The format for this path is the same format that the Interpreter module expects as input.
val pp_print_path_in_csv :
_ t ->
TransSys.t ->
bool ->
Stdlib.Format.formatter ->
Model.path ->
unitOutput a model as a sequnce of inputs in CSV.
val pp_print_subsystems_debug : Stdlib.Format.formatter -> 'a t -> unitOutput all subsystems of the input system *
val pp_print_state_var_instances_debug :
Stdlib.Format.formatter ->
'a t ->
unitval pp_print_state_var_defs_debug : Stdlib.Format.formatter -> 'a t -> unitval lustre_definitions_of_state_var :
'a t ->
StateVar.t ->
LustreNode.state_var_def list * LustreNode.state_var_def listval lustre_source_ast : 'a t -> LustreAst.tval pp_print_term_as_expr :
_ t ->
TransSys.t ->
Stdlib.Format.formatter ->
Term.t ->
unitval slice_to_abstraction : 'a t -> Analysis.param -> TransSys.t -> 'a tval slice_to_abstraction_and_property :
'a t ->
Analysis.param ->
TransSys.t ->
(StateVar.t * Model.value list) list ->
Property.t ->
TransSys.t
* TransSys.instance list
* (StateVar.t * Model.value list) list
* Term.t
* 'a tval retrieve_lustre_nodes : _ t -> LustreNode.t listval retrieve_lustre_nodes_of_scope : _ t -> Scope.t -> LustreNode.t listtrue if the model has a call applied to quantified variables, which is compiled to an application of the functional symbol of the callee rather than to an instance of it (see GeneratedIdentifiers.t.qcalls). The analyses that build their system without functional constraints have nothing to interpret such a call with, and decline a model that has one.
val get_lustre_node : _ t -> Scope.t -> LustreNode.t optionReturn the lustre node associated to the given scope, or None if there is no lustre node associated to that scope
val reconstruct_lustre_streams :
_ t ->
StateVar.t list ->
(StateVar.t * (LustreIdent.t * int * LustreNode.call_cond list) list) list
StateVar.StateVarMap.tval mk_state_var_to_lustre_name_map :
_ t ->
StateVar.t list ->
string StateVar.StateVarMap.tReturns a map from state variables to lustre-like names
val call_state_var_to_lustre_reference :
_ t ->
StateVar.t list ->
string StateVar.StateVarMap.tReturns a map from call state variables to lustre-like names
val is_lustre_input : _ t -> boolval is_moxi_input : _ t -> boolval contract_gen_param :
_ t ->
Scope.t ->
Analysis.param * (Scope.t -> LustreNode.t)Parameter for contract generation.
val state_var_dependencies :
_ t ->
StateVar.StateVarSet.t StateVar.StateVarMap.t Scope.Map.tReturn the set of dependencies of each state variable for all systems
val get_bv_sizes : _ t -> IntSet.tval get_ubv_sizes : _ t -> IntSet.tval get_node_internal_name : _ t -> Scope.t -> LustreIdent.tval get_node_user_name : _ t -> Scope.t -> LustreIdent.t