src/HOL/NumberTheory/Chinese.thy
changeset 30240 5b25fee0362c
parent 29885 cdf12a1cb963
child 30242 aea5d7fa7ef5
     1.1 --- a/src/HOL/NumberTheory/Chinese.thy	Wed Mar 04 10:43:39 2009 +0100
     1.2 +++ b/src/HOL/NumberTheory/Chinese.thy	Wed Mar 04 10:45:52 2009 +0100
     1.3 @@ -90,10 +90,8 @@
     1.4      "k \<le> i --> i \<le> k + l --> mf i dvd funprod mf k l"
     1.5    apply (induct l)
     1.6     apply auto
     1.7 -    apply (rule_tac [1] zdvd_zmult2)
     1.8 -    apply (rule_tac [2] zdvd_zmult)
     1.9 -    apply (subgoal_tac "i = Suc (k + l)")
    1.10 -    apply (simp_all (no_asm_simp))
    1.11 +  apply (subgoal_tac "i = Suc (k + l)")
    1.12 +   apply (simp_all (no_asm_simp))
    1.13    done
    1.14  
    1.15  lemma funsum_mod:
    1.16 @@ -103,7 +101,7 @@
    1.17    apply (rule trans)
    1.18     apply (rule mod_add_eq)
    1.19    apply simp
    1.20 -  apply (rule zmod_zadd_right_eq [symmetric])
    1.21 +  apply (rule mod_add_right_eq [symmetric])
    1.22    done
    1.23  
    1.24  lemma funsum_zero [rule_format (no_asm)]:
    1.25 @@ -196,8 +194,8 @@
    1.26     apply (case_tac [2] "i = n")
    1.27      apply (simp_all (no_asm_simp))
    1.28      apply (case_tac [3] "j < i")
    1.29 -     apply (rule_tac [3] zdvd_zmult2)
    1.30 -     apply (rule_tac [4] zdvd_zmult)
    1.31 +     apply (rule_tac [3] dvd_mult2)
    1.32 +     apply (rule_tac [4] dvd_mult)
    1.33       apply (rule_tac [!] funprod_zdvd)
    1.34       apply arith
    1.35       apply arith
    1.36 @@ -217,8 +215,8 @@
    1.37    apply (subst funsum_mod)
    1.38    apply (subst funsum_oneelem)
    1.39       apply auto
    1.40 -  apply (subst zdvd_iff_zmod_eq_0 [symmetric])
    1.41 -  apply (rule zdvd_zmult)
    1.42 +  apply (subst dvd_eq_mod_eq_0 [symmetric])
    1.43 +  apply (rule dvd_mult)
    1.44    apply (rule x_sol_lin_aux)
    1.45    apply auto
    1.46    done
    1.47 @@ -238,20 +236,20 @@
    1.48    apply safe
    1.49      apply (tactic {* stac (thm "zcong_zmod") 3 *})
    1.50      apply (tactic {* stac (thm "mod_mult_eq") 3 *})
    1.51 -    apply (tactic {* stac (thm "zmod_zdvd_zmod") 3 *})
    1.52 -      apply (tactic {* stac (thm "x_sol_lin") 5 *})
    1.53 -        apply (tactic {* stac (thm "mod_mult_eq" RS sym) 7 *})
    1.54 -        apply (tactic {* stac (thm "zcong_zmod" RS sym) 7 *})
    1.55 -        apply (subgoal_tac [7]
    1.56 +    apply (tactic {* stac (thm "mod_mod_cancel") 3 *})
    1.57 +      apply (tactic {* stac (thm "x_sol_lin") 4 *})
    1.58 +        apply (tactic {* stac (thm "mod_mult_eq" RS sym) 6 *})
    1.59 +        apply (tactic {* stac (thm "zcong_zmod" RS sym) 6 *})
    1.60 +        apply (subgoal_tac [6]
    1.61            "0 \<le> xilin_sol i n kf bf mf \<and> xilin_sol i n kf bf mf < mf i
    1.62            \<and> [kf i * mhf mf n i * xilin_sol i n kf bf mf = bf i] (mod mf i)")
    1.63 -         prefer 7
    1.64 +         prefer 6
    1.65           apply (simp add: zmult_ac)
    1.66          apply (unfold xilin_sol_def)
    1.67 -        apply (tactic {* asm_simp_tac @{simpset} 7 *})
    1.68 -        apply (rule_tac [7] ex1_implies_ex [THEN someI_ex])
    1.69 -        apply (rule_tac [7] unique_xi_sol)
    1.70 -           apply (rule_tac [4] funprod_zdvd)
    1.71 +        apply (tactic {* asm_simp_tac @{simpset} 6 *})
    1.72 +        apply (rule_tac [6] ex1_implies_ex [THEN someI_ex])
    1.73 +        apply (rule_tac [6] unique_xi_sol)
    1.74 +           apply (rule_tac [3] funprod_zdvd)
    1.75              apply (unfold m_cond_def)
    1.76              apply (rule funprod_pos [THEN pos_mod_sign])
    1.77              apply (rule_tac [2] funprod_pos [THEN pos_mod_bound])