The Euclidean descent step in :
ProvedBurauFaithful.sl2_euclid_stepThe Euclidean descent in the modular group: one step of the continued fraction algorithm decreases the size of the top-left entry.
Let and be the standard generators of , and let be an integral matrix whose -entry is nonzero. Put and
Then the -entry of is the remainder of modulo ,
Thus each step of the Euclidean algorithm replaces by a matrix whose top-left entry has strictly smaller absolute value; iterating and terminating when that entry vanishes produces the continued fraction normal form of an element of the modular group (Birman, Braids, Links, and Mapping Class Groups, Ann. of Math. Studies 82, §3.3, pp. 129–130).
Formalization Note The step combines BurauFaithful.modular_T_zpow_mul (right multiplication by adds times the first column to the second) with the column swap ; the arithmetic input is Int.emod_lt_abs together with Int.emod_nonneg.
import Definitions.Def_BurauFaithful_UnreducedBurau set_option autoImplicit false open Matrix
theorem BurauFaithful.sl2_euclid_step (M : Matrix (Fin 2) (Fin 2) ℤ) (h : M 0 0 ≠ 0) :
((M * (↑(ModularGroup.T ^ (-(M 0 1 / M 0 0))) : Matrix (Fin 2) (Fin 2) ℤ)) *
(↑ModularGroup.S : Matrix (Fin 2) (Fin 2) ℤ)) 0 0 = M 0 1 % M 0 0 ∧
|((M * (↑(ModularGroup.T ^ (-(M 0 1 / M 0 0))) : Matrix (Fin 2) (Fin 2) ℤ)) *
(↑ModularGroup.S : Matrix (Fin 2) (Fin 2) ℤ)) 0 0| < |M 0 0| := by sorry