Symbolic Execution

`val node : (exn ‑> unit) ‑> InferModules.Exe_env.t ‑> InferIR.Tenv.t ‑> InferModules.ProcCfg.Exceptional.t ‑> InferModules.ProcCfg.Exceptional.Node.t ‑> InferModules.Paths.PathSet.t ‑> InferModules.Paths.PathSet.t`

Symbolic execution of the instructions of a node, lifted to sets of propositions.

`val instrs : ?⁠mask_errors:bool ‑> InferModules.Exe_env.t ‑> InferIR.Tenv.t ‑> InferIR.Procdesc.t ‑> InferIR.Instrs.not_reversed_t ‑> (InferModules.Prop.normal InferModules.Prop.t * InferModules.Paths.Path.t) list ‑> (InferModules.Prop.normal InferModules.Prop.t * InferModules.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 : InferModules.Prop.normal InferModules.Prop.t ‑> InferModules.Paths.Path.t ‑> (InferModules.Prop.normal InferModules.Prop.t * InferModules.Paths.Path.t) list`

Symbolic execution of the divergent pure computation.

`val proc_call : InferModules.Exe_env.t ‑> InferModules.Summary.t ‑> InferModules.Builtin.t`
`val unknown_or_scan_call : is_scan:bool ‑> reason:string ‑> InferIR.Typ.t ‑> InferIR.Annot.Item.t ‑> InferModules.Builtin.t`
`val check_variadic_sentinel : ?⁠fails_on_nil:bool ‑> int ‑> (int * int) ‑> InferModules.Builtin.t`
`val check_arith_norm_exp : InferIR.Tenv.t ‑> InferIR.Typ.Procname.t ‑> InferIR.Exp.t ‑> InferModules.Prop.normal InferModules.Prop.t ‑> InferIR.Exp.t * InferModules.Prop.normal InferModules.Prop.t`

Check for arithmetic problems and normalize an expression.

`val prune : InferIR.Tenv.t ‑> positive:bool ‑> InferIR.Exp.t ‑> InferModules.Prop.normal InferModules.Prop.t ‑> InferModules.Propset.t`