**** ** PowerPoint

BETTER LIST DECODING
FOR REED SOLOMON CODES
Multiplicity
‫ריבוי‬
‫ריבוי בנקודה ‪ 0‬בפונקציות עם משתנה אחד‬
‫• הגדרה ראשונה‪:‬‬
‫סימון‪𝑚𝑢𝑙𝑡 𝑓,0 :‬‬
‫ריבוי של 𝑓 בנקודה ‪ , 0‬הוא מספר הפעמים ש𝑥 מחלק את 𝑓 ‪.‬‬
‫כלומר‪ ,‬ה𝑘 המקסימלי כך ש 𝑓 | 𝑘 𝑥‬
‫דוגמאות‪:‬‬
‫• 𝑥= 𝑥 𝑓‬
‫‪𝑚𝑢𝑙𝑡 𝑓, 𝑜 = 1‬‬
‫• ‪𝑓 𝑥 = 𝑥 10‬‬
‫‪→ 𝑚𝑢𝑙𝑡 𝑓,0 =10‬‬
‫‪10‬‬
‫‪𝑓 𝑥 = 𝑥−0 𝑥−0 … 𝑥−0 = 𝑥−0‬‬
‫• ‪𝑓 𝑥 = 𝑥 10 + 𝑥 4‬‬
‫‪𝑓 𝑥 = 𝑥 4 (𝑥 6 + 1) → 𝑚𝑢𝑙𝑡 𝑓,0 =4‬‬
‫• הגדרה שנייה‪:‬‬
‫‪ 𝑓 𝑘 0 = 0‬עבור ‪0 ≤ 𝑘 ≤ 𝑚𝑢𝑙𝑡 𝑓,0 − 1‬‬
‫וגם ‪0 ≠ 0‬‬
‫‪𝑓,0‬‬
‫𝑡𝑙𝑢𝑚 𝑓‬
‫דוגמא‪:‬‬
‫‪ 𝑓 𝑥 = 𝑥 4‬כפי שראינו מההגדרה הראשונה ‪𝑚𝑢𝑙𝑡 𝑓,𝑜 = 4‬‬
‫נסתכל על הנגזרות הראשונות של 𝑓‪:‬‬
‫𝟎= 𝟎 𝒇‬
‫𝟒𝒙 = 𝒙 𝒇‬
‫‪𝒇𝟏 0 = 0‬‬
‫𝟑𝒙𝟒 = 𝒙 𝟏𝒇‬
‫‪𝒇𝟐 0 = 0‬‬
‫𝟐𝒙)𝟑 ∗ 𝟒( = 𝒙 𝟐𝒇‬
‫‪𝒇𝟑 0 = 0‬‬
‫𝒙)𝟐 ∗ 𝟑 ∗ 𝟒( = 𝒙 ‪𝒇3‬‬
‫‪𝒇𝟒 0 = 4! ≠ 0‬‬
‫)𝟏 ∗ 𝟐 ∗ 𝟑 ∗ 𝟒( = 𝒙 ‪𝒇4‬‬
‫• הגדרה שלישית‪:‬‬
‫נסתכל על ייצוג ‪ normal form‬של הפולינום ‪𝑓 𝑥 = 𝑎𝑖 𝑥 𝑖 :‬‬
‫כמות המקדמים 𝑖𝑎 החסרים עד למקדם הראשון עבורו ‪𝑎𝑖 ≠ 0‬‬
‫שווה לריבוי 𝑓 בנקודה ‪.0‬‬
‫דוגמאות‪:‬‬
‫‪𝑓 𝑥 = 𝑥4‬‬
‫) 𝑥 𝑓(‪0 ≤ 𝑖 ≤ deg‬‬
‫‪𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑋) = 𝟎 ∗ 𝑥 0 + 𝟎 ∗ 𝑥 1 + 𝟎 ∗ 𝑥 2 + 𝟎 ∗ 𝑥 3 + 𝟏 ∗ 𝑥 4‬‬
‫‪𝑓 𝑥 = 𝑥4 + 𝑥2‬‬
‫‪𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑋) = 𝟎 ∗ 𝑥 0 + 𝟎 ∗ 𝑥 1 + 𝟏 ∗ 𝑥 2 + 0 ∗ 𝑥 3 + 1 ∗ 𝑥 4‬‬
‫‪= 𝑥 2 − 4𝑥 + 4‬‬
‫‪2‬‬
‫‪𝑓 𝑥 = 𝑥−2‬‬
‫‪𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑋) = 𝟒 ∗ 𝑥 0 − 4 ∗ 𝑥 1 + 1 ∗ 𝑥 2‬‬
‫ריבוי בנקודה ‪ a‬בפונקציות עם משתנה אחד‬
‫• הגדרה ראשונה‪:‬‬
‫סימון‪𝑚𝑢𝑙𝑡 𝑓,𝑎 :‬‬
‫ריבוי של 𝑓 בנקודה 𝑎 ‪ ,‬הוא מספר הפעמים ש 𝑎 ‪ 𝑥 −‬מחלק את 𝑓 ‪.‬‬
‫כלומר‪ ,‬ה𝑘 המקסימלי כך ש 𝑓 | 𝑘 𝑎 ‪𝑥 −‬‬
‫הערה‪ :‬קל לראות את המחלקים של 𝑓 כאשר הפולינום מופיע בצורת ‪.Factored Form‬‬
‫דוגמא‪:‬‬
‫‪𝑓 𝑥 = 𝑥 3 + 2𝑥 2 − 7𝑥 + 4 = 𝑥 + 4 𝑥 − 1 2‬‬
‫‪𝑚𝑢𝑙𝑡 𝑓, 1 = 2‬‬
‫‪𝑚𝑢𝑙𝑡 𝑓, −4 = 1‬‬
‫• הגדרה שנייה‪:‬‬
‫‪ 𝑓 𝑘 𝑎 = 0‬עבור ‪0 ≤ 𝑘 ≤ 𝑚𝑢𝑙𝑡 𝑓,𝑎 − 1‬‬
‫וגם ‪𝑎 ≠ 0‬‬
‫𝑎‪𝑓,‬‬
‫𝑡𝑙𝑢𝑚 𝑓‬
‫דוגמא‪:‬‬
‫‪𝑓 𝑥 = 𝑥 3 + 2𝑥 2 − 7𝑥 + 4 = 𝑥 + 4 𝑥 − 1 2‬‬
‫נסתכל על הנגזרות הראשונות של 𝑓‪:‬‬
‫‪𝑓 1 =0‬‬
‫‪𝑓 −4 = 0‬‬
‫‪𝑓1 1 = 0‬‬
‫‪𝑓 1 −4 = 6 ≠ 0‬‬
‫‪𝑓 2 1 = 10 ≠ 0‬‬
‫‪𝑓 𝑥 = 𝑥 3 + 2𝑥 2 − 7𝑥 + 4‬‬
‫‪𝑓 1 𝑥 = 3x 2 + 4x − 7‬‬
‫‪𝑓 2 𝑥 = 6x + 4‬‬
‫‪𝑓3 𝑥 = 6‬‬
‫• הגדרה שלישית‪:‬‬
‫נסתכל על ייצוג ‪ normal form‬של הפולינום בנקודה 𝑎 ‪𝑏𝑖 (𝑥)𝑖 : 𝑥 +‬‬
‫כמות המקדמים 𝑖𝑏 החסרים עד למקדם הראשון עבורו ‪𝑏𝑖 ≠ 0‬‬
‫שווה לריבוי 𝑓 בנקודה 𝑎‪.‬‬
‫דוגמאות‪:‬‬
‫‪𝑓 𝑥 = 𝑥 − 3 𝑥 + 2 3 = 𝑥 4 + 3𝑥 3 − 6𝑥 2 − 28𝑥 − 24‬‬
‫נרצה לבדוק את הריבוי בנקודה ‪: 𝑎 = −2‬‬
‫‪= 𝑥 − 5 𝑥 3 = 𝑥 4 − 5𝑥 3‬‬
‫‪3‬‬
‫= 𝑎‪𝑓 𝑥+‬‬
‫) 𝑥 𝑓(‪0 ≤ 𝑖 ≤ deg‬‬
‫‪𝑓 𝑥 − 2 = (𝑥 − 2) − 3 (𝑥 − 2) + 2‬‬
‫‪𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑥 − 2) = 𝟎 ∗ 𝑥 0 + 𝟎 ∗ 𝑥 1 + 𝟎 ∗ 𝑥 2 − 𝟓 ∗ 𝑥 3 + 1 ∗ 𝑥 4‬‬
‫נרצה לבדוק את הריבוי בנקודה ‪: 𝑎 = 3‬‬
‫𝑥‪= 𝑥 4 + 15𝑥 3 + 75𝑥 2 + 125‬‬
‫‪3‬‬
‫‪=𝑥 𝑥+5‬‬
‫‪3‬‬
‫‪𝑓 𝑥 + 3 = (𝑥 + 3) − 3 (𝑥 + 3) + 2‬‬
‫‪𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑥 − 2) = 𝟎 ∗ 𝑥 0 + 𝟏𝟐𝟓 ∗ 𝑥 1 + 75 ∗ 𝑥 2 + 15 ∗ 𝑥 3 + 1 ∗ 𝑥 4‬‬
‫עד עכשיו דיברנו על פונקציות עם משתנה אחד מעל שדה אינסופי!‬
‫מה קורה מעל שדה סופי? האם ההגדרות שלנו עדיין תקפות?‬
‫נבדוק למשל על‪:‬‬
‫}‪ 𝔽5 = {0,1,2,3,4‬ו‪𝑓 𝑥 = 𝑥 5 -‬‬
‫בנקודה ‪0‬‬
‫• בדיקת הגדרה ראשונה מעל שדה סופי‪:‬‬
‫‪→ 𝑥 5 |𝑓 → 5‬‬
‫‪5‬‬
‫‪𝑓 𝑥 = 𝑥−0 𝑥−0 … 𝑥−0 = 𝑥−0‬‬
‫• בדיקת הגדרה שנייה מעל שדה סופי‪:‬‬
‫שדה אינסופי‬
‫שדה סופי ‪𝐹5‬‬
‫היינו מצפים בנגזרת‬
‫החמישית לקבל‬
‫מספר שונה מאפס‬
‫מההגדרה‪.‬‬
‫𝟎= 𝟎 𝒇‬
‫𝟓𝒙 = 𝒙 𝒇‬
‫‪𝒇𝟏 0 = 0‬‬
‫‪𝒇𝟏 𝒙 = 5𝒙4‬‬
‫‪𝒇𝟐 0 = 0‬‬
‫‪𝒇𝟐 𝒙 = (5 ∗ 4)𝒙3‬‬
‫‪𝒇𝟑 0 = 0‬‬
‫‪𝒇3 𝒙 = 5 ∗ 4 ∗ 3 𝒙2‬‬
‫‪𝒇𝟒 0 = 0‬‬
‫𝑥 𝟐 ∗ 𝟑 ∗ 𝟒 ∗ ‪𝒇4 𝒙 = 5‬‬
‫‪𝒇5 𝒙 = 5! ≠ 0‬‬
‫!‪𝒇5 𝒙 = 5‬‬
‫𝟎= 𝟎 𝒇‬
‫𝟓𝒙 = 𝒙 𝒇‬
‫‪𝒇𝟏 0 = 0‬‬
‫‪𝒇𝟏 𝒙 = 5𝒙4 =0‬‬
‫‪𝒇𝟐 0 = 0‬‬
‫‪𝒇𝟐 𝒙 = 0‬‬
‫‪𝒇𝟑 0 = 0‬‬
‫‪𝒇3 𝒙 = 0‬‬
‫𝟒𝒇‬
‫‪𝒇4‬‬
‫‪0 =0‬‬
‫‪𝒇5 𝒙 = 0‬‬
‫‪𝒙 =0‬‬
‫‪𝒇5 𝒙 = 0‬‬
‫אז איך נתקן ? נתקנן !‬
‫נגזרת רגילה (שדה אינסופי)‬
‫נגזרת מתוקננת (שדה סופי 𝑪𝑭(‬
‫) 𝑘 𝑥( ‪𝑓 0‬‬
‫𝑘𝑥‬
‫𝑘𝑥‬
‫) 𝑘 𝑥( ‪𝑓 1‬‬
‫‪𝑘 ∗ 𝑥 𝑘−1‬‬
‫‪𝑘 ∗ 𝑥 𝑘−1‬‬
‫) 𝑘 𝑥( ‪𝑓 2‬‬
‫‪𝑘 𝑘 − 1 ∗ 𝑥 𝑘−2‬‬
‫‪1‬‬
‫‪𝑘 𝑘 − 1 ∗ 𝑥 𝑘−2‬‬
‫‪2‬‬
‫) 𝑘 𝑥( ‪𝑓 3‬‬
‫‪𝑘 𝑘 − 1 (𝑘 − 2) ∗ 𝑥 𝑘−3‬‬
‫‪1‬‬
‫‪𝑘 𝑘 − 1 (𝑘 − 2) ∗ 𝑥 𝑘−3‬‬
‫‪6‬‬
‫= 𝑘𝑥 𝑙𝑓‬
‫!𝑘‬
‫𝑙‪∗ 𝑥 𝑘−‬‬
‫! 𝑙‪𝑘−‬‬
‫𝑘‬
‫!𝑘‬
‫𝑙‪𝑘−‬‬
‫𝑥∗‬
‫=‬
‫𝑙‪∗ 𝑥 𝑘−‬‬
‫𝑙‬
‫! 𝑙 ‪𝑙! 𝑘 −‬‬
‫• בדיקת הגדרה שנייה מעל שדה סופי עם נגזרת מתוקננת ‪:‬‬
‫שדה אינסופי‬
‫𝟎= 𝟎 𝒇‬
‫𝟓𝒙 = 𝒙 𝒇‬
‫‪𝒇𝟏 0 = 0‬‬
‫‪𝒇𝟏 𝒙 = 5𝒙4‬‬
‫‪𝒇𝟐 0 = 0‬‬
‫‪𝒇𝟐 𝒙 = (5 ∗ 4)𝒙3‬‬
‫‪𝒇𝟑 0 = 0‬‬
‫‪𝒇3 𝒙 = 5 ∗ 4 ∗ 3 𝒙2‬‬
‫‪𝒇𝟒 0 = 0‬‬
‫𝑥 𝟐 ∗ 𝟑 ∗ 𝟒 ∗ ‪𝒇4 𝒙 = 5‬‬
‫𝟎 = 𝟎 𝒇 ‪𝒇5 0 = 5! ≠ 0‬‬
‫‪H 𝟏 𝑓(0) = 0‬‬
‫שדה סופי ‪𝐹5‬‬
‫אכן ע"י תקנון‬
‫הנגזרת קיבלנו‬
‫שהנגזרת החמישית‬
‫שונה מאפס כנדרש‪.‬‬
‫= 𝒙 𝑙‪H‬‬
‫𝟓𝒙 = 𝒙!‪𝒇5 𝒙 =𝒇5‬‬
‫‪H 𝟏 𝑓(𝑥) = 5𝒙4 =0‬‬
‫‪H 𝟐 𝑓(0) = 0‬‬
‫‪5 5−2‬‬
‫= )𝑥(𝑓‬
‫𝑥‬
‫‪= 10x 3‬‬
‫‪2‬‬
‫𝟐‪H‬‬
‫‪H 𝟑 𝑓(0) = 0‬‬
‫‪5 5−3‬‬
‫= )𝑥(𝑓‬
‫𝑥‬
‫‪= 10𝑥 2‬‬
‫‪3‬‬
‫‪H3‬‬
‫‪H 𝟒 𝑓(0) = 0‬‬
‫‪5 5−4‬‬
‫𝑥‬
‫‪=5x‬‬
‫‪4‬‬
‫‪5 5−5‬‬
‫= )𝑥(𝑓 ‪𝐻5‬‬
‫𝑥‬
‫‪=1‬‬
‫‪5‬‬
‫‪𝐻5 𝑓(0) = 1 ≠ 0‬‬
‫= )𝑥(𝑓 ‪H4‬‬
‫• בדיקת הגדרה שלישית מעל שדה סופי‪:‬‬
‫‪𝑓 𝑥 = 𝑥5‬‬
‫‪𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑋) = 𝟎 ∗ 𝑥 0 + 𝟎 ∗ 𝑥 1 + 𝟎 ∗ 𝑥 2 + 𝟎 ∗ 𝑥 3 + 𝟎 ∗ 𝑥 4 + 𝟏 ∗ 𝑥 5‬‬
‫תכונות הנגזרת המתוקננת‪-‬‬
‫• סימון‪∗ 𝑥 𝑘−𝑙 :‬‬
‫!𝑘‬
‫! 𝑙‪𝑙! 𝑘−‬‬
‫=‬
‫𝑙‪𝑥 𝑘−‬‬
‫∗‬
‫𝑘‬
‫𝑙‬
‫= 𝑥‬
‫𝑓 )𝑙( 𝐻‬
‫• תהי פונקציה במשתנה אחד )𝑥(𝑓‪ ,‬נסתכל על )𝒛 ‪𝒇(𝒙 +‬‬
‫מתקיים‪:‬‬
‫𝒊𝒛‬
‫𝒙 𝒇𝒊𝑯‬
‫= 𝒛‪𝒇 𝒙+‬‬
‫במילים אחרות‪ ,‬יהיו 𝑘𝑧 … ‪ 𝑧0 ,𝑧1‬המקדמים של 𝑧 בהתאמה ב )𝑧 ‪𝑓(𝑥 +‬‬
‫כלומר 𝑖𝑧 הינו המקדם של 𝑖 𝑧‪ .‬אזי מתקיים כי‪:‬‬
‫𝑖∀‬
‫𝑥 𝑓 )𝑖(𝐻 = 𝑖𝑧‬
‫דוגמא‪:‬‬
‫• נסתכל על הפונקציה ‪𝑓 𝑥 = 𝑥 3‬‬
‫• = ‪𝑓 𝑥 + 𝑧 = 𝑥 + 𝑧 3 = x 3 + 3x 2 z + 3xz 2 + z 3‬‬
‫• ‪x 3 ∗ z 0 + 3x 2 ∗ z + 3x ∗ z 2 + 1 ∗ z 3‬‬
‫‪3‬‬
‫‪0‬‬
‫‪ Z‬ומקדמיו‬
‫‪𝑥3‬‬
‫‪𝑧0‬‬
‫𝟎 = 𝟎 𝑓 )‪𝐻 (1‬‬
‫‪3‬‬
‫)‪(1‬‬
‫= 𝑥 𝑓 𝐻‬
‫‪∗ 𝑥 3−1 = 3𝑥 2‬‬
‫‪1‬‬
‫‪3𝑥 2‬‬
‫‪𝑧1‬‬
‫𝟎 = 𝟎 𝑓 )‪𝐻 (2‬‬
‫‪3‬‬
‫)‪(2‬‬
‫= 𝑥 𝑓 𝐻‬
‫𝑥‪∗ 𝑥 3−2 = 3‬‬
‫‪2‬‬
‫‪3x‬‬
‫‪𝑧2‬‬
‫𝟎 ≠ 𝟏 = 𝟎 𝑓 )‪𝐻 (3‬‬
‫‪3‬‬
‫)‪(3‬‬
‫= 𝑥 𝑓 𝐻‬
‫‪∗ 𝑥 3−3 = 1‬‬
‫‪3‬‬
‫‪1‬‬
‫‪𝑧3‬‬
‫𝟎 = 𝟎 𝑓 )‪𝐻 (0‬‬
‫‪∗ 𝑥 3−0 = 𝑥 3‬‬
‫= 𝑥 𝑓 )‪𝐻 (0‬‬
‫נעבור לדבר על פונקציות עם ‪ 2‬משתנים‬
‫ריבוי בנקודה )𝟎‪ (𝟎,‬בפונקציות עם ‪ 2‬משתנים‬
‫• הגדרה ‪𝑓 𝑥,𝑦 = 𝑎𝑖𝑗 𝑥 𝑖 𝑦 𝑗 :‬‬
‫‪𝑓 𝑖𝑗 0,0 = 0‬‬
‫עבור ‪0 ≤ 𝑖 + 𝑗 ≤ 𝑚𝑢𝑙𝑡 𝑓,(0,0) − 1‬‬
‫וגם קיימים 𝑗‪ 𝑖,‬כך ש‪ 𝑖 + 𝑗 = 𝑟-‬וגם ‪𝑓 𝑖𝑗 0,0 ≠ 0‬‬
‫דוגמא‪𝑓 𝑥,𝑦 = 𝑥 2 𝑦 :‬‬
‫‪𝑓 00 0,0 =0‬‬
‫𝑦‪𝑥 2‬‬
‫𝑦 ‪𝑓 00 𝑥,‬‬
‫‪𝑓 10 0,0 =0‬‬
‫𝑦𝑥‪2‬‬
‫𝑦 ‪𝑓 10 𝑥,‬‬
‫‪𝑓 01 0,0 =0‬‬
‫‪𝑥2‬‬
‫𝑦 ‪𝑓 01 𝑥,‬‬
‫‪𝑓 11 0,0 = 0‬‬
‫𝑥‪2‬‬
‫𝑦 ‪𝑓 11 𝑥,‬‬
‫‪𝑓 20 0,0 =0‬‬
‫𝑦‪2‬‬
‫𝑦 ‪𝑓 20 𝑥,‬‬
‫‪𝑓 02 0,0 =0‬‬
‫‪0‬‬
‫𝑦 ‪𝑓 02 𝑥,‬‬
‫‪𝑓 03 0,0 =2≠ 0‬‬
‫‪2‬‬
‫𝑦 ‪𝑓 21 𝑥,‬‬
‫נגזרת רגילה ונגזרת מתוקננת בפולינומים עם שני משתנים‪:‬‬
‫• נגזרת רגילה ‪:‬‬
‫! ‪𝑘1‬‬
‫! ‪𝑘2‬‬
‫‪𝑘1 −𝑙1‬‬
‫𝑥‬
‫‪𝑦 𝑘2−𝑙2‬‬
‫! ‪𝑘1 −𝑙1‬‬
‫! ‪𝑘2 −𝑙2‬‬
‫=‬
‫‪𝑥 𝑘 1 𝑦 𝑘2‬‬
‫‪𝑙1 ,𝑙2‬‬
‫𝑓‬
‫• דוגמא‪𝑓 2,5 𝑥 7 𝑦 8 = (7 ∗ 6) 𝑥 5 ∗ (8 ∗ 7 ∗ 6 ∗ 5 ∗ 4) 𝑦 3 :‬‬
‫• נגזרת מתוקננת‪:‬‬
‫! ‪𝑘1‬‬
‫! ‪𝑘2‬‬
‫𝑘‬
‫𝑙‪−‬‬
‫‪1‬‬
‫‪1‬‬
‫𝑥‬
‫‪𝑦 𝑘2−𝑙2‬‬
‫! ‪𝑙1 𝑘1 −𝑙1‬‬
‫! ‪𝑙2 𝑘2 −𝑙2‬‬
‫• דוגמא‪𝑦 8−5 :‬‬
‫‪8‬‬
‫‪5‬‬
‫‪x 7−2‬‬
‫‪7‬‬
‫‪2‬‬
‫=‬
‫‪𝑦 𝑘2 −𝑙2‬‬
‫= ‪𝑓 2,5 𝑥 7 𝑦 8‬‬
‫‪𝑘2‬‬
‫‪𝑙2‬‬
‫‪𝑥 𝑘1−𝑙1‬‬
‫‪𝑘1‬‬
‫‪𝑙1‬‬
‫=‬
‫‪𝑥 𝑘1 𝑦 𝑘2‬‬
‫‪𝐻𝑙1,𝑙2‬‬
‫תכונות הנגזרת המתוקנת‪-‬‬
‫• סימון‪𝑦 𝑘2 −𝑙2 :‬‬
‫‪𝑘2‬‬
‫‪𝑙2‬‬
‫‪𝑥 𝑘1−𝑙1‬‬
‫‪𝑘1‬‬
‫‪𝑙1‬‬
‫= ‪𝐻 (𝑙1,𝑙2) 𝑥 𝑘1 𝑦 𝑘2‬‬
‫• תהי פונקציה ב‪ 2‬משתנים )‪ ,𝑓(𝑥,y‬נסתכל על ) ‪𝑓(𝑥 + 𝑧1 ,y + z2‬‬
‫מתקיים‪:‬‬
‫‪𝑙1 𝑙2‬‬
‫𝑙(‬
‫𝑙‪,‬‬
‫)‬
‫‪1‬‬
‫‪2‬‬
‫𝐻(‬
‫‪𝑓(𝑥,𝑦))𝑧1 𝑧2‬‬
‫= ‪𝑓 𝑥 + 𝑧1 ,𝑦 + 𝑧2‬‬
‫𝑙‬
‫𝑙‬
‫במילים אחרות‪ ,‬יהיו 𝑘‪ 𝑧0,0 ,𝑧0,1 , 𝑧1,0 , … ,𝑧𝑘,‬המקדמים של ‪ 𝑧11 𝑧22‬בהתאמה‪,‬‬
‫כלומר ‪ 𝑧𝑖,j‬הינו המקדם‬
‫𝑗 𝑖‬
‫של ‪𝑧1 𝑧2‬‬
‫‪= 𝐻(𝑖,j) 𝑓 𝑥,y‬‬
‫‪∀𝑖,j‬‬
‫• )‪ 𝑓(𝑥,y‬מריבוי 𝑟 בנקודה‬
‫‪,‬אזי מתקיים כי‪:‬‬
‫𝑗 𝑖‬
‫‪𝑧1 𝑧2‬‬
‫‪, 0,0‬‬
‫אם כל הנגזרות הראשונות עד 𝑟 מתאפסות ב ‪0,0‬‬
‫𝑙‪𝑘1 𝑘 −𝑙 𝑘2 𝑘 −‬‬
‫‪𝑥 1 1‬‬
‫‪𝑦 2 2‬‬
‫‪𝑙1‬‬
‫‪𝑙2‬‬
‫דוגמא‪:‬‬
‫𝒚 𝟐𝒙 = 𝒚 ‪𝒇 𝒙,‬‬
‫= ‪= 𝑥 + 𝑧1 2 𝑦 + 𝑧2 = (𝑥 2 + 2𝑧1 𝑥 + 𝑧12 ) 𝑦 + 𝑧2‬‬
‫‪𝑓 𝑥 + 𝑧1 ,𝑦 + 𝑧2‬‬
‫𝟐𝒛 𝟏𝟐𝒛 ‪𝒙𝟐 𝒚 + 𝒙𝟐 𝒛𝟐 + 𝟐𝒚𝒙𝒛𝟏 + 𝟐𝒙𝒛𝟏 𝒛𝟐 + 𝒚𝒛𝟐𝟏 +‬‬
‫𝑦 ‪ 𝑥 2‬הינו המקדם של 𝟐𝟎𝒛 𝟏𝟎𝒛‬
‫‪ 𝑥 2‬הינו המקדם של 𝟐‪𝒛𝟎𝟏 𝒛1‬‬
‫𝑦𝑥‪ 2‬הינו המקדם של 𝟐‪𝒛1𝟏 𝒛0‬‬
‫𝟎‪𝟐 𝟐−𝟎 𝟏 𝟏−‬‬
‫= ‪𝑓 𝑥, y‬‬
‫𝑥‬
‫𝒚‬
‫𝑦‪= 𝑥2‬‬
‫𝟎‬
‫𝟎‬
‫‪𝑥2‬‬
‫=‬
‫𝟏‪𝟏−‬‬
‫𝑦𝑥‪= 2‬‬
‫𝒚‬
‫𝟎‪𝟏−‬‬
‫𝒚‬
‫‪1‬‬
‫𝟏‬
‫‪1‬‬
‫𝟎‬
‫𝟎‪𝟐−‬‬
‫𝑥‬
‫𝟏‪𝟐−‬‬
‫𝑥‬
‫𝟐‬
‫𝟎‬
‫𝟐‬
‫𝟏‬
‫= ‪𝑥, y‬‬
‫= ‪𝑥, y‬‬
‫)𝟎‪(𝟎,‬‬
‫𝐻‬
‫𝑓 )𝟏‪𝐻 (𝟎,‬‬
‫𝑓 )𝟎‪𝐻 (𝟏,‬‬
‫𝑥‪ 2‬הינו המקדם של 𝟐‪𝒛1𝟏 𝒛1‬‬
‫𝟏‪𝟐 𝟐−𝟏 1 𝟏−‬‬
‫= ‪𝐻 (𝟏,1) 𝑓 𝑥, y‬‬
‫𝑥‬
‫𝒚‬
‫𝑥‪= 2‬‬
‫𝟏‬
‫𝟏‬
‫𝑦 הינו המקדם של 𝟐‪𝒛2𝟏 𝒛0‬‬
‫𝟎‪𝟐 𝟐−𝟐 1 𝟏−‬‬
‫= ‪𝐻 (𝟐,𝟎) 𝑓 𝑥, y‬‬
‫𝑥‬
‫𝒚‬
‫𝑦=‬
‫𝟐‬
‫𝟎‬
‫‪ 𝑥 2‬הינו המקדם של 𝟐‪𝒛𝟎𝟏 𝒛1‬‬
‫𝟏‪𝟐 𝟐−𝟎 1 𝟏−‬‬
‫= ‪𝑥, y‬‬
‫𝑥‬
‫𝒚‬
‫‪= x2‬‬
‫𝟎‬
‫𝟏‬
‫𝑓 )‪𝐻 (𝟎,1‬‬
‫= ‪𝐻𝑙1,𝑙2 𝑥 𝑘1 𝑦 𝑘2‬‬
‫• 𝑥 ‪𝑄 𝑥,𝑦 = 𝑦 −‬‬
‫• ‪ Q‬עובר דרך ראשית הצירים פעם אחת ואין לו משתנים מדרגה קטנה מ‪.1-‬‬
‫• כלומר‪= 1 :‬‬
‫‪𝑚𝑢𝑙𝑡 𝑄, 0,0‬‬
‫• )𝑥 ‪𝑄 𝑥,𝑦 = (𝑦 − 𝑥)(𝑦 +‬‬
‫• ‪ Q‬עובר דרך ראשית הצירים פעמיים ואין לו משתנים מדרגה קטנה מ‪.2-‬‬
‫• כלומר‪= 2 :‬‬
‫‪𝑚𝑢𝑙𝑡 𝑄, 0,0‬‬
‫• )𝑥‪𝑄 𝑥,𝑦 = (𝑦 − 𝑥)(𝑦 + 𝑥)(𝑦 − 2‬‬
‫• ‪ Q‬עובר דרך ראשית הצירים שלוש פעמים ואין לו משתנים מדרגה קטנה מ‪.3-‬‬
‫• כלומר‪= 3 :‬‬
‫‪𝑚𝑢𝑙𝑡 𝑄, 0,0‬‬
‫באופן כללי‪:‬‬
‫אם 𝑟 קווים עוברים בראשית הצירים‪ ,‬אז ל )𝑦‪ 𝑄(𝑥,‬אין משתנים מדרגה נמוכה מ𝑟‪.‬‬
‫הגדרה ‪:‬‬
‫ל)𝑦‪ 𝑄(𝑥,‬יש 𝑟 שורשים בנקודה )‪ ,(0,0‬אם ל)𝑦‪ 𝑄(𝑥,‬אין אף מונום מדרגה נמוכה מ𝑟‪.‬‬
‫•‬
‫הגדרה שלישית‬
‫פולינום עם שני משתנים 𝑦‪ 𝑓 𝑥,‬הוא מריבוי 𝑟 בנקודה )‪ ,(0,0‬אם‪:‬‬
‫כל הגורמים מדרגה נמוכה מ𝑟 ב 𝑗 𝑦 𝑖 𝑥 𝑗‪𝑎𝑖,‬‬
‫= 𝑦‪ 𝑓 𝑥,‬לא מופיעים‪.‬‬
‫וקיים גורם מדרגה 𝑟 שמופיע (כלומר‪ ,‬המקדם שלו שונה מ‪.)0-‬‬
‫כלומר ‪:‬‬
‫• אם 𝑦‪ 𝑓 𝑥,‬מריבוי ‪ 1‬בנקודה )‪𝑎0,0 = 0 :(0,0‬‬
‫• אם 𝑦‪ 𝑓 𝑥,‬מריבוי ‪ 2‬בנקודה )‪𝑎0,0 = 𝑎1,0 = 𝑎0,1 = 0 :(0,0‬‬
‫• אם 𝑦‪ 𝑓 𝑥,‬מריבוי ‪ 3‬בנקודה )‪𝑎0,0 = 𝑎1,0 = 𝑎0,1 = 𝑎1,1 = 𝑎0,2 = 𝑎2,0 = 0 :(0,0‬‬
‫• וכך הלאה‪...‬‬
:‫לדוגמא‬
𝑓 𝑥, 𝑦 = 𝑦 − 4𝑥 2 = 𝟎 ∗ 𝐱 𝟎 𝒚𝟎 + 𝟏 ∗ 𝐱 𝟎 𝐲 𝟏 + 0 ∗ x1 y 0 + 0 ∗ x1 y1 − 4 ∗ x 2 y 0
𝑓 𝑥, 𝑦 has a zero of multiplicity 1 at (0,0)
𝑓 𝑥, 𝑦 = 𝑦 + 6𝑥 2 = 𝟎 ∗ 𝐱 𝟎 𝒚𝟎 + 𝟏 ∗ 𝒙𝟎 𝒚𝟏 + 0 ∗ x1 y 0 + 0 ∗ x1 y1 + 6 ∗ x 2 y 0
𝑓 𝑥, 𝑦 has a zero of multiplicity 1 at (0,0)
𝑓 𝑥, 𝑦 = 𝑦 − 4𝑥 2 𝑦 + 6𝑥 2 = 𝑦 2 + 2𝑥 2 𝑦 − 24𝑥 4 =
𝟎 ∗ 𝐱 𝟎 𝒚𝟎 + 𝟎 ∗ 𝒙𝟎 𝒚𝟏 + 𝟎 ∗ 𝒙𝟏 𝒚𝟎 + 0 ∗ x1 y1 + 𝟏 ∗ 𝒙𝟎 𝒚𝟐 + 2 ∗ x 2 y1 − 24 ∗ x1 y1
𝑓 𝑥, 𝑦 has a zero of multiplicity 2 at (0,0)
‫ריבוי בנקודה )𝛽‪ (𝛼,‬בפונקציות עם ‪ 2‬משתנים‬
‫• ל 𝑦‪ 𝑓 𝑥,‬יש 𝑟 שורשים בנקודה )𝛽‪ ,(𝛼,‬אם ב 𝛽 ‪ 𝑓 𝑥 + 𝛼,𝑦 +‬יש יש 𝑟 שורשים בנקודה )‪.(0,0‬‬
‫• פולינום עם שני משתנים 𝑦‪ 𝑓 𝑥,‬הוא מריבוי 𝑟 בנקודה )𝛽‪ ,(𝛼,‬אם‪:‬‬
‫כל הגורמים מדרגה נמוכה מ𝑟 ב 𝛽 ‪ 𝑓 𝑥 + 𝛼,𝑦 +‬לא מופיעים‪.‬‬
‫וקיים גורם מדרגה 𝑟 שמופיע (כלומר‪ ,‬המקדם שלו שונה מ‪.)0-‬‬
‫דוגמא‪:‬‬
‫→‬
‫‪2‬‬
‫𝛼‪𝑦−𝛽 +6 𝑥−‬‬
‫נרצה לבדוק את הנקודה )𝛽‪: (𝛼,‬‬
‫= ‪= 𝑦 2 + 2𝑥 2 𝑦 − 24𝑥 4‬‬
‫‪2‬‬
‫𝛼‪𝑦−𝛽 −4 𝑥−‬‬
‫= 𝑦 ‪𝑓 𝑥,‬‬
‫‪𝑓 𝑥 + 𝛼, 𝑦 + 𝛽 = 𝑦 − 4𝑥 2 𝑦 + 6𝑥 2‬‬
‫‪𝟎 ∗ 𝐱 𝟎 𝒚𝟎 + 𝟎 ∗ 𝒙𝟎 𝒚𝟏 + 𝟎 ∗ 𝒙𝟏 𝒚𝟎 + 0 ∗ x1 y1 + 𝟏 ∗ 𝒙𝟎 𝒚𝟐 + 2 ∗ x 2 y1 − 24 ∗ x1 y1‬‬
‫𝛽 ‪𝑓 𝑥, 𝑦 has a zero of multiplicity 2 at 𝛼,‬‬
Better list decoding for Reed Solomon codes-Spoiler!
• We will present the list decoding algorithm for Reed-Solomon codes,
which can correct 𝟏 − 𝑹 fraction of errors.
• 𝑅 = 𝑅𝑎𝑡𝑒 =
𝑘
𝑛
• The main idea is to add more restrictions on 𝑄 𝑥, 𝑦 .
(in addition to its (1,k −1)-degree being at most D).
the constraint: For some integer parameter 𝑟 ≥ 1 , we will insist on
𝑄 𝑥, 𝑦 having 𝑟 roots at 𝛼𝑖 , 𝑦𝑖 𝑓𝑜𝑟 1 ≤ 𝑖 ≤ 𝑛.
Means , q has multiplicity of 𝒓 at 𝛼𝑖 , 𝑦𝑖 𝑓𝑜𝑟 1 ≤ 𝑖 ≤ 𝑛.
This change will have the following implications:
• The number of constraints will increase
but the number of coefficients will remain the same.
This seems to be bad as this results in an increase in D (=deg(Q))
→ increase in t (e=n-t)
• However, this change will also increases the number of roots of
R(X):=Q(x,p(x)) . and this gain in the number of roots more than
compensates for the increase in D.
Before we state the precise algorithm, we will present
the algorithm with an example…..
• n=10, k=2 , finite field 𝐹𝑞 , evaluation points: {−9,..., 11}.
• Here we have considered e = 6 errors .
• we are looking for lines that pass through at least 4 points.
• Now we want to interpolate a bivariate polynomial Q(X,Y )
with (1, 1) degree 5 that “passes twice" through all points
corresponding to the received word.
deg 𝑝 𝑥 ≤ 1 = 𝑤
→ 𝑄 𝑥,𝑦 be a polynomial of
1,w degree D
Finally, we want to factorize all the linear factors Y −P(X) of the Q(X,Y )
REMINDER
REMINDER:
List Decoding – Algorithm 2
Input : 𝑛 ≥ 𝑘 ≥ 1 , 𝑫 ≥ 𝟏, 𝑒 = 𝑛 − 𝑡 and 𝑛 pairs {(𝑎𝑖 , 𝑦𝑖 )}
Output: list of polynomials P(x) of degree at most k-1
1: Find a non-zero 𝑄 𝑥, 𝑦 with (1, k − 1) degree at most D, such that 𝑄 𝑎𝑖 , 𝑦𝑖 = 0 for 1
≤𝑖≤𝑛.
2: 𝐿 ← ∅
3: For every factor 𝑦 − 𝑃(𝑥) of 𝑄 𝑥, 𝑦 DO
𝑛
4:
If ∆(y,)P )αi ((𝑖=1
) ≤ e and deg 𝑃 ≤ 𝑘 − 1 then
5:
Add 𝑃(𝑥) to 𝐿
6: Return 𝐿
‫חזרה קצרה על האלגוריתם משבוע שעבר‪:‬‬
Definition:
Given 0 ≤ 𝑝 ≤ 1 , 𝐿 ≥ 1 a code C is (p,L) – List decodable if for every received word y∈
𝑛
|{c∈C|∆(y,c) ≤pn}| ≤ L
Johnson Bound
A [n,k,d]q code is a (𝑝, 𝑞 ⋅ 𝑑 ⋅ 𝑛) list decodable code provided that
1
𝑞
𝑝 ≤ (1 − )(1 − 1 −
𝑞𝛿
)
𝑞−1
𝑑
𝑛
(reminder: 𝛿= )
By the Johnson bound we get that a Reed-Solomon code of rate R is (𝟏 − 𝑹, 𝑂(𝑛2 )) list-decodable.
The challenge is to find a list-decoding algorithm that runs in polynomial time which outputs all
these words into a list.
THE ALGORITHM!!!
The Third List Decoding Algorithm for Reed-Solomon Codes
INPUT:
1≤𝑘 ≤𝑛 , 𝐷 ≥1 , 𝑟 ≥1 , 𝑒 =𝑛−𝑡
and 𝑛 pairs
𝛼𝑖 , 𝑦𝑖
1≤𝑖≤𝑛
OUTPUT: list of polynomials 𝑃(𝑋) of degree at most 𝑘 −1 (Possibly empty) .
1: Find a non-zero 𝑄(𝑋, 𝑌) with (1, 𝑘 − 1) degree at most D, such that
Q 𝛼𝑖 , 𝑦𝑖 = 0 , with multiplicity 𝒓 for every 1 ≤ 𝑖 ≤ 𝑛.
2: Ł ←∅
3: FOR every factor Y − 𝑃(𝑋) of 𝑄(𝑋, 𝑌) DO
4: IF ∆(𝑦, 𝑃 𝛼𝑖
1≤𝑖≤𝑛
5: Add P(X) to Ł.
6: RETURN Ł
) ≤ 𝑒 and deg(𝑃) ≤ 𝑘 − 1 THEN
CORRECTNESS OF
ALGORITHM
• Lemma 1:
𝑟+1
2
constraints on the coefficients of 𝑄(𝑋, 𝑌 ) for each 𝑖.
• Lemma 2:
𝑅(𝑋) = 𝑄(𝑋, 𝑃(𝑋)) has 𝑟 roots for every 𝑖 such that 𝑃(𝛼𝑖 ) = 𝑦𝑖 .
In other words, 𝑋 − 𝛼𝑖 𝑟 divides 𝑅(𝑋).
Last Week -Number of coefficients of Q(X,Y )𝑁=|
𝑖, 𝑗
Note that 𝑗 ≤
𝐷
𝑖+ 𝑘−1 𝑗 ≤𝐷 ,
𝐷
𝑘−1
, define 𝑙 =
𝐷
𝐷
𝑘−1
𝑖, 𝑗 ∈ 𝑍 + } |
.
So 𝑙 ≥ 𝑘−1 − 1 and 𝑙 ≤ 𝑘−1 .
𝑙 𝑙+1
𝑙
= (𝑙 + 1)( 𝐷 + 1 − 𝑘 − 1 )
2
2
𝑙+1
𝑙+1
=
2 𝐷+1 − 𝑘−1 𝑙 =
2𝐷 + 2 − 𝑘 − 1 𝑙
2
2
𝑙+1
𝐷
𝑙+1
𝑙+1
≥
2𝐷 + 2 − 𝑘 − 1
=
2𝐷 + 2 − 𝐷 =
𝐷+2
2
𝑘−1
2
2
𝐷
𝐷
−1+1
𝐷 𝐷+2
𝑘
−
1
𝑘
−
1
≥
𝐷+2 =
𝐷+2 =
2
2
2(𝑘 − 1)
𝑁 = 𝐷+1 𝑙+1 − 𝑘−1
We got that 𝑵
≥
𝑫 𝑫+𝟐
𝟐(𝒌−𝟏)
to argue the correctness of the interpolations step we will need:
𝐷 𝐷 +2
𝑟+1
> 𝑛
2 𝑘 −1
2
upper bound on the number of
coefficients of Q(X,Y )- as we saw
last week.
We got that 𝑁 ≥
The choice 𝐷 =
N≥
𝐷 𝐷+2
2(𝑘−1)
>
𝐷 𝐷+2
2(𝑘−1)
from Lemma 1:
Number of constraints
so if
𝐷 𝐷+2
2(𝑘−1)
>𝑛
𝑘 − 1 𝑛𝑟 𝑟 + 1
𝐷2
2(𝑘−1)
=
𝑘−1 𝑛𝑟 𝑟+1
2(𝑘−1)
𝑟+1
2
then the interpolation step succeed.
satisfies the following requirement since:
=
𝑛𝑟 𝑟+1
2
=𝑛
𝑟+1
2
correctness of the root finding step
For the correctness of the root finding step, we need to show that the number of roots of
𝑹(𝑿) (which by Lemma 2 is at least 𝑟𝑡) is strictly bigger than the degree of R(X), which is
D as we saw last week.
𝑟
(that's in order to ensure 𝑅 𝑥 ≡ 0 by the degree mantra. Meaning, 𝑦 − 𝑃 x
devides 𝑄 𝑥, 𝑦 and
therefore the algorithm outputs every polynomial P(x) of maximum k − 1 degree , which agrees with y in at
least t positions with multiplicity r.)
So, we would be fine if we have:
𝑟𝑜𝑜𝑡𝑠𝑅 𝑋 = 𝒕 𝒓 > 𝑫 = 𝑑𝑒𝑔𝑟𝑒𝑒𝑅 𝑋
→
𝑫
𝒕>
𝒓
which in turn will follow if we pick:
𝑡=
1
𝑘 − 1 𝑛(1 − )
𝑟
If we pick 𝑟 = 2(𝑘 − 1)𝑛, then we will need:
𝑡>
𝑘 − 1 𝑛 − 0.5 >
𝑘−1 𝑛
where the last inequality follows because of the fact that t is an integer.
That implies the following result:
𝑒 =𝑛−𝑡
• We got that
→
𝑒
𝑛
𝑒<𝑛−
𝑘−1 𝑛
→
𝑒
𝑛
<1−
𝑘−1
𝑛
< 1 − 𝑅 meaning that the algorithm can list decode
Reed-Solomon codes of rate R from 𝟏 −
𝑹 fraction of errors !
THE ALGORITHM RUNS IN POLYNOMIAL TIME
The claim on the run time follows from the same argument that was used to argue the
polynomial running time of Algorithm 2.
• The algorithm runs in polynomial time since step 1 can be implemented by Gaussian
elimination.
• and there are polynomial time algorithms factoring bivariate polynomials.
• Reed-Solomon codes can be efficiently decoded up to the Johnson bound.
• to run within this time using standard bivariate polynomial factorization techniques.
We are going to use the bivariate polynomial 𝑄 𝑥, 𝑦 so we need the following definition.
Definition
𝑑𝑒𝑔𝑥 (𝑄) is the maximum degree of 𝑥 in 𝑄 𝑥, 𝑦 .
𝑑𝑒𝑔𝑦 (𝑄) is the maximum degree of 𝑦 in 𝑄 𝑥, 𝑦 .
Example: for 𝑄 𝑥, 𝑦 = 𝑥 2 𝑦 5 + 𝑥 9 𝑦1 ,
𝑑𝑒𝑔𝑥 𝑄 = 9 and 𝑑𝑒𝑔𝑦 𝑄 = 5
Given 𝑑𝑒𝑔𝑥 𝑄 = 𝑎 and 𝑑𝑒𝑔𝑦 𝑄 = 𝑏 we can write 𝑄 𝑥, 𝑦 as follows:
𝑄 𝑥, 𝑦 =
0≤𝑖≤𝑎 𝑐𝑖𝑗 𝑥
0≤𝑗≤𝑏
𝑖 𝑗
𝑦 where 𝑐𝑖𝑗 ∈ Fp
Note that the number of Q’s coefficients is equal to 𝑎 + 1 𝑏 + 1
𝑄 𝑥, 𝑦 = 0≤𝑖≤𝑙 𝑐𝑖𝑗 𝑥 𝑖 𝑦 𝑗 thus, the number of coefficients is equal to
0≤𝑗≤
𝑙+1 ∙
𝑛
𝑙
+1
𝑙2
𝑘
𝑛
𝑙
=
𝑛
𝑙
𝑛
𝑙
𝑛
𝑙
𝑙∙ +𝑙+ +1 =
𝑛+𝑙+ +1 >𝑛
𝑙
𝑘
at most 𝑂( ) unknowns (since deg 𝑌 𝑄 ≤ , 𝑑𝑒𝑔𝑋 𝑄 ≤ 𝑙).
Hence using standard methods, Step 1 can be implemented using𝑂(
𝑙2
𝑘
3
)=
𝑙6
𝑂( 3 ) operations.
𝑘
PROOF OF KEY
LEMMAS
Proof of Lemma 1𝒓+𝟏
𝟐
constraints for each 𝒊 on the coefficients of 𝑸(𝑿, 𝒀 ).
• 𝑄 𝑋, 𝑌 =
𝑖,𝑗
𝑖+ 𝑘−1 𝑗≤𝐷
𝑐𝑖𝑗 𝑋 𝑖 𝑌𝑗
• 𝑄𝛼𝛽 𝑋, 𝑌 = 𝑄 𝑋 + 𝛼, 𝑌 + 𝛽 =
(𝑑𝑒𝑔𝑟𝑒𝑒(𝑄) ≤ 𝐷)
𝛼𝛽 𝑖 𝑗
𝑖,𝑗 𝑐𝑖𝑗 𝑋 𝑌
To prove (i), note that by the definition:
1
2
1
2
To prove (ii), recall that by definition 𝑄𝛼𝛽 𝑋, 𝑌 has no monomial of degree < 𝑟 :
Proof of Lemma 2𝑹(𝑿) = 𝑸(𝑿, 𝑷(𝑿)) has 𝒓 roots for every 𝒊 such that 𝑷(𝜶𝒊 ) = 𝒚𝒊 .
In other words, 𝑿 − 𝜶𝒊 𝒓 divides 𝑹(𝑿).
• We will proof other lemma:
Lemma 2’: Let 𝑄(𝑋, 𝑌) be computed by Step 1 in Algorithm 3.
Let 𝑃(𝑋) be a polynomial of degree ≤ 𝑘 − 1, such that 𝑃 𝛼𝑖 = 𝑦𝑖
𝐷
for at least 𝑡 > values of 𝑖, then 𝑌 − 𝑃(𝑋) divides 𝑄(𝑋, 𝑌).
𝑟
Proof:
𝑅 𝑋 : = 𝑄(𝑋, 𝑃(𝑋)).
As usual, to prove the lemma, we will show that 𝑅(𝑋) ≡ 0.
To do this, we will use the following claim:
If 𝑃 𝛼𝑖 = 𝑦𝑖 , then 𝑋 − 𝛼𝑖 𝑟 divides 𝑅(𝑋), that 𝛼𝑖 is a root of 𝑅(𝑋) with
multiplicity 𝑟 .
remainder
• Claim: 𝑦 − 𝑃(x) devides 𝑄 𝑥, 𝑦 if and only if 𝑅 𝑥 ≡ 0.
• 1. Let 𝑦 − 𝑃(x) devides 𝑄 𝑥, 𝑦 then 𝑄 𝑥, 𝑦 = (𝑦 − 𝑃 x )
∙ 𝐺(𝑥, 𝑦) and therefore
• 𝑅 𝑥 = 𝑄 𝑥, 𝑃(𝑥) = (𝑃(𝑥) − 𝑃 x ) ∙ 𝐺(𝑥, 𝑃(𝑥)) ≡ 0
• 2. Let 𝑅 𝑥 ≡ 0 then 𝑄 𝑥, 𝑃(𝑥) ≡ 0 → 𝑄 𝑥, 𝑦 = (𝑦 − 𝑃 x )
∙ 𝐺(𝑥, 𝑦)
• And we got that 𝑦 − 𝑃 x devided 𝑄 𝑥, 𝑦
To do this, we will use the following claim:
If 𝑷 𝜶𝒊 = 𝒚𝒊 , then 𝑿 − 𝜶𝒊 𝒓 divides 𝑹(𝑿), that 𝜶𝒊 is a root of 𝑹(𝑿)
with multiplicity 𝒓 .
• Note that by definition of 𝑄(𝑋, 𝑌 ) and 𝑃(𝑋), 𝑅(𝑋) has degree ≤ 𝐷.
Assuming the above claim is correct, 𝑅(𝑋) has at least 𝑡 · 𝑟 roots.
Therefore, by the degree mantra, 𝑅(𝑋) is a zero polynomial as 𝑡 · 𝑟 > 𝐷.
• We will now prove Claim:
• Claim: 𝑦 − 𝑃 x
• 1. Let 𝑦 − 𝑃 x
𝑟
𝑟
𝑄 𝑥, 𝑦 = 𝑦 − 𝑃 x
devides 𝑄 𝑥, 𝑦 if and only if 𝑅 𝑥 ≡ 0.
devides 𝑄 𝑥, 𝑦 then
𝑟
∙ 𝐺(𝑥, 𝑦) and therefore
𝑅 𝑥 = 𝑄 𝑥, 𝑃(𝑥) = 𝑃 𝑥 − 𝑃 x
𝑟
∙ 𝐺(𝑥, 𝑃(𝑥)) ≡ 0
• 2. Let 𝑅 𝑥 ≡ 0 then 𝑄 𝑥, 𝑃(𝑥) ≡ 0 → 𝑄 𝑥, 𝑦 = (𝑦 − 𝑃 x )
∙ 𝐺(𝑥, 𝑦)
• And we got that 𝑦 − 𝑃 x devided