(* Validate and record the best results obtained so far *) open Ast let initial_character = ref [] let best_character = ref [] let best_score = ref max_int let init c = initial_character := c; best_character := c; best_score := size_character c let get_best_character () = !best_character (* Record the best character seen so far *) let record_attempt c = let s = size_character c in if s < !best_score then begin (** pretty_character c; print_newline(); **) prerr_string "Recording character of size "; prerr_int s; prerr_string "..."; flush stderr; if Randomtest.test !initial_character c then begin prerr_endline " passed randomized equivalence test"; best_character := c; best_score := s end else prerr_endline " FAILED randomized equivalence test, discarding it" end