src/HOL/Hyperreal/ex/Sqrt_Script.thy
changeset 13035 d3be9be2b307
parent 13029 84e4ba7fb033
child 13036 dca23533bdfb
equal deleted inserted replaced
13034:d7bb6e4f5f82 13035:d3be9be2b307
    21 lemma prime_dvd_other_side: "n * n = p * (k * k) \<Longrightarrow> p \<in> prime \<Longrightarrow> p dvd n"
    21 lemma prime_dvd_other_side: "n * n = p * (k * k) \<Longrightarrow> p \<in> prime \<Longrightarrow> p dvd n"
    22   apply (subgoal_tac "p dvd n * n", blast dest: prime_dvd_mult)
    22   apply (subgoal_tac "p dvd n * n", blast dest: prime_dvd_mult)
    23   apply (rule_tac j = "k * k" in dvd_mult_left, simp)
    23   apply (rule_tac j = "k * k" in dvd_mult_left, simp)
    24   done
    24   done
    25 
    25 
    26 lemma reduction:
    26 lemma reduction: "p \<in> prime \<Longrightarrow>
    27     "p \<in> prime \<Longrightarrow> 0 < k \<Longrightarrow> k * k = p * (j * j) \<Longrightarrow> k < p * j \<and> 0 < j"
    27     0 < k \<Longrightarrow> k * k = p * (j * j) \<Longrightarrow> k < p * j \<and> 0 < j"
    28   apply (rule ccontr)
    28   apply (rule ccontr)
    29   apply (simp add: linorder_not_less)
    29   apply (simp add: linorder_not_less)
    30   apply (erule disjE)
    30   apply (erule disjE)
    31    apply (frule mult_le_mono, assumption)
    31    apply (frule mult_le_mono, assumption)
    32    apply auto
    32    apply auto