Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Every tree diagram represents an element of FFF

Proved
CannonFloydParry.exists_represents

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

combinatoricsgroup-theorythompsons-grouptree-diagrams

For every tree diagram — an ordered pair of trees with the same number of leaves — there is an element of Thompson's group FFF that represents it: it lies in 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.

No uniqueness is claimed, and none holds: distinct tree diagrams can represent the same element, which is exactly why reduced diagrams are introduced.

Preamble
import Definitions.Def_CannonFloydParry
import Definitions.Def_CannonFloydParry_Trees
import Definitions.Def_CannonFloydParry_TreeDiagrams
import Mathlib
Formal statement
namespace CannonFloydParry

theorem exists_represents (d : TreeDiagram) : ∃ f : UI ≃o UI, Represents d f := by
  sorry

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 p. 221 (existence half of the correspondence with FFF)
Read-back

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

Read-back of the statement

The declaration is a single assertion with one explicit universally quantified variable, a "tree diagram", and no implicit arguments, no typeclass hypotheses and no side conditions beyond what is built into that variable's type. Everything below is an unfolding of the notions it uses.

The ambient group

Write I=[0,1]={x∈R:0≤x≤1}I=[0,1]=\{x\in\mathbb{R}: 0\le x\le 1\}I=[0,1]={x∈R:0≤x≤1}, regarded as a linearly ordered set with the order inherited from R\mathbb{R}R.

By an increasing bijection of III I mean a bijection f:I→If:I\to If:I→I together with the property that

f(x)≤f(y)  ⟺  x≤yfor all x,y∈I.f(x)\le f(y)\iff x\le y\qquad\text{for all }x,y\in I .f(x)≤f(y)⟺x≤yfor all x,y∈I.

(The datum carried is the bijection, its two-sided inverse, and that equivalence; the equivalence in particular makes fff strictly increasing, and since fff is an order-preserving bijection of a set with a least and a greatest element, f(0)=0f(0)=0f(0)=0 and f(1)=1f(1)=1f(1)=1.)

These maps form a group. The product is composition, in the order

(f⋅g)(x)=f(g(x)),(f\cdot g)(x)=f\bigl(g(x)\bigr),(f⋅g)(x)=f(g(x)),

the neutral element is the identity map of III, and the inverse of fff is the inverse bijection.

Dyadic numbers, and the maps called Thompson maps

A real number xxx is dyadic if x=m/2kx=m/2^{k}x=m/2k for some integer mmm (of either sign) and some natural number kkk. Since k=0k=0k=0 is allowed, every integer is dyadic.

An increasing bijection fff of III is a Thompson map if there exists a finite set B⊆RB\subseteq\mathbb{R}B⊆R, all of whose members are dyadic, such that:

for all x,y∈Ix,y\in Ix,y∈I with x<yx<yx<y and (x,y)∩B=∅(x,y)\cap B=\varnothing(x,y)∩B=∅, there exist an integer nnn and a real ccc with

f(z)=2nz+cfor every z∈I with x≤z≤y.f(z)=2^{n}z+c\qquad\text{for every }z\in I\text{ with }x\le z\le y .f(z)=2nz+cfor every z∈I with x≤z≤y.

Three points of literal detail. The exponent nnn ranges over all of Z\mathbb{Z}Z, so the slope is any integral power of 222 and in particular is positive; negative nnn gives slope 2n=1/2−n2^{n}=1/2^{-n}2n=1/2−n. The disjointness is tested on the open interval (x,y)(x,y)(x,y) while the affine formula is asserted on the closed interval [x,y][x,y][x,y]. And BBB is not required to be contained in III, nor to be non-empty: the empty set is an admissible choice of BBB, in which case the requirement is that fff be given on all of III by a single formula z↦2nz+cz\mapsto 2^{n}z+cz↦2nz+c.

The group FFF

FFF denotes the subgroup of the group of increasing bijections of III generated by the set of Thompson maps: the smallest subgroup containing every Thompson map, equivalently the intersection of all subgroups containing every Thompson map, equivalently the set of all finite products of Thompson maps and of inverses of Thompson maps (the empty product being the identity).

So "f∈Ff\in Ff∈F" is literally membership in the generated subgroup, which is a priori a weaker demand than "fff is itself a Thompson map".

Extension of a map of III to a map of R\mathbb{R}R

For an increasing bijection fff of III, let f~:R→R\tilde f:\mathbb{R}\to\mathbb{R}f~​: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 is an increasing bijection of R\mathbb{R}R (it is monotone, bijective, and satisfies f~(x)≤f~(y)  ⟺  x≤y\tilde f(x)\le\tilde f(y)\iff x\le yf~​(x)≤f~​(y)⟺x≤y). On III it agrees with fff by construction.

Finite binary trees, and their marks

A tree is a finite rooted binary tree in the following inductive sense: either a single leaf, or a node built from an ordered pair (l,r)(l,r)(l,r) of trees. Its leaf count is 111 for a leaf and the sum of the leaf counts of lll and rrr for a node built from (l,r)(l,r)(l,r).

For a tree ttt and reals a,ba,ba,b define a finite list M(t;a,b)M(t;a,b)M(t;a,b) of reals by recursion on ttt:

M(leaf;a,b)=[ ],M(node(l,r);a,b)=M ⁣(l;a,a+b2)⌢[a+b2]⌢M ⁣(r;a+b2,b),M(\text{leaf};a,b)=[\,],\qquad M(\text{node}(l,r);a,b)=M\!\left(l;a,\tfrac{a+b}{2}\right)\frown\left[\tfrac{a+b}{2}\right]\frown M\!\left(r;\tfrac{a+b}{2},b\right),M(leaf;a,b)=[],M(node(l,r);a,b)=M(l;a,2a+b​)⌢[2a+b​]⌢M(r;2a+b​,b),

where ⌢\frown⌢ is concatenation of lists. The marks of ttt are the list

marks⁡(t)=[0]⌢M(t;0,1)⌢[1].\operatorname{marks}(t)=[0]\frown M(t;0,1)\frown[1].marks(t)=[0]⌢M(t;0,1)⌢[1].

Facts about this recursion, each checked mechanically: marks⁡(t)\operatorname{marks}(t)marks(t) has length equal to the leaf count of ttt plus one; its first entry is 000 and its last entry is 111; and it is strictly increasing. Hence writing nnn for the leaf count of ttt,

marks⁡(t)=[x0,x1,…,xn],0=x0<x1<⋯<xn=1,\operatorname{marks}(t)=\bigl[x_0,x_1,\dots,x_n\bigr],\qquad 0=x_0<x_1<\cdots<x_n=1,marks(t)=[x0​,x1​,…,xn​],0=x0​<x1​<⋯<xn​=1,

and all entries lie in III. Concretely:

  • a single leaf gives [0,1][0,1][0,1];
  • node(leaf,leaf)\text{node}(\text{leaf},\text{leaf})node(leaf,leaf) gives [0,12,1][0,\tfrac12,1][0,21​,1];
  • node(node(leaf,leaf),leaf)\text{node}(\text{node}(\text{leaf},\text{leaf}),\text{leaf})node(node(leaf,leaf),leaf) gives [0,14,12,1][0,\tfrac14,\tfrac12,1][0,41​,21​,1];
  • node(leaf,node(leaf,leaf))\text{node}(\text{leaf},\text{node}(\text{leaf},\text{leaf}))node(leaf,node(leaf,leaf)) gives [0,12,34,1][0,\tfrac12,\tfrac34,1][0,21​,43​,1];
  • node(node(leaf,node(leaf,leaf)),leaf)\text{node}(\text{node}(\text{leaf},\text{node}(\text{leaf},\text{leaf})),\text{leaf})node(node(leaf,node(leaf,leaf)),leaf) gives [0,14,38,12,1][0,\tfrac14,\tfrac38,\tfrac12,1][0,41​,83​,21​,1].

So the recursion halves the current interval at each node, recursing into the left half with the left subtree and into the right half with the right subtree, and the marks are the endpoints of the resulting subdivision of [0,1][0,1][0,1] into consecutive intervals, one per leaf.

Tree diagrams

A tree diagram consists of three components: a tree, called its domain tree; a tree, called its range tree; and a proof that the two trees have the same leaf count. The third component is proof-valued, hence proof-irrelevant: two tree diagrams with the same pair of trees are equal, and a tree diagram is exactly an ordered pair of trees with equal leaf counts. It is not an extra assumption one is allowed to use or to dispense with: it is a constraint on which pairs of trees constitute a diagram.

This type is inhabited — for instance take both trees to be a single leaf — so the assertion below is not vacuous for lack of diagrams.

What it means for a map to represent a diagram

Given a tree diagram ddd with domain tree tdomt_{\mathrm{dom}}tdom​ and range tree trant_{\mathrm{ran}}tran​, and an increasing bijection fff of III, write

marks⁡(tdom)=[x0,…,xn],marks⁡(tran)=[y0,…,yn]\operatorname{marks}(t_{\mathrm{dom}})=[x_0,\dots,x_n],\qquad \operatorname{marks}(t_{\mathrm{ran}})=[y_0,\dots,y_n]marks(tdom​)=[x0​,…,xn​],marks(tran​)=[y0​,…,yn​]

(the two lists have the same length because the leaf counts agree). Then "fff represents ddd" is the conjunction of exactly three clauses.

(i) f∈Ff\in Ff∈F, in the sense of the previous section.

(ii) (piecewise affineness, on the subdivision cut out by the domain tree only) For each iii with 0≤i≤n−10\le i\le n-10≤i≤n−1 there exist real numbers aia_iai​ and cic_ici​ such that

f~(z)=ai z+cifor every real z with xi≤z≤xi+1.\tilde f(z)=a_i\,z+c_i\qquad\text{for every real }z\text{ with }x_i\le z\le x_{i+1}.f~​(z)=ai​z+ci​for every real z with xi​≤z≤xi+1​.

Literal details: the condition is imposed only on consecutive pairs of entries of marks⁡(tdom)\operatorname{marks}(t_{\mathrm{dom}})marks(tdom​), and on the closed interval [xi,xi+1][x_i,x_{i+1}][xi​,xi+1​], so adjacent pieces are required to give the same value at the shared mark (which is automatic, both sides being f~\tilde ff~​ of that mark). The slope aia_iai​ is an arbitrary real number: this clause does not demand that it be a power of 222, nor that it be positive or non-zero — although positivity is in fact forced, since f~\tilde ff~​ is a strictly increasing bijection and xi<xi+1x_i<x_{i+1}xi​<xi+1​. The clause is stated for the extension f~\tilde ff~​, but since all the xix_ixi​ lie in III it constrains f~\tilde ff~​ only on [0,1][0,1][0,1], where f~\tilde ff~​ agrees with fff. Nothing is asked about the subdivision cut out by the range tree.

(iii) (equality of lists) Applying f~\tilde ff~​ to each entry of marks⁡(tdom)\operatorname{marks}(t_{\mathrm{dom}})marks(tdom​), in order, yields the list marks⁡(tran)\operatorname{marks}(t_{\mathrm{ran}})marks(tran​):

[f~(x0),f~(x1),…,f~(xn)]=[y0,y1,…,yn],\bigl[\tilde f(x_0),\tilde f(x_1),\dots,\tilde f(x_n)\bigr]=[y_0,y_1,\dots,y_n],[f~​(x0​),f~​(x1​),…,f~​(xn​)]=[y0​,y1​,…,yn​],

i.e. f(xi)=yif(x_i)=y_if(xi​)=yi​ for every iii, entry by entry and in the same order. Being an equality of lists, it also forces the two lists to have the same length — a consequence already guaranteed by the diagram's leaf-count component. Note that clauses (ii) and (iii) together make no assertion about the values of fff anywhere other than: affine on each domain piece (ii), and the prescribed values at the domain marks (iii).

The assertion

For every tree diagram ddd there exists an increasing bijection fff of [0,1][0,1][0,1] that represents ddd — i.e. such that fff lies in the subgroup generated by the Thompson maps, fff is affine on each of the closed intervals cut out by consecutive marks of the domain tree, and fff carries the marks of the domain tree, in order, onto the marks of the range tree.

It is a plain existence claim: ∃f\exists f∃f, not ∃!f\exists! f∃!f, and no uniqueness, canonicity or further property of fff is asserted. It is quantified over all tree diagrams, with no further hypothesis on the pair of trees beyond equal leaf counts — in particular no minimality, no reducedness, and no non-degeneracy.

Degenerate and edge cases included by the quantifier

  • Both trees a single leaf. Then both mark lists are [0,1][0,1][0,1], clause (ii) is the single requirement that fff be given by one affine formula on the whole of [0,1][0,1][0,1], and clause (iii) says f(0)=0f(0)=0f(0)=0, f(1)=1f(1)=1f(1)=1; so the only witness is the identity.

  • The two trees equal. If the domain and range trees of ddd coincide, the identity map of III satisfies all three clauses: it belongs to FFF (being the neutral element of a subgroup — and it is in any case a Thompson map, with B=∅B=\varnothingB=∅, slope 202^{0}20 and intercept 000); its extension to R\mathbb{R}R is the identity of R\mathbb{R}R, which is affine with slope 111 and intercept 000 on every interval; and it maps every mark to itself. Hence for every such diagram the assertion is satisfied by an explicit witness and carries no content. More generally, the same witness works whenever the two mark lists are equal as lists. (Both of these were checked mechanically.) The quantifier includes these diagrams alongside the ones with distinct trees.

  • Diagrams with distinct trees of the same leaf count exist, so the quantifier does range over non-degenerate cases; for example the domain tree node(node(leaf,leaf),leaf)\text{node}(\text{node}(\text{leaf},\text{leaf}),\text{leaf})node(node(leaf,leaf),leaf) with marks [0,14,12,1][0,\tfrac14,\tfrac12,1][0,41​,21​,1] and the range tree node(leaf,node(leaf,leaf))\text{node}(\text{leaf},\text{node}(\text{leaf},\text{leaf}))node(leaf,node(leaf,leaf)) with marks [0,12,34,1][0,\tfrac12,\tfrac34,1][0,21​,43​,1], both of leaf count 333.

  • No clause constrains fff off [0,1][0,1][0,1], and no clause refers to the subdivision determined by the range tree; the range tree enters only through clause (iii), as the list of target values of the marks.

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, licensed under Apache 2.0.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTermsJoin SlackJoin Zulip© 2026 Prove2Me