Module Biabduction__Abs

type rules

Abstraction rules discovered

val abstract : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t

Abstract a proposition.

val abstract_spec : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> Biabduction.Prop.normal Biabduction.BiabductionSummary.spec -> Biabduction.BiabductionSummary.NormSpec.t

Normalizes names and applies simplifications, soem of which require looking at both pre and post.

val abstract_junk : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t

Check whether the prop contains junk. If it does, and Config.allowleak is true, remove the junk, otherwise raise a Leak exception.

val abstract_no_symop : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t

Abstract a proposition but don't pay a SymOp

val get_current_rules : unit -> rules

Get the current rules discoveres

val lifted_abstract : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> Biabduction.Propset.t -> Biabduction.Propset.t

Abstract each proposition in propset

val remove_redundant_array_elements : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t

Remove redundant elements in an array, and check for junk afterwards

val reset_current_rules : unit -> unit

Reset the abstraction rules discovered

val set_current_rules : rules -> unit

Set the current rules discovered