src/HOL/Algebra/poly/LongDiv.thy
author obua
Tue, 11 May 2004 20:11:08 +0200
changeset 14738 83f1a514dcb4
parent 14723 b77ce15b625a
child 15481 fc075ae929e4
permissions -rw-r--r--
changes made due to new Ring_and_Field theory
paulson@7998
     1
(*
paulson@7998
     2
    Experimental theory: long division of polynomials
paulson@7998
     3
    $Id$
paulson@7998
     4
    Author: Clemens Ballarin, started 23 June 1999
paulson@7998
     5
*)
paulson@7998
     6
obua@14723
     7
theory LongDiv = PolyHomo:
paulson@7998
     8
paulson@7998
     9
consts
ballarin@13735
    10
  lcoeff :: "'a::ring up => 'a"
obua@14723
    11
  eucl_size :: "'a::ring => nat"
paulson@7998
    12
paulson@7998
    13
defs
obua@14723
    14
  lcoeff_def: "lcoeff p == coeff p (deg p)"
obua@14723
    15
  eucl_size_def: "eucl_size p == (if p = 0 then 0 else deg p+1)"
obua@14723
    16
obua@14723
    17
lemma SUM_shrink_below_lemma:
obua@14723
    18
  "!! f::(nat=>'a::ring). (ALL i. i < m --> f i = 0) --> 
obua@14723
    19
  setsum (%i. f (i+m)) {..d} = setsum f {..m+d}"
obua@14723
    20
  apply (induct_tac d)
obua@14723
    21
  apply (induct_tac m)
obua@14723
    22
  apply (simp)
obua@14723
    23
  apply (force)
obua@14723
    24
  apply (simp)
obua@14738
    25
  apply (subst ab_semigroup_add.add_commute[of m])
obua@14723
    26
  apply (simp)
obua@14723
    27
  done
paulson@7998
    28
paulson@7998
    29
end
paulson@7998
    30