--- a/src/HOL/Tools/Quickcheck/exhaustive_generators.ML Sat Nov 30 22:02:36 2024 +0100
+++ b/src/HOL/Tools/Quickcheck/exhaustive_generators.ML Sat Nov 30 22:33:21 2024 +0100
@@ -279,14 +279,12 @@
let
val (constr, args) = strip_comb t
val T = fastype_of t
+ val ctxt1 = fold Variable.declare_names (concl :: assms) ctxt
val vars =
- map Free
- (Variable.variant_frees ctxt (concl :: assms)
- (map (fn t => ("x", fastype_of t)) args))
+ map Free (Variable.variant_names ctxt1 (map (fn t => ("x", fastype_of t)) args))
val varnames = map (fst o dest_Free) vars
- val dummy_var =
- Free (singleton
- (Variable.variant_frees ctxt (concl :: assms @ vars)) ("dummy", T))
+ val ctxt2 = fold Variable.declare_names vars ctxt1
+ val dummy_var = Free (singleton (Variable.variant_names ctxt2) ("dummy", T))
val new_assms = map HOLogic.mk_eq (vars ~~ args)
val bound_vars' = union (op =) (vars_of lhs) (union (op =) varnames bound_vars)
val cont_t = mk_smart_test_term' concl bound_vars' (new_assms @ assms) genuine