The sofic value is approximable from below (Main Theorem I (1)) #
Paper I, Main Theorem I clause (1) (I:592) and its proof (I:1148–1168): enumerate the finite actions and take the running maximum of their values.
A finite action is coded by (N, P), P the list of the rows [σ_i(0), …, σ_i(N − 1)] of its
permutations (ActCode). ValidC s c is the decidable condition that a code is one (each row a
list of length N with entries below N and every point below N among them), decodeAct
reads off the action, and codeOf writes one down. On codes the value is a ratio of naturals
(value_eq_numC), the action of a word being computed letter by letter (applyWord, the inverse
of a row by List.idxOf).
The approximation is dyadic: lowerSeq T t / 2^t is the largest value of the actions with code
number at most t, rounded down to the grid of step 2^{-t}. It is primitive recursive
(primrec_lowerSeq), non-decreasing, at most the sofic value, and tends to it
(mainTheoremI_one).
Codes of finite actions #
A code of a finite action: the number of points and the rows of the permutations.
Instances For
A letter acting on a point through the rows P; letters beyond the rows act as the identity,
an inverted letter by the position of the point in its row.
Equations
Instances For
A word acting on a point, its last letter first, as in FiniteAction.wordPerm.
Equations
Instances For
The literal (i, b) at the point y.
Equations
Instances For
The number of points passing a challenge.
Equations
- MIPRE.Tailored.Sofic.Measure.countC c K cl = (List.filter (MIPRE.Tailored.Sofic.Measure.passC c.2 K cl) (List.range c.1)).length
Instances For
The weighted number of passing points, the numerator of the value.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The code c represents the action σ.
Instances For
On a code the value is a ratio of naturals.
The action of a valid code.
Equations
- MIPRE.Tailored.Sofic.Measure.decodeAct s c h = { N := c.1, N_pos := ⋯, σ := fun (i : Fin s) => Equiv.ofBijective (MIPRE.Tailored.Sofic.Measure.rowFun h i) ⋯ }
Instances For
The lower approximation #
The value of a code rounded down to the grid of step 2^{-t}, as a numerator; 0 for an
invalid code.
Equations
- MIPRE.Tailored.Sofic.Measure.lowerC T c t = if MIPRE.Tailored.Sofic.Measure.ValidC T.nGen c then 2 ^ t * MIPRE.Tailored.Sofic.Measure.numC T c / (c.1 * T.totalWeight) else 0
Instances For
lowerC of the code with number n.
Equations
- MIPRE.Tailored.Sofic.Measure.lowerAt T n t = match Encodable.decode n with | some c => MIPRE.Tailored.Sofic.Measure.lowerC T c t | none => 0
Instances For
The lower approximation at stage t: the numerator over 2^t of the largest rounded
value of the codes numbered at most t.
Equations
- MIPRE.Tailored.Sofic.Measure.lowerSeq T t = List.foldr max 0 (List.map (fun (n : ℕ) => MIPRE.Tailored.Sofic.Measure.lowerAt T n t) (List.range (t + 1)))
Instances For
The dyadic number n / 2^t.
Equations
- MIPRE.Tailored.Sofic.Measure.dyadic n t = ↑n / 2 ^ t