A Lean Companion to Conceptual Mathematics

Session 15: Objectification of properties in dynamical systems🔗

1. Structure-preserving maps from a cycle to another endomap🔗

Excerpt (p. 176)

We say that an element y in Y^{↻\beta} has period four if {\beta^4(y) = y}. All elements that have period one or two are included in this, because if {\beta(y) = y} or {\beta^2(y) = y}, then also {\beta^4(y) = y}.

theorem period_four_of_period_one {Y : Type} (β : End Y) (y : Y) : β y = y (β ^ 4) y = y := Y:Typeβ:End Yy:Yβ y = y (β ^ 4) y = y Y:Typeβ:End Yy:Y:β y = y(β ^ 4) y = y nth_rw 2 [ , , , Y:Typeβ:End Yy:Y:β y = y(β ^ 4) y = β (β (β (β y))) All goals completed! 🐙 theorem period_four_of_period_two {Y : Type} (β : End Y) (y : Y) : (β ^ 2) y = y (β ^ 4) y = y := Y:Typeβ:End Yy:Y(β ^ 2) y = y (β ^ 4) y = y Y:Typeβ:End Yy:Yhβ2:(β ^ 2) y = y(β ^ 4) y = y nth_rw 2 [ hβ2, hβ2Y:Typeβ:End Yy:Yhβ2:(β ^ 2) y = y(β ^ 4) y = (β ^ 2) ((β ^ 2) y) All goals completed! 🐙

2. Naming the elements that have a given period by maps🔗

Exercise 1 (p. 177)

Show that an element which has both period 5 and period 7 must be a fixed point.

Solution: Exercise 1

"If an element has any positive period, it must have a smallest period. In fact, all its periods are multiples of this smallest one" (p. 177). Since 5 and 7 are coprime, their only positive common divisor is 1, and so the only element having both period 5 and period 7 is an element having period 1—that is, a fixed point. We proceed via Bézout's identity, {7 \times 3 − 5 \times 4 = 1}.

open Function example {X : Type} (α : End X) (x : X) : (α ^ 5) x = x (α ^ 7) x = x α x = x := X:Typeα:End Xx:X(α ^ 5) x = x (α ^ 7) x = x α x = x X:Typeα:End Xx:Xh5:(α ^ 5) x = xh7:(α ^ 7) x = xα x = x X:Typeα:End Xx:Xh7:(α ^ 7) x = xh5:α^[5] x = xα x = x X:Typeα:End Xx:Xh5:α^[5] x = xh7:α^[7] x = xα x = x nth_rw 1 [ h5, h5, h5, h5, iterate_one αX:Typeα:End Xx:Xh5:α^[5] x = xh7:α^[7] x = xα^[1] (α^[5] (α^[5] (α^[5] (α^[5] x)))) = x nth_rw 2 [ h7, h7, h7X:Typeα:End Xx:Xh5:α^[5] x = xh7:α^[7] x = xα^[1] (α^[5] (α^[5] (α^[5] (α^[5] x)))) = α^[7] (α^[7] (α^[7] x)) repeat X:Typeα:End Xx:Xh5:α^[5] x = xh7:α^[7] x = xα^[1] (α^[5 + (5 + (5 + 5))] x) = α^[7] (α^[7] (α^[7] x)) X:Typeα:End Xx:Xh5:α^[5] x = xh7:α^[7] x = xα^[1 + 20] x = α^[7] (α^[7] (α^[7] x)) repeat All goals completed! 🐙

3. Naming arbitrary elements🔗

We implement the 'successor map' \sigma : \mathbb{N} \rightarrow \mathbb{N} defined by \sigma(n) = n+1 (p. 178) as follows:

def σ : := (· + 1) def ℕσ : SetWithEndomap := { carrier := toEnd := σ }
Exercise 2 (p. 178)

Find all the maps from \mathbb{N}^{↻\sigma} to C_4, the cycle of length 4.

Solution: Exercise 2

We define C_4 as follows:

def ς : Fin 4 Fin 4 := (· + 1) def C₄ : SetWithEndomap := { carrier := Fin 4 toEnd := ς }

Then there are four distinct maps from \mathbb{N}^{↻\sigma} to C_4. We give these maps below, in each case showing that we can form a valid morphism in the category 𝑺↻.

def f₀ : ℕσ.carrier C₄.carrier | Nat.zero => (0 : Fin 4) -- f(0) = 0 | n + 1 => ς (f₀ n) def f₀' : ℕσ C₄ := f₀, f₀ ℕσ.toEnd = C₄.toEnd f₀ x:ℕσ.carrier(f₀ ℕσ.toEnd) x = (C₄.toEnd f₀) x All goals completed! 🐙 def f₁ : ℕσ.carrier C₄.carrier | Nat.zero => (1 : Fin 4) -- f(0) = 1 | n + 1 => ς (f₁ n) def f₁' : ℕσ C₄ := f₁, f₁ ℕσ.toEnd = C₄.toEnd f₁ x:ℕσ.carrier(f₁ ℕσ.toEnd) x = (C₄.toEnd f₁) x All goals completed! 🐙 def f₂ : ℕσ.carrier C₄.carrier | Nat.zero => (2 : Fin 4) -- f(0) = 2 | n + 1 => ς (f₂ n) def f₂' : ℕσ C₄ := f₂, f₂ ℕσ.toEnd = C₄.toEnd f₂ x:ℕσ.carrier(f₂ ℕσ.toEnd) x = (C₄.toEnd f₂) x All goals completed! 🐙 def f₃ : ℕσ.carrier C₄.carrier | Nat.zero => (3 : Fin 4) -- f(0) = 3 | n + 1 => ς (f₃ n) def f₃' : ℕσ C₄ := f₃, f₃ ℕσ.toEnd = C₄.toEnd f₃ x:ℕσ.carrier(f₃ ℕσ.toEnd) x = (C₄.toEnd f₃) x All goals completed! 🐙
Exercise 3 (p. 179)

Show that evaluation at 0 and iteration are inverse (to each other).

Solution: Exercise 3

TODO Exercise 15.3

Exercise 4 (p. 179)

For any dynamical system X^{↻\alpha}, show that \alpha is itself a map of dynamical systems {X^{↻\alpha} \xrightarrow{\alpha} X^{↻\alpha}}.

Solution: Exercise 4

Essentially, the exercise is asking for a proof that α ⊚ α = α ⊚ α, which is trivially true.

variable (X : Type) (α : X X) def : SetWithEndomap := { carrier := X toEnd := α } example : α ( X α).toEnd = ( X α).toEnd α := rfl
Exercise 5 (p. 179)

Show that if {\mathbb{N}^{↻\sigma} \xrightarrow{f} Y^{↻\beta}} corresponds to y, then {\mathbb{N}^{↻\sigma} \xrightarrow{f \circ \sigma} Y^{↻\beta}} corresponds to \beta(y).

Solution: Exercise 5example ( : SetWithEndomap) (f : ℕσ ) (y : .carrier) (hy : f.val (0 : ) = y) : (f.val σ) (0 : ) = .toEnd y := :SetWithEndomapf:ℕσ y:.carrierhy:f 0 = y(f σ) 0 = .toEnd y :SetWithEndomapy:.carrierf:ℕσ.carrier .carrierhf_comm:f ℕσ.toEnd = .toEnd fhy:f, hf_comm 0 = y(f, hf_comm σ) 0 = .toEnd y :SetWithEndomapy:.carrierf:ℕσ.carrier .carrierhf_comm:f ℕσ.toEnd = .toEnd fhy:f, hf_comm 0 = yh0:ℕσ.toEnd 0 = 1 := rfl(f, hf_comm σ) 0 = .toEnd y :SetWithEndomapy:.carrierf:ℕσ.carrier .carrierhf_comm:f ℕσ.toEnd = .toEnd fhy:f, hf_comm 0 = yh0:ℕσ.toEnd 0 = 1 := rfl(f, hf_comm σ) 0 = .toEnd (f, hf_comm 0) :SetWithEndomapy:.carrierf:ℕσ.carrier .carrierhf_comm:f ℕσ.toEnd = .toEnd fhy:f, hf_comm 0 = yh0:ℕσ.toEnd 0 = 1 := rflf 1 = .toEnd (f 0) All goals completed! 🐙

4. The philosophical role of N🔗

Exercise 6 (p. 181)

Show that the gender map {X^{↻m} \xrightarrow{g} B} is a map in the category 𝑺↻.

Solution: Exercise 6

cf. Session 12, Exercise 3.

inductive B | female | male def β : B B | B.female => B.female | B.male => B.female inductive ParentType | isMother structure Person where parentType : ParentType def m : Person Person := fun _ ParentType.isMother def Xm : SetWithEndomap := { carrier := Person toEnd := m }

We define the gender map g and show that it commutes (i.e., is a map in the category 𝑺↻).

def g : Xm.carrier B | ParentType.isMother => B.female example : g Xm.toEnd = β g := rfl

Equivalently, taking B as an object in the category 𝑺↻, we can show that g forms a valid morphism.

def : SetWithEndomap := { carrier := B toEnd := β } def g' : Xm := g, rfl

5. Presentations of dynamical systems🔗

Exercise 7 (p. 185)

Find all the maps from the X^{↻\alpha} [below] to the Y^{↻\beta} [below]. (Unless I made a mistake, there are 14 of them.)

inductive X | a | a₁ | a₂ | a₃ | a₄ | b | c | d | d₁ -- Subscripts correspond to powers of α -- (i.e., the number of applications of α to the element) def α : X X | X.a => X.a₁ | X.a₁ => X.a₂ | X.a₂ => X.a₃ | X.a₃ => X.a₄ | X.a₄ => X.a₂ | X.b => X.a₂ | X.c => X.a₃ | X.d => X.d₁ | X.d₁ => X.d inductive Y | l | m | p | q | r | s | t | u | v | w | x | y | z def β : Y Y | Y.l => Y.m | Y.m => Y.l | Y.p => Y.r | Y.q => Y.r | Y.r => Y.t | Y.s => Y.t | Y.t => Y.v | Y.u => Y.s | Y.v => Y.u | Y.w => Y.x | Y.x => Y.y | Y.y => Y.w | Y.z => Y.y def : SetWithEndomap := { carrier := X toEnd := α } def : SetWithEndomap := { carrier := Y toEnd := β }
Solution: Exercise 7

The authors' tongue-in-cheek comment alerts us to the likelihood that there are not, in fact, 14 maps. Following the algorithm given on pp. 182–185, we find only 12 distinct maps. The 12 maps are given below, in each case with a proof that the map forms a valid morphism {X^{↻\alpha} \rightarrow Y^{↻\beta}}.

Map 1:

(i) \bar{a} = w satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = x satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = y satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = l satisfies \beta^2\bar{d} = \bar{d}

def f₁ : .carrier .carrier | X.a => Y.w | X.a₁ => Y.x | X.a₂ => Y.y | X.a₃ => Y.w | X.a₄ => Y.x | X.b => Y.x | X.c => Y.y | X.d => Y.l | X.d₁ => Y.m def f₁' : := f₁, f₁ .toEnd = .toEnd f₁ x:.carrier(f₁ .toEnd) x = (.toEnd f₁) x (f₁ .toEnd) X.a = (.toEnd f₁) X.a(f₁ .toEnd) X.a₁ = (.toEnd f₁) X.a₁(f₁ .toEnd) X.a₂ = (.toEnd f₁) X.a₂(f₁ .toEnd) X.a₃ = (.toEnd f₁) X.a₃(f₁ .toEnd) X.a₄ = (.toEnd f₁) X.a₄(f₁ .toEnd) X.b = (.toEnd f₁) X.b(f₁ .toEnd) X.c = (.toEnd f₁) X.c(f₁ .toEnd) X.d = (.toEnd f₁) X.d(f₁ .toEnd) X.d₁ = (.toEnd f₁) X.d₁ (f₁ .toEnd) X.a = (.toEnd f₁) X.a(f₁ .toEnd) X.a₁ = (.toEnd f₁) X.a₁(f₁ .toEnd) X.a₂ = (.toEnd f₁) X.a₂(f₁ .toEnd) X.a₃ = (.toEnd f₁) X.a₃(f₁ .toEnd) X.a₄ = (.toEnd f₁) X.a₄(f₁ .toEnd) X.b = (.toEnd f₁) X.b(f₁ .toEnd) X.c = (.toEnd f₁) X.c(f₁ .toEnd) X.d = (.toEnd f₁) X.d(f₁ .toEnd) X.d₁ = (.toEnd f₁) X.d₁ All goals completed! 🐙

Map 2:

(i) \bar{a} = w satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = x satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = y satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = m satisfies \beta^2\bar{d} = \bar{d}

def f₂ : .carrier .carrier | X.a => Y.w | X.a₁ => Y.x | X.a₂ => Y.y | X.a₃ => Y.w | X.a₄ => Y.x | X.b => Y.x | X.c => Y.y | X.d => Y.m | X.d₁ => Y.l def f₂' : := f₂, f₂ .toEnd = .toEnd f₂ x:.carrier(f₂ .toEnd) x = (.toEnd f₂) x (f₂ .toEnd) X.a = (.toEnd f₂) X.a(f₂ .toEnd) X.a₁ = (.toEnd f₂) X.a₁(f₂ .toEnd) X.a₂ = (.toEnd f₂) X.a₂(f₂ .toEnd) X.a₃ = (.toEnd f₂) X.a₃(f₂ .toEnd) X.a₄ = (.toEnd f₂) X.a₄(f₂ .toEnd) X.b = (.toEnd f₂) X.b(f₂ .toEnd) X.c = (.toEnd f₂) X.c(f₂ .toEnd) X.d = (.toEnd f₂) X.d(f₂ .toEnd) X.d₁ = (.toEnd f₂) X.d₁ (f₂ .toEnd) X.a = (.toEnd f₂) X.a(f₂ .toEnd) X.a₁ = (.toEnd f₂) X.a₁(f₂ .toEnd) X.a₂ = (.toEnd f₂) X.a₂(f₂ .toEnd) X.a₃ = (.toEnd f₂) X.a₃(f₂ .toEnd) X.a₄ = (.toEnd f₂) X.a₄(f₂ .toEnd) X.b = (.toEnd f₂) X.b(f₂ .toEnd) X.c = (.toEnd f₂) X.c(f₂ .toEnd) X.d = (.toEnd f₂) X.d(f₂ .toEnd) X.d₁ = (.toEnd f₂) X.d₁ All goals completed! 🐙

Map 3:

(i) \bar{a} = w satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = z satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = y satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = l satisfies \beta^2\bar{d} = \bar{d}

def f₃ : .carrier .carrier | X.a => Y.w | X.a₁ => Y.x | X.a₂ => Y.y | X.a₃ => Y.w | X.a₄ => Y.x | X.b => Y.z | X.c => Y.y | X.d => Y.l | X.d₁ => Y.m def f₃' : := f₃, f₃ .toEnd = .toEnd f₃ x:.carrier(f₃ .toEnd) x = (.toEnd f₃) x (f₃ .toEnd) X.a = (.toEnd f₃) X.a(f₃ .toEnd) X.a₁ = (.toEnd f₃) X.a₁(f₃ .toEnd) X.a₂ = (.toEnd f₃) X.a₂(f₃ .toEnd) X.a₃ = (.toEnd f₃) X.a₃(f₃ .toEnd) X.a₄ = (.toEnd f₃) X.a₄(f₃ .toEnd) X.b = (.toEnd f₃) X.b(f₃ .toEnd) X.c = (.toEnd f₃) X.c(f₃ .toEnd) X.d = (.toEnd f₃) X.d(f₃ .toEnd) X.d₁ = (.toEnd f₃) X.d₁ (f₃ .toEnd) X.a = (.toEnd f₃) X.a(f₃ .toEnd) X.a₁ = (.toEnd f₃) X.a₁(f₃ .toEnd) X.a₂ = (.toEnd f₃) X.a₂(f₃ .toEnd) X.a₃ = (.toEnd f₃) X.a₃(f₃ .toEnd) X.a₄ = (.toEnd f₃) X.a₄(f₃ .toEnd) X.b = (.toEnd f₃) X.b(f₃ .toEnd) X.c = (.toEnd f₃) X.c(f₃ .toEnd) X.d = (.toEnd f₃) X.d(f₃ .toEnd) X.d₁ = (.toEnd f₃) X.d₁ All goals completed! 🐙

Map 4:

(i) \bar{a} = w satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = z satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = y satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = m satisfies \beta^2\bar{d} = \bar{d}

def f₄ : .carrier .carrier | X.a => Y.w | X.a₁ => Y.x | X.a₂ => Y.y | X.a₃ => Y.w | X.a₄ => Y.x | X.b => Y.z | X.c => Y.y | X.d => Y.m | X.d₁ => Y.l def f₄' : := f₄, f₄ .toEnd = .toEnd f₄ x:.carrier(f₄ .toEnd) x = (.toEnd f₄) x (f₄ .toEnd) X.a = (.toEnd f₄) X.a(f₄ .toEnd) X.a₁ = (.toEnd f₄) X.a₁(f₄ .toEnd) X.a₂ = (.toEnd f₄) X.a₂(f₄ .toEnd) X.a₃ = (.toEnd f₄) X.a₃(f₄ .toEnd) X.a₄ = (.toEnd f₄) X.a₄(f₄ .toEnd) X.b = (.toEnd f₄) X.b(f₄ .toEnd) X.c = (.toEnd f₄) X.c(f₄ .toEnd) X.d = (.toEnd f₄) X.d(f₄ .toEnd) X.d₁ = (.toEnd f₄) X.d₁ (f₄ .toEnd) X.a = (.toEnd f₄) X.a(f₄ .toEnd) X.a₁ = (.toEnd f₄) X.a₁(f₄ .toEnd) X.a₂ = (.toEnd f₄) X.a₂(f₄ .toEnd) X.a₃ = (.toEnd f₄) X.a₃(f₄ .toEnd) X.a₄ = (.toEnd f₄) X.a₄(f₄ .toEnd) X.b = (.toEnd f₄) X.b(f₄ .toEnd) X.c = (.toEnd f₄) X.c(f₄ .toEnd) X.d = (.toEnd f₄) X.d(f₄ .toEnd) X.d₁ = (.toEnd f₄) X.d₁ All goals completed! 🐙

Map 5:

(i) \bar{a} = x satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = y satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = w satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = l satisfies \beta^2\bar{d} = \bar{d}

def f₅ : .carrier .carrier | X.a => Y.x | X.a₁ => Y.y | X.a₂ => Y.w | X.a₃ => Y.x | X.a₄ => Y.y | X.b => Y.y | X.c => Y.w | X.d => Y.l | X.d₁ => Y.m def f₅' : := f₅, f₅ .toEnd = .toEnd f₅ x:.carrier(f₅ .toEnd) x = (.toEnd f₅) x (f₅ .toEnd) X.a = (.toEnd f₅) X.a(f₅ .toEnd) X.a₁ = (.toEnd f₅) X.a₁(f₅ .toEnd) X.a₂ = (.toEnd f₅) X.a₂(f₅ .toEnd) X.a₃ = (.toEnd f₅) X.a₃(f₅ .toEnd) X.a₄ = (.toEnd f₅) X.a₄(f₅ .toEnd) X.b = (.toEnd f₅) X.b(f₅ .toEnd) X.c = (.toEnd f₅) X.c(f₅ .toEnd) X.d = (.toEnd f₅) X.d(f₅ .toEnd) X.d₁ = (.toEnd f₅) X.d₁ (f₅ .toEnd) X.a = (.toEnd f₅) X.a(f₅ .toEnd) X.a₁ = (.toEnd f₅) X.a₁(f₅ .toEnd) X.a₂ = (.toEnd f₅) X.a₂(f₅ .toEnd) X.a₃ = (.toEnd f₅) X.a₃(f₅ .toEnd) X.a₄ = (.toEnd f₅) X.a₄(f₅ .toEnd) X.b = (.toEnd f₅) X.b(f₅ .toEnd) X.c = (.toEnd f₅) X.c(f₅ .toEnd) X.d = (.toEnd f₅) X.d(f₅ .toEnd) X.d₁ = (.toEnd f₅) X.d₁ All goals completed! 🐙

Map 6:

(i) \bar{a} = x satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = y satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = w satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = m satisfies \beta^2\bar{d} = \bar{d}

def f₆ : .carrier .carrier | X.a => Y.x | X.a₁ => Y.y | X.a₂ => Y.w | X.a₃ => Y.x | X.a₄ => Y.y | X.b => Y.y | X.c => Y.w | X.d => Y.m | X.d₁ => Y.l def f₆' : := f₆, f₆ .toEnd = .toEnd f₆ x:.carrier(f₆ .toEnd) x = (.toEnd f₆) x (f₆ .toEnd) X.a = (.toEnd f₆) X.a(f₆ .toEnd) X.a₁ = (.toEnd f₆) X.a₁(f₆ .toEnd) X.a₂ = (.toEnd f₆) X.a₂(f₆ .toEnd) X.a₃ = (.toEnd f₆) X.a₃(f₆ .toEnd) X.a₄ = (.toEnd f₆) X.a₄(f₆ .toEnd) X.b = (.toEnd f₆) X.b(f₆ .toEnd) X.c = (.toEnd f₆) X.c(f₆ .toEnd) X.d = (.toEnd f₆) X.d(f₆ .toEnd) X.d₁ = (.toEnd f₆) X.d₁ (f₆ .toEnd) X.a = (.toEnd f₆) X.a(f₆ .toEnd) X.a₁ = (.toEnd f₆) X.a₁(f₆ .toEnd) X.a₂ = (.toEnd f₆) X.a₂(f₆ .toEnd) X.a₃ = (.toEnd f₆) X.a₃(f₆ .toEnd) X.a₄ = (.toEnd f₆) X.a₄(f₆ .toEnd) X.b = (.toEnd f₆) X.b(f₆ .toEnd) X.c = (.toEnd f₆) X.c(f₆ .toEnd) X.d = (.toEnd f₆) X.d(f₆ .toEnd) X.d₁ = (.toEnd f₆) X.d₁ All goals completed! 🐙

Map 7:

(i) \bar{a} = y satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = w satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = x satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = l satisfies \beta^2\bar{d} = \bar{d}

def f₇ : .carrier .carrier | X.a => Y.y | X.a₁ => Y.w | X.a₂ => Y.x | X.a₃ => Y.y | X.a₄ => Y.w | X.b => Y.w | X.c => Y.x | X.d => Y.l | X.d₁ => Y.m def f₇' : := f₇, f₇ .toEnd = .toEnd f₇ x:.carrier(f₇ .toEnd) x = (.toEnd f₇) x (f₇ .toEnd) X.a = (.toEnd f₇) X.a(f₇ .toEnd) X.a₁ = (.toEnd f₇) X.a₁(f₇ .toEnd) X.a₂ = (.toEnd f₇) X.a₂(f₇ .toEnd) X.a₃ = (.toEnd f₇) X.a₃(f₇ .toEnd) X.a₄ = (.toEnd f₇) X.a₄(f₇ .toEnd) X.b = (.toEnd f₇) X.b(f₇ .toEnd) X.c = (.toEnd f₇) X.c(f₇ .toEnd) X.d = (.toEnd f₇) X.d(f₇ .toEnd) X.d₁ = (.toEnd f₇) X.d₁ (f₇ .toEnd) X.a = (.toEnd f₇) X.a(f₇ .toEnd) X.a₁ = (.toEnd f₇) X.a₁(f₇ .toEnd) X.a₂ = (.toEnd f₇) X.a₂(f₇ .toEnd) X.a₃ = (.toEnd f₇) X.a₃(f₇ .toEnd) X.a₄ = (.toEnd f₇) X.a₄(f₇ .toEnd) X.b = (.toEnd f₇) X.b(f₇ .toEnd) X.c = (.toEnd f₇) X.c(f₇ .toEnd) X.d = (.toEnd f₇) X.d(f₇ .toEnd) X.d₁ = (.toEnd f₇) X.d₁ All goals completed! 🐙

Map 8:

(i) \bar{a} = y satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = w satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = x satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = m satisfies \beta^2\bar{d} = \bar{d}

def f₈ : .carrier .carrier | X.a => Y.y | X.a₁ => Y.w | X.a₂ => Y.x | X.a₃ => Y.y | X.a₄ => Y.w | X.b => Y.w | X.c => Y.x | X.d => Y.m | X.d₁ => Y.l def f₈' : := f₈, f₈ .toEnd = .toEnd f₈ x:.carrier(f₈ .toEnd) x = (.toEnd f₈) x (f₈ .toEnd) X.a = (.toEnd f₈) X.a(f₈ .toEnd) X.a₁ = (.toEnd f₈) X.a₁(f₈ .toEnd) X.a₂ = (.toEnd f₈) X.a₂(f₈ .toEnd) X.a₃ = (.toEnd f₈) X.a₃(f₈ .toEnd) X.a₄ = (.toEnd f₈) X.a₄(f₈ .toEnd) X.b = (.toEnd f₈) X.b(f₈ .toEnd) X.c = (.toEnd f₈) X.c(f₈ .toEnd) X.d = (.toEnd f₈) X.d(f₈ .toEnd) X.d₁ = (.toEnd f₈) X.d₁ (f₈ .toEnd) X.a = (.toEnd f₈) X.a(f₈ .toEnd) X.a₁ = (.toEnd f₈) X.a₁(f₈ .toEnd) X.a₂ = (.toEnd f₈) X.a₂(f₈ .toEnd) X.a₃ = (.toEnd f₈) X.a₃(f₈ .toEnd) X.a₄ = (.toEnd f₈) X.a₄(f₈ .toEnd) X.b = (.toEnd f₈) X.b(f₈ .toEnd) X.c = (.toEnd f₈) X.c(f₈ .toEnd) X.d = (.toEnd f₈) X.d(f₈ .toEnd) X.d₁ = (.toEnd f₈) X.d₁ All goals completed! 🐙

Map 9:

(i) \bar{a} = y satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = w satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = z satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = l satisfies \beta^2\bar{d} = \bar{d}

def f₉ : .carrier .carrier | X.a => Y.y | X.a₁ => Y.w | X.a₂ => Y.x | X.a₃ => Y.y | X.a₄ => Y.w | X.b => Y.w | X.c => Y.z | X.d => Y.l | X.d₁ => Y.m def f₉' : := f₉, f₉ .toEnd = .toEnd f₉ x:.carrier(f₉ .toEnd) x = (.toEnd f₉) x (f₉ .toEnd) X.a = (.toEnd f₉) X.a(f₉ .toEnd) X.a₁ = (.toEnd f₉) X.a₁(f₉ .toEnd) X.a₂ = (.toEnd f₉) X.a₂(f₉ .toEnd) X.a₃ = (.toEnd f₉) X.a₃(f₉ .toEnd) X.a₄ = (.toEnd f₉) X.a₄(f₉ .toEnd) X.b = (.toEnd f₉) X.b(f₉ .toEnd) X.c = (.toEnd f₉) X.c(f₉ .toEnd) X.d = (.toEnd f₉) X.d(f₉ .toEnd) X.d₁ = (.toEnd f₉) X.d₁ (f₉ .toEnd) X.a = (.toEnd f₉) X.a(f₉ .toEnd) X.a₁ = (.toEnd f₉) X.a₁(f₉ .toEnd) X.a₂ = (.toEnd f₉) X.a₂(f₉ .toEnd) X.a₃ = (.toEnd f₉) X.a₃(f₉ .toEnd) X.a₄ = (.toEnd f₉) X.a₄(f₉ .toEnd) X.b = (.toEnd f₉) X.b(f₉ .toEnd) X.c = (.toEnd f₉) X.c(f₉ .toEnd) X.d = (.toEnd f₉) X.d(f₉ .toEnd) X.d₁ = (.toEnd f₉) X.d₁ All goals completed! 🐙

Map 10:

(i) \bar{a} = y satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = w satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = z satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = m satisfies \beta^2\bar{d} = \bar{d}

def f₁₀ : .carrier .carrier | X.a => Y.y | X.a₁ => Y.w | X.a₂ => Y.x | X.a₃ => Y.y | X.a₄ => Y.w | X.b => Y.w | X.c => Y.z | X.d => Y.m | X.d₁ => Y.l def f₁₀' : := f₁₀, f₁₀ .toEnd = .toEnd f₁₀ x:.carrier(f₁₀ .toEnd) x = (.toEnd f₁₀) x (f₁₀ .toEnd) X.a = (.toEnd f₁₀) X.a(f₁₀ .toEnd) X.a₁ = (.toEnd f₁₀) X.a₁(f₁₀ .toEnd) X.a₂ = (.toEnd f₁₀) X.a₂(f₁₀ .toEnd) X.a₃ = (.toEnd f₁₀) X.a₃(f₁₀ .toEnd) X.a₄ = (.toEnd f₁₀) X.a₄(f₁₀ .toEnd) X.b = (.toEnd f₁₀) X.b(f₁₀ .toEnd) X.c = (.toEnd f₁₀) X.c(f₁₀ .toEnd) X.d = (.toEnd f₁₀) X.d(f₁₀ .toEnd) X.d₁ = (.toEnd f₁₀) X.d₁ (f₁₀ .toEnd) X.a = (.toEnd f₁₀) X.a(f₁₀ .toEnd) X.a₁ = (.toEnd f₁₀) X.a₁(f₁₀ .toEnd) X.a₂ = (.toEnd f₁₀) X.a₂(f₁₀ .toEnd) X.a₃ = (.toEnd f₁₀) X.a₃(f₁₀ .toEnd) X.a₄ = (.toEnd f₁₀) X.a₄(f₁₀ .toEnd) X.b = (.toEnd f₁₀) X.b(f₁₀ .toEnd) X.c = (.toEnd f₁₀) X.c(f₁₀ .toEnd) X.d = (.toEnd f₁₀) X.d(f₁₀ .toEnd) X.d₁ = (.toEnd f₁₀) X.d₁ All goals completed! 🐙

Map 11:

(i) \bar{a} = z satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = y satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = w satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = l satisfies \beta^2\bar{d} = \bar{d}

def f₁₁ : .carrier .carrier | X.a => Y.z | X.a₁ => Y.y | X.a₂ => Y.w | X.a₃ => Y.x | X.a₄ => Y.y | X.b => Y.y | X.c => Y.w | X.d => Y.l | X.d₁ => Y.m def f₁₁' : := f₁₁, f₁₁ .toEnd = .toEnd f₁₁ x:.carrier(f₁₁ .toEnd) x = (.toEnd f₁₁) x (f₁₁ .toEnd) X.a = (.toEnd f₁₁) X.a(f₁₁ .toEnd) X.a₁ = (.toEnd f₁₁) X.a₁(f₁₁ .toEnd) X.a₂ = (.toEnd f₁₁) X.a₂(f₁₁ .toEnd) X.a₃ = (.toEnd f₁₁) X.a₃(f₁₁ .toEnd) X.a₄ = (.toEnd f₁₁) X.a₄(f₁₁ .toEnd) X.b = (.toEnd f₁₁) X.b(f₁₁ .toEnd) X.c = (.toEnd f₁₁) X.c(f₁₁ .toEnd) X.d = (.toEnd f₁₁) X.d(f₁₁ .toEnd) X.d₁ = (.toEnd f₁₁) X.d₁ (f₁₁ .toEnd) X.a = (.toEnd f₁₁) X.a(f₁₁ .toEnd) X.a₁ = (.toEnd f₁₁) X.a₁(f₁₁ .toEnd) X.a₂ = (.toEnd f₁₁) X.a₂(f₁₁ .toEnd) X.a₃ = (.toEnd f₁₁) X.a₃(f₁₁ .toEnd) X.a₄ = (.toEnd f₁₁) X.a₄(f₁₁ .toEnd) X.b = (.toEnd f₁₁) X.b(f₁₁ .toEnd) X.c = (.toEnd f₁₁) X.c(f₁₁ .toEnd) X.d = (.toEnd f₁₁) X.d(f₁₁ .toEnd) X.d₁ = (.toEnd f₁₁) X.d₁ All goals completed! 🐙

Map 12:

(i) \bar{a} = z satisfies \beta^5\bar{a} = \beta^2\bar{a}

(ii) \bar{b} = y satisfies \beta\bar{b} = \beta^2\bar{a}

(iii) \bar{c} = w satisfies \beta\bar{c} = \beta^3\bar{a}

(iv) \bar{d} = m satisfies \beta^2\bar{d} = \bar{d}

def f₁₂ : .carrier .carrier | X.a => Y.z | X.a₁ => Y.y | X.a₂ => Y.w | X.a₃ => Y.x | X.a₄ => Y.y | X.b => Y.y | X.c => Y.w | X.d => Y.m | X.d₁ => Y.l def f₁₂' : := f₁₂, f₁₂ .toEnd = .toEnd f₁₂ x:.carrier(f₁₂ .toEnd) x = (.toEnd f₁₂) x (f₁₂ .toEnd) X.a = (.toEnd f₁₂) X.a(f₁₂ .toEnd) X.a₁ = (.toEnd f₁₂) X.a₁(f₁₂ .toEnd) X.a₂ = (.toEnd f₁₂) X.a₂(f₁₂ .toEnd) X.a₃ = (.toEnd f₁₂) X.a₃(f₁₂ .toEnd) X.a₄ = (.toEnd f₁₂) X.a₄(f₁₂ .toEnd) X.b = (.toEnd f₁₂) X.b(f₁₂ .toEnd) X.c = (.toEnd f₁₂) X.c(f₁₂ .toEnd) X.d = (.toEnd f₁₂) X.d(f₁₂ .toEnd) X.d₁ = (.toEnd f₁₂) X.d₁ (f₁₂ .toEnd) X.a = (.toEnd f₁₂) X.a(f₁₂ .toEnd) X.a₁ = (.toEnd f₁₂) X.a₁(f₁₂ .toEnd) X.a₂ = (.toEnd f₁₂) X.a₂(f₁₂ .toEnd) X.a₃ = (.toEnd f₁₂) X.a₃(f₁₂ .toEnd) X.a₄ = (.toEnd f₁₂) X.a₄(f₁₂ .toEnd) X.b = (.toEnd f₁₂) X.b(f₁₂ .toEnd) X.c = (.toEnd f₁₂) X.c(f₁₂ .toEnd) X.d = (.toEnd f₁₂) X.d(f₁₂ .toEnd) X.d₁ = (.toEnd f₁₂) X.d₁ All goals completed! 🐙
Exercise 9 (p. 185)

Our procedure treated X^{↻\alpha} and Y^{↻\beta} very differently. Suppose that in addition to a presentation of X^{↻\alpha} you had a presentation of Y^{↻\beta}. Try to find a method to calculate the solutions of the equations (\bar{\mathbf{R}}) without having to draw the picture of Y^{↻\beta}, but just working with a presentation. One can even program a computer to find all the maps f, starting from presentations of X^{↻\alpha} and Y^{↻\beta}.

Solution: Exercise 9

A presentation of Y^{↻\beta} is given below.

(\mathbf{L})

l, \beta l, p, \beta p, \beta^2 p, \beta^3 p, \beta^4 p, \beta^5 p, q, z, \beta z, \beta^2 z, \beta^3 z

(\mathbf{R})

(i) \beta^2 l = l

(ii) \beta^6 p = \beta^2 p

(iii) \beta q = \beta p

(iv) \beta^4 z = \beta z

Exercise 10 (p. 186)

Find a presentation for this system, which continues to the right forever.

Solution: Exercise 10

Let \alpha be the endomap, and label the generators from top to bottom as a, b, and c. Then a presentation is given below.

(\mathbf{L})

a, \alpha a, \alpha^2 a, \ldots, b, c, \alpha c

(\mathbf{R})

(i) \alpha b = \alpha a

(ii) \alpha^2 c = \alpha^2 a

Exercise 12 (p. 186)

A non-autonomous dynamical system S is one in which the 'rule of evolution' {\mathbb{N} \times S \xrightarrow{r} S} itself depends on time. These can be studied by reducing to the ordinary, or autonomous, system on the state space {X = \mathbb{N} \times S} with dynamics given by {\rho(n, s) = \langle n+1, r(n, s) \rangle}. Show that for any r there is exactly one sequence u in S for which {u(n+1) = r(n, u(n))} and for which {u(0) = s_0} is a given starting point. (Hint: Reduce this to the universal property of {\mathbb{N} = (\mathbb{N}, \sigma)} in 𝑺↻.)

Solution: Exercise 12

TODO Exercise 15.12