Swal.StatsGlobal statistics accumulator, written to SWAL-<uuid>.json at end of run.
type total = {teacher : Teacher.stats;Cumulative membership / equivalence query counts.
*)time : Utils.Profiler.t;Cumulative wall-clock time per phase.
*)}Accumulated statistics for the entire learning run, written to the output JSON.
val pp_total :
Ppx_deriving_runtime.Format.formatter ->
total ->
Ppx_deriving_runtime.unitval show_total : total -> Ppx_deriving_runtime.stringval yojson_of_total : total -> Ppx_yojson_conv_lib.Yojson.Safe.ttype round = {teacher : Teacher.stats;Query counts for this round.
*)time : Utils.Profiler.t;Wall-clock time for this round.
*)hyp : Automata.WFA.stats;Size and structure of the hypothesis WFA.
*)smt : Solver.stats Base.option;SMT solver internal statistics (SWAL only).
*)}Per-round statistics (one entry per equivalence query / hypothesis).
val pp_round :
Ppx_deriving_runtime.Format.formatter ->
round ->
Ppx_deriving_runtime.unitval show_round : round -> Ppx_deriving_runtime.stringval yojson_of_round : round -> Ppx_yojson_conv_lib.Yojson.Safe.ttype t = {timestamp : Utils.Time.t;Wall-clock time at the start of the run.
*)rounds : round Base.list;One entry per learning round (equivalence query).
*)total : total;}Top-level stats record written to SWAL-<uuid>.json.
val pp :
Ppx_deriving_runtime.Format.formatter ->
t ->
Ppx_deriving_runtime.unitval show : t -> Ppx_deriving_runtime.stringval yojson_of_t : t -> Ppx_yojson_conv_lib.Yojson.Safe.tval stats : t option Base.refGlobal mutable stats cell, initialized once by mk and mutated by add.
val get : unit -> tval set : t -> Base.unitval add :
Automata.WFA.stats ->
Solver.stats Base.option ->
Teacher.stats ->
roundadd hyp smt teacher snapshots the profiler lap and teacher stats, appends a new round record, and accumulates into the totals. Returns the new round for immediate logging.