src/HOL/Groebner_Basis.thy
changeset 30510 4120fc59dd85
parent 30242 aea5d7fa7ef5
child 30549 d2d7874648bd
equal deleted inserted replaced
30509:e19d5b459a61 30510:4120fc59dd85
   251 
   251 
   252 use "Tools/Groebner_Basis/normalizer.ML"
   252 use "Tools/Groebner_Basis/normalizer.ML"
   253 
   253 
   254 
   254 
   255 method_setup sring_norm = {*
   255 method_setup sring_norm = {*
   256   Method.ctxt_args (fn ctxt => Method.SIMPLE_METHOD' (Normalizer.semiring_normalize_tac ctxt))
   256   Method.ctxt_args (SIMPLE_METHOD' o Normalizer.semiring_normalize_tac)
   257 *} "semiring normalizer"
   257 *} "semiring normalizer"
   258 
   258 
   259 
   259 
   260 locale gb_field = gb_ring +
   260 locale gb_field = gb_ring +
   261   fixes divide :: "'a \<Rightarrow> 'a \<Rightarrow> 'a"
   261   fixes divide :: "'a \<Rightarrow> 'a \<Rightarrow> 'a"
   429 in
   429 in
   430 fn src => Method.syntax 
   430 fn src => Method.syntax 
   431     ((Scan.optional (keyword addN |-- thms) []) -- 
   431     ((Scan.optional (keyword addN |-- thms) []) -- 
   432     (Scan.optional (keyword delN |-- thms) [])) src 
   432     (Scan.optional (keyword delN |-- thms) [])) src 
   433  #> (fn ((add_ths, del_ths), ctxt) => 
   433  #> (fn ((add_ths, del_ths), ctxt) => 
   434        Method.SIMPLE_METHOD' (Groebner.algebra_tac add_ths del_ths ctxt))
   434        SIMPLE_METHOD' (Groebner.algebra_tac add_ths del_ths ctxt))
   435 end
   435 end
   436 *} "solve polynomial equations over (semi)rings and ideal membership problems using Groebner bases"
   436 *} "solve polynomial equations over (semi)rings and ideal membership problems using Groebner bases"
   437 declare dvd_def[algebra]
   437 declare dvd_def[algebra]
   438 declare dvd_eq_mod_eq_0[symmetric, algebra]
   438 declare dvd_eq_mod_eq_0[symmetric, algebra]
   439 declare mod_div_trivial[algebra]
   439 declare mod_div_trivial[algebra]