Bigraph.SolverUnified interface to external solvers.
val pp_solution :
Ppx_deriving_runtime.Format.formatter ->
solution ->
Ppx_deriving_runtime.unitval show_solution : solution -> Ppx_deriving_runtime.stringval pp_value :
Ppx_deriving_runtime.Format.formatter ->
value ->
Ppx_deriving_runtime.unitval show_value : value -> Ppx_deriving_runtime.stringtype nonrec occ = Solver_intf.occThe type of occurrences.
val occ_to_yojson : occ -> Yojson.Safe.tval occ_of_yojson : Yojson.Safe.t -> occ Ppx_deriving_yojson_runtime.error_orConstruct an occurrence from its components.
val pp_occ : Stdlib.Format.formatter -> occ -> unitval show_occ : occ -> stringmodule type E = Solver_intf.Emodule type S = Solver_intf.Smodule type M = Solver_intf.Mtype match_metrics = {mutable filtered_occs : int;mutable solver_vars : int;mutable solver_clauses : int;mutable solver_max_enc : int;mutable solver_max_clauses : int;mutable solver_matches : int;mutable solver_time_ms : float;mutable trivial_matches : int;}Accumulated metrics for matching operations. The solver_vars and solver_clauses fields total SAT encoding size across all matching calls; solver_max_enc tracks the largest single encoding (peak variable count); solver_max_clauses tracks the largest clause count in a single encoding; solver_matches counts encoding calls; solver_time_ms is total CPU time (milliseconds), measured by the solver's own C getrusage clock, spent inside SAT solve/solve_all calls, and is 0 under the GBS backend (which never invokes the SAT solver); trivial_matches counts matches resolved without SAT (1-2 node, no-edge patterns). Reset after reading via get_and_reset_metrics.
val get_and_reset_metrics : unit -> match_metricsRead accumulated matching metrics and reset the counter. Call after each model run to collect stats.
Enable or disable benchmark-metrics recording. Enabled only when the --metrics-json flag is requested, so an unrequested run performs no counter writes. Call before a model run.