Kernelization is a strong and widely-applied technique in parameterized complexity. In a nutshell, a kernelization algorithm, or simply a kernel, is a polynomial-time transformation that transforms any given parameterized instance to an equivalent instance of the same problem, with size and parameter bounded by a function of the parameter in the input. A kernel is polynomial if the size and parameter of the output are polynomially-bounded by the parameter of the input. - Bodlaender, Downey, Fellows, Hermelin in “On problems without polynomial kernels”