equal
deleted
inserted
replaced
1119 in |
1119 in |
1120 (case mk_eq_terms (upd $ k $ r) of |
1120 (case mk_eq_terms (upd $ k $ r) of |
1121 SOME (trm, trm', vars) => |
1121 SOME (trm, trm', vars) => |
1122 SOME |
1122 SOME |
1123 (prove_unfold_defs thy [] [] |
1123 (prove_unfold_defs thy [] [] |
1124 (list_all (vars, Logic.mk_equals (sel $ trm, trm')))) |
1124 (Logic.list_all (vars, Logic.mk_equals (sel $ trm, trm')))) |
1125 | NONE => NONE) |
1125 | NONE => NONE) |
1126 end |
1126 end |
1127 else NONE |
1127 else NONE |
1128 | _ => NONE)); |
1128 | _ => NONE)); |
1129 |
1129 |
1247 val noops' = maps snd (Symtab.dest noops); |
1247 val noops' = maps snd (Symtab.dest noops); |
1248 in |
1248 in |
1249 if simp then |
1249 if simp then |
1250 SOME |
1250 SOME |
1251 (prove_unfold_defs thy noops' [simproc] |
1251 (prove_unfold_defs thy noops' [simproc] |
1252 (list_all (vars, Logic.mk_equals (lhs, rhs)))) |
1252 (Logic.list_all (vars, Logic.mk_equals (lhs, rhs)))) |
1253 else NONE |
1253 else NONE |
1254 end); |
1254 end); |
1255 |
1255 |
1256 end; |
1256 end; |
1257 |
1257 |
1343 (case t of |
1343 (case t of |
1344 Const (@{const_name Ex}, Tex) $ Abs (s, T, t) => |
1344 Const (@{const_name Ex}, Tex) $ Abs (s, T, t) => |
1345 (let |
1345 (let |
1346 val eq = mkeq (dest_sel_eq t) 0; |
1346 val eq = mkeq (dest_sel_eq t) 0; |
1347 val prop = |
1347 val prop = |
1348 list_all ([("r", T)], |
1348 Logic.list_all ([("r", T)], |
1349 Logic.mk_equals |
1349 Logic.mk_equals |
1350 (Const (@{const_name Ex}, Tex) $ Abs (s, T, eq), @{term True})); |
1350 (Const (@{const_name Ex}, Tex) $ Abs (s, T, eq), @{term True})); |
1351 in |
1351 in |
1352 SOME (Skip_Proof.prove_global thy [] [] prop |
1352 SOME (Skip_Proof.prove_global thy [] [] prop |
1353 (fn _ => simp_tac (Simplifier.inherit_context ss (get_simpset thy) |
1353 (fn _ => simp_tac (Simplifier.inherit_context ss (get_simpset thy) |