equal
deleted
inserted
replaced
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 |