src/HOL/Nat.thy
changeset 71588 f3fe59e61f3d
parent 71585 4b1021677f15
child 71836 c095d3143047
equal deleted inserted replaced
71587:3904cfde1aa9 71588:f3fe59e61f3d
  2456   by (fact mult_1_left)
  2456   by (fact mult_1_left)
  2457 
  2457 
  2458 lemma nat_mult_1_right: "n * 1 = n"
  2458 lemma nat_mult_1_right: "n * 1 = n"
  2459   for n :: nat
  2459   for n :: nat
  2460   by (fact mult_1_right)
  2460   by (fact mult_1_right)
       
  2461 
  2461 lemma diff_mult_distrib: "(m - n) * k = (m * k) - (n * k)"
  2462 lemma diff_mult_distrib: "(m - n) * k = (m * k) - (n * k)"
  2462   for k m n :: nat
  2463   for k m n :: nat
  2463   by (fact left_diff_distrib')
  2464   by (fact left_diff_distrib')
  2464 
  2465 
  2465 lemma diff_mult_distrib2: "k * (m - n) = (k * m) - (k * n)"
  2466 lemma diff_mult_distrib2: "k * (m - n) = (k * m) - (k * n)"
  2466   for k m n :: nat
  2467   for k m n :: nat
  2467   by (fact right_diff_distrib')
  2468   by (fact right_diff_distrib')
  2468 
  2469 
       
  2470 (*Used in AUTO2 and Groups.le_diff_conv2 (with variables renamed) doesn't work for some reason*)
       
  2471 lemma le_diff_conv2: "k \<le> j \<Longrightarrow> (i \<le> j - k) = (i + k \<le> j)"
       
  2472   for i j k :: nat
       
  2473   by (fact le_diff_conv2) 
       
  2474 
  2469 lemma diff_self_eq_0 [simp]: "m - m = 0"
  2475 lemma diff_self_eq_0 [simp]: "m - m = 0"
  2470   for m :: nat
  2476   for m :: nat
  2471   by (fact diff_cancel)
  2477   by (fact diff_cancel)
  2472 
  2478 
  2473 lemma diff_diff_left [simp]: "i - j - k = i - (j + k)"
  2479 lemma diff_diff_left [simp]: "i - j - k = i - (j + k)"