src/HOL/ex/Lagrange.thy
changeset 16568 e02fe7ae212b
parent 16417 9bc16273c2d4
child 16740 a5ae2757dd09
equal deleted inserted replaced
16567:1ff73dc29166 16568:e02fe7ae212b
    18 
    18 
    19 (* The following lemma essentially shows that every natural number is the sum
    19 (* The following lemma essentially shows that every natural number is the sum
    20 of four squares, provided all prime numbers are.  However, this is an
    20 of four squares, provided all prime numbers are.  However, this is an
    21 abstract theorem about commutative rings.  It has, a priori, nothing to do
    21 abstract theorem about commutative rings.  It has, a priori, nothing to do
    22 with nat.*)
    22 with nat.*)
       
    23 
       
    24 ML"Delsimprocs[ab_group_add_cancel.sum_conv, ab_group_add_cancel.rel_conv]"
    23 
    25 
    24 (*once a slow step, but now (2001) just three seconds!*)
    26 (*once a slow step, but now (2001) just three seconds!*)
    25 lemma Lagrange_lemma:
    27 lemma Lagrange_lemma:
    26  "!!x1::'a::comm_ring.
    28  "!!x1::'a::comm_ring.
    27   (sq x1 + sq x2 + sq x3 + sq x4) * (sq y1 + sq y2 + sq y3 + sq y4) =
    29   (sq x1 + sq x2 + sq x3 + sq x4) * (sq y1 + sq y2 + sq y3 + sq y4) =