Supposons qu'il existe un algorithme de polytime qui, étant donné et → a, a calculé le résultat de la multi-linéarisation de C sur → a . (wlog je suppose que la sortie → b sera un vecteur de nombres binaires à p bits b i est k ssi b i , k est un.)C(x⃗ )∈F(x⃗ )a⃗ Ca⃗ b⃗ pbikbi,k
Since P⊆P/poly, there is a polysize boolean circuit that given the encoding of the arithmetic circuit and the values for the variables computes the multi-linearization of the arithmetic circuit on the inputs. Let call this circuit M.
Let C be an arbitrary arithmetic circuit. Fix the variables of the boolean circuit M which describe the arithmetic circuit, so we have a boolean circuit computing the multi-linearization of C on given inputs.
We can turn this circuit into an arithmetic circuit over Fp by noting that xp−1 is 1 for all values but 0 so first raise all inputs to the power p−1. Replace each f∧g gate by multiplication f.g, each f∨g gate by f+g−f.g and each ¬f gate by 1−f.
By the assumption we made above about the format of the output, we can turn the output from binary to values over Fp. Take the output for bi and combine them to get ∑0≤k≤p−1kbi,k.
We can also convert the input given as values over Fp to binary form since there are polynomials passing through any finite number of points. E.g. if we are working in mod3, consider the polynomials 2x(x+1) and 2x(x+2) which give the first and the second bits of the input x∈F3.
Combining these we have an arithmetic circuit over Fp computing the multi-linearization of C with size polynomail in the size of C.