Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Milnor K-groups KnM(F)K^M_n(F)KnM​(F) and symbols

Definition
MilnorConjecture_MilnorK

by vatsj · Sep 24, 2026 · Mathlib 0df444a (Lean v4.33.1)

algebrak-theorymilnor-k-theory

For a field FFF and n≥0n \ge 0n≥0, the Milnor K-group KnM(F)K^M_n(F)KnM​(F) is the quotient of the nnn-fold tensor power (F×)⊗n(F^\times)^{\otimes n}(F×)⊗n over Z\mathbb{Z}Z (with F×F^\timesF× written additively) by the subgroup generated by all pure tensors a1⊗⋯⊗ana_1\otimes\cdots\otimes a_na1​⊗⋯⊗an​ of units in which some adjacent pair satisfies ai+ai+1=1a_i + a_{i+1} = 1ai​+ai+1​=1:

KnM(F)=(F×)⊗n/⟨ a1⊗⋯⊗an  :  ai+ai+1=1 for some i ⟩.K^M_n(F) = (F^\times)^{\otimes n} \big/ \bigl\langle\, a_1\otimes\cdots\otimes a_n \;:\; a_i + a_{i+1} = 1 \text{ for some } i \,\bigr\rangle.KnM​(F)=(F×)⊗n/⟨a1​⊗⋯⊗an​:ai​+ai+1​=1 for some i⟩.

The class of a1⊗⋯⊗ana_1\otimes\cdots\otimes a_na1​⊗⋯⊗an​ is the symbol {a1,…,an}\{a_1,\dots,a_n\}{a1​,…,an​}. This is the degree-nnn part of T(F×)/IT(F^\times)/IT(F×)/I, where III is the two-sided ideal generated by the a⊗ba\otimes ba⊗b with a+b=1a+b=1a+b=1; in particular K0M(F)=ZK^M_0(F)=\mathbb{Z}K0M​(F)=Z and K1M(F)=F×K^M_1(F)=F^\timesK1M​(F)=F×.

Formalization Note MilnorK F n is defined degree by degree as a quotient of ⨂[ℤ]^n (Additive Fˣ), with no ring structure; symbol a takes a : Fin n → Fˣ. The field lives in Type.

Definition code
import Mathlib

/-!
# Milnor K-theory, one degree at a time

For a field `F`, the Milnor K-group `K^M_n(F)` is the degree-`n` part of `T(F^×)/I`, where
`T(F^×)` is the tensor algebra over `ℤ` of the abelian group `F^×` and `I` is the two-sided ideal
generated by the `a ⊗ b` with `a + b = 1`. Its degree-`n` part is the quotient of the `n`-th
tensor power `(F^×)^{⊗n}` by the subgroup generated by pure tensors `a₁ ⊗ ⋯ ⊗ aₙ` in which some
adjacent pair satisfies `aᵢ + aᵢ₊₁ = 1`.
-/

open scoped TensorProduct

namespace MilnorConjecture

variable (F : Type) [Field F]

/-- The Steinberg relations in degree `n`: the subgroup of `(F^×)^{⊗n}` generated by the pure
tensors `a₁ ⊗ ⋯ ⊗ aₙ` with `aᵢ + aᵢ₊₁ = 1` for some `i`. -/
def steinberg (n : ℕ) : Submodule ℤ (⨂[ℤ]^n (Additive Fˣ)) :=
  Submodule.span ℤ {x | ∃ (a : Fin n → Fˣ) (i j : Fin n), (i : ℕ) + 1 = j ∧
    (a i : F) + (a j : F) = 1 ∧ x = PiTensorProduct.tprod ℤ (fun l ↦ Additive.ofMul (a l))}

/-- The Milnor K-group `K^M_n(F) = (F^×)^{⊗n} / (Steinberg relations)`. -/
abbrev MilnorK (n : ℕ) : Type := (⨂[ℤ]^n (Additive Fˣ)) ⧸ steinberg F n

variable {F} in
/-- The symbol `{a₁, …, aₙ} ∈ K^M_n(F)`, the class of `a₁ ⊗ ⋯ ⊗ aₙ`. -/
noncomputable def symbol {n : ℕ} (a : Fin n → Fˣ) : MilnorK F n :=
  (steinberg F n).mkQ (PiTensorProduct.tprod ℤ (fun l ↦ Additive.ofMul (a l)))

end MilnorConjecture
Source
V. Voevodsky, Motivic cohomology with Z/2-coefficients, Publ. Math. IHES 98 (2003), 59-104, https://doi.org/10.1007/s10240-003-0010-6, p. 59 (Introduction, eq. (2)-(3)): K^M_*(k) = T(k^*)/I, I generated by a (x) b with a + b = 1.
Read-back

What the Lean code literally says, in plain math · claude-opus-5-5

Ambient data (variable binders). Throughout, FFF is a field whose underlying type lives in the lowest universe (Type, i.e. a "small" type). Write F×F^\timesF× for its group of units (the nonzero elements under multiplication), and A:=Additive⁡(F×)A := \operatorname{Additive}(F^\times)A:=Additive(F×) for the same group written additively: the element of AAA corresponding to u∈F×u \in F^\timesu∈F× is denoted [u][u][u], and [uv]=[u]+[v][uv] = [u] + [v][uv]=[u]+[v], [1]=0[1] = 0[1]=0, k⋅[u]=[uk]k\cdot[u] = [u^k]k⋅[u]=[uk] for k∈Zk \in \mathbb{Z}k∈Z. AAA is regarded as a Z\mathbb{Z}Z-module via this abelian-group structure. For n∈Nn \in \mathbb{N}n∈N, A⊗n:=⨂Z nAA^{\otimes n} := \bigotimes_{\mathbb{Z}}^{\,n} AA⊗n:=⨂Zn​A denotes the nnn-fold tensor power of AAA over Z\mathbb{Z}Z, formally the tensor product over Z\mathbb{Z}Z of the family (A)l∈{0,…,n−1}(A)_{l \in \{0,\dots,n-1\}}(A)l∈{0,…,n−1}​ indexed by Fin⁡n={0,1,…,n−1}\operatorname{Fin} n = \{0, 1, \dots, n-1\}Finn={0,1,…,n−1}. For a tuple a=(a0,…,an−1)∈(F×)na = (a_0,\dots,a_{n-1}) \in (F^\times)^na=(a0​,…,an−1​)∈(F×)n, write [a0]⊗⋯⊗[an−1][a_0]\otimes\cdots\otimes[a_{n-1}][a0​]⊗⋯⊗[an−1​] for the corresponding pure tensor. No other hypotheses on FFF (characteristic, finiteness, etc.) are imposed.

steinberg F n (definition). For each n∈Nn \in \mathbb{N}n∈N, this is the Z\mathbb{Z}Z-submodule (subgroup) Stn(F)⊆A⊗n\mathrm{St}_n(F) \subseteq A^{\otimes n}Stn​(F)⊆A⊗n generated by the set

Sn={ [a0]⊗⋯⊗[an−1]  :  a∈(F×)n, ∃ i,j∈{0,…,n−1} with j=i+1 and ai+aj=1 in F }.S_n = \Bigl\{\, [a_0]\otimes\cdots\otimes[a_{n-1}] \;:\; a \in (F^\times)^n,\ \exists\, i, j \in \{0,\dots,n-1\} \text{ with } j = i+1 \text{ and } a_i + a_j = 1 \text{ in } F \,\Bigr\}.Sn​={[a0​]⊗⋯⊗[an−1​]:a∈(F×)n, ∃i,j∈{0,…,n−1} with j=i+1 and ai​+aj​=1 in F}.

That is, the generators are exactly the pure tensors of units in which some two consecutive entries ai,ai+1a_i, a_{i+1}ai​,ai+1​ (adjacent positions, in that order) sum to 111 in FFF (the sum is taken in the field FFF, not in the group AAA). Pairs of non-adjacent positions are not included directly among the generators. Since the ala_lal​ are units, such a pair requires ai≠0a_i \neq 0ai​=0, ai+1=1−ai≠0a_{i+1} = 1 - a_i \neq 0ai+1​=1−ai​=0, i.e. ai∉{0,1}a_i \notin \{0, 1\}ai​∈/{0,1}. The index condition "j=i+1j = i+1j=i+1" is read on natural numbers with both i,j<ni, j < ni,j<n, so no wrap-around from position n−1n-1n−1 to position 000 occurs. Degenerate cases: for n=0n = 0n=0 and n=1n = 1n=1 there is no pair of positions i,i+1i, i+1i,i+1 both <n< n<n, so S0=S1=∅S_0 = S_1 = \varnothingS0​=S1​=∅ and St0(F)=St1(F)=0\mathrm{St}_0(F) = \mathrm{St}_1(F) = 0St0​(F)=St1​(F)=0. For n≥2n \ge 2n≥2 the set SnS_nSn​ is nonempty exactly when some u∈F×u \in F^\timesu∈F× has 1−u∈F×1-u \in F^\times1−u∈F× (i.e. ∣F∣>2|F| > 2∣F∣>2); for F=F2F = \mathbb{F}_2F=F2​, Sn=∅S_n = \varnothingSn​=∅ (though then A=0A = 0A=0 and A⊗n=0A^{\otimes n} = 0A⊗n=0 for n≥1n \ge 1n≥1 anyway).

MilnorK F n (abbreviation). For each n∈Nn \in \mathbb{N}n∈N, this is the quotient Z\mathbb{Z}Z-module (abelian group)

Kn(F):=A⊗n/Stn(F),K_n(F) := A^{\otimes n} \big/ \mathrm{St}_n(F),Kn​(F):=A⊗n/Stn​(F),

with its induced abelian-group / Z\mathbb{Z}Z-module structure. It is a plain family of abelian groups indexed by nnn; no multiplication or graded-ring structure between different nnn is defined in this file. Degenerate cases: since St0=St1=0\mathrm{St}_0 = \mathrm{St}_1 = 0St0​=St1​=0, K0(F)K_0(F)K0​(F) is the empty tensor power A⊗0A^{\otimes 0}A⊗0, which (by Mathlib's conventions) is canonically Z\mathbb{Z}Z, and K1(F)=A⊗1K_1(F) = A^{\otimes 1}K1​(F)=A⊗1, which is canonically A≅F×A \cong F^\timesA≅F× (written additively), with no relations imposed in either case.

symbol (definition). Implicit arguments: the field FFF (as above) and n∈Nn \in \mathbb{N}n∈N; explicit argument: a tuple a=(a0,…,an−1)∈(F×)na = (a_0,\dots,a_{n-1}) \in (F^\times)^na=(a0​,…,an−1​)∈(F×)n. The value is

{a0,…,an−1}:=π([a0]⊗⋯⊗[an−1])∈Kn(F),\{a_0,\dots,a_{n-1}\} := \pi\bigl([a_0]\otimes\cdots\otimes[a_{n-1}]\bigr) \in K_n(F),{a0​,…,an−1​}:=π([a0​]⊗⋯⊗[an−1​])∈Kn​(F),

where π:A⊗n→Kn(F)\pi : A^{\otimes n} \to K_n(F)π:A⊗n→Kn​(F) is the canonical quotient map (Z\mathbb{Z}Z-linear, surjective). It is marked noncomputable, which has no mathematical content. For n=0n = 0n=0 the only tuple is the empty one and { }\{\,\}{} is the image of the empty pure tensor (corresponding to 1∈Z1 \in \mathbb{Z}1∈Z). By construction and multilinearity of the pure tensor, {a0,…,an−1}=0\{a_0,\dots,a_{n-1}\} = 0{a0​,…,an−1​}=0 whenever ai+ai+1=1a_i + a_{i+1} = 1ai​+ai+1​=1 for some iii with i+1<ni+1 < ni+1<n, and {…,uv,… }={…,u,… }+{…,v,… }\{\dots, uv, \dots\} = \{\dots, u, \dots\} + \{\dots, v, \dots\}{…,uv,…}={…,u,…}+{…,v,…} in each slot; the file itself states no lemmas about symbol.

Lemmas. The file contains no theorems or lemmas; it consists only of the two variable declarations for FFF, the definitions steinberg and symbol, and the abbreviation MilnorK, all inside the namespace MilnorConjecture. The only notation opened is the tensor-product notation.

Human review
  • Endorsed by Shuze Chen · Sep 25, 2026

    Confirmed by the moderator at approval.

  • Endorsed by vatsj · Sep 25, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me