src/HOL/Computational_Algebra/Field_as_Ring.thy
changeset 66817 0b12755ccbb2
parent 65435 378175f44328
child 66838 17989f6bc7b2
equal deleted inserted replaced
66816:212a3334e7da 66817:0b12755ccbb2
    22 definition mod_field :: "'a \<Rightarrow> 'a \<Rightarrow> 'a"
    22 definition mod_field :: "'a \<Rightarrow> 'a \<Rightarrow> 'a"
    23   where [simp]: "mod_field x y = (if y = 0 then x else 0)"
    23   where [simp]: "mod_field x y = (if y = 0 then x else 0)"
    24 
    24 
    25 end
    25 end
    26 
    26 
    27 instantiation real :: unique_euclidean_ring
    27 instantiation real :: "{unique_euclidean_ring, normalization_euclidean_semiring}"
    28 begin
    28 begin
    29 
    29 
    30 definition [simp]: "normalize_real = (normalize_field :: real \<Rightarrow> _)"
    30 definition [simp]: "normalize_real = (normalize_field :: real \<Rightarrow> _)"
    31 definition [simp]: "unit_factor_real = (unit_factor_field :: real \<Rightarrow> _)"
    31 definition [simp]: "unit_factor_real = (unit_factor_field :: real \<Rightarrow> _)"
    32 definition [simp]: "euclidean_size_real = (euclidean_size_field :: real \<Rightarrow> _)"
    32 definition [simp]: "euclidean_size_real = (euclidean_size_field :: real \<Rightarrow> _)"
    53 
    53 
    54 instance by standard (simp_all add: gcd_real_def lcm_real_def Gcd_real_def Lcm_real_def)
    54 instance by standard (simp_all add: gcd_real_def lcm_real_def Gcd_real_def Lcm_real_def)
    55 
    55 
    56 end
    56 end
    57 
    57 
    58 instantiation rat :: unique_euclidean_ring
    58 instantiation rat :: "{unique_euclidean_ring, normalization_euclidean_semiring}"
    59 begin
    59 begin
    60 
    60 
    61 definition [simp]: "normalize_rat = (normalize_field :: rat \<Rightarrow> _)"
    61 definition [simp]: "normalize_rat = (normalize_field :: rat \<Rightarrow> _)"
    62 definition [simp]: "unit_factor_rat = (unit_factor_field :: rat \<Rightarrow> _)"
    62 definition [simp]: "unit_factor_rat = (unit_factor_field :: rat \<Rightarrow> _)"
    63 definition [simp]: "euclidean_size_rat = (euclidean_size_field :: rat \<Rightarrow> _)"
    63 definition [simp]: "euclidean_size_rat = (euclidean_size_field :: rat \<Rightarrow> _)"
    84 
    84 
    85 instance by standard (simp_all add: gcd_rat_def lcm_rat_def Gcd_rat_def Lcm_rat_def)
    85 instance by standard (simp_all add: gcd_rat_def lcm_rat_def Gcd_rat_def Lcm_rat_def)
    86 
    86 
    87 end
    87 end
    88 
    88 
    89 instantiation complex :: unique_euclidean_ring
    89 instantiation complex :: "{unique_euclidean_ring, normalization_euclidean_semiring}"
    90 begin
    90 begin
    91 
    91 
    92 definition [simp]: "normalize_complex = (normalize_field :: complex \<Rightarrow> _)"
    92 definition [simp]: "normalize_complex = (normalize_field :: complex \<Rightarrow> _)"
    93 definition [simp]: "unit_factor_complex = (unit_factor_field :: complex \<Rightarrow> _)"
    93 definition [simp]: "unit_factor_complex = (unit_factor_field :: complex \<Rightarrow> _)"
    94 definition [simp]: "euclidean_size_complex = (euclidean_size_field :: complex \<Rightarrow> _)"
    94 definition [simp]: "euclidean_size_complex = (euclidean_size_field :: complex \<Rightarrow> _)"