@[simp]
theorem Std.Iter.toArray_ensureTermination {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
@[simp]
theorem Std.Iter.toList_ensureTermination {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
@[simp]
theorem Std.Iter.toListRev_ensureTermination_eq_toListRev {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
theorem Std.Iter.toList_toArray_ensureTermination {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
theorem Std.Iter.toArray_toList_ensureTermination {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
theorem Std.Iter.reverse_toListRev_ensureTermination {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
theorem Std.Iter.toListRev_ensureTermination {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
theorem Std.Iter.toArray_eq_match_step {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
it.toArray = match it.step.val with
| IterStep.yield it' out => #[out] ++ it'.toArray
| IterStep.skip it' => it'.toArray
| IterStep.done => #[]
theorem Std.Iter.toArray_ensureTermination_eq_match_step {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
it.ensureTermination.toArray = match it.step.val with
| IterStep.yield it' out => #[out] ++ it'.toArray
| IterStep.skip it' => it'.toArray
| IterStep.done => #[]
theorem Std.Iter.toList_eq_match_step {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
it.toList = match it.step.val with
| IterStep.yield it' out => out :: it'.toList
| IterStep.skip it' => it'.toList
| IterStep.done => []
theorem Std.Iter.toList_ensureTermination_eq_match_step {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
it.ensureTermination.toList = match it.step.val with
| IterStep.yield it' out => out :: it'.toList
| IterStep.skip it' => it'.toList
| IterStep.done => []
theorem Std.Iter.toListRev_eq_match_step {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
it.toListRev = match it.step.val with
| IterStep.yield it' out => it'.toListRev ++ [out]
| IterStep.skip it' => it'.toListRev
| IterStep.done => []
theorem Std.Iter.toListRev_ensureTermination_eq_match_step {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} :
it.ensureTermination.toListRev = match it.step.val with
| IterStep.yield it' out => it'.toListRev ++ [out]
| IterStep.skip it' => it'.toListRev
| IterStep.done => []
theorem Std.Iter.getElem?_toList_eq_atIdxSlow? {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} {k : Nat} :
theorem Std.Iter.toList_eq_of_atIdxSlow?_eq {α₁ α₂ β : Type u_1} [Iterator α₁ Id β] [Iterators.Finite α₁ Id] [Iterator α₂ Id β] [Iterators.Finite α₂ Id] {it₁ : Iter β} {it₂ : Iter β} (h : ∀ (k : Nat), atIdxSlow? k it₁ = atIdxSlow? k it₂) :
theorem Std.Iter.isPlausibleIndirectOutput_of_mem_toList {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} {b : β} :
b ∈ it.toList → it.IsPlausibleIndirectOutput b
theorem Std.Iter.isPlausibleIndirectOutput_of_mem_toListRev {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} {b : β} :
b ∈ it.toListRev → it.IsPlausibleIndirectOutput b
theorem Std.Iter.isPlausibleIndirectOutput_of_mem_toArray {α β : Type u_1} [Iterator α Id β] [Iterators.Finite α Id] {it : Iter β} {b : β} :
b ∈ it.toArray → it.IsPlausibleIndirectOutput b