src/Tools/isac/Knowledge/GCD_Poly_ML.thy
changeset 52104 83166e7c7e52
parent 52101 c3f399ce32af
child 55474 ac8d8d15b9dc
     1.1 --- a/src/Tools/isac/Knowledge/GCD_Poly_ML.thy	Mon Sep 16 10:46:51 2013 +0200
     1.2 +++ b/src/Tools/isac/Knowledge/GCD_Poly_ML.thy	Mon Sep 16 11:28:43 2013 +0200
     1.3 @@ -658,14 +658,14 @@
     1.4  
     1.5  subsection {* gcd_poly algorithm, code for [1] p.95 *}
     1.6  ML {*
     1.7 -  fun gcd_monom (c1, es1) (c2, es2) = (Integer.gcd c1 c2, map2 Integer.min es1 es2)
     1.8 +  fun gcd_monom (c1, es1) (c2, es2) = (Integer.gcd c1 c2, map2 Integer.min es1 es2) 
     1.9  
    1.10    (* naming of n, M, m, r, ...  follows Winkler p. 95 
    1.11      assumes: n = length es1 = length es2
    1.12      r: *)
    1.13 -  fun gcd_poly' a [monom as (c, es)] _ _ = [fold gcd_monom a monom]
    1.14 -    | gcd_poly' [monom as (c, es)] b _ _ = [fold gcd_monom b monom]
    1.15 -    | gcd_poly' (a as (_, es1)::_ : poly) (b as (_, es2)::_ : poly) n r =
    1.16 +  fun gcd_poly' a [monom as (c, es)] _ _ = [fold gcd_monom a monom] 
    1.17 +    | gcd_poly' [monom as (c, es)] b _ _ = [fold gcd_monom b monom] 
    1.18 +    | gcd_poly' (a as (_, es1)::_ : poly) (b as (_, es2)::_ : poly) n r = 
    1.19        if lex_ord (lmonom b) (lmonom a) then gcd_poly' b a n r else
    1.20          if n > 1
    1.21          then