ࡱ> acbf!( y/ 0DTimes New Roman0:A 0DComic Sans MSn0:A 0B Dcmsy10ans MSn0:A 0"E .  @n?" dd@  @@`` t" $ .+'  & $&(-!O0-----+;F:>@BF=#$))IL'*4SLPRNQ346=@CDLLL 0>;;;;;;;;;;;;;;;;;;  #    $$%&'()*+,c d0e0e    A A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||S"p33PP@8FlO ʚ;ʚ;g4jdjd :A 0ppp <4!d!dL$ 0 <4ddddL$ 0  <4BdBdL # 080___PPT10 ?X, DRichard Fateman CS 282 Lecture 9O = Hensel Interpolation Lecture 9#Recall our typical mapping from GCD.RStart in the lower right corner of this diagram with some image of a factorization~c(x)*h(x)=f(x) mod p ... we have c mod p, h mod p. (and f mod p) ... we want to know c and h over Z [x], in fact, over Z[x,y,z,...] as many variables as are necessary. note that here c(x) is the cofactor of f, (c=f/h), and h is the gcd(f,g). ALSO we ll sometimes need to trump up these --otherwise in general --false assumptions.. f(x) and h(x) are monic [leading coeff 1] f(x) and h(x) are  square-free . That is, f(x)=k2(x)*... is forbidden.,Z bn K?Aside.. Removing squared factors takes some effort, but not as much as factoring generally, so this is a good move if the problem is to find factors. Compared to taking a GCD, it is not such a clear win, but still, it must be done. Making the input monic by separating the content and primitive part, then dividing (in a finite field) by the leading coefficient; we must replace these factors, perhaps at considerable cost (the leading coefficient may be a polynomial in other variables!)Z8Recall p-adic notation  @ p-adic notation for polynomials 0Hensel Algorithms  9Starting up.. Algorithm :Step I ;Step II <Step III =Step III- observation >Step IV PL  ` ̙33` ` ff3333f` 333MMM` f` f` 3>?" dd@z?" dd@  " @ ` n?" dd@   @@``PR    @ ` `p>>  &(     6ī  "  `   T Click to edit Master title style! !$  0L  "    RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  0  "0P   @*   08  "0`P    B*   0  "0@P   B* lB  6DԔ"` `H  0޽h ? ̙33  icfp99+  @k(    6H ]  "p ]  T Click to edit Master title style! !  0Du  " `   ]  W#Click to edit Master subtitle style$ $  00]  "`P   @*   0]  "`0P  ]  B*   0]  "`0 ]  B* H  0޽h ? ̙330 0  @(    N\ ee T!    x*  A!!AAbb  N0]] ee  !   z*  A!!AAbbd  c $ ?%   4  N^ ee  A   RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  T ee jT    x*  A!!AAbb  T< ee j    z*  A!!AAbbH  0h݋ ? ̙3380___PPT10.|^ 08(    N ee T!    `*  A!!AAbb  N ee  !   b*  A!!AAbb  TL ee jT    `*  A!!AAbb  T ee j    b*  A!!AAbbH  0h݋ ? ̙3380___PPT10.| 0$(  r  S ,%] p ]  r  S &]  `   ]  H  0޽h ? ̙33  Ph2(  hr h S a]    `  ]  r h S a]    ]   h Hd] ?" @@ 0 2 h Hf] ?"  JGCD(F(x,y,z),G(x,y,z)) 2 h Hk] ?"   xGCD(Fp(x,0,0),Gp(x,0,0))D 2     h Hq] ?"  @  GCD(Fp(x,y,z),Gp(x,y,z))D 2      h Hx] ?"0 <H(x,y,z) 2   h H,}] ?"   S Hp(x,y,z). 2   h H ] ?" ` S Hp(x,0,0). 2 B  h ZDԔ?" B  h ZDԔ?"p00 B h ZDԔ?"p 8 @ p  h@ p B h ZDԔ?"@  B h ZDԔ?"@  B h ZDԔ?"@  B h ZDԔ?"p@ p B h ZDԔ?" 0 B h ZDԔ?" 0F @ p  h   B h ZDԔ?"@  B h ZDԔ?"@  B h ZDԔ?"@  B h ZDԔ?"p@ p B h ZDԔ?"p B h ZDԔ?"ppp H h 0޽h ? ̙33  0(  x  c $]    `  ]  x  c $]    ]  H  0޽h ? ̙33  0(  x  c $    `    x  c $      H  0޽h ? ̙33$  @d(  x  c $|]    `  ]    H] ?"Pp  &RIf p and N are integers, then the p-adic representation of N is (a0, a1, ..., am) where for i = 1, ...,m = we have ( p+1)/2d"ai<(p-1)/2 or here we will use.. 0d"ai<p N = a0p0 + a1p1 + ... + ampm For instance, the 3-adic representation of the integer 65 is (2,0,1,2).= 2+0*3+1*32+2*33 = 2+9+54 = 65 * 2B   Q        S  ,"iH  0޽h ? ̙33  F(  x  c $ڃ    `     H ?"Pp   We can extend this notion to polynomials. If p(x) and q(x) are polynomials (in x), then the p-adic representation of q is (a1, a2, ..., am) where for i=1, ..., m-1, ai is in an integer, am is a nonzero integer and q(x) = a0p(x)0 + a1p(x)1 + ... +amp(x)m For instance the (x-1)-adic representation of x3 is (1,3,3,1) = 1+ 3*(x-1)+3(x-1)2+1*(x-1)3 = 1+3x-3+3x2-6x+3+x3-3x2+3x-1 = x3 8 2~     "       0          ,^DH  0޽h ? ̙33  -(  x  c $]    `  ]  u  H ] ?"PpY UStart with a p-adic approximate and compute ever more accurate versions. When we get a high enough approximation pr we hope (or prove) it will be good over the integers. The original linear Hensel Construction lifts a factorization from mod pi to mod pi+1 at the ith step while the quadratic construction due to Zassenhaus lifts a factorization from mod (p2)i to mod (p2)i+1 That is, twice as many terms instead of one more term. Nevertheless, the linear version may require so much less computation at each step that it may be the algorithm of choice in lifting to a given power of a modulus. &V 2r      Z     P D. H  0޽h ? ̙33,  Pl(  x  c $    `     H| ?"PpR  .l Let u(x) be a monic polynomial . (As previously noted, this assumption is, in general, unwarranted. Since overcoming it makes the algorithm messy, we ignore it.) in Z[x] and assume v1(x) w1(x) = u(x) mod p and GCD (v1,w1) = 1 mod p where p is a prime. The algorithm computes a sequence of pairs of polynomials {(vi,wi)} such that vi(x) wi(x) = u(x) mod pi`m 2    _     >+H  0޽h ? ̙33z  *"`(  x  c $.    `     H|B ?"Pp `XP___PPT92*  Compute by means of the Extended Euclidean Algorithm generalized to polynomials, two polynomials a(x) and b(x) in Zp[x] such that (i) deg(a) < deg(w1) deg(b) < deg(v1) (a(x)v1 + b(x)w1 = u) mod p  2- 2 2t "     tQ8XxH  0޽h ? ̙33  h`p(  x  c $G    `   @  HH5 ?"PpR   Now suppose we are given (vi, wi) and we wish to compute (vi+1,wi+1). Compute a polynomial ci such that (pici(x) = vi(x)wi(x) - u(x)) mod pi+1 How hard is this? a multiply, subtraction, and division with remainderT 2          HP =  \8XxH  0޽h ? ̙33  ^V(  x  c $9    `   6  H ?"Pp  P Compute (by polynomial division of a(x)ci(x) by w1(x)) the quotient qi(x) and remainder ai(x) such that a(x)ci(x) = qi(x)w1(x) + ai(x) mod p and set bi(x) := (b(x)ci(x) + qi(x)v1(x)) mod p Observe that deg(ai).  8XxH  0޽h ? ̙33v   &  (  x  c $    `     H,* ?"Pp xV Set vi+1(x) := vi(x)-pibi(x) mod pi+1 wi+1(x) := wi(x)-piai(x) mod pi+1 Observe that, over the integers vi+1(x)wi+1(x) = vi(x)wi(x)- pi[ai(x)vi(x)+bi(x)wi(x)] + p2i ai(x)bi(x) = u(x) + pi ci(x) - pi[ci(x) +p di(x)] + p2i ai(x)bi(x) = u(x) - pi+1[di(x)-pi-1 ai(x)bi(x) that is, vi+1(x)wi+1(x) = u(x) mod pi+1 (QED),W 2              "                               >    ;8XxH  0޽h ? ̙33r`P/n!*M<y-79>3P]`#TRfkpt~}+ROZ>m Oh+'0t hp    (4<4Introduction to Programming Languages and Compilers Alex AikennlexRichard Fateman160Microsoft PowerPointamm@@P8@Qɵ-_@@5uG0g  :  -- @ !--'@Times New Roman-. :2 f"Richard Fateman CS 282 Lecture 9            ."System-@Times New Roman-.  2 1 .-@BComic Sans MS-. 2 F3Hensel .-@BComic Sans MS-. 2 F Interpolation  .-@BComic Sans MS-. 2  Lecture 9t .-՜.+,0(    On-screen ShowDigital Integrity, IncZ { Times New RomanComic Sans MScmsy10icfp99Hensel Interpolation$Recall our typical mapping from GCDSStart in the lower right corner of this diagram with some image of a factorization Aside.. Recall p-adic notation! p-adic notation for polynomialsHensel AlgorithmsStarting up.. AlgorithmStep IStep II Step IIIStep III- observationStep IV  Fonts UsedDesign Template Slide Titles '_k Richard FatemanRichard Fateman  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEGHIJKLMOPQRSTUWXYZ[\]`Root EntrydO)Current UserVSummaryInformation(FPowerPoint Document(DocumentSummaryInformation8NRoot EntrydO)K|dCurrent UserVSummaryInformation(FPowerPoint Document(  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEGHIJKLMOPQRSTU`*_kRichard J. FatemanRichard J. Fateman