A map given by a pair of standard dyadic partitions is a word in and
OpenCannonFloydParry.mem_closure_mapA_mapB_of_standardDyadicPartitionThis is the generation half of the source's Corollary 2.6, stated for a single element in terms of its tree diagram.
Suppose is an order isomorphism of realised by a pair of standard dyadic partitions with equally many intervals, that is, there are
each and each a standard dyadic interval , such that maps affinely onto :
Then lies in the subgroup generated by the two maps and of Example 1.1.
The argument in the source is by induction on the number of intervals, using the fact that the subgroup acts transitively on standard dyadic partitions with a fixed number of intervals. Writing for the "all-right" partition , one produces carrying to the -partition and to the -partition respectively, each affinely on every interval; then . The elements needed are the maps , each of which is visibly a word in and and which halves a single interval of the right vine.
Combined with the normal-form lemma — every element of is realised by such a pair of standard dyadic partitions — this yields .
import Definitions.Def_CannonFloydParry import Mathlib
namespace CannonFloydParry
theorem mem_closure_mapA_mapB_of_standardDyadicPartition {n : ℕ} {f : UI ≃o UI}
(x y : Fin (n + 1) → UI)
(hx : StrictMono x) (hy : StrictMono y)
(hx0 : (x 0 : ℝ) = 0) (hxn : (x (Fin.last n) : ℝ) = 1)
(hy0 : (y 0 : ℝ) = 0) (hyn : (y (Fin.last n) : ℝ) = 1)
(hxs : ∀ i : Fin n, ∃ a k : ℕ,
(x i.castSucc : ℝ) = a / 2 ^ k ∧ (x i.succ : ℝ) = (a + 1) / 2 ^ k)
(hys : ∀ i : Fin n, ∃ a k : ℕ,
(y i.castSucc : ℝ) = a / 2 ^ k ∧ (y i.succ : ℝ) = (a + 1) / 2 ^ k)
(hf : ∀ (i : Fin n) (z : UI), (x i.castSucc : ℝ) ≤ (z : ℝ) → (z : ℝ) ≤ (x i.succ : ℝ) →
(f z : ℝ) =
((y i.succ : ℝ) - (y i.castSucc : ℝ)) / ((x i.succ : ℝ) - (x i.castSucc : ℝ))
* ((z : ℝ) - (x i.castSucc : ℝ)) + (y i.castSucc : ℝ)) :
f ∈ Subgroup.closure {mapA, mapB} := by
sorry
end CannonFloydParry