admin ps5 due ps6 out today local unique decoding recall f(\vx) avg case hard iff \vx\mapsto \vx,f(\vx) is a PRG [[ie, cannot predict last bit]] [[gets 1 bit stretch]] NisanWigderson: f (2^{\Omega(\ell)},1/2-1/2^{\Omega(\ell)}) avg case hard => PRG w/ logarithmic seed-length [[asking for maximal circuit size hardness]] [[evaluate f on *nearly* disjoint inputs]] [[used hybrid argument]] f in E => (mildly) explicit PRG => P=BPP goal: f worst case hard => \hat{f} avg case hard last time: f size-t worst case hard Enc a "good" locally decodable code \delta-uniquely decodable [[LDC picture]] [[LCC picture]] => \hat{f}=Enc(f) is (~t,\delta) average-case hard constructions Hadamard code min dist = 1/2 => 1/4-unique global decoding prop: (1/4-\eps)-unique local decoding, poly(\log L,1/\eps) decoding time \-> great [[for unique dec]] \-> great bad: \Enc:\bits^n\to\bits^{2^n} poor rate Reed-Solomon codes rate: great! locality: poor (provably) Reed-Muller: interpolates between Hadamard and Reed-Solomon distance: ok locality: ok rate: ok alphabet size: fix with concatenation today: local decoding of reed-muller codes reed-muller def(Reed-Muller): \Enc:\F_q^{(n+d choose d)}\to\F_q^{q^m} f m-variate total degree polynomial d f\mapsto (f(\vaa))_{\vaa\in\F_q^m} lem[Schwartz Zippel] f(\vx) degree \le d poly, non-zero Pr_{\vaa\in \F_q}[f(\vaa)=0]\le d/q => f\ne g, Pr[f(\vaa)=g(\vaa)]\le d/q => RM(d,m) has distance 1-d/q thm: RM(d,m) has 1/12-unique local correcting algorithm in time poly(m,q), for d\le q/9, q\ge 36 param: [[can do better, but these are reasonable parameters]] distance: \Omega(1) [[pretty good]] rate: will do later locality: poly(m,q) vs q^m [[local vs global] [[can do better, but suffices for our parameters]] d\le q/9: so that 1-d/q\ge \Omega(1) q\ge 36: so that 1-d/q\ge \Omega(1) [[and technical point later]] pf1: idea: random self-reducability w/ lines hadamard: random r, =+ ie, random r, a\in\span\{r,a-r\} [[using two points from one-dimensional line]] idea [[draw picture]] defn: a parameterized line is \ell_{x,y}:\F\to\F^m with \ell_{x,y}(t)=x+ty [[parameterized by t]] lem: g|_{\ell_{x,y}}=g(\ell_{x,y}(t)):\F\to\F is degree \le d polynomial [[deg d ( deg 1)]] algo: input: g:\F^m\to\F, x\in\F^m, degree d bound [[want to correct g to low degree po output: unique degree \le d polynomial p, with \delta(p,g)\le ..., output p(\vx) 1) choose y\from\F^m randomly. construct \ell_{x,y} 2) query g|_{\ell_{x,y}} on \alpha_0,\alpha_1,\ldots,\alpha_d\in\F\setminus\{0\} [[\alpha_i fixed constants]] 3) find *unique* degree \tilde{p} \le d poly agreeing with (2) 4) output \tilde{p}(0) runtime: poly(m,q) [[d\le q]] lem: \delta(g,p)\le 1/(3(d+1)) some p => algo outputs p(\vx) w/p \ge 2/3 pf \alpha_i\in\F\setminus\{0\} fixed \ell_{x,y}(\alpha_i)=x+\alpha_i y, random over y Pr_y[g|_\ell(\alpha_i)\ne p|_\ell(\alpha_i)]\le 1/3(d+1) Pr_y[\exists i, g|_\ell(\alpha_i)\ne p|_\ell(\alpha_i)]\le 1/3 Pr_y[recover p|_\ell] \ge 1-1/3=2/3 [[then evaluate p|_\ell at 0]] rmk: not good for large d [[we need d large for good rate]] pf2 Q. how to do better? A. use reed-solomon decoding [[draw picture]] algo: input: g:\F^m\to\F, x\in\F^m, degree d bound [[want to correct g to low degree po output: for unique degree \le d polynomial p, with \delta(p,g)\le ..., output p(\vx) 1) choose y\from\F^m randomly. construct \ell_{x,y} 2) query g|_{\ell_{x,y}} on all \alpha\in\F 3) find *unique* degree \tilde{p} \le d poly agreeing with (2), using 1/3-unique decoding of Reed-Solomon codes if it exists! 4) output \tilde{p}(0) runtime: poly(m,q) prop: deterministic algorihm for 1/3-unique decoding of Reed-Solomon codes, if if d\le q/9 [[here we use degree bound]] pf: use 1-2\sqrt{d/q}\ge 1-2*1/3=1/3 list decoding unique decoding radius is 1/2*(1-d/q)\ge 1/3 lem: \delta(g,p)\le 1/12, some \deg p\le d, then such \tilde{p} is uniquely found w/p \ge 2/3 [[need to prove is unique]] [[need to prove is found]] pf [[draw picture]] \E_y[\delta(g|_\ell,p|_\ell)]\le 1/q+1/12 \le 1/36+1/12=1/9 [[use field size]] Markov => Pr_\ell[\delta(g|_\ell,p|_\ell)\ge 1/3]\le 1/3 => \Pr_\ell[unique \tilde{p}]\ge 1-1/3=2/3 got: \Omega(1)-locally correctible code with reasonable parameters need: *decodable* [[give systematic encoding]] defn: Enc:\bits^L\to\F^{\hat{L}} is *systematic* if first L coordinates are identity function [[systematic LCC are LDC]] idea: f \deg \le d \mapsto \{f(\vaa)\}_{\vaa\in\F_q^m} \{f(\vaa)\}_{\vaa\in S} \mapsto \=> statement about polynomial interpolation lem: f:\bits^\ell\to\bits. exist unique polynomial \hat{f}\in\F[x_1,\ldots,x_\ell] with \deg_{x_i}\hat{f} \le 1 \hat{f}|_{\bits^\ell}=f [[\hat{f} is called the low-degree extension of f]] pf: existence: \hat{f}(\vx)=\sum_{\vaa\in\bits^\ell} f(\vaa) \ind{\vx=\vaa} =\prod_{\alpha_i=1} x_i \prod_{\alpha_i=0} (1-x_i) \-> 1 for \vx=\vaa, for \vx\in\bits^\ell 0 else \hat{f}(\vaa)=f(\vaa) uniqueness: V={polynomials with \deg_{x_i}\hat{f} \le 1} linear space dimension 2^n W={functions f:\bits^\ell\to\F} linear space dimension 2^n eval:V\mapsto W[[sends polynomial to its evaluation]] lem: \eval is linear: eval(f+g)=eval(f)+eval(g) existence => eval is surjective Q. injectivity? dimension count + surjective => bijectivity cor: S\subseteq\F. f:S^\ell\to \F. exists unique polynomial \hat{f} with \deg_{x_i}\hat{f} < |S| \hat{f}|_{S^\ell}=f prop: explicit Enc:\bits^L\to\Sigma^{\hat{L}} \hat{L}=\poly(L) |\Sigma|=\polylog(L) 1/12 uniquely locally decodable in time polylog(L) pf. f:\bits^\ell\to\bits \mapsto g:S^{\ell'}\to bits, if |S|^{\ell'}\ge 2^\ell take |S|=\ceil{\sqrt{q}}, m=\ceil{\ell/\log |S|} \hat{\ell}=m\cdot \log q=O(\ell) encode g as \hat{g} individual degree <|S| total degree \le\ell*(|S|-1)\le \ell\sqrt{q} local correction if q\ge 81\ell^2 encoding in time poly(L)=poly(2^\ell) cor: explicit Enc:\bits^L\to\bits^{\hat{L}} \hat{L}=\poly(L) \Sigma=\bits 1/48 uniquely locally decodable in time polylog(L) pf concatenate with Hadamard 1/4-uniquely globally decodable \-> inner code is small [[so loss is acceptable]] cor: f:\bits^\ell\to\bits in E=TIME(2^{O(\ell)}) t(\ell)-worst-case hard => \hat{f}:\bits^{O(\ell)}\to\bits in E that is (t(\ell)/\poly(\ell),1/48)-avg case hard next time: local list decoding