Module Bycase_ai


module Bycase_ai: sig .. end
bool array array -> (bool array array*bool array array) -> (bool array array*bool array array) Given a set of states and the bycase post-condition of an operation this function returns the new pre-condition after the call of the operation in the context of current_st.

val active_before_call : Kernel_function.t -> Data_for_aorai.Aorai_state.Set.t
val merge_opt : ('a -> 'b -> 'b -> 'b) -> 'a -> 'b option -> 'b option -> 'b option
val compose_range : Cil_types.term ->
Cil_types.term ->
Data_for_aorai.range -> Data_for_aorai.range -> Data_for_aorai.Range.t
val compose_bindings : Data_for_aorai.range Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t ->
Cil_datatype.Term.Map.key ->
Data_for_aorai.Range.t Cil_datatype.Term.Map.t ->
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t ->
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t
val compose_actions : Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t ->
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t ->
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t
val print_action_binding : Format.formatter ->
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t ->
unit
val update_action_call : Kernel_function.t ->
Cil_types.kinstr ->
Cil_types.kinstr ->
Kernel_function.t -> bool array array -> bool array array -> unit
val compose_assocs_post : bool array -> bool array array * bool array array -> bool array * bool array
val compose_assocs_pre : bool array ->
'a * bool array -> bool array array * 'b -> bool array * bool array
val mk_forward_composition : Kernel_function.t ->
Cil_types.kinstr ->
Cil_types.kinstr ->
Kernel_function.t ->
bool array array ->
bool array array ->
bool array array * bool array array -> bool array array * bool array array
bool array array -> (bool array array*bool array array) -> (bool array array*bool array array) Given a set of states and the bycase post-condition of an operation this function returns the new pre-condition after the call of the operation in the context of current_st.
val mk_backward_composition : bool array array ->
'a * bool array ->
bool array array * 'b -> bool array array * bool array array
bool array array -> (bool array*bool array) -> (bool array array*bool array array) -> (bool array array*bool array array) Given a set of states and the bycase post-condition of an operation this function returns the new pre-condition after the call of the operation in the context of current_st.
val merge_actions : Cil_types.kernel_function ->
Cil_types.kinstr ->
Cil_types.kinstr ->
Cil_types.kinstr -> bool array array -> bool array array -> unit
val compute_actions_invariant : Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t ->
Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t ->
bool * Data_for_aorai.Range.t Cil_datatype.Term.Map.t Cil_datatype.Term.Map.t
val update_loop_actions : Cil_types.kernel_function ->
Cil_types.kinstr ->
Cil_types.kinstr -> Cil_types.kinstr -> bool array array * 'a -> bool
val init_specification : unit -> unit
val tlval : Cil_types.term_lval -> Cil_types.term
val actions_to_range : Promelaast.single_action list ->
(Cil_types.term * (Cil_types.term * Data_for_aorai.range)) list
val update_actions_call_func : Kernel_function.t -> 'a * bool array array -> unit
val add_one : is_absolute:bool -> Data_for_aorai.range -> Data_for_aorai.range
val actions_to_range_step : Cil_types.kernel_function ->
Cil_types.kinstr ->
Promelaast.state ->
('a * Promelaast.single_action list) Promelaast.trans ->
(Cil_types.term * (Cil_types.term * Data_for_aorai.Range.t)) list
val update_actions_return_func : Kernel_function.t -> Cil_types.kinstr -> bool array array -> unit
val functions_pre_usecase : (string, Spec_tools.double_pre_post_bycase_t) Hashtbl.t
Global information on functions that are collected during each pass. These information are furthermore used to restrict pre or post-condition of fonctions according to their scope of use.
val functions_post_usecase : (string, Spec_tools.pre_post_bycase_t * Spec_tools.pre_post_bycase_t)
Hashtbl.t
val spec_modified : bool Pervasives.ref
class visit_propagating_pre_post_constraints_bycase : Promelaast.typed_automaton -> object .. end
This visitor requires that each function has a specification.
val propagates_pre_post_constraints_bycase : Cil_types.file -> string -> bool