| ∀ n. frag*(IOAut(start, step, ext))(slf(n), alf(n)) ∧ slf(n + 1).head = slf(n).last ⊦ ∃ σ, α, ii. frag(IOAut(start, step, ext))(σ, α) ∧ ii(0) = 0 ∧ (finp(α) ⊃ ∃ n. # α = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → alf(m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) ∧ (∀ n. ii(n + 1) = ii(n) + # alf(n) ∧ ⌜ii(n + 1)⌝ < # σ ∧ α.take(ii(n + 1)).drop(ii(n)) = alf(n) ∧ σ.take(ii(n + 1) + 1).drop(ii(n)) = slf(n)) |