Symbolic Execution
val node : (exn ‑> unit) ‑> Exe_env.t ‑> InferIR.Tenv.t ‑> ProcCfg.Exceptional.t ‑> ProcCfg.Exceptional.Node.t ‑> Paths.PathSet.t ‑> Paths.PathSet.t
Symbolic execution of the instructions of a node, lifted to sets of propositions.
val instrs : ?mask_errors:bool ‑> Exe_env.t ‑> InferIR.Tenv.t ‑> InferIR.Procdesc.t ‑> InferIR.Instrs.not_reversed_t ‑> (Prop.normal Prop.t * Paths.Path.t) list ‑> (Prop.normal Prop.t * Paths.Path.t) list
Symbolic execution of a sequence of instructions.
If errors occur and mask_errors
is true, just treat as skip.
val diverge : Prop.normal Prop.t ‑> Paths.Path.t ‑> (Prop.normal Prop.t * Paths.Path.t) list
Symbolic execution of the divergent pure computation.
val unknown_or_scan_call : is_scan:bool ‑> reason:string ‑> InferIR.Typ.t ‑> InferIR.Annot.Item.t ‑> Builtin.t
val check_variadic_sentinel : ?fails_on_nil:bool ‑> int ‑> (int * int) ‑> Builtin.t
val check_arith_norm_exp : InferIR.Tenv.t ‑> InferIR.Typ.Procname.t ‑> InferIR.Exp.t ‑> Prop.normal Prop.t ‑> InferIR.Exp.t * Prop.normal Prop.t
Check for arithmetic problems and normalize an expression.
val prune : InferIR.Tenv.t ‑> positive:bool ‑> InferIR.Exp.t ‑> Prop.normal Prop.t ‑> Propset.t