Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Tree diagrams for Thompson's group FFF

Definition
CannonFloydParry_TreeDiagrams

by dbenbenn · Sep 16, 2026 · Mathlib 0df444a (Lean v4.33.1)

combinatoricsgroup-theorythompsons-grouptree-diagrams

The rest of section 2's vocabulary: standard dyadic intervals and partitions, tree diagrams and the element of FFF a diagram represents, reducedness, the generators XnX_nXn​, the words they form, the positive elements and the normal-form data. The two standard-dyadic predicates do not mention FFF, but they belong with the diagrams they qualify; “negative” elements (p. 224) are not defined here. The tree type and the partition its leaves cut out are imported from the companion trees definition, and FFF from the Cannon–Floyd–Parry definition of section 1; neither is redefined here.

Standard dyadic intervals and partitions. p. 219: “Define a standard dyadic interval in [0,1][0, 1][0,1] to be an interval of the form [a2n,a+12n]\bigl[\frac{a}{2^n}, \frac{a+1}{2^n}\bigr][2na​,2na+1​], where aaa, nnn are nonnegative integers with a≤2n−1a \le 2^n - 1a≤2n−1.” It is stated as a relation between the two endpoints, with the bound written a+1≤2na + 1 \le 2^na+1≤2n.

p. 220: “A partition 0=x0<x1<x2<⋯<xn=10 = x_0 < x_1 < x_2 < \cdots < x_n = 10=x0​<x1​<x2​<⋯<xn​=1 of [0,1][0, 1][0,1] determines intervals [xi−1,xi][x_{i-1}, x_i][xi−1​,xi​] for i=1,…,ni = 1, \dots, ni=1,…,n which are called the intervals of the partition. A partition of [0,1][0,1][0,1] is called a standard dyadic partition if and only if the intervals of the partition are standard dyadic intervals.” A standard dyadic partition is given here by its increasing list of breakpoints, starting at 000, ending at 111, and with every consecutive pair a standard dyadic interval. Since a standard dyadic interval has distinct endpoints, that consecutive-pair condition already forces the list to increase.

Tree diagrams. p. 221: “Formally, a tree diagram is an ordered pair (R,S)(R, S)(R,S) of T\mathcal{T}T-trees such that RRR and SSS have the same number of leaves.” And p. 221: “The tree RRR is called the domain tree of the diagram, and SSS is called the range tree of the diagram.” The T\mathcal{T}T-trees are those of the imported tree type.

The element of FFF a diagram represents has no single defining sentence; it is pieced together from two passages of p. 221: “Suppose given f∈Ff \in Ff∈F. Lemma 2.2 shows that there exist standard dyadic partitions PPP and QQQ such that fff is linear on the intervals of PPP and maps them to the intervals of QQQ. To fff is associated the tree diagram (R,S)(R, S)(R,S), where RRR is the T\mathcal{T}T-tree corresponding to PPP and SSS is the T\mathcal{T}T-tree corresponding to QQQ.” and “Furthermore, if (R,S)(R, S)(R,S) is a tree diagram, then it is clear that there exists f∈Ff \in Ff∈F such that fff is linear on every leaf of RRR and fff maps the leaves of RRR to the leaves of SSS.” An element fff of FFF is the function of a tree diagram when fff is affine on every interval of the partition cut out by the domain tree and carries that partition's breakpoints, in order, to those of the partition cut out by the range tree. Note that membership in FFF does not by itself make fff affine on the intervals of that partition: it provides only some finite set of breakpoints off which fff is affine, and that set need not sit inside the domain tree's marks. Nothing here asks the slopes to be powers of two; for these maps that is a consequence rather than a hypothesis.

p. 221: “In the other direction, if there exists a positive integer nnn such that the nthn^{\text{th}}nth and (n+1)th(n + 1)^{\text{th}}(n+1)th leaves of RRR, respectively SSS, are the vertices of a caret CCC, respectively DDD, then deleting all of CCC and DDD but the roots from RRR and SSS leads to a new tree diagram for fff. If there do not exist such carets CCC, DDD in RRR, SSS, then the tree diagram (R,S)(R, S)(R,S) is said to be reduced.” Here a tree diagram is reduced when there is no position kkk such that the kkkth and (k+1)(k+1)(k+1)th leaves are the two children of one vertex both in the domain tree and in the range tree, leaves being counted from 000, so that kkk is the source's n−1n - 1n−1.

Generators. p. 217: “Now define functions X0,X1,X2,…X_0, X_1, X_2, \dotsX0​,X1​,X2​,… in FFF so that X0=AX_0 = AX0​=A and Xn=A−(n−1)BAn−1X_n = A^{-(n-1)} B A^{n-1}Xn​=A−(n−1)BAn−1 for n≥1n \ge 1n≥1.” In particular X1=BX_1 = BX1​=B; AAA and BBB are the two generators already constructed in the imported definition of FFF.

p. 224: “The functions in FFF of the form X0b0X1b1X2b2⋯XnbnX_0^{b_0} X_1^{b_1} X_2^{b_2} \cdots X_n^{b_n}X0b0​​X1b1​​X2b2​​⋯Xnbn​​ with bk≥0b_k \ge 0bk​≥0 for k=0,…,nk = 0, \dots, nk=0,…,n will be called positive.”

p. 224, Corollary-Definition 2.7: “Every nontrivial element of FFF can be expressed in unique normal form X0b0X1b1X2b2⋯XnbnXn−an⋯X2−a2X1−a1X0−a0X_0^{b_0} X_1^{b_1} X_2^{b_2} \cdots X_n^{b_n} X_n^{-a_n} \cdots X_2^{-a_2} X_1^{-a_1} X_0^{-a_0}X0b0​​X1b1​​X2b2​​⋯Xnbn​​Xn−an​​⋯X2−a2​​X1−a1​​X0−a0​​, where n,a0,…,an,b0,…,bnn, a_0, \dots, a_n, b_0, \dots, b_nn,a0​,…,an​,b0​,…,bn​ are nonnegative integers such that i) exactly one of ana_nan​ and bnb_nbn​ is nonzero and ii) if ak>0a_k > 0ak​>0 and bk>0b_k > 0bk​>0 for some integer kkk with 0≤k<n0 \le k < n0≤k<n, then ak+1>0a_{k+1} > 0ak+1​>0 or bk+1>0b_{k+1} > 0bk+1​>0.” The bundle defines only the conditions on this exponent data: two nonempty lists a0,…,ana_0, \dots, a_na0​,…,an​ and b0,…,bnb_0, \dots, b_nb0​,…,bn​ of nonnegative integers, of the same length, satisfying i) and ii).

Definition code
import Definitions.Def_CannonFloydParry
import Definitions.Def_CannonFloydParry_Trees
import Mathlib

/-!
# Tree diagrams for Thompson's group `F`

Cannon–Floyd–Parry, *Introductory notes on Richard Thompson's groups*,
L'Enseignement Mathématique (2) **42** (1996), 215–256, §2 (pages 219–224), with the
generators `Xₙ` from §1 (page 217).

The rest of §2's vocabulary: standard dyadic intervals and partitions, tree diagrams and the
element of `F` a diagram represents, reducedness, the generators `Xₙ`, the words they form, and
the positive elements.  Everything in §2 that mentions `F` is here; the two standard-dyadic
predicates do not mention it, but they belong with the diagrams they qualify.

Two files are imported and neither is redefined here.  `Def_CannonFloydParry` supplies `F`,
`UI`, `IsThompson`, `IsDyadic`, `extend`, and the generators `mapA` and `mapB`, so that
`X₀ = mapA` and `X₁ = mapB`.  `Def_CannonFloydParry_Trees` supplies the tree type `TTree` and,
in particular, `leafCount` and `marks` — the partition of `[0,1]` cut out by a tree's leaves —
which is what a tree diagram is read against.
-/

namespace CannonFloydParry

/-! ### Standard dyadic intervals and partitions -/

/-- A **standard dyadic interval** in `[0,1]`: one of the form `[a / 2 ^ n, (a + 1) / 2 ^ n]`
with `a` and `n` nonnegative integers and `a ≤ 2 ^ n - 1` (CFP p. 219).  Stated as a relation
on the two endpoints. -/
def IsStandardDyadicInterval (x y : ℝ) : Prop :=
  ∃ a n : ℕ, a + 1 ≤ 2 ^ n ∧ x = (a : ℝ) / 2 ^ n ∧ y = ((a : ℝ) + 1) / 2 ^ n

/-- A **standard dyadic partition** of `[0,1]`: a partition `0 = x₀ < ⋯ < xₙ = 1` all of whose
intervals are standard dyadic intervals (CFP p. 220), as the list of its breakpoints.

`List.IsChain` says consecutive entries are related, and `IsStandardDyadicInterval x y` already
forces `x < y`, so the increasing condition is not stated separately. -/
def IsStandardDyadicPartition (xs : List ℝ) : Prop :=
  xs.head? = some 0 ∧ xs.getLast? = some 1 ∧ xs.IsChain IsStandardDyadicInterval

/-! ### Tree diagrams -/

/-- A **tree diagram** (CFP p. 221): an ordered pair of trees with the same number of leaves.
`dom` is the *domain tree*, `ran` the *range tree*. -/
structure TreeDiagram where
  dom : TTree
  ran : TTree
  leaves_eq : dom.leafCount = ran.leafCount

/-- `L` is **affine on every interval** cut out by the list `xs` of breakpoints: between each
consecutive pair there are `a`, `c` with `L z = a * z + c` throughout the closed interval.

This is CFP's "linear on every interval of the partition" (p. 220).  Nothing here asks the
slope to be a power of two; for the maps this is applied to that is a consequence, not a
hypothesis.

The pieces are cut out by *consecutive entries in list order*, not by the set of entries, and
the condition is imposed on the closed interval, so consecutive constraints overlap at the
shared endpoint.  On a list of fewer than two entries there is nothing to check, and on a pair
that decreases the interval is empty and nothing is required — the predicate does not itself
demand an increasing list.  It is only ever applied to `marks`, which does increase. -/
def AffineOnPieces (L : ℝ ≃o ℝ) (xs : List ℝ) : Prop :=
  xs.IsChain (fun u v => ∃ a c : ℝ, ∀ z ∈ Set.Icc u v, L z = a * z + c)

/-- `f` is **the function of the tree diagram** `d` (CFP p. 221): `f` lies in `F`, is affine on
every interval of the partition cut out by the domain tree, and carries the breakpoints of that
partition, in order, to those of the partition cut out by the range tree.

Membership in `F` does not by itself make `f` affine on the intervals of the domain tree's
partition: it provides only *some* finite set of breakpoints off which `f` is affine, and that
set need not sit inside the tree's marks. -/
def Represents (d : TreeDiagram) (f : UI ≃o UI) : Prop :=
  f ∈ F ∧ AffineOnPieces (extend f) d.dom.marks ∧
    d.dom.marks.map (extend f) = d.ran.marks

/-- A tree diagram is **reduced** when no position admits a caret in *both* trees: there is no
`k` such that the `k`th and `(k+1)`th leaves of the domain tree are siblings and the `k`th and
`(k+1)`th leaves of the range tree are siblings (CFP p. 221).

CFP phrase it as the absence of carets `C` in the domain tree and `D` in the range tree at a
common position; deleting such a pair, keeping their roots, would give a smaller tree diagram
for the same element, which is why its absence is the right notion of irreducibility. -/
def IsReduced (d : TreeDiagram) : Prop :=
  ∀ k : ℕ, ¬ (d.dom.caretAt k = true ∧ d.ran.caretAt k = true)


/-! ### The generators `Xₙ` -/

/-- CFP's generators (p. 217): `X₀ = A` and `Xₙ = A^{-(n-1)} B A^{n-1}` for `n ≥ 1`.  In
particular `X₁ = B`.  `A` and `B` are `mapA` and `mapB` of the imported bundle. -/
noncomputable def X : ℕ → UI ≃o UI
  | 0 => mapA
  | n + 1 => (mapA ^ n)⁻¹ * mapB * mapA ^ n

/-- `X₀` is `A`. -/
@[simp] theorem X_zero : X 0 = mapA := rfl

/-- `X₁` is `B`. -/
@[simp] theorem X_one : X 1 = mapB := by
  show (mapA ^ 0)⁻¹ * mapB * mapA ^ 0 = mapB
  simp

/-- The word `X i ^ c₀ * X (i+1) ^ c₁ * ⋯`, reading exponents off a list and starting the index
at `i`. -/
noncomputable def wordFrom (i : ℕ) : List ℕ → UI ≃o UI
  | [] => 1
  | c :: cs => X i ^ c * wordFrom (i + 1) cs

/-- The positive word `X₀ ^ c₀ * X₁ ^ c₁ * ⋯ * Xₙ ^ cₙ` determined by a list of nonnegative
exponents, smallest index leftmost.  This is the shape of CFP's positive elements (p. 224), and
the left half of their normal form; the right half is the inverse of such a word. -/
noncomputable def word (cs : List ℕ) : UI ≃o UI := wordFrom 0 cs

/-- The **positive** elements of `F` (CFP p. 224): the products `X₀^{b₀} ⋯ Xₙ^{bₙ}` with every
`bₖ` a nonnegative integer. -/
def IsPositive (f : UI ≃o UI) : Prop := ∃ cs : List ℕ, f = word cs

/-- CFP's conditions on the exponent data of a normal form (p. 224).  Writing `n + 1` for the
common length, the two lists are nonempty and of equal length; **exactly one** of the last
entries `aₙ`, `bₙ` is nonzero; and if `aₖ` and `bₖ` are both positive for some `k < n`, then
`a_{k+1}` or `b_{k+1}` is positive.

Entries are read with `List.getD` and default `0`, so an index past the end reads as `0`; the
length condition means that never happens for the indices actually constrained. -/
def IsNormalFormData (as bs : List ℕ) : Prop :=
  as ≠ [] ∧ as.length = bs.length ∧
    ((as.getD (as.length - 1) 0 = 0 ∧ 0 < bs.getD (as.length - 1) 0) ∨
      (0 < as.getD (as.length - 1) 0 ∧ bs.getD (as.length - 1) 0 = 0)) ∧
    ∀ k, k + 1 < as.length →
      0 < as.getD k 0 → 0 < bs.getD k 0 → 0 < as.getD (k + 1) 0 ∨ 0 < bs.getD (k + 1) 0

end CannonFloydParry
Source
Cannon, J. W., Floyd, W. J., Parry, W. R., Introductory notes on Richard Thompson's groups, L'Enseignement Mathematique (2) 42 (1996) 215-256, https://doi.org/10.5169/seals-87877, section 2 pp. 219-224 (standard dyadic partitions, tree diagrams, positive elements) and section 1 p. 217 (the generators X_n)
Read-back

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

Read-back: nine declarations

Throughout, "list" means a finite ordered sequence, possibly empty, with repetitions allowed. Several accounts below need the same two background objects, and each account restates what it needs, so the accounts may be read in any order and none of them requires the others.

The unit interval as a type. One of the ambient types is the set

I=[0,1]={x∈R:0≤x and x≤1},I=[0,1]=\{x\in\mathbb R : 0\le x \ \text{and}\ x\le 1\},I=[0,1]={x∈R:0≤x and x≤1},

regarded as a type in its own right: an element of it is a pair consisting of a real number xxx together with a proof that 0≤x≤10\le x\le 10≤x≤1, and the associated real number xxx is recovered by the first projection. Below, an element of this type is silently identified with the real number it carries. Note the interval is closed: both 000 and 111 belong to it.

Order isomorphisms. For an ordered set SSS, an order isomorphism of SSS is a bijection L ⁣:S→SL\colon S\to SL:S→S together with the property that for all x,y∈Sx,y\in Sx,y∈S,

L(x)≤L(y)  ⟺  x≤y.L(x)\le L(y)\iff x\le y.L(x)≤L(y)⟺x≤y.

(The data is: a map, an inverse map, proofs that the two compose to the identity in both directions, and the displayed equivalence.) For S=RS=\mathbb RS=R or S=[0,1]S=[0,1]S=[0,1] this is the same thing as an increasing bijection of SSS onto itself. The order isomorphisms of SSS form a group in which

  • the product g⋅hg\cdot hg⋅h is the composite that applies hhh first, i.e. (g⋅h)(z)=g(h(z))(g\cdot h)(z)=g(h(z))(g⋅h)(z)=g(h(z));
  • the identity element is the identity map;
  • the inverse g−1g^{-1}g−1 is the inverse bijection;
  • consequently g0g^0g0 is the identity and gm+1=gm⋅gg^{m+1}=g^m\cdot ggm+1=gm⋅g, so gmg^mgm is the mmm-fold composite of ggg with itself, and g−mg^{-m}g−m denotes (gm)−1(g^m)^{-1}(gm)−1.

1. IsStandardDyadicInterval

This is a property of an ordered pair of real numbers (x,y)(x,y)(x,y) — a two-place relation on R\mathbb RR, not a set and not a single interval. It asserts:

There exist natural numbers aaa and nnn (so a≥0a\ge 0a≥0 and n≥0n\ge 0n≥0) such that

a+1≤2n,x=a2n,y=a+12n.a+1\le 2^{n},\qquad x=\frac{a}{2^{n}},\qquad y=\frac{a+1}{2^{n}}.a+1≤2n,x=2na​,y=2na+1​.

Three points of literal detail.

The same aaa and nnn serve both equations. The quantifier is a single ∃a ∃n\exists a\,\exists n∃a∃n governing all three conjuncts, so y−x=2−ny-x=2^{-n}y−x=2−n exactly, and xxx and yyy are consecutive multiples of 2−n2^{-n}2−n.

Where the arithmetic happens. The inequality a+1≤2na+1\le 2^{n}a+1≤2n is an inequality between natural numbers: aaa, 111, 222 and 2n2^n2n are all natural there, and 2n2^n2n is the natural-number power. The two equations are equations between real numbers: aaa is converted to a real, and 2n2^{n}2n is the real number 222 raised to the natural-number power nnn. No truncated (natural-number) subtraction or division occurs anywhere.

What the hypothesis a+1≤2na+1\le 2^na+1≤2n buys. It is equivalent to a<2na<2^{n}a<2n, i.e. a∈{0,1,…,2n−1}a\in\{0,1,\dots,2^{n}-1\}a∈{0,1,…,2n−1}. It is satisfiable for every nnn (take a=0a=0a=0), so the relation is not vacuous. Together with a≥0a\ge 0a≥0 it forces

0≤x<y≤1.0\le x<y\le 1 .0≤x<y≤1.

So the relation holds only for pairs lying inside [0,1][0,1][0,1] with xxx strictly less than yyy; but note that "x<yx<yx<y" is a consequence of the three displayed conjuncts and is not itself written down as a hypothesis.

Degenerate case. If n=0n=0n=0 then a+1≤1a+1\le 1a+1≤1 forces a=0a=0a=0, and the pair is (0,1)(0,1)(0,1). For each n≥1n\ge 1n≥1 there are exactly 2n2^{n}2n admissible pairs, namely (a2−n,(a+1)2−n)\bigl(a2^{-n},(a+1)2^{-n}\bigr)(a2−n,(a+1)2−n) for 0≤a≤2n−10\le a\le 2^n-10≤a≤2n−1. The same pair of reals may be witnessed only by the reduced choice of (a,n)(a,n)(a,n), but the statement demands merely that some witness exist.


2. IsStandardDyadicPartition

This is a property of a list of real numbers ⟨x1,x2,…,xm⟩\langle x_1,x_2,\dots,x_m\rangle⟨x1​,x2​,…,xm​⟩ (the list is finite; mmm may be 000). It is the conjunction of exactly three conditions:

  1. The list is nonempty and its first entry is 000. (Literally: the "first entry, if any" of the list is present and equal to 000. For the empty list no first entry is present, so the condition fails.)
  2. The list is nonempty and its last entry is 111, in the same sense.
  3. Every pair of consecutive entries, taken in list order, satisfies the relation of §1: for each iii with 1≤i≤m−11\le i\le m-11≤i≤m−1, there are natural numbers ai,nia_i,n_iai​,ni​ with ai+1≤2nia_i+1\le 2^{n_i}ai​+1≤2ni​, xi=ai/2nix_i=a_i/2^{n_i}xi​=ai​/2ni​ and xi+1=(ai+1)/2nix_{i+1}=(a_i+1)/2^{n_i}xi+1​=(ai​+1)/2ni​.

Condition 3 is the "chain" condition. It constrains only adjacent pairs (xi,xi+1)(x_i,x_{i+1})(xi​,xi+1​) in the order in which they occur; it says nothing directly about non-adjacent pairs, and it holds automatically (with nothing to check) for a list of length 000 or 111.

Edge cases. Because of 1 and 2, the empty list is not a standard dyadic partition, and no one-entry list is either: a one-entry list ⟨x⟩\langle x\rangle⟨x⟩ would need x=0x=0x=0 from 1 and x=1x=1x=1 from 2. Hence any list satisfying all three conditions has at least two entries. The shortest example is ⟨0,1⟩\langle 0,1\rangle⟨0,1⟩, for which condition 3 requires only the single pair (0,1)(0,1)(0,1), witnessed by a=0,n=0a=0,n=0a=0,n=0.

What the three conditions amount to. By §1 each adjacent pair is strictly increasing, so the list is strictly increasing; combined with first entry 000 and last entry 111 the entries are 0=x1<x2<⋯<xm=10=x_1<x_2<\dots<x_m=10=x1​<x2​<⋯<xm​=1 and the closed intervals [xi,xi+1][x_i,x_{i+1}][xi​,xi+1​] are standard dyadic intervals covering [0,1][0,1][0,1] with disjoint interiors. Nothing beyond the three conditions is asserted; in particular the exponents nin_ini​ are not required to be equal to one another, nor is any compatibility between successive witnesses imposed beyond the shared endpoint xi+1x_{i+1}xi+1​.


3. TreeDiagram

This declaration introduces a type (a kind of mathematical object), not a proposition. It depends on the following notion of tree.

Finite binary trees. A tree is built by the two rules: there is a tree called the leaf; and from any two trees lll and rrr one forms a tree, the node with left subtree lll and right subtree rrr. Two trees are equal only if built by identical sequences of these rules; in particular the node built from (l,r)(l,r)(l,r) is distinct from the node built from (r,l)(r,l)(r,l) unless l=rl=rl=r, so the trees are ordered (planar) rooted binary trees in which every internal vertex has exactly two children. Equality of trees is decidable.

Leaf count. The number of leaves of a tree is defined recursively: the leaf has 111 leaf, and the node with subtrees lll and rrr has (number of leaves of lll) +++ (number of leaves of rrr) leaves. This is a natural number, and it is at least 111 for every tree.

A tree diagram is a triple consisting of:

  • a tree, called the domain tree;
  • a tree, called the range tree;
  • a proof that the two trees have the same number of leaves.

So the third component is not an extra piece of numerical data but a requirement: only pairs of trees with equal leaf counts give rise to a tree diagram, and each tree diagram remembers which tree is the domain one and which is the range one. The two trees are allowed to be equal, and the pair (leaf, leaf) is admissible (both have one leaf), so the type is nonempty. No other condition is imposed — in particular the two trees need not have the same shape, the same number of internal vertices, or the same height.


4. AffineOnPieces

This is a property of a pair: an order isomorphism LLL of the whole real line, and a list of real numbers ⟨x1,…,xm⟩\langle x_1,\dots,x_m\rangle⟨x1​,…,xm​⟩. It asserts exactly this chain condition:

For every pair of consecutive entries of the list, in list order — that is, for each iii with 1≤i≤m−11\le i\le m-11≤i≤m−1, with u=xiu=x_iu=xi​ and v=xi+1v=x_{i+1}v=xi+1​ — there exist real numbers aaa and ccc such that

L(z)=az+cfor every real z with u≤z≤v.L(z)=a z+c\qquad\text{for every real } z \text{ with } u\le z\le v.L(z)=az+cfor every real z with u≤z≤v.

Details that the wording is chosen to preserve.

Which pairs. Only adjacent pairs, and only in the given order: the first coordinate is the earlier entry. Nothing is asserted about xix_ixi​ and xjx_jxj​ for j>i+1j>i+1j>i+1, and nothing about the behaviour of LLL outside [ x1,xm ][\,x_1,x_m\,][x1​,xm​].

The interval is closed at both ends. The condition ranges over zzz with u≤z≤vu\le z\le vu≤z≤v, so the endpoints xix_ixi​ and xi+1x_{i+1}xi+1​ themselves are included; consecutive constraints therefore overlap at the shared endpoint.

The constants are local and unconstrained. The numbers aaa and ccc are chosen inside the quantifier, so they may differ from one adjacent pair to the next. Neither a≠0a\neq 0a=0 nor a>0a>0a>0 is required by the statement, and aaa is a real number (no restriction to powers of 222, to rationals or to positive numbers appears). That LLL is an increasing bijection forces a>0a>0a>0 whenever u<vu<vu<v; that is a consequence, not a hypothesis.

Degenerate cases. For a list with fewer than two entries — the empty list, or a one-entry list — there are no adjacent pairs and the condition holds for every LLL, with nothing to verify. If some adjacent pair has xi>xi+1x_i>x_{i+1}xi​>xi+1​, then the set of zzz with xi≤z≤xi+1x_i\le z\le x_{i+1}xi​≤z≤xi+1​ is empty and the requirement for that pair is satisfied by any aaa and ccc whatsoever; the property does not itself demand that the list be increasing. Repeated entries xi=xi+1x_i=x_{i+1}xi​=xi+1​ likewise impose only the one-point condition L(xi)=axi+cL(x_i)=ax_i+cL(xi​)=axi​+c, which is always solvable.


5. Represents

This is a property of a pair: a tree diagram ddd (as in §3) and an order isomorphism fff of the closed unit interval [0,1][0,1][0,1]. Four auxiliary notions enter, and all of them are spelled out below.

(a) The subdivision list of a tree. To a tree ttt one attaches a finite list of real numbers as follows. First, for a tree ttt and reals a<ba<ba<b define a list M(t;a,b)M(t;a,b)M(t;a,b) recursively:

  • M(leaf;a,b)M(\text{leaf};a,b)M(leaf;a,b) is the empty list;
  • for the node with subtrees l,rl,rl,r, writing m=a+b2m=\tfrac{a+b}{2}m=2a+b​,
M(node(l,r);a,b)  =  M(l;a,m) ⌢ ⟨m⟩ ⌢ M(r;m,b),M(\text{node}(l,r);a,b)\;=\;M(l;a,m)\ \frown\ \langle m\rangle\ \frown\ M(r;m,b),M(node(l,r);a,b)=M(l;a,m) ⌢ ⟨m⟩ ⌢ M(r;m,b),

the concatenation of the list for lll on [a,m][a,m][a,m], then the single entry mmm, then the list for rrr on [m,b][m,b][m,b].

The list attached to ttt is then

marks(t)  =  ⟨0⟩ ⌢ M(t;0,1) ⌢ ⟨1⟩.\mathrm{marks}(t)\;=\;\langle 0\rangle\ \frown\ M(t;0,1)\ \frown\ \langle 1\rangle .marks(t)=⟨0⟩ ⌢ M(t;0,1) ⌢ ⟨1⟩.

Concretely this is the increasing list of all endpoints of the subdivision of [0,1][0,1][0,1] obtained by repeatedly bisecting according to ttt: the root corresponds to [0,1][0,1][0,1], and each node splits its interval at the midpoint, the left subtree taking the left half and the right subtree the right half. Its first entry is 000, its last entry is 111, and its length is (number of leaves of ttt) + 1+\,1+1. For example the leaf gives ⟨0,1⟩\langle 0,1\rangle⟨0,1⟩; the node with two leaves gives ⟨0,12,1⟩\langle 0,\tfrac12,1\rangle⟨0,21​,1⟩; the node whose left subtree is a node of two leaves and whose right subtree is a leaf gives ⟨0,14,12,1⟩\langle 0,\tfrac14,\tfrac12,1\rangle⟨0,41​,21​,1⟩.

(b) Extension by the identity. Given an order isomorphism fff of [0,1][0,1][0,1], let f~ ⁣:R→R\tilde f\colon \mathbb R\to\mathbb Rf~​:R→R be

f~(x)={f(x),0≤x≤1,x,otherwise.\tilde f(x)=\begin{cases} f(x), & 0\le x\le 1,\\ x,&\text{otherwise.}\end{cases}f~​(x)={f(x),x,​0≤x≤1,otherwise.​

This f~\tilde ff~​ is an increasing bijection of R\mathbb RR, i.e. an order isomorphism of R\mathbb RR, and it agrees with fff on [0,1][0,1][0,1] (including at the endpoints 000 and 111, which fff must fix since it is an increasing bijection of [0,1][0,1][0,1]).

(c) The ambient group. Call an order isomorphism ggg of [0,1][0,1][0,1] piecewise dyadic-affine if:

there exists a finite set BBB of real numbers, each element bbb of which is a dyadic rational in the sense that b=m/2kb=m/2^{k}b=m/2k for some integer mmm (possibly negative) and some natural number kkk, such that for all x,y∈[0,1]x,y\in[0,1]x,y∈[0,1] with x<yx<yx<y whose open interval (x,y)(x,y)(x,y) meets BBB not at all, there exist an integer nnn and a real ccc with

g(z)=2nz+cfor every z∈[0,1] with x≤z≤y.g(z)=2^{n}z+c \quad\text{for every } z\in[0,1] \text{ with } x\le z\le y .g(z)=2nz+cfor every z∈[0,1] with x≤z≤y.

Here 2n2^{n}2n is a real integer power of 222, so the admissible slopes are …,14,12,1,2,4,…\dots,\tfrac14,\tfrac12,1,2,4,\dots…,41​,21​,1,2,4,…, always strictly positive; nnn and ccc may depend on xxx and yyy; the interval on which the affine formula is required is the closed interval [x,y][x,y][x,y], while the set that must avoid BBB is the open interval (x,y)(x,y)(x,y); the elements of BBB are arbitrary dyadic rationals and are not required to lie in [0,1][0,1][0,1]; and BBB is allowed to be empty, in which case ggg must be z↦2nz+cz\mapsto 2^{n}z+cz↦2nz+c on all of [0,1][0,1][0,1].

Let GGG be the smallest subgroup of the group of all order isomorphisms of [0,1][0,1][0,1] that contains every piecewise dyadic-affine element — equivalently, the intersection of all subgroups containing them; equivalently again, the set of all finite products of piecewise dyadic-affine elements and their inverses, the empty product being the identity. Membership of GGG is the first condition below. Note this is membership in the generated subgroup, which is weaker on its face than being itself piecewise dyadic-affine.

The assertion. "ddd is represented by fff" is the conjunction of exactly three statements:

  1. f∈Gf\in Gf∈G;
  2. f~\tilde ff~​ is affine on the pieces cut out by the subdivision list of the domain tree of ddd: for each pair of consecutive entries u,vu,vu,v of marks(ddom)\mathrm{marks}(d_{\mathrm{dom}})marks(ddom​) there are reals a,ca,ca,c with f~(z)=az+c\tilde f(z)=az+cf~​(z)=az+c for all real zzz with u≤z≤vu\le z\le vu≤z≤v (the property of §4);
  3. applying f~\tilde ff~​ to every entry of marks(ddom)\mathrm{marks}(d_{\mathrm{dom}})marks(ddom​), entry by entry and keeping the order, yields exactly the list marks(dran)\mathrm{marks}(d_{\mathrm{ran}})marks(dran​) — equality of lists, hence equal lengths and equal entries in corresponding positions.

Remarks on what is and is not said. Condition 2 is imposed on the domain list only; no affineness condition is stated relative to the range list. Condition 3 is an equality of lists, not of sets, so the order is part of the claim; since the two trees of a tree diagram have the same number of leaves, the two lists have the same length automatically, and condition 3 is equivalent to the pointwise equalities f~(ui)=vi\tilde f(u_i)=v_if~​(ui​)=vi​ for all iii, where uiu_iui​ and viv_ivi​ enumerate the domain and range subdivision lists. All the entries of these lists lie in [0,1][0,1][0,1], so f~\tilde ff~​ acts on them as fff does. Nothing here asserts that fff is determined by ddd, nor that every tree diagram is represented by something, nor that fff is piecewise dyadic-affine in the sense of (c).


6. X

This declaration defines, for every natural number nnn, an order isomorphism XnX_nXn​ of the closed unit interval [0,1][0,1][0,1]. Two specific such isomorphisms are used, and both are described here.

The map AAA. AAA is the restriction to [0,1][0,1][0,1] of the increasing bijection of R\mathbb RR given by

x↦{x,x≤0,x/2,0≤x≤12,x−14,12≤x≤34,2x−1,34≤x≤1,x,1≤x.x\mapsto\begin{cases} x, & x\le 0,\\ x/2, & 0\le x\le \tfrac12,\\ x-\tfrac14, & \tfrac12\le x\le \tfrac34,\\ 2x-1, & \tfrac34\le x\le 1,\\ x, & 1\le x . \end{cases}x↦⎩⎨⎧​x,x/2,x−41​,2x−1,x,​x≤0,0≤x≤21​,21​≤x≤43​,43​≤x≤1,1≤x.​

(The clauses agree on the overlaps, so the formula is unambiguous.) Thus AAA is the piecewise linear increasing homeomorphism of [0,1][0,1][0,1] with breakpoints at 0,12,34,10,\tfrac12,\tfrac34,10,21​,43​,1, sending them to 0,14,12,10,\tfrac14,\tfrac12,10,41​,21​,1 respectively, with slopes 12,1,2\tfrac12,1,221​,1,2 on the three pieces.

The map BBB. BBB is the restriction to [0,1][0,1][0,1] of the increasing bijection of R\mathbb RR given by

x↦{x,x≤12,x2+14,12≤x≤34,x−18,34≤x≤78,2x−1,78≤x≤1,x,1≤x.x\mapsto\begin{cases} x, & x\le\tfrac12,\\ \tfrac x2+\tfrac14, & \tfrac12\le x\le\tfrac34,\\ x-\tfrac18, & \tfrac34\le x\le\tfrac78,\\ 2x-1, & \tfrac78\le x\le 1,\\ x, & 1\le x . \end{cases}x↦⎩⎨⎧​x,2x​+41​,x−81​,2x−1,x,​x≤21​,21​≤x≤43​,43​≤x≤87​,87​≤x≤1,1≤x.​

Thus BBB is the identity on [0,12][0,\tfrac12][0,21​], and on [12,1][\tfrac12,1][21​,1] it is the piecewise linear increasing homeomorphism with breakpoints 12,34,78,1\tfrac12,\tfrac34,\tfrac78,121​,43​,87​,1 sent to 12,58,34,1\tfrac12,\tfrac58,\tfrac34,121​,85​,43​,1, with slopes 12,1,2\tfrac12,1,221​,1,2.

The definition. XnX_nXn​ is given by cases on whether nnn is zero or a successor:

X0=A,Xn+1=(A n)−1⋅B⋅A n(n≥0),X_0=A,\qquad\qquad X_{n+1}=\bigl(A^{\,n}\bigr)^{-1}\cdot B\cdot A^{\,n}\quad (n\ge 0),X0​=A,Xn+1​=(An)−1⋅B⋅An(n≥0),

the product being taken in the group of order isomorphisms of [0,1][0,1][0,1] described at the top, and the two multiplications associating to the left: ((An)−1⋅B)⋅An\bigl((A^{n})^{-1}\cdot B\bigr)\cdot A^{n}((An)−1⋅B)⋅An. Because that product applies its right factor first, as a map

Xn+1(z)=A−n(B(An(z))),X_{n+1}(z)=A^{-n}\bigl(B\bigl(A^{n}(z)\bigr)\bigr),Xn+1​(z)=A−n(B(An(z))),

i.e. Xn+1X_{n+1}Xn+1​ is the conjugate of BBB that first pushes zzz forward by nnn applications of AAA, then applies BBB, then undoes the nnn applications of AAA. The exponent nnn here is the natural number appearing in the case split, so the exponents AnA^{n}An are nonnegative powers and A−nA^{-n}A−n means the inverse of the nnn-fold composite.

Indexing. Because of the shift in the second clause, the index on the left is one more than the exponent on the right: X1X_1X1​ involves A0A^{0}A0, X2X_2X2​ involves A1A^{1}A1, and in general for k≥1k\ge 1k≥1 one has Xk=A−(k−1)BA k−1X_k=A^{-(k-1)}BA^{\,k-1}Xk​=A−(k−1)BAk−1. In particular X1=BX_1=BX1​=B (see §8) and X2=A−1BAX_2=A^{-1}BAX2​=A−1BA, meaning the map z↦A−1(B(A(z)))z\mapsto A^{-1}(B(A(z)))z↦A−1(B(A(z))). The single index 000 is the only one at which the first clause applies, so X0X_0X0​ is AAA and is not of the conjugate form.


7. X_zero

This asserts the single equality

X0=AX_0 = AX0​=A

between elements of the group of order isomorphisms of the closed unit interval [0,1][0,1][0,1], where X0X_0X0​ is the value at 000 of the family of §6 and AAA is the piecewise linear increasing homeomorphism of [0,1][0,1][0,1] described there, with breakpoints 0,12,34,10,\tfrac12,\tfrac34,10,21​,43​,1 sent to 0,14,12,10,\tfrac14,\tfrac12,10,41​,21​,1.

There are no quantifiers, no hypotheses and no free variables: it is a closed equation between two specific order isomorphisms of [0,1][0,1][0,1]. Equality here is equality of these objects, which for order isomorphisms is the same as equality of the underlying maps [0,1]→[0,1][0,1]\to[0,1][0,1]→[0,1].


8. X_one

This asserts the single equality

X1=BX_1 = BX1​=B

between elements of the group of order isomorphisms of [0,1][0,1][0,1], where X1X_1X1​ is the value at 111 of the family of §6 and BBB is the map described there: the identity on [0,12][0,\tfrac12][0,21​], and on [12,1][\tfrac12,1][21​,1] the piecewise linear increasing homeomorphism with breakpoints 12,34,78,1\tfrac12,\tfrac34,\tfrac78,121​,43​,87​,1 sent to 12,58,34,1\tfrac12,\tfrac58,\tfrac34,121​,85​,43​,1.

Again there are no quantifiers, hypotheses or free variables. Unwinding the definition of §6 at n+1n+1n+1 with n=0n=0n=0, the left-hand side is (A0)−1⋅B⋅A0\bigl(A^{0}\bigr)^{-1}\cdot B\cdot A^{0}(A0)−1⋅B⋅A0, i.e. the conjugate of BBB by the empty power of AAA; the assertion is that this equals BBB.


9. IsPositive

This is a property of a single order isomorphism fff of the closed unit interval [0,1][0,1][0,1]. It asserts:

There exist a natural number nnn and a function bbb from the natural numbers to the natural numbers such that

f  =  X0 b(0)⋅X1 b(1)⋯Xn b(n)⋅1,f \;=\; X_0^{\,b(0)}\cdot X_1^{\,b(1)}\cdots X_n^{\,b(n)}\cdot 1,f=X0b(0)​⋅X1b(1)​⋯Xnb(n)​⋅1,

where the XkX_kXk​ are the order isomorphisms of §6, the product is taken in the group of order isomorphisms of [0,1][0,1][0,1], the factors occur in increasing order of index from left to right, and the final factor is the identity element.

Precisely, the product is formed by folding the list of indices ⟨0,1,2,…,n⟩\langle 0,1,2,\dots,n\rangle⟨0,1,2,…,n⟩ from the right onto the identity element: the result is

X0 b(0)⋅(X1 b(1)⋅(⋯⋅(Xn b(n)⋅1)⋯ )),X_0^{\,b(0)}\cdot\Bigl(X_1^{\,b(1)}\cdot\bigl(\cdots\cdot\bigl(X_n^{\,b(n)}\cdot 1\bigr)\cdots\bigr)\Bigr),X0b(0)​⋅(X1b(1)​⋅(⋯⋅(Xnb(n)​⋅1)⋯)),

so the factor of smallest index stands leftmost. Since the product of order isomorphisms applies its right factor first, as a map this means: apply Xn b(n)X_n^{\,b(n)}Xnb(n)​ first, then Xn−1 b(n−1)X_{n-1}^{\,b(n-1)}Xn−1b(n−1)​, and finally X0 b(0)X_0^{\,b(0)}X0b(0)​.

Points of literal detail.

The exponents are natural numbers. bbb takes values in N\mathbb NN, so every exponent b(k)b(k)b(k) is ≥0\ge 0≥0; no negative exponent may occur. (g0g^{0}g0 is the identity and gm+1=gm⋅gg^{m+1}=g^{m}\cdot ggm+1=gm⋅g.)

The list of indices always starts at 000 and is nonempty. The index list is ⟨0,1,…,n⟩\langle 0,1,\dots,n\rangle⟨0,1,…,n⟩, of length n+1n+1n+1; even the smallest choice n=0n=0n=0 gives the one-entry list ⟨0⟩\langle 0\rangle⟨0⟩. So X0X_0X0​ always appears as a factor, though possibly with exponent 000. There is no choice of nnn producing an empty product and no way to skip an index — an index is "skipped" only in the sense that its exponent may be 000.

The function bbb is total but only finitely much of it matters. bbb is a function on all of N\mathbb NN, yet only the values b(0),…,b(n)b(0),\dots,b(n)b(0),…,b(n) appear in the product; the remaining values are unconstrained junk. Consequently the existential over bbb is equivalent to an existential over the finite tuple (b(0),…,b(n))(b(0),\dots,b(n))(b(0),…,b(n)) of natural numbers.

Degenerate cases. Taking n=0n=0n=0 and b(0)=0b(0)=0b(0)=0 makes the product the identity, so the identity map of [0,1][0,1][0,1] has this property; the property is therefore not vacuous. Taking n=0n=0n=0 and b(0)=mb(0)=mb(0)=m gives the mmm-fold composite AmA^{m}Am, so every nonnegative power of AAA has the property.

What is asserted is an equality of group elements only. The property says that fff equals some such product; it does not, of itself, state that fff lies in any particular subgroup, that the representation is unique, that the exponents are determined by fff, or that nnn is minimal.

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

  • Endorsed by dbenbenn · Sep 17, 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