src/HOL/Tools/Groebner_Basis/groebner.ML
changeset 33957 e9afca2118d4
parent 33955 fff6f11b1f09
child 35408 b48ab741683b
equal deleted inserted replaced
33956:6f549f5e7066 33957:e9afca2118d4
   897  let 
   897  let 
   898   val vars = filter (fn v => free_in v eq) evs
   898   val vars = filter (fn v => free_in v eq) evs
   899   val (qs,p) = isolate_monomials vars eq
   899   val (qs,p) = isolate_monomials vars eq
   900   val rs = ideal (qs @ ps) p 
   900   val rs = ideal (qs @ ps) p 
   901               (fn (s,t) => TermOrd.term_ord (term_of s, term_of t))
   901               (fn (s,t) => TermOrd.term_ord (term_of s, term_of t))
   902  in (eq,(uncurry take) (length qs, rs) ~~ vars)
   902  in (eq, take (length qs) rs ~~ vars)
   903  end;
   903  end;
   904  fun subst_in_poly i p = Thm.rhs_of (ring_normalize_conv (vsubst i p));
   904  fun subst_in_poly i p = Thm.rhs_of (ring_normalize_conv (vsubst i p));
   905 in
   905 in
   906  fun solve_idealism evs ps eqs =
   906  fun solve_idealism evs ps eqs =
   907   if null evs then [] else
   907   if null evs then [] else