src/HOL/Tools/quickcheck_generators.ML
changeset 37136 e0c9d3e49e15
parent 35845 e5980f0ad025
child 37591 d3daea901123
equal deleted inserted replaced
37135:636e6d8645d6 37136:e0c9d3e49e15
   186           let
   186           let
   187             val proj_simps = map (snd o snd) proj_defs;
   187             val proj_simps = map (snd o snd) proj_defs;
   188             fun tac { context = ctxt, prems = _ } =
   188             fun tac { context = ctxt, prems = _ } =
   189               ALLGOALS (simp_tac (HOL_ss addsimps proj_simps))
   189               ALLGOALS (simp_tac (HOL_ss addsimps proj_simps))
   190               THEN ALLGOALS (EqSubst.eqsubst_tac ctxt [0] [aux_simp])
   190               THEN ALLGOALS (EqSubst.eqsubst_tac ctxt [0] [aux_simp])
   191               THEN ALLGOALS (simp_tac (HOL_ss addsimps [fst_conv, snd_conv]));
   191               THEN ALLGOALS (simp_tac (HOL_ss addsimps [@{thm fst_conv}, @{thm snd_conv}]));
   192           in (map (fn prop => Skip_Proof.prove lthy [v] [] prop tac) eqs, lthy) end;
   192           in (map (fn prop => Skip_Proof.prove lthy [v] [] prop tac) eqs, lthy) end;
   193       in
   193       in
   194         lthy
   194         lthy
   195         |> random_aux_primrec aux_eq'
   195         |> random_aux_primrec aux_eq'
   196         ||>> fold_map Local_Theory.define proj_defs
   196         ||>> fold_map Local_Theory.define proj_defs