Zulip Chat Archive

Stream: combinatorial-games

Topic: The next transcendental is at most SVO


Violeta Hernández (Oct 11 2025 at 23:42):

I felt like it'd be appropriate to put this in a separate thread to the #combinatorial-games > Nimbers thread. An acquaintance (Rachel L. A. Hunter) recently communicated a proof that every nimber of the form φ(1@ω, x@0) is transcendental (where the notation is Veblen's multivariate function). In particular, the next transcendental is at most the Small Veblen Ordinal, giving a partial answer to a conjecture by Lenstra. I've gone over the proof and though I can't say I completely grasp it, it does seem correct.

Violeta Hernández (Oct 11 2025 at 23:42):

Here's the document, shared with permission: nimtrans.pdf

Violeta Hernández (Oct 11 2025 at 23:47):

For reference, here's a Lean definition of the multivariate Veblen function. The description on Wikipedia is kind of confusing, though admittedly so is this.

import Mathlib.Data.Finset.Max
import Mathlib.Data.Finsupp.Single
import Mathlib.SetTheory.Ordinal.Veblen

namespace Ordinal

noncomputable def veblen₀ (f : Ordinal →₀ Ordinal) : Ordinal :=
  let g := f.erase 0
  if hg : g = 0 then ω ^ f 0 else
    let e := g.support.min' (Finsupp.support_nonempty_iff.2 hg)
    derivFamily
      (fun (x : Set.Iio (f e) × Set.Iio e) o  veblen₀ ((g.update e x.1).update x.2 o)) (f 0)
termination_by f -- with colex order
decreasing_by sorry

end Ordinal

The notation (a₁@b₁, ..., aₙ@bₙ) is simply the finitely supported function with f(aᵢ) = bᵢ and f(x) = 0 otherwise.

Violeta Hernández (Oct 11 2025 at 23:54):

The secret sauce here is the definition C(α,p)C(\alpha, p). For pp a nimber polynomial whose coefficients are less than α\alpha, this is the smallest nimber FαF\ge\alpha such that every non-constant polynomial q:F[X]q : F[X] with q<pq < p contains a root/splits in FF.

She proves by induction on pp that if p0=0p_0=0, then α<φ(pn,,p1,β)\alpha < \varphi(p_n,\ldots,p_1,\beta) implies C(α,p)φ(pn,,p1,β)C(\alpha,p)\le \varphi(p_n,\ldots,p_1,\beta). Which then straightforwardly implies the claimed result.

Violeta Hernández (Oct 11 2025 at 23:59):

If I'm not mistaken, her proof in fact proves the stronger statement that α<φ(pn,,p1,β)\alpha<\varphi(p_n,\ldots,p_1,\beta) implies C(α,p)φ(pn,,p1,β+p0)C(\alpha,p)\le\varphi(p_n,\ldots,p_1,\beta+p_0), where of course p0p_0 can now be anything else.

Aaron Liu (Oct 12 2025 at 00:00):

I guess I can try porting it to Lean

Violeta Hernández (Oct 12 2025 at 00:00):

Well, I would like to be methodic about this.

Aaron Liu (Oct 12 2025 at 00:05):

what does that mean

Violeta Hernández (Oct 12 2025 at 00:05):

I would like to first distill the argument into its bare components

Violeta Hernández (Oct 12 2025 at 00:05):

I think there's a lemma about C(α,p)C(\alpha,p) which goes implicit in the document but which we probably want to show explicitly. Again, assume that I'm not mistaken.

Let pp be a nimber polynomial and let α\alpha be larger than all its coefficients. Let dd be the "co-degree" of pp, i.e. the index of the least non-zero coefficient. Define α0=α\alpha_0=\alpha and αn+1=qC(αn,q)\alpha_{n+1}=\bigsqcup_q C(\alpha_n,q) where q:αn[X]q:\alpha_n[X] goes over all polynomials with q<pq<p and where pk=qkp_k=q_k for every k>dk>d. Define αω\alpha_\omega as the supremum of αn\alpha_n for n:Nn : \mathbb N. Then C(α,p)αωC(\alpha,p)\le \alpha_\omega.

Violeta Hernández (Oct 12 2025 at 00:08):

I think that this lemma allows us to unify the m=0m=0 and m>0m>0 successor cases in the document.

Violeta Hernández (Oct 12 2025 at 00:10):

Oh and of course. Before we do any of this we'd have to formalize Veblen's multivariate function itself. I think I can take care of that.

Aaron Liu (Oct 12 2025 at 00:13):

Violeta Hernández said:

For reference, here's a Lean definition of the multivariate Veblen function. The description on Wikipedia is kind of confusing, though admittedly so is this.

this is the first definition I've seen that I can remember and not have to go back and look it up

Violeta Hernández (Oct 12 2025 at 00:14):

Veblen's multivariate function is just inherently confusing I think

Violeta Hernández (Oct 12 2025 at 00:15):

φ(1, 0, 0) is a fixed point of φ(-, 0) though not necessarily of φ(x, -)

Aaron Liu (Oct 12 2025 at 00:16):

unfortunately it doesn't seem to define the correct function

Violeta Hernández (Oct 12 2025 at 00:16):

my definition or Wikipedia's?

Aaron Liu (Oct 12 2025 at 00:16):

your definition

Aaron Liu (Oct 12 2025 at 00:18):

No maybe I just misread it

Aaron Liu (Oct 12 2025 at 00:18):

no this is probably fine

Aaron Liu (Oct 12 2025 at 00:19):

no yeah this is fine

Aaron Liu (Oct 12 2025 at 00:28):

it's so confusing

Aaron Liu (Oct 12 2025 at 00:29):

I'm confirming everything up to Γ0\Gamma_0 and then I will assume it's correct

Violeta Hernández (Oct 12 2025 at 00:57):

wouldn't Γ0\Gamma_0 be the case where pp is a linear polynomial which is trivial anyways?

Aaron Liu (Oct 12 2025 at 00:58):

confirming the output of your definition of Veblen

Violeta Hernández (Oct 12 2025 at 01:05):

ah

Aaron Liu (Oct 12 2025 at 01:10):

It seems to be doing fine

Aaron Liu (Oct 12 2025 at 01:11):

I'm guess the first thing to do is to prove the Veblen function terminates then?

Violeta Hernández (Oct 12 2025 at 01:24):

Well

Violeta Hernández (Oct 12 2025 at 01:25):

What we really need to do is define the order instance for docs#Colex of a docs#Finsupp

Violeta Hernández (Oct 12 2025 at 01:25):

the API should be pretty much copy and paste from the docs#Lex API

Violeta Hernández (Oct 12 2025 at 21:06):

I think it's not particularly controversial to say the multivariate Veblen function belongs in our repo rather than Mathlib

Violeta Hernández (Oct 12 2025 at 21:07):

I'm currently working on PR-ing the Preorder (Colex (α →₀ β)) instance to Mathlib

Violeta Hernández (Oct 12 2025 at 21:07):

Once we have that it shouldn't be very difficult to prove termination

Violeta Hernández (Oct 12 2025 at 23:02):

This might take a while
image.png

Violeta Hernández (Oct 13 2025 at 23:41):

Turns out there's way more dependent PRs for this colex stuff than I was anticipating. What do you think about just putting it in our repo for the time being?


Last updated: Dec 20 2025 at 21:32 UTC