### Parameters

`T : TransferFunctions.MakeSIL`
`CFG : ProcCfg.S with type Node.t = InferIR.Procdesc.Node.t`

### Signature

`module I : sig ... end`
`module M = I.InvariantMap`
`val structured_program_to_cfg : StructuredSil.structured_instr InferStdlib.IStd.List.t ‑> InferIR.Typ.Procname.t ‑> InferIR.Procdesc.t * (StructuredSil.assertion * StructuredSil.label) M.t`
`val create_test : StructuredSil.structured_instr InferStdlib.IStd.List.t ‑> I.TransferFunctions.extras ‑> (F.formatter ‑> I.TransferFunctions.Domain.astate ‑> unit) InferStdlib.IStd.Option.t ‑> initial:I.TransferFunctions.Domain.astate ‑> InferIR.Typ.Procname.t ‑> 'a ‑> unit`
`val create_tests : ?⁠test_pname:InferIR.Typ.Procname.t ‑> initial:I.TransferFunctions.Domain.astate ‑> ?⁠pp_opt:(F.formatter ‑> I.TransferFunctions.Domain.astate ‑> unit) ‑> I.TransferFunctions.extras ‑> (string * StructuredSil.structured_instr InferStdlib.IStd.List.t) InferStdlib.IStd.List.t ‑> OUnit2.test InferStdlib.IStd.List.t`