@@ -107,49 +107,49 @@ theorem IterM.toList_of_step [Monad m] [LawfulMonad m] [Iterator α m β]
107107 ext step
108108 split <;> simp
109109
110- theorem IterM.reverseToList .go.aux₁ [Monad m] [LawfulMonad m] [Iterator α m β] [Finite α m]
110+ theorem IterM.toListRev .go.aux₁ [Monad m] [LawfulMonad m] [Iterator α m β] [Finite α m]
111111 {it : IterM (α := α) m β} {b : β} {bs : List β} :
112- IterM.reverseToList .go it (bs ++ [b]) = (· ++ [b]) <$> IterM.reverseToList .go it bs:= by
113- induction it, bs using IterM.reverseToList .go.induct
112+ IterM.toListRev .go it (bs ++ [b]) = (· ++ [b]) <$> IterM.toListRev .go it bs:= by
113+ induction it, bs using IterM.toListRev .go.induct
114114 next it bs ih₁ ih₂ =>
115115 rw [go, go, map_eq_pure_bind, bind_assoc]
116116 refine congrArg (IterM.step it >>= ·) ?_
117117 ext step
118118 simp only [List.cons_append] at ih₁
119119 split <;> simp [*]
120120
121- theorem IterM.reverseToList .go.aux₂ [Monad m] [LawfulMonad m] [Iterator α m β] [Finite α m]
121+ theorem IterM.toListRev .go.aux₂ [Monad m] [LawfulMonad m] [Iterator α m β] [Finite α m]
122122 {it : IterM (α := α) m β} {acc : List β} :
123- IterM.reverseToList .go it acc = (· ++ acc) <$> it.reverseToList := by
123+ IterM.toListRev .go it acc = (· ++ acc) <$> it.toListRev := by
124124 rw [← List.reverse_reverse (as := acc)]
125125 generalize acc.reverse = acc
126126 induction acc with
127- | nil => simp [reverseToList ]
128- | cons x xs ih => simp [IterM.reverseToList .go.aux₁, ih]
127+ | nil => simp [toListRev ]
128+ | cons x xs ih => simp [IterM.toListRev .go.aux₁, ih]
129129
130- theorem IterM.reverseToList_of_step [Monad m] [LawfulMonad m] [Iterator α m β] [Finite α m]
130+ theorem IterM.toListRev_of_step [Monad m] [LawfulMonad m] [Iterator α m β] [Finite α m]
131131 {it : IterM (α := α) m β} :
132- it.reverseToList = (do
132+ it.toListRev = (do
133133 match ← it.step with
134- | .yield it' out _ => return (← it'.reverseToList ) ++ [out]
135- | .skip it' _ => it'.reverseToList
134+ | .yield it' out _ => return (← it'.toListRev ) ++ [out]
135+ | .skip it' _ => it'.toListRev
136136 | .done _ => return []) := by
137- simp [IterM.reverseToList ]
138- rw [reverseToList .go]
137+ simp [IterM.toListRev ]
138+ rw [toListRev .go]
139139 refine congrArg (it.step >>= ·) ?_
140140 ext step
141141 obtain ⟨step, h⟩ := step
142- cases step <;> simp [IterM.reverseToList .go.aux₂]
142+ cases step <;> simp [IterM.toListRev .go.aux₂]
143143
144- -- TODO: rename `reverseToList ` -> `toListRev`
145- theorem IterM.reverse_reverseToList [Monad m] [LawfulMonad m] [Iterator α m β]
144+ -- TODO: rename `toListRev ` -> `toListRev`
145+ theorem IterM.reverse_toListRev [Monad m] [LawfulMonad m] [Iterator α m β]
146146 [IteratorToArray α m] [LawfulIteratorToArray α m]
147147 {it : IterM (α := α) m β} :
148- List.reverse <$> it.reverseToList = it.toList := by
148+ List.reverse <$> it.toListRev = it.toList := by
149149 apply Eq.symm
150150 induction it using IterM.induct
151151 rename_i it ihy ihs
152- rw [reverseToList_of_step , toList_of_step, map_eq_pure_bind, bind_assoc]
152+ rw [toListRev_of_step , toList_of_step, map_eq_pure_bind, bind_assoc]
153153 refine congrArg (_ >>= ·) ?_
154154 ext step
155155 split <;> simp (discharger := assumption) [ihy, ihs]
0 commit comments