equal
deleted
inserted
replaced
1280 local |
1280 local |
1281 open Conv |
1281 open Conv |
1282 fun simple_cterm_ord t u = Term_Ord.fast_term_ord (term_of t, term_of u) = LESS |
1282 fun simple_cterm_ord t u = Term_Ord.fast_term_ord (term_of t, term_of u) = LESS |
1283 val concl = Thm.dest_arg o cprop_of |
1283 val concl = Thm.dest_arg o cprop_of |
1284 val shuffle1 = |
1284 val shuffle1 = |
1285 fconv_rule (rewr_conv @{lemma "(a + x == y) == (x == y - (a::real))" by (atomize (full)) (simp add: ring_simps) }) |
1285 fconv_rule (rewr_conv @{lemma "(a + x == y) == (x == y - (a::real))" by (atomize (full)) (simp add: field_simps) }) |
1286 val shuffle2 = |
1286 val shuffle2 = |
1287 fconv_rule (rewr_conv @{lemma "(x + a == y) == (x == y - (a::real))" by (atomize (full)) (simp add: ring_simps)}) |
1287 fconv_rule (rewr_conv @{lemma "(x + a == y) == (x == y - (a::real))" by (atomize (full)) (simp add: field_simps)}) |
1288 fun substitutable_monomial fvs tm = case term_of tm of |
1288 fun substitutable_monomial fvs tm = case term_of tm of |
1289 Free(_,@{typ real}) => if not (member (op aconvc) fvs tm) then (Rat.one,tm) |
1289 Free(_,@{typ real}) => if not (member (op aconvc) fvs tm) then (Rat.one,tm) |
1290 else raise Failure "substitutable_monomial" |
1290 else raise Failure "substitutable_monomial" |
1291 | @{term "op * :: real => _"}$c$(t as Free _ ) => |
1291 | @{term "op * :: real => _"}$c$(t as Free _ ) => |
1292 if RealArith.is_ratconst (Thm.dest_arg1 tm) andalso not (member (op aconvc) fvs (Thm.dest_arg tm)) |
1292 if RealArith.is_ratconst (Thm.dest_arg1 tm) andalso not (member (op aconvc) fvs (Thm.dest_arg tm)) |