@@ -13,59 +13,55 @@ namespace Std.Iterators
1313
1414theorem Iter.toArray_eq_toArray_toIterM {α β} [Iterator α Id β] [Finite α Id] [IteratorCollect α Id]
1515 [LawfulIteratorCollect α Id] {it : Iter (α := α) β} :
16- it.toArray = it.toIterM.toArray :=
16+ it.toArray = it.toIterM.toArray.run :=
1717 rfl
1818
1919theorem Iter.toList_eq_toList_toIterM {α β} [Iterator α Id β] [Finite α Id] [IteratorCollect α Id]
2020 [LawfulIteratorCollect α Id] {it : Iter (α := α) β} :
21- it.toList = it.toIterM.toList :=
21+ it.toList = it.toIterM.toList.run :=
2222 rfl
2323
2424theorem Iter.toListRev_eq_toListRev_toIterM {α β} [Iterator α Id β] [Finite α Id]
2525 {it : Iter (α := α) β} :
26- it.toListRev = it.toIterM.toListRev :=
26+ it.toListRev = it.toIterM.toListRev.run :=
2727 rfl
2828
2929@[simp]
3030theorem IterM.toList_toIter {α β} [Iterator α Id β] [Finite α Id] [IteratorCollect α Id]
3131 {it : IterM (α := α) Id β} :
32- it.toIter.toList = it.toList :=
32+ it.toIter.toList = it.toList.run :=
3333 rfl
3434
3535@[simp]
3636theorem IterM.toListRev_toIter {α β} [Iterator α Id β] [Finite α Id]
3737 {it : IterM (α := α) Id β} :
38- it.toIter.toListRev = it.toListRev :=
38+ it.toIter.toListRev = it.toListRev.run :=
3939 rfl
4040
4141theorem Iter.toList_toArray {α β} [Iterator α Id β] [Finite α Id] [IteratorCollect α Id]
4242 [LawfulIteratorCollect α Id] {it : Iter (α := α) β} :
4343 it.toArray.toList = it.toList := by
44- simp only [toArray_eq_toArray_toIterM, toList_eq_toList_toIterM, ← IterM.toList_toArray]
45- rfl -- FIXME: defeq abuse of `Id`.
44+ simp [toArray_eq_toArray_toIterM, toList_eq_toList_toIterM, ← IterM.toList_toArray]
4645
4746theorem Iter.toArray_toList {α β} [Iterator α Id β] [Finite α Id] [IteratorCollect α Id]
4847 [LawfulIteratorCollect α Id] {it : Iter (α := α) β} :
4948 it.toList.toArray = it.toArray := by
50- simp only [toArray_eq_toArray_toIterM, toList_eq_toList_toIterM, ← IterM.toArray_toList]
51- rfl -- FIXME: defeq abuse of `Id`.
49+ simp [toArray_eq_toArray_toIterM, toList_eq_toList_toIterM, ← IterM.toArray_toList]
50+
5251theorem Iter.toListRev_eq {α β} [Iterator α Id β] [Finite α Id] [IteratorCollect α Id]
5352 [LawfulIteratorCollect α Id] {it : Iter (α := α) β} :
5453 it.toListRev = it.toList.reverse := by
5554 simp [Iter.toListRev_eq_toListRev_toIterM, Iter.toList_eq_toList_toIterM, IterM.toListRev_eq]
56- rfl -- FIXME: defeq abuse of
5755
58- set_option linter.deprecated false in -- FIXME: defeq abuse of `Id`.
5956theorem Iter.toArray_eq_match_step {α β} [Iterator α Id β] [Finite α Id] [IteratorCollect α Id]
6057 [LawfulIteratorCollect α Id] {it : Iter (α := α) β} :
6158 it.toArray = match it.step with
6259 | .yield it' out _ => #[out] ++ it'.toArray
6360 | .skip it' _ => it'.toArray
6461 | .done _ => #[] := by
6562 simp only [Iter.toArray_eq_toArray_toIterM, Iter.step]
66- rw [IterM.toArray_eq_match_step]
67- simp only [Id.run_map, Id.pure_eq, Id.bind_eq, Id.run]
68- generalize it.toIterM.step = step
63+ rw [IterM.toArray_eq_match_step, Id.run_bind]
64+ generalize it.toIterM.step.run = step
6965 cases step using PlausibleIterStep.casesOn <;> simp
7066
7167theorem Iter.toList_eq_match_step {α β} [Iterator α Id β] [Finite α Id] [IteratorCollect α Id]
@@ -77,15 +73,13 @@ theorem Iter.toList_eq_match_step {α β} [Iterator α Id β] [Finite α Id] [It
7773 rw [← Iter.toList_toArray, Iter.toArray_eq_match_step]
7874 split <;> simp [Iter.toList_toArray]
7975
80- set_option linter.deprecated false in -- FIXME: defeq abuse of `Id`.
8176theorem Iter.toListRev_eq_match_step {α β} [Iterator α Id β] [Finite α Id] {it : Iter (α := α) β} :
8277 it.toListRev = match it.step with
8378 | .yield it' out _ => it'.toListRev ++ [out]
8479 | .skip it' _ => it'.toListRev
8580 | .done _ => [] := by
86- rw [Iter.toListRev_eq_toListRev_toIterM, IterM.toListRev_eq_match_step, Iter.step]
87- simp only [Id.map_eq, Id.pure_eq, Id.bind_eq, Id.run]
88- generalize it.toIterM.step = step
81+ rw [Iter.toListRev_eq_toListRev_toIterM, IterM.toListRev_eq_match_step, Iter.step, Id.run_bind]
82+ generalize it.toIterM.step.run = step
8983 cases step using PlausibleIterStep.casesOn <;> simp
9084
9185theorem Iter.getElem?_toList_eq_atIdxSlow? {α β}
0 commit comments