Module Biabduction__Prover
- val atom_negate : IR.Tenv.t -> Biabduction.Predicates.atom -> Biabduction.Predicates.atom
- Negate an atom 
Ordinary Theorem Proving
- val check_equal : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> IR.Exp.t -> bool
- Check - prop |- exp1=exp2. Result- falsemeans "don't know".
- val check_disequal : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> IR.Exp.t -> bool
- Check whether - prop |- exp1!=exp2. Result- falsemeans "don't know".
- val check_atom : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> bool
- Check whether - prop |- a. Result- falsemeans "don't know".
- val check_inconsistency_base : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> bool
- Inconsistency checking ignoring footprint. 
- val check_inconsistency : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> bool
- Inconsistency checking. 
- val check_allocatedness : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> bool
- Check whether - prop |- allocated(exp).
- val is_root : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> IR.Exp.t -> Biabduction.Predicates.offset list option
- is_root prop base_exp expchecks whether- base_exp = exp.offlistfor some list of offsets- offlist. If so, it returns- Some(offlist). Otherwise, it returns- None. Assumes that- base_exppoints to the beginning of a structure, not the middle.
- val expand_hpred_pointer : IR.Tenv.t -> bool -> Biabduction.Predicates.hpred -> bool * bool * Biabduction.Predicates.hpred
- expand_hpred_pointer calc_index_frame hpredexpands- hpredif it is a |-> whose lhs is a Lfield or Lindex or ptr+off. Return- (changed, calc_index_frame', hpred')where- changedindicates whether the predicate has changed.
- val get_bounds : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> IR.IntLit.t option * IR.IntLit.t option
- Get upper and lower bounds of an expression, if any 
Abduction prover
- val check_implication : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Prop.exposed Biabduction.Prop.t -> bool
- check_implication p1 p2returns true if- p1|-p2
- type implication_result- =- |- ImplOK of check list * Biabduction.Predicates.subst * Biabduction.Predicates.subst * Biabduction.Predicates.hpred list * Biabduction.Predicates.atom list * Biabduction.Predicates.hpred list * Biabduction.Predicates.hpred list * Biabduction.Predicates.hpred list * (IR.Exp.t * IR.Exp.t) list * (IR.Exp.t * IR.Exp.t) list- |- ImplFail of check list
- val check_implication_for_footprint : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Prop.exposed Biabduction.Prop.t -> implication_result
- check_implication_for_footprint p1 p2returns- Some(sub, frame, missing)if- sub(p1 * missing) |- sub(p2 * frame)where- subis a substitution which instantiates the primed vars of- p1and- p2, which are assumed to be disjoint.
Cover: minimum set of pi's whose disjunction is equivalent to true
- val find_minimum_pure_cover : IR.Tenv.t -> (Biabduction.Predicates.atom list * 'a) list -> (Biabduction.Predicates.atom list * 'a) list option
- Find minimum set of pi's in - caseswhose disjunction covers true