ヘンゼルの補題
s = r − f ( r ) ⋅ a {\displaystyle s=r-f(r)\cdot a}
で具体的に計算できる整数である。ここで a {\displaystyle a} は次の式
a ≡ [ f ′ ( r ) ] − 1 mod p m {\displaystyle a\equiv [f'(r)]^{-1}{\bmod {p}}^{m}}
を満たす整数である。先程の式で s を定めれば、 f ( r ) ≡ 0 mod p k {\displaystyle f(r)\equiv 0{\bmod {p}}^{k}} なので条件 s ≡ r mod p k {\displaystyle s\equiv r{\bmod {p}}^{k}} は満たされている。なお、 f ′ ( r ) ≡ 0 mod p {\displaystyle f'(r)\equiv 0{\bmod {p}}} であるときは、持ち上げ s は存在しないかもしれないし複数存在するかもしれない(あとで「#ヘンゼル持ち上げ」で例示する)。
この補題は、任意の可換環を係数とする多項式に対して、p をイデアル、「互いに素な2つの多項式」を「2つの多項式が生成するイデアルが1を含む」に置き換えることにより一般化できる。一般化された補題も同じ名前で呼ばれる。
ヘンゼルの補題は、解析的整数論の一分野である p 進解析学の基礎である。
ヘンゼルの補題の証明は構成的(英語版)であり、証明からヘンゼル持ち上げの効率的なアルゴリズムが得られる。これは多項式の因数分解のアルゴリズムの基礎である。また有理数体上の線型代数学についての最も効率の良いアルゴリズムが得られる。
ヘンゼルの補題は、ヘンゼルよりも早く1846年にテオドル・シェーネマン(英語版)によって証明されていた。また、「存在」についての主張だけならシェーネマンよりも早くカール・フリードリヒ・ガウスによっても知られていた。
一般形のヘンゼルの補題を適用するためには | f ( 1 ) | 3 < | f ′ ( 1 ) | 3 2 {\displaystyle |f(1)|_{3}<|f'(1)|_{3}^{2}} である必要がある。これは c ≡ 1 mod 2 7 {\displaystyle c\equiv 1{\bmod {2}}7} ということである。つまり、 c ≡ 1 mod 27 であれば一般形のヘンゼルの補題から f(x) が3進根を持つことがわかり、c が3進立方数であることがわかる。しかし、 c ≡ 1 mod 9 というより弱い条件のもとでこの結果が欲しい。c ≡ 1 mod 9 であれば、c ≡ 1, 10, or 19 mod 27 である。この3つの c mod 27 の値に応じて初期値を使い分けて一般形のヘンゼルの補題を適用する。c ≡ 1 mod 27 なら、a = 1 を使う。c ≡ 10 mod 27 なら、a = 4 を使う(4は法27での f(x) の根)。c ≡ 19 mod 27 なら、a = 7 を使う。なお、任意の c ≡ 1 mod 3 は3進立方数になる、という主張は正しくない。例えば、4は法9で立方数にならないので3進立方数ではない。
同様にして、少し準備が必要だが、ヘンゼルの補題を使って任意の奇素数 p に対して法 p で1と合同な全ての p 進整数 c は Z p {\displaystyle \mathbb {Z} _{p}} の p 冪乗数であることを示すことができる(p = 2 の場合はこれは成り立たない)。
ヘンゼルの補題は多変数の多項式への一般化もある。f (X1, X2, ..., Xn) を整数係数の多項式とし、ディオファントス方程式
f (X1, X2, ..., Xn) = 0
を考える。これがある素数 p に対して mod p (m は非負整数)で解 a = (a1, a2, ..., an) ∈ Z を持ったとする。つまり f (a1, a2, ..., an) ≡ 0 mod p が成り立ったとする。さらに、少なくとも1つの変数について f の偏微分の a における値が mod p でゼロではなかったとする。このとき、a は mod p で a と等しい mod p での解に持ち上がる。同様に Z np の解に持ち上げることもできるので、このディオファントス方程式は p 進整数環 Zp で解を持つ。