@@ -161,42 +161,40 @@ theorem min?_eq_some_min [Min α] : {l : List α} → (hl : l ≠ []) →
161161 l.min? = some (l.min hl)
162162 | a::as, _ => by simp [List.min, List.min?_cons']
163163
164- theorem min_eq_head {α : Type u} [Min α] {l : List α}
165- (hl : l ≠ [])
164+ theorem min_eq_head {α : Type u} [Min α] {l : List α} (hl : l ≠ [])
166165 (h : l.Pairwise (fun a b => min a b = a)) : l.min hl = l.head hl := by
167166 apply Option.some.inj
168- rw [← min?_eq_some_min, ←head?_eq_some_head]
167+ rw [← min?_eq_some_min, ← head?_eq_some_head]
169168 exact min?_eq_head? h
170169
171- theorem min_mem [Min α] [MinEqOr α] {l : List α} {hl : l ≠ []} :
172- l.min hl ∈ l := by
173- exact min?_mem (min?_eq_some_min hl)
170+ theorem min_mem [Min α] [MinEqOr α] {l : List α} (hl : l ≠ []) : l.min hl ∈ l :=
171+ min?_mem (min?_eq_some_min hl)
174172
175173protected theorem le_min_iff [Min α] [LE α] [LawfulOrderInf α]
176- {l : List α} { hl : l ≠ []} : ∀ {x}, x ≤ l.min hl ↔ ∀ b, b ∈ l → x ≤ b := by
177- exact le_min?_iff (min?_eq_some_min hl)
174+ {l : List α} ( hl : l ≠ []) : ∀ {x}, x ≤ l.min hl ↔ ∀ b, b ∈ l → x ≤ b :=
175+ le_min?_iff (min?_eq_some_min hl)
178176
179- theorem min_iff [Min α] [LE α] {l : List α} [IsLinearOrder α] [LawfulOrderMin α] { hl : l ≠ []} :
177+ theorem min_eq_iff [Min α] [LE α] {l : List α} [IsLinearOrder α] [LawfulOrderMin α] ( hl : l ≠ []) :
180178 l.min hl = a ↔ a ∈ l ∧ ∀ b, b ∈ l → a ≤ b := by
181179 simpa [min?_eq_some_min hl] using (min?_eq_some_iff (xs := l))
182180
183- theorem min_eq_min_attach [Min α] [MinEqOr α] {l : List α} { hl : l ≠ []} :
181+ theorem min_eq_min_attach [Min α] [MinEqOr α] {l : List α} ( hl : l ≠ []) :
184182 l.min hl = Subtype.val (l.attach.min (List.attach_ne_nil_iff.mpr hl)) := by
185183 simpa [min?_eq_some_min hl, min?_eq_some_min (List.attach_ne_nil_iff.mpr hl)]
186184 using (min?_eq_min?_attach (xs := l))
187185
188- theorem min_iff_subtype [Min α] [LE α] {l : List α} { hl : l ≠ []}
186+ theorem min_eq_iff_subtype [Min α] [LE α] {l : List α} ( hl : l ≠ [])
189187 [MinEqOr α] [IsLinearOrder (Subtype (· ∈ l))] [LawfulOrderMin (Subtype (· ∈ l))] :
190188 l.min hl = a ↔ a ∈ l ∧ ∀ b, b ∈ l → a ≤ b := by
191189 simpa [min?_eq_some_min hl] using (min?_eq_some_iff_subtype (xs := l))
192190
193- theorem min_replicate [Min α] [MinEqOr α] {n : Nat} {a : α} (h: replicate n a ≠ []) :
191+ @[simp] theorem min_replicate [Min α] [MinEqOr α] {n : Nat} {a : α} (h : replicate n a ≠ []) :
194192 (replicate n a).min h = a := by
195193 have n_pos : 0 < n := Nat.pos_of_ne_zero (fun hn => by simp [hn] at h)
196- simpa [min?_eq_some_min h] using (min?_replicate_of_pos (a:= a) n_pos)
194+ simpa [min?_eq_some_min h] using (min?_replicate_of_pos (a := a) n_pos)
197195
198196theorem foldl_min_eq_min [Min α] [Std.IdempotentOp (min : α → α → α)] [Std.Associative (min : α → α → α)]
199- {l : List α} { hl : l ≠ []} {a : α}:
197+ {l : List α} ( hl : l ≠ []) {a : α} :
200198 l.foldl min a = min a (l.min hl) := by
201199 simpa [min?_eq_some_min hl] using foldl_min (l := l)
202200
@@ -347,42 +345,40 @@ theorem max?_eq_some_max [Max α] : {l : List α} → (hl : l ≠ []) →
347345 l.max? = some (l.max hl)
348346 | a::as, _ => by simp [List.max, List.max?_cons']
349347
350- theorem max_eq_head {α : Type u} [Max α] {l : List α}
351- (hl : l ≠ [])
348+ theorem max_eq_head {α : Type u} [Max α] {l : List α} (hl : l ≠ [])
352349 (h : l.Pairwise (fun a b => max a b = a)) : l.max hl = l.head hl := by
353350 apply Option.some.inj
354- rw [← max?_eq_some_max, ←head?_eq_some_head]
351+ rw [← max?_eq_some_max, ← head?_eq_some_head]
355352 exact max?_eq_head? h
356353
357- theorem max_mem [Max α] [MaxEqOr α] {l : List α} {hl : l ≠ []} :
358- l.max hl ∈ l := by
359- exact max?_mem (max?_eq_some_max hl)
354+ theorem max_mem [Max α] [MaxEqOr α] {l : List α} (hl : l ≠ []) : l.max hl ∈ l :=
355+ max?_mem (max?_eq_some_max hl)
360356
361357protected theorem max_le_iff [Max α] [LE α] [LawfulOrderSup α]
362- {l : List α} { hl : l ≠ []} : ∀ {x}, l.max hl ≤ x ↔ ∀ b, b ∈ l → b ≤ x := by
363- exact max?_le_iff (max?_eq_some_max hl)
358+ {l : List α} ( hl : l ≠ []) : ∀ {x}, l.max hl ≤ x ↔ ∀ b, b ∈ l → b ≤ x :=
359+ max?_le_iff (max?_eq_some_max hl)
364360
365- theorem max_iff [Max α] [LE α] {l : List α} [IsLinearOrder α] [LawfulOrderMax α] { hl : l ≠ []} :
361+ theorem max_eq_iff [Max α] [LE α] {l : List α} [IsLinearOrder α] [LawfulOrderMax α] ( hl : l ≠ []) :
366362 l.max hl = a ↔ a ∈ l ∧ ∀ b, b ∈ l → b ≤ a := by
367363 simpa [max?_eq_some_max hl] using (max?_eq_some_iff (xs := l))
368364
369- theorem max_eq_max_attach [Max α] [MaxEqOr α] {l : List α} { hl : l ≠ []} :
365+ theorem max_eq_max_attach [Max α] [MaxEqOr α] {l : List α} ( hl : l ≠ []) :
370366 l.max hl = Subtype.val (l.attach.max (List.attach_ne_nil_iff.mpr hl)) := by
371367 simpa [max?_eq_some_max hl, max?_eq_some_max (List.attach_ne_nil_iff.mpr hl)]
372368 using (max?_eq_max?_attach (xs := l))
373369
374- theorem max_iff_subtype [Max α] [LE α] {l : List α} { hl : l ≠ []}
370+ theorem max_eq_iff_subtype [Max α] [LE α] {l : List α} ( hl : l ≠ [])
375371 [MaxEqOr α] [IsLinearOrder (Subtype (· ∈ l))] [LawfulOrderMax (Subtype (· ∈ l))] :
376372 l.max hl = a ↔ a ∈ l ∧ ∀ b, b ∈ l → b ≤ a := by
377373 simpa [max?_eq_some_max hl] using (max?_eq_some_iff_subtype (xs := l))
378374
379- theorem max_replicate [Max α] [MaxEqOr α] {n : Nat} {a : α} (h: replicate n a ≠ []) :
375+ @[simp] theorem max_replicate [Max α] [MaxEqOr α] {n : Nat} {a : α} (h : replicate n a ≠ []) :
380376 (replicate n a).max h = a := by
381377 have n_pos : 0 < n := Nat.pos_of_ne_zero (fun hn => by simp [hn] at h)
382- simpa [max?_eq_some_max h] using (max?_replicate_of_pos (a:= a) n_pos)
378+ simpa [max?_eq_some_max h] using (max?_replicate_of_pos (a := a) n_pos)
383379
384380theorem foldl_max_eq_max [Max α] [Std.IdempotentOp (max : α → α → α)] [Std.Associative (max : α → α → α)]
385- {l : List α} { hl : l ≠ []} {a : α}:
381+ {l : List α} ( hl : l ≠ []) {a : α} :
386382 l.foldl max a = max a (l.max hl) := by
387383 simpa [max?_eq_some_max hl] using foldl_max (l := l)
388384
0 commit comments