Module Imandra_interactive.Modular_decomp

Modular decomp

module type S = Modular_decomp_intf.S
include S
type strategy = Imandra_interactive.Modular_decomp_intf.MD.strategy =
| Classic
| Tracing
type rec_expansion = Imandra_interactive.Modular_decomp_intf.MD.rec_expansion =
| Never
| Explicit
| Speculative
val n_regions : Modular_decomp_intf.decomp -> int
val n_regions_ref : ?scope:Modular_decomp_intf.scope -> Modular_decomp_intf.decomp_ref -> int

Get a concrete, ref-free, local version of the decomposition. This can incur serialization costs.

Obtain the region associated with this ID

val get_model : ?scope:Modular_decomp_intf.scope -> Modular_decomp_intf.region_ref -> Imandra_surface.Term.Model.t

Obtain a model for the region

val refine : ?scope:Modular_decomp_intf.scope -> Modular_decomp_intf.region_ref -> Imandra_surface.Term.t list -> Modular_decomp_intf.region_ref option

Refine a region with additional constraints *

val prune : ?scope:Modular_decomp_intf.scope -> ?use_jobs:bool -> ?hints:Imandra_surface.Uid.t Imandra_surface.Hints.t -> Modular_decomp_intf.decomp_ref -> Modular_decomp_intf.decomp_ref

Remove infeasible regions

val top : ?scope:Modular_decomp_intf.scope -> ?prune:bool -> ?prune_use_jobs:bool -> ?rule_specs:string list -> ?strategy:strategy -> ?rec_expansion:rec_expansion -> ?st:Modular_decomp_intf.mdstate_ref -> ?max_rounds:int -> ?stop_at:int -> ?assuming:string -> ?basis:string list -> ?ctx_simp:bool -> string -> Modular_decomp_intf.decomp_ref
val make : ?st:Modular_decomp_intf.mdstate_ref -> unit -> (module S)