Skip to content

Commit d016a3c

Browse files
committed
naming, and deprecations
1 parent bddb9bd commit d016a3c

File tree

7 files changed

+107
-16
lines changed

7 files changed

+107
-16
lines changed

src/Init/Data/Array/Monadic.lean

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ open Nat
3131
xs.mapM (m := m) (pure <| f ·) = pure (xs.map f) := by
3232
induction xs; simp_all
3333

34-
@[simp] theorem mapM_id {xs : Array α} {f : α → Id β} : (xs.mapM f).run = xs.map (f · |>.run) :=
34+
@[simp] theorem idRun_mapM {xs : Array α} {f : α → Id β} : (xs.mapM f).run = xs.map (f · |>.run) :=
35+
mapM_pure
36+
37+
@[deprecated idRun_mapM (since := "2025-05-21")]
38+
theorem mapM_id {xs : Array α} {f : α → Id β} : xs.mapM f = xs.map f :=
3539
mapM_pure
3640

3741
@[simp] theorem mapM_append [Monad m] [LawfulMonad m] {f : α → m β} {xs ys : Array α} :
@@ -181,12 +185,19 @@ theorem forIn'_eq_foldlM [Monad m] [LawfulMonad m]
181185
rcases xs with ⟨xs⟩
182186
simp [List.forIn'_pure_yield_eq_foldl, List.foldl_map]
183187

184-
@[simp] theorem forIn'_yield_eq_foldl
188+
@[simp] theorem idRun_forIn'_yield_eq_foldl
185189
{xs : Array α} (f : (a : α) → a ∈ xs → β → Id β) (init : β) :
186190
(forIn' xs init (fun a m b => .yield <$> f a m b)).run =
187191
xs.attach.foldl (fun b ⟨a, h⟩ => f a h b |>.run) init :=
188192
forIn'_pure_yield_eq_foldl _ _
189193

194+
@[deprecated idRun_forIn'_yield_eq_foldl (since := "2025-05-21")]
195+
theorem forIn'_yield_eq_foldl
196+
{xs : Array α} (f : (a : α) → a ∈ xs → β → β) (init : β) :
197+
forIn' (m := Id) xs init (fun a m b => .yield (f a m b)) =
198+
xs.attach.foldl (fun b ⟨a, h⟩ => f a h b) init :=
199+
forIn'_pure_yield_eq_foldl _ _
200+
190201
@[simp] theorem forIn'_map [Monad m] [LawfulMonad m]
191202
{xs : Array α} (g : α → β) (f : (b : β) → b ∈ xs.map g → γ → m (ForInStep γ)) :
192203
forIn' (xs.map g) init f = forIn' xs init fun a h y => f (g a) (mem_map_of_mem h) y := by
@@ -222,12 +233,19 @@ theorem forIn_eq_foldlM [Monad m] [LawfulMonad m]
222233
rcases xs with ⟨xs⟩
223234
simp [List.forIn_pure_yield_eq_foldl, List.foldl_map]
224235

225-
@[simp] theorem forIn_yield_eq_foldl
236+
@[simp] theorem idRun_forIn_yield_eq_foldl
226237
{xs : Array α} (f : α → β → Id β) (init : β) :
227238
(forIn xs init (fun a b => .yield <$> f a b)).run =
228239
xs.foldl (fun b a => f a b |>.run) init :=
229240
forIn_pure_yield_eq_foldl _ _
230241

242+
@[deprecated idRun_forIn_yield_eq_foldl (since := "2025-05-21")]
243+
theorem forIn_yield_eq_foldl
244+
{xs : Array α} (f : α → β → β) (init : β) :
245+
forIn (m := Id) xs init (fun a b => .yield (f a b)) =
246+
xs.foldl (fun b a => f a b) init :=
247+
forIn_pure_yield_eq_foldl _ _
248+
231249
@[simp] theorem forIn_map [Monad m] [LawfulMonad m]
232250
{xs : Array α} {g : α → β} {f : β → γ → m (ForInStep γ)} :
233251
forIn (xs.map g) init f = forIn xs init fun a y => f (g a) y := by

src/Init/Data/List/Control.lean

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,10 +348,16 @@ theorem findM?_pure {m} [Monad m] [LawfulMonad m] (p : α → Bool) (as : List
348348
| false => simp [ih]
349349

350350
@[simp]
351-
theorem findM?_id (p : α → Id Bool) (as : List α) :
351+
theorem idRun_findM? (p : α → Id Bool) (as : List α) :
352352
(findM? p as).run = as.find? (p · |>.run) :=
353353
findM?_pure _ _
354354

355+
@[deprecated idRun_findM? (since := "2025-05-21")]
356+
theorem findM?_id (p : α → Id Bool) (as : List α) :
357+
findM? (m := Id) p as = as.find? p :=
358+
findM?_pure _ _
359+
360+
355361
/--
356362
Returns the first non-`none` result of applying the monadic function `f` to each element of the
357363
list, in order. Returns `none` if `f` returns `none` for all elements.
@@ -395,10 +401,15 @@ theorem findSomeM?_pure [Monad m] [LawfulMonad m] {f : α → Option β} {as : L
395401
| none => simp [ih]
396402

397403
@[simp]
398-
theorem findSomeM?_id (f : α → Id (Option β)) (as : List α) :
404+
theorem idRun_findSomeM? (f : α → Id (Option β)) (as : List α) :
399405
(findSomeM? f as).run = as.findSome? (f · |>.run) :=
400406
findSomeM?_pure
401407

408+
@[deprecated idRun_findSomeM? (since := "2025-05-21")]
409+
theorem findSomeM?_id (f : α → Id (Option β)) (as : List α) :
410+
findSomeM? (m := Id) f as = as.findSome? f :=
411+
findSomeM?_pure
412+
402413
theorem findM?_eq_findSomeM? [Monad m] [LawfulMonad m] {p : α → m Bool} {as : List α} :
403414
as.findM? p = as.findSomeM? fun a => return if (← p a) then some a else none := by
404415
induction as with

src/Init/Data/List/Lemmas.lean

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2548,12 +2548,20 @@ theorem foldr_eq_foldrM {f : α → β → β} {b : β} {l : List α} :
25482548
l.foldr f b = (l.foldrM (m := Id) (pure <| f · ·) b).run := by
25492549
simp
25502550

2551-
theorem id_run_foldlM {f : β → α → Id β} {b : β} {l : List α} :
2551+
theorem idRun_foldlM {f : β → α → Id β} {b : β} {l : List α} :
25522552
Id.run (l.foldlM f b) = l.foldl (f · · |>.run) b := foldl_eq_foldlM.symm
25532553

2554-
theorem id_run_foldrM {f : α → β → Id β} {b : β} {l : List α} :
2554+
@[deprecated idRun_foldlM (since := "2025-05-21")]
2555+
theorem id_run_foldlM {f : β → α → Id β} {b : β} {l : List α} :
2556+
Id.run (l.foldlM f b) = l.foldl f b := foldl_eq_foldlM.symm
2557+
2558+
theorem idRun_foldrM {f : α → β → Id β} {b : β} {l : List α} :
25552559
Id.run (l.foldrM f b) = l.foldr (f · · |>.run) b := foldr_eq_foldrM.symm
25562560

2561+
@[deprecated idRun_foldrM (since := "2025-05-21")]
2562+
theorem id_run_foldrM {f : α → β → Id β} {b : β} {l : List α} :
2563+
Id.run (l.foldrM f b) = l.foldr f b := foldr_eq_foldrM.symm
2564+
25572565
@[simp] theorem foldlM_reverse [Monad m] {l : List α} {f : β → α → m β} {b : β} :
25582566
l.reverse.foldlM f b = l.foldrM (fun x y => f y x) b := rfl
25592567

src/Init/Data/List/Monadic.lean

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,11 @@ theorem mapM'_eq_mapM [Monad m] [LawfulMonad m] {f : α → m β} {l : List α}
6666
l.mapM (m := m) (pure <| f ·) = pure (l.map f) := by
6767
induction l <;> simp_all
6868

69-
@[simp] theorem mapM_id {l : List α} {f : α → Id β} : (l.mapM f).run = l.map (f · |>.run) :=
69+
@[simp] theorem idRun_mapM {l : List α} {f : α → Id β} : (l.mapM f).run = l.map (f · |>.run) :=
70+
mapM_pure
71+
72+
@[deprecated idRun_mapM (since := "2025-05-21")]
73+
theorem mapM_id {l : List α} {f : α → Id β} : (l.mapM f).run = l.map (f · |>.run) :=
7074
mapM_pure
7175

7276
@[simp] theorem mapM_append [Monad m] [LawfulMonad m] {f : α → m β} {l₁ l₂ : List α} :
@@ -339,12 +343,19 @@ theorem forIn'_eq_foldlM [Monad m] [LawfulMonad m]
339343
simp only [forIn'_eq_foldlM]
340344
induction l.attach generalizing init <;> simp_all
341345

342-
@[simp] theorem forIn'_yield_eq_foldl
346+
@[simp] theorem idRun_forIn'_yield_eq_foldl
343347
(l : List α) (f : (a : α) → a ∈ l → β → Id β) (init : β) :
344348
(forIn' l init (fun a m b => .yield <$> f a m b)).run =
345349
l.attach.foldl (fun b ⟨a, h⟩ => f a h b |>.run) init :=
346350
forIn'_pure_yield_eq_foldl _ _
347351

352+
@[deprecated idRun_forIn'_yield_eq_foldl (since := "2025-05-21")]
353+
theorem forIn'_yield_eq_foldl
354+
{l : List α} (f : (a : α) → a ∈ l → β → β) (init : β) :
355+
forIn' (m := Id) l init (fun a m b => .yield (f a m b)) =
356+
l.attach.foldl (fun b ⟨a, h⟩ => f a h b) init :=
357+
forIn'_pure_yield_eq_foldl _ _
358+
348359
@[simp] theorem forIn'_map [Monad m] [LawfulMonad m]
349360
{l : List α} (g : α → β) (f : (b : β) → b ∈ l.map g → γ → m (ForInStep γ)) :
350361
forIn' (l.map g) init f = forIn' l init fun a h y => f (g a) (mem_map_of_mem h) y := by
@@ -391,12 +402,19 @@ theorem forIn_eq_foldlM [Monad m] [LawfulMonad m]
391402
simp only [forIn_eq_foldlM]
392403
induction l generalizing init <;> simp_all
393404

394-
@[simp] theorem forIn_yield_eq_foldl
405+
@[simp] theorem idRun_forIn_yield_eq_foldl
395406
(l : List α) (f : α → β → Id β) (init : β) :
396407
(forIn l init (fun a b => .yield <$> f a b)).run =
397408
l.foldl (fun b a => f a b |>.run) init :=
398409
forIn_pure_yield_eq_foldl _ _
399410

411+
@[deprecated idRun_forIn_yield_eq_foldl (since := "2025-05-21")]
412+
theorem forIn_yield_eq_foldl
413+
{l : List α} (f : α → β → β) (init : β) :
414+
forIn (m := Id) l init (fun a b => .yield (f a b)) =
415+
l.foldl (fun b a => f a b) init :=
416+
forIn_pure_yield_eq_foldl _ _
417+
400418
@[simp] theorem forIn_map [Monad m] [LawfulMonad m]
401419
{l : List α} {g : α → β} {f : β → γ → m (ForInStep γ)} :
402420
forIn (l.map g) init f = forIn l init fun a y => f (g a) y := by

src/Init/Data/Option/Monadic.lean

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,19 @@ theorem forIn'_eq_pelim [Monad m] [LawfulMonad m]
8686
pure (f := m) (o.pelim b (fun a h => f a h b)) := by
8787
cases o <;> simp
8888

89-
@[simp] theorem forIn'_id_yield_eq_pelim
89+
@[simp] theorem idRun_forIn'_yield_eq_pelim
9090
(o : Option α) (f : (a : α) → a ∈ o → β → Id β) (b : β) :
9191
(forIn' o b (fun a m b => .yield <$> f a m b)).run =
9292
o.pelim b (fun a h => f a h b |>.run) :=
9393
forIn'_pure_yield_eq_pelim _ _ _
9494

95+
@[deprecated idRun_forIn'_yield_eq_pelim (since := "2025-05-21")]
96+
theorem forIn'_id_yield_eq_pelim
97+
(o : Option α) (f : (a : α) → a ∈ o → β → β) (b : β) :
98+
forIn' (m := Id) o b (fun a m b => .yield (f a m b)) =
99+
o.pelim b (fun a h => f a h b) :=
100+
forIn'_pure_yield_eq_pelim _ _ _
101+
95102
@[simp, grind] theorem forIn'_map [Monad m] [LawfulMonad m]
96103
(o : Option α) (g : α → β) (f : (b : β) → b ∈ o.map g → γ → m (ForInStep γ)) :
97104
forIn' (o.map g) init f = forIn' o init fun a h y => f (g a) (mem_map_of_mem g h) y := by
@@ -115,12 +122,19 @@ theorem forIn_eq_elim [Monad m] [LawfulMonad m]
115122
pure (f := m) (o.elim b (fun a => f a b)) := by
116123
cases o <;> simp
117124

118-
@[simp] theorem forIn_id_yield_eq_elim
125+
@[simp] theorem idRun_forIn_yield_eq_elim
119126
(o : Option α) (f : (a : α) → β → Id β) (b : β) :
120127
(forIn o b (fun a b => .yield <$> f a b)).run =
121128
o.elim b (fun a => f a b |>.run) :=
122129
forIn_pure_yield_eq_elim _ _ _
123130

131+
@[deprecated idRun_forIn_yield_eq_elim (since := "2025-05-21")]
132+
theorem forIn_id_yield_eq_elim
133+
(o : Option α) (f : (a : α) → β → β) (b : β) :
134+
forIn (m := Id) o b (fun a b => .yield (f a b)) =
135+
o.elim b (fun a => f a b) :=
136+
forIn_pure_yield_eq_elim _ _ _
137+
124138
@[simp, grind] theorem forIn_map [Monad m] [LawfulMonad m]
125139
(o : Option α) (g : α → β) (f : β → γ → m (ForInStep γ)) :
126140
forIn (o.map g) init f = forIn o init fun a y => f (g a) y := by

src/Init/Data/Vector/Lemmas.lean

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2390,12 +2390,20 @@ theorem foldl_eq_foldlM {f : β → α → β} {b} {xs : Vector α n} :
23902390
theorem foldr_eq_foldrM {f : α → β → β} {b} {xs : Vector α n} :
23912391
xs.foldr f b = (xs.foldrM (m := Id) (pure <| f · ·) b).run := rfl
23922392

2393-
@[simp] theorem id_run_foldlM {f : β → α → Id β} {b} {xs : Vector α n} :
2393+
@[simp] theorem idRun_foldlM {f : β → α → Id β} {b} {xs : Vector α n} :
23942394
Id.run (xs.foldlM f b) = xs.foldl (f · · |>.run) b := foldl_eq_foldlM.symm
23952395

2396-
@[simp] theorem id_run_foldrM {f : α → β → Id β} {b} {xs : Vector α n} :
2396+
@[deprecated idRun_foldlM (since := "2025-05-21")]
2397+
theorem id_run_foldlM {f : β → α → Id β} {b} {xs : Vector α n} :
2398+
Id.run (xs.foldlM f b) = xs.foldl f b := foldl_eq_foldlM.symm
2399+
2400+
@[simp] theorem idRun_foldrM {f : α → β → Id β} {b} {xs : Vector α n} :
23972401
Id.run (xs.foldrM f b) = xs.foldr (f · · |>.run) b := foldr_eq_foldrM.symm
23982402

2403+
@[deprecated idRun_foldrM (since := "2025-05-21")]
2404+
theorem id_run_foldrM {f : α → β → Id β} {b} {xs : Vector α n} :
2405+
Id.run (xs.foldrM f b) = xs.foldr f b := foldr_eq_foldrM.symm
2406+
23992407
@[simp] theorem foldlM_reverse [Monad m] {xs : Vector α n} {f : β → α → m β} {b} :
24002408
xs.reverse.foldlM f b = xs.foldrM (fun x y => f y x) b := by
24012409
rcases xs with ⟨xs, rfl⟩

src/Init/Data/Vector/Monadic.lean

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,12 +143,19 @@ theorem forIn'_eq_foldlM [Monad m] [LawfulMonad m]
143143
rcases xs with ⟨xs, rfl⟩
144144
simp [Array.forIn'_pure_yield_eq_foldl, Array.foldl_map]
145145

146-
@[simp] theorem forIn'_yield_eq_foldl
146+
@[simp] theorem idRun_forIn'_yield_eq_foldl
147147
{xs : Vector α n} (f : (a : α) → a ∈ xs → β → Id β) (init : β) :
148148
(forIn' xs init (fun a m b => .yield <$> f a m b)).run =
149149
xs.attach.foldl (fun b ⟨a, h⟩ => f a h b |>.run) init :=
150150
forIn'_pure_yield_eq_foldl _ _
151151

152+
@[deprecated forIn'_yield_eq_foldl (since := "2025-05-21")]
153+
theorem forIn'_yield_eq_foldl
154+
{xs : Vector α n} (f : (a : α) → a ∈ xs → β → β) (init : β) :
155+
forIn' (m := Id) xs init (fun a m b => .yield (f a m b)) =
156+
xs.attach.foldl (fun b ⟨a, h⟩ => f a h b) init :=
157+
forIn'_pure_yield_eq_foldl _ _
158+
152159
@[simp] theorem forIn'_map [Monad m] [LawfulMonad m]
153160
{xs : Vector α n} (g : α → β) (f : (b : β) → b ∈ xs.map g → γ → m (ForInStep γ)) :
154161
forIn' (xs.map g) init f = forIn' xs init fun a h y => f (g a) (mem_map_of_mem h) y := by
@@ -184,12 +191,19 @@ theorem forIn_eq_foldlM [Monad m] [LawfulMonad m]
184191
rcases xs with ⟨xs, rfl⟩
185192
simp [Array.forIn_pure_yield_eq_foldl, Array.foldl_map]
186193

187-
@[simp] theorem forIn_yield_eq_foldl
194+
@[simp] theorem idRun_forIn_yield_eq_foldl
188195
{xs : Vector α n} (f : α → β → Id β) (init : β) :
189196
(forIn xs init (fun a b => .yield <$> f a b)).run =
190197
xs.foldl (fun b a => f a b |>.run) init :=
191198
forIn_pure_yield_eq_foldl _ _
192199

200+
@[deprecated idRun_forIn_yield_eq_foldl (since := "2025-05-21")]
201+
theorem forIn_yield_eq_foldl
202+
{xs : Vector α n} (f : α → β → β) (init : β) :
203+
forIn (m := Id) xs init (fun a b => .yield (f a b)) =
204+
xs.foldl (fun b a => f a b) init :=
205+
forIn_pure_yield_eq_foldl _ _
206+
193207
@[simp] theorem forIn_map [Monad m] [LawfulMonad m]
194208
{xs : Vector α n} (g : α → β) (f : β → γ → m (ForInStep γ)) :
195209
forIn (xs.map g) init f = forIn xs init fun a y => f (g a) y := by

0 commit comments

Comments
 (0)