src/HOL/NumberTheory/Gauss.thy
changeset 30034 60f64f112174
parent 27556 292098f2efdf
child 30837 3d4832d9f7e4
equal deleted inserted replaced
30031:bd786c37af84 30034:60f64f112174
    62   also have "\<dots> = p - 1" by simp
    62   also have "\<dots> = p - 1" by simp
    63   finally show ?thesis by simp
    63   finally show ?thesis by simp
    64 qed
    64 qed
    65 
    65 
    66 lemma p_eq: "p = (2 * (p - 1) div 2) + 1"
    66 lemma p_eq: "p = (2 * (p - 1) div 2) + 1"
    67   using zdiv_zmult_self2 [of 2 "p - 1"] by auto
    67   using div_mult_self1_is_id [of 2 "p - 1"] by auto
    68 
    68 
    69 
    69 
    70 lemma (in -) zodd_imp_zdiv_eq: "x \<in> zOdd ==> 2 * (x - 1) div 2 = 2 * ((x - 1) div 2)"
    70 lemma (in -) zodd_imp_zdiv_eq: "x \<in> zOdd ==> 2 * (x - 1) div 2 = 2 * ((x - 1) div 2)"
    71   apply (frule odd_minus_one_even)
    71   apply (frule odd_minus_one_even)
    72   apply (simp add: zEven_def)
    72   apply (simp add: zEven_def)
    73   apply (subgoal_tac "2 \<noteq> 0")
    73   apply (subgoal_tac "2 \<noteq> 0")
    74   apply (frule_tac b = "2 :: int" and a = "x - 1" in zdiv_zmult_self2)
    74   apply (frule_tac b = "2 :: int" and a = "x - 1" in div_mult_self1_is_id)
    75   apply (auto simp add: even_div_2_prop2)
    75   apply (auto simp add: even_div_2_prop2)
    76   done
    76   done
    77 
    77 
    78 
    78 
    79 lemma p_eq2: "p = (2 * ((p - 1) div 2)) + 1"
    79 lemma p_eq2: "p = (2 * ((p - 1) div 2)) + 1"