284 val perm = var_perm (term_of elhs, erhs) andalso not (term_of elhs aconv erhs) |
284 val perm = var_perm (term_of elhs, erhs) andalso not (term_of elhs aconv erhs) |
285 andalso not (is_Var (term_of elhs)) |
285 andalso not (is_Var (term_of elhs)) |
286 in (sign, prems, term_of lhs, elhs, term_of rhs, perm) end; |
286 in (sign, prems, term_of lhs, elhs, term_of rhs, perm) end; |
287 |
287 |
288 fun decomp_simp' thm = |
288 fun decomp_simp' thm = |
289 let val (_, _, _, elhs, rhs, _) = decomp_simp thm in |
289 let val (_, _, lhs, _, rhs, _) = decomp_simp thm in |
290 if Thm.nprems_of thm > 0 then raise SIMPLIFIER ("Bad conditional rewrite rule", thm) |
290 if Thm.nprems_of thm > 0 then raise SIMPLIFIER ("Bad conditional rewrite rule", thm) |
291 else (term_of elhs, rhs) |
291 else (lhs, rhs) |
292 end; |
292 end; |
293 |
293 |
294 fun mk_eq_True (Mss{mk_rews={mk_eq_True,...},...}) thm = |
294 fun mk_eq_True (Mss{mk_rews={mk_eq_True,...},...}) thm = |
295 case mk_eq_True thm of |
295 case mk_eq_True thm of |
296 None => [] |
296 None => [] |