data.set.accumulateMathlib.Data.Set.Accumulate

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2020 Floris van Doorn. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Floris van Doorn
 -/
-import Mathbin.Data.Set.Lattice
+import Data.Set.Lattice
 
 #align_import data.set.accumulate from "leanprover-community/mathlib"@"c3291da49cfa65f0d43b094750541c0731edc932"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2020 Floris van Doorn. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Floris van Doorn
-
-! This file was ported from Lean 3 source module data.set.accumulate
-! leanprover-community/mathlib commit c3291da49cfa65f0d43b094750541c0731edc932
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Set.Lattice
 
+#align_import data.set.accumulate from "leanprover-community/mathlib"@"c3291da49cfa65f0d43b094750541c0731edc932"
+
 /-!
 # Accumulate
 
Diff
@@ -33,29 +33,40 @@ def Accumulate [LE α] (s : α → Set β) (x : α) : Set β :=
 
 variable {s}
 
+#print Set.accumulate_def /-
 theorem accumulate_def [LE α] {x : α} : Accumulate s x = ⋃ y ≤ x, s y :=
   rfl
 #align set.accumulate_def Set.accumulate_def
+-/
 
+#print Set.mem_accumulate /-
 @[simp]
 theorem mem_accumulate [LE α] {x : α} {z : β} : z ∈ Accumulate s x ↔ ∃ y ≤ x, z ∈ s y :=
   mem_iUnion₂
 #align set.mem_accumulate Set.mem_accumulate
+-/
 
+#print Set.subset_accumulate /-
 theorem subset_accumulate [Preorder α] {x : α} : s x ⊆ Accumulate s x := fun z => mem_biUnion le_rfl
 #align set.subset_accumulate Set.subset_accumulate
+-/
 
+#print Set.monotone_accumulate /-
 theorem monotone_accumulate [Preorder α] : Monotone (Accumulate s) := fun x y hxy =>
   biUnion_subset_biUnion_left fun z hz => le_trans hz hxy
 #align set.monotone_accumulate Set.monotone_accumulate
+-/
 
+#print Set.biUnion_accumulate /-
 theorem biUnion_accumulate [Preorder α] (x : α) : (⋃ y ≤ x, Accumulate s y) = ⋃ y ≤ x, s y :=
   by
   apply subset.antisymm
   · exact Union₂_subset fun y hy => monotone_accumulate hy
   · exact Union₂_mono fun y hy => subset_accumulate
 #align set.bUnion_accumulate Set.biUnion_accumulate
+-/
 
+#print Set.iUnion_accumulate /-
 theorem iUnion_accumulate [Preorder α] : (⋃ x, Accumulate s x) = ⋃ x, s x :=
   by
   apply subset.antisymm
@@ -63,6 +74,7 @@ theorem iUnion_accumulate [Preorder α] : (⋃ x, Accumulate s x) = ⋃ x, s x :
     intro z x x' hx'x hz; exact ⟨x', hz⟩
   · exact Union_mono fun i => subset_accumulate
 #align set.Union_accumulate Set.iUnion_accumulate
+-/
 
 end Set
 
Diff
@@ -33,52 +33,22 @@ def Accumulate [LE α] (s : α → Set β) (x : α) : Set β :=
 
 variable {s}
 
-/- warning: set.accumulate_def -> Set.accumulate_def is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : LE.{u1} α] {x : α}, Eq.{succ u2} (Set.{u2} β) (Set.Accumulate.{u1, u2} α β _inst_1 s x) (Set.iUnion.{u2, succ u1} β α (fun (y : α) => Set.iUnion.{u2, 0} β (LE.le.{u1} α _inst_1 y x) (fun (H : LE.le.{u1} α _inst_1 y x) => s y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : LE.{u2} α] {x : α}, Eq.{succ u1} (Set.{u1} β) (Set.Accumulate.{u2, u1} α β _inst_1 s x) (Set.iUnion.{u1, succ u2} β α (fun (y : α) => Set.iUnion.{u1, 0} β (LE.le.{u2} α _inst_1 y x) (fun (H : LE.le.{u2} α _inst_1 y x) => s y)))
-Case conversion may be inaccurate. Consider using '#align set.accumulate_def Set.accumulate_defₓ'. -/
 theorem accumulate_def [LE α] {x : α} : Accumulate s x = ⋃ y ≤ x, s y :=
   rfl
 #align set.accumulate_def Set.accumulate_def
 
-/- warning: set.mem_accumulate -> Set.mem_accumulate is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : LE.{u1} α] {x : α} {z : β}, Iff (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) z (Set.Accumulate.{u1, u2} α β _inst_1 s x)) (Exists.{succ u1} α (fun (y : α) => Exists.{0} (LE.le.{u1} α _inst_1 y x) (fun (H : LE.le.{u1} α _inst_1 y x) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) z (s y))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : LE.{u2} α] {x : α} {z : β}, Iff (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) z (Set.Accumulate.{u2, u1} α β _inst_1 s x)) (Exists.{succ u2} α (fun (y : α) => And (LE.le.{u2} α _inst_1 y x) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) z (s y))))
-Case conversion may be inaccurate. Consider using '#align set.mem_accumulate Set.mem_accumulateₓ'. -/
 @[simp]
 theorem mem_accumulate [LE α] {x : α} {z : β} : z ∈ Accumulate s x ↔ ∃ y ≤ x, z ∈ s y :=
   mem_iUnion₂
 #align set.mem_accumulate Set.mem_accumulate
 
-/- warning: set.subset_accumulate -> Set.subset_accumulate is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α] {x : α}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (s x) (Set.Accumulate.{u1, u2} α β (Preorder.toHasLe.{u1} α _inst_1) s x)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α] {x : α}, HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (s x) (Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s x)
-Case conversion may be inaccurate. Consider using '#align set.subset_accumulate Set.subset_accumulateₓ'. -/
 theorem subset_accumulate [Preorder α] {x : α} : s x ⊆ Accumulate s x := fun z => mem_biUnion le_rfl
 #align set.subset_accumulate Set.subset_accumulate
 
-/- warning: set.monotone_accumulate -> Set.monotone_accumulate is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α], Monotone.{u1, u2} α (Set.{u2} β) _inst_1 (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (Set.Accumulate.{u1, u2} α β (Preorder.toHasLe.{u1} α _inst_1) s)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α], Monotone.{u2, u1} α (Set.{u1} β) _inst_1 (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s)
-Case conversion may be inaccurate. Consider using '#align set.monotone_accumulate Set.monotone_accumulateₓ'. -/
 theorem monotone_accumulate [Preorder α] : Monotone (Accumulate s) := fun x y hxy =>
   biUnion_subset_biUnion_left fun z hz => le_trans hz hxy
 #align set.monotone_accumulate Set.monotone_accumulate
 
-/- warning: set.bUnion_accumulate -> Set.biUnion_accumulate is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α] (x : α), Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (y : α) => Set.iUnion.{u2, 0} β (LE.le.{u1} α (Preorder.toHasLe.{u1} α _inst_1) y x) (fun (H : LE.le.{u1} α (Preorder.toHasLe.{u1} α _inst_1) y x) => Set.Accumulate.{u1, u2} α β (Preorder.toHasLe.{u1} α _inst_1) s y))) (Set.iUnion.{u2, succ u1} β α (fun (y : α) => Set.iUnion.{u2, 0} β (LE.le.{u1} α (Preorder.toHasLe.{u1} α _inst_1) y x) (fun (H : LE.le.{u1} α (Preorder.toHasLe.{u1} α _inst_1) y x) => s y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α] (x : α), Eq.{succ u1} (Set.{u1} β) (Set.iUnion.{u1, succ u2} β α (fun (y : α) => Set.iUnion.{u1, 0} β (LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) (fun (H : LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) => Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s y))) (Set.iUnion.{u1, succ u2} β α (fun (y : α) => Set.iUnion.{u1, 0} β (LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) (fun (H : LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) => s y)))
-Case conversion may be inaccurate. Consider using '#align set.bUnion_accumulate Set.biUnion_accumulateₓ'. -/
 theorem biUnion_accumulate [Preorder α] (x : α) : (⋃ y ≤ x, Accumulate s y) = ⋃ y ≤ x, s y :=
   by
   apply subset.antisymm
@@ -86,12 +56,6 @@ theorem biUnion_accumulate [Preorder α] (x : α) : (⋃ y ≤ x, Accumulate s y
   · exact Union₂_mono fun y hy => subset_accumulate
 #align set.bUnion_accumulate Set.biUnion_accumulate
 
-/- warning: set.Union_accumulate -> Set.iUnion_accumulate is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α], Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (x : α) => Set.Accumulate.{u1, u2} α β (Preorder.toHasLe.{u1} α _inst_1) s x)) (Set.iUnion.{u2, succ u1} β α (fun (x : α) => s x))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α], Eq.{succ u1} (Set.{u1} β) (Set.iUnion.{u1, succ u2} β α (fun (x : α) => Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s x)) (Set.iUnion.{u1, succ u2} β α (fun (x : α) => s x))
-Case conversion may be inaccurate. Consider using '#align set.Union_accumulate Set.iUnion_accumulateₓ'. -/
 theorem iUnion_accumulate [Preorder α] : (⋃ x, Accumulate s x) = ⋃ x, s x :=
   by
   apply subset.antisymm
Diff
@@ -96,8 +96,7 @@ theorem iUnion_accumulate [Preorder α] : (⋃ x, Accumulate s x) = ⋃ x, s x :
   by
   apply subset.antisymm
   · simp only [subset_def, mem_Union, exists_imp, mem_accumulate]
-    intro z x x' hx'x hz
-    exact ⟨x', hz⟩
+    intro z x x' hx'x hz; exact ⟨x', hz⟩
   · exact Union_mono fun i => subset_accumulate
 #align set.Union_accumulate Set.iUnion_accumulate
 
Diff
@@ -56,7 +56,7 @@ theorem mem_accumulate [LE α] {x : α} {z : β} : z ∈ Accumulate s x ↔ ∃
 
 /- warning: set.subset_accumulate -> Set.subset_accumulate is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α] {x : α}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (s x) (Set.Accumulate.{u1, u2} α β (Preorder.toLE.{u1} α _inst_1) s x)
+  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α] {x : α}, HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (s x) (Set.Accumulate.{u1, u2} α β (Preorder.toHasLe.{u1} α _inst_1) s x)
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α] {x : α}, HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (s x) (Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s x)
 Case conversion may be inaccurate. Consider using '#align set.subset_accumulate Set.subset_accumulateₓ'. -/
@@ -65,7 +65,7 @@ theorem subset_accumulate [Preorder α] {x : α} : s x ⊆ Accumulate s x := fun
 
 /- warning: set.monotone_accumulate -> Set.monotone_accumulate is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α], Monotone.{u1, u2} α (Set.{u2} β) _inst_1 (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (Set.Accumulate.{u1, u2} α β (Preorder.toLE.{u1} α _inst_1) s)
+  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α], Monotone.{u1, u2} α (Set.{u2} β) _inst_1 (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (Set.Accumulate.{u1, u2} α β (Preorder.toHasLe.{u1} α _inst_1) s)
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α], Monotone.{u2, u1} α (Set.{u1} β) _inst_1 (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s)
 Case conversion may be inaccurate. Consider using '#align set.monotone_accumulate Set.monotone_accumulateₓ'. -/
@@ -75,7 +75,7 @@ theorem monotone_accumulate [Preorder α] : Monotone (Accumulate s) := fun x y h
 
 /- warning: set.bUnion_accumulate -> Set.biUnion_accumulate is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α] (x : α), Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (y : α) => Set.iUnion.{u2, 0} β (LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) (fun (H : LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) => Set.Accumulate.{u1, u2} α β (Preorder.toLE.{u1} α _inst_1) s y))) (Set.iUnion.{u2, succ u1} β α (fun (y : α) => Set.iUnion.{u2, 0} β (LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) (fun (H : LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) => s y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α] (x : α), Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (y : α) => Set.iUnion.{u2, 0} β (LE.le.{u1} α (Preorder.toHasLe.{u1} α _inst_1) y x) (fun (H : LE.le.{u1} α (Preorder.toHasLe.{u1} α _inst_1) y x) => Set.Accumulate.{u1, u2} α β (Preorder.toHasLe.{u1} α _inst_1) s y))) (Set.iUnion.{u2, succ u1} β α (fun (y : α) => Set.iUnion.{u2, 0} β (LE.le.{u1} α (Preorder.toHasLe.{u1} α _inst_1) y x) (fun (H : LE.le.{u1} α (Preorder.toHasLe.{u1} α _inst_1) y x) => s y)))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α] (x : α), Eq.{succ u1} (Set.{u1} β) (Set.iUnion.{u1, succ u2} β α (fun (y : α) => Set.iUnion.{u1, 0} β (LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) (fun (H : LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) => Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s y))) (Set.iUnion.{u1, succ u2} β α (fun (y : α) => Set.iUnion.{u1, 0} β (LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) (fun (H : LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) => s y)))
 Case conversion may be inaccurate. Consider using '#align set.bUnion_accumulate Set.biUnion_accumulateₓ'. -/
@@ -88,7 +88,7 @@ theorem biUnion_accumulate [Preorder α] (x : α) : (⋃ y ≤ x, Accumulate s y
 
 /- warning: set.Union_accumulate -> Set.iUnion_accumulate is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α], Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (x : α) => Set.Accumulate.{u1, u2} α β (Preorder.toLE.{u1} α _inst_1) s x)) (Set.iUnion.{u2, succ u1} β α (fun (x : α) => s x))
+  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α], Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (x : α) => Set.Accumulate.{u1, u2} α β (Preorder.toHasLe.{u1} α _inst_1) s x)) (Set.iUnion.{u2, succ u1} β α (fun (x : α) => s x))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α], Eq.{succ u1} (Set.{u1} β) (Set.iUnion.{u1, succ u2} β α (fun (x : α) => Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s x)) (Set.iUnion.{u1, succ u2} β α (fun (x : α) => s x))
 Case conversion may be inaccurate. Consider using '#align set.Union_accumulate Set.iUnion_accumulateₓ'. -/
Diff
@@ -35,9 +35,9 @@ variable {s}
 
 /- warning: set.accumulate_def -> Set.accumulate_def is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : LE.{u1} α] {x : α}, Eq.{succ u2} (Set.{u2} β) (Set.Accumulate.{u1, u2} α β _inst_1 s x) (Set.unionᵢ.{u2, succ u1} β α (fun (y : α) => Set.unionᵢ.{u2, 0} β (LE.le.{u1} α _inst_1 y x) (fun (H : LE.le.{u1} α _inst_1 y x) => s y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : LE.{u1} α] {x : α}, Eq.{succ u2} (Set.{u2} β) (Set.Accumulate.{u1, u2} α β _inst_1 s x) (Set.iUnion.{u2, succ u1} β α (fun (y : α) => Set.iUnion.{u2, 0} β (LE.le.{u1} α _inst_1 y x) (fun (H : LE.le.{u1} α _inst_1 y x) => s y)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : LE.{u2} α] {x : α}, Eq.{succ u1} (Set.{u1} β) (Set.Accumulate.{u2, u1} α β _inst_1 s x) (Set.unionᵢ.{u1, succ u2} β α (fun (y : α) => Set.unionᵢ.{u1, 0} β (LE.le.{u2} α _inst_1 y x) (fun (H : LE.le.{u2} α _inst_1 y x) => s y)))
+  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : LE.{u2} α] {x : α}, Eq.{succ u1} (Set.{u1} β) (Set.Accumulate.{u2, u1} α β _inst_1 s x) (Set.iUnion.{u1, succ u2} β α (fun (y : α) => Set.iUnion.{u1, 0} β (LE.le.{u2} α _inst_1 y x) (fun (H : LE.le.{u2} α _inst_1 y x) => s y)))
 Case conversion may be inaccurate. Consider using '#align set.accumulate_def Set.accumulate_defₓ'. -/
 theorem accumulate_def [LE α] {x : α} : Accumulate s x = ⋃ y ≤ x, s y :=
   rfl
@@ -51,7 +51,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align set.mem_accumulate Set.mem_accumulateₓ'. -/
 @[simp]
 theorem mem_accumulate [LE α] {x : α} {z : β} : z ∈ Accumulate s x ↔ ∃ y ≤ x, z ∈ s y :=
-  mem_unionᵢ₂
+  mem_iUnion₂
 #align set.mem_accumulate Set.mem_accumulate
 
 /- warning: set.subset_accumulate -> Set.subset_accumulate is a dubious translation:
@@ -60,7 +60,7 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α] {x : α}, HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (s x) (Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s x)
 Case conversion may be inaccurate. Consider using '#align set.subset_accumulate Set.subset_accumulateₓ'. -/
-theorem subset_accumulate [Preorder α] {x : α} : s x ⊆ Accumulate s x := fun z => mem_bunionᵢ le_rfl
+theorem subset_accumulate [Preorder α] {x : α} : s x ⊆ Accumulate s x := fun z => mem_biUnion le_rfl
 #align set.subset_accumulate Set.subset_accumulate
 
 /- warning: set.monotone_accumulate -> Set.monotone_accumulate is a dubious translation:
@@ -70,36 +70,36 @@ but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α], Monotone.{u2, u1} α (Set.{u1} β) _inst_1 (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s)
 Case conversion may be inaccurate. Consider using '#align set.monotone_accumulate Set.monotone_accumulateₓ'. -/
 theorem monotone_accumulate [Preorder α] : Monotone (Accumulate s) := fun x y hxy =>
-  bunionᵢ_subset_bunionᵢ_left fun z hz => le_trans hz hxy
+  biUnion_subset_biUnion_left fun z hz => le_trans hz hxy
 #align set.monotone_accumulate Set.monotone_accumulate
 
-/- warning: set.bUnion_accumulate -> Set.bunionᵢ_accumulate is a dubious translation:
+/- warning: set.bUnion_accumulate -> Set.biUnion_accumulate is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α] (x : α), Eq.{succ u2} (Set.{u2} β) (Set.unionᵢ.{u2, succ u1} β α (fun (y : α) => Set.unionᵢ.{u2, 0} β (LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) (fun (H : LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) => Set.Accumulate.{u1, u2} α β (Preorder.toLE.{u1} α _inst_1) s y))) (Set.unionᵢ.{u2, succ u1} β α (fun (y : α) => Set.unionᵢ.{u2, 0} β (LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) (fun (H : LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) => s y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α] (x : α), Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (y : α) => Set.iUnion.{u2, 0} β (LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) (fun (H : LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) => Set.Accumulate.{u1, u2} α β (Preorder.toLE.{u1} α _inst_1) s y))) (Set.iUnion.{u2, succ u1} β α (fun (y : α) => Set.iUnion.{u2, 0} β (LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) (fun (H : LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) y x) => s y)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α] (x : α), Eq.{succ u1} (Set.{u1} β) (Set.unionᵢ.{u1, succ u2} β α (fun (y : α) => Set.unionᵢ.{u1, 0} β (LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) (fun (H : LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) => Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s y))) (Set.unionᵢ.{u1, succ u2} β α (fun (y : α) => Set.unionᵢ.{u1, 0} β (LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) (fun (H : LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) => s y)))
-Case conversion may be inaccurate. Consider using '#align set.bUnion_accumulate Set.bunionᵢ_accumulateₓ'. -/
-theorem bunionᵢ_accumulate [Preorder α] (x : α) : (⋃ y ≤ x, Accumulate s y) = ⋃ y ≤ x, s y :=
+  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α] (x : α), Eq.{succ u1} (Set.{u1} β) (Set.iUnion.{u1, succ u2} β α (fun (y : α) => Set.iUnion.{u1, 0} β (LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) (fun (H : LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) => Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s y))) (Set.iUnion.{u1, succ u2} β α (fun (y : α) => Set.iUnion.{u1, 0} β (LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) (fun (H : LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) y x) => s y)))
+Case conversion may be inaccurate. Consider using '#align set.bUnion_accumulate Set.biUnion_accumulateₓ'. -/
+theorem biUnion_accumulate [Preorder α] (x : α) : (⋃ y ≤ x, Accumulate s y) = ⋃ y ≤ x, s y :=
   by
   apply subset.antisymm
   · exact Union₂_subset fun y hy => monotone_accumulate hy
   · exact Union₂_mono fun y hy => subset_accumulate
-#align set.bUnion_accumulate Set.bunionᵢ_accumulate
+#align set.bUnion_accumulate Set.biUnion_accumulate
 
-/- warning: set.Union_accumulate -> Set.unionᵢ_accumulate is a dubious translation:
+/- warning: set.Union_accumulate -> Set.iUnion_accumulate is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α], Eq.{succ u2} (Set.{u2} β) (Set.unionᵢ.{u2, succ u1} β α (fun (x : α) => Set.Accumulate.{u1, u2} α β (Preorder.toLE.{u1} α _inst_1) s x)) (Set.unionᵢ.{u2, succ u1} β α (fun (x : α) => s x))
+  forall {α : Type.{u1}} {β : Type.{u2}} {s : α -> (Set.{u2} β)} [_inst_1 : Preorder.{u1} α], Eq.{succ u2} (Set.{u2} β) (Set.iUnion.{u2, succ u1} β α (fun (x : α) => Set.Accumulate.{u1, u2} α β (Preorder.toLE.{u1} α _inst_1) s x)) (Set.iUnion.{u2, succ u1} β α (fun (x : α) => s x))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α], Eq.{succ u1} (Set.{u1} β) (Set.unionᵢ.{u1, succ u2} β α (fun (x : α) => Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s x)) (Set.unionᵢ.{u1, succ u2} β α (fun (x : α) => s x))
-Case conversion may be inaccurate. Consider using '#align set.Union_accumulate Set.unionᵢ_accumulateₓ'. -/
-theorem unionᵢ_accumulate [Preorder α] : (⋃ x, Accumulate s x) = ⋃ x, s x :=
+  forall {α : Type.{u2}} {β : Type.{u1}} {s : α -> (Set.{u1} β)} [_inst_1 : Preorder.{u2} α], Eq.{succ u1} (Set.{u1} β) (Set.iUnion.{u1, succ u2} β α (fun (x : α) => Set.Accumulate.{u2, u1} α β (Preorder.toLE.{u2} α _inst_1) s x)) (Set.iUnion.{u1, succ u2} β α (fun (x : α) => s x))
+Case conversion may be inaccurate. Consider using '#align set.Union_accumulate Set.iUnion_accumulateₓ'. -/
+theorem iUnion_accumulate [Preorder α] : (⋃ x, Accumulate s x) = ⋃ x, s x :=
   by
   apply subset.antisymm
   · simp only [subset_def, mem_Union, exists_imp, mem_accumulate]
     intro z x x' hx'x hz
     exact ⟨x', hz⟩
   · exact Union_mono fun i => subset_accumulate
-#align set.Union_accumulate Set.unionᵢ_accumulate
+#align set.Union_accumulate Set.iUnion_accumulate
 
 end Set
 

Changes in mathlib4

mathlib3
mathlib4
feat: lemmas about accumulate/partialSups/biUnion (#7562)

Co-authored-by: Peter Pfaffelhuber

From the Kolmogorov extension theorem project.

Co-authored-by: Rémy Degenne <remydegenne@gmail.com>

Diff
@@ -35,6 +35,9 @@ theorem mem_accumulate [LE α] {x : α} {z : β} : z ∈ Accumulate s x ↔ ∃
 theorem subset_accumulate [Preorder α] {x : α} : s x ⊆ Accumulate s x := fun _ => mem_biUnion le_rfl
 #align set.subset_accumulate Set.subset_accumulate
 
+theorem accumulate_subset_iUnion [Preorder α] (x : α) : Accumulate s x ⊆ ⋃ i, s i :=
+  (biUnion_subset_biUnion_left (subset_univ _)).trans_eq (biUnion_univ _)
+
 theorem monotone_accumulate [Preorder α] : Monotone (Accumulate s) := fun _ _ hxy =>
   biUnion_subset_biUnion_left fun _ hz => le_trans hz hxy
 #align set.monotone_accumulate Set.monotone_accumulate
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -14,7 +14,7 @@ The function `Accumulate` takes a set `s` and returns `⋃ y ≤ x, s y`.
 -/
 
 
-variable {α β γ : Type _} {s : α → Set β} {t : α → Set γ}
+variable {α β γ : Type*} {s : α → Set β} {t : α → Set γ}
 
 namespace Set
 
chore: remove 'Ported by' headers (#6018)

Briefly during the port we were adding "Ported by" headers, but only ~60 / 3000 files ended up with such a header.

I propose deleting them.

We could consider adding these uniformly via a script, as part of the great history rewrite...?

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,7 +2,6 @@
 Copyright (c) 2020 Floris van Doorn. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Floris van Doorn
-Ported by: Anatole Dedecker
 -/
 import Mathlib.Data.Set.Lattice
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -3,14 +3,11 @@ Copyright (c) 2020 Floris van Doorn. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Floris van Doorn
 Ported by: Anatole Dedecker
-
-! This file was ported from Lean 3 source module data.set.accumulate
-! leanprover-community/mathlib commit 207cfac9fcd06138865b5d04f7091e46d9320432
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Set.Lattice
 
+#align_import data.set.accumulate from "leanprover-community/mathlib"@"207cfac9fcd06138865b5d04f7091e46d9320432"
+
 /-!
 # Accumulate
 
fix: precedences of ⨆⋃⋂⨅ (#5614)
Diff
@@ -43,13 +43,13 @@ theorem monotone_accumulate [Preorder α] : Monotone (Accumulate s) := fun _ _ h
   biUnion_subset_biUnion_left fun _ hz => le_trans hz hxy
 #align set.monotone_accumulate Set.monotone_accumulate
 
-theorem biUnion_accumulate [Preorder α] (x : α) : (⋃ y ≤ x, Accumulate s y) = ⋃ y ≤ x, s y := by
+theorem biUnion_accumulate [Preorder α] (x : α) : ⋃ y ≤ x, Accumulate s y = ⋃ y ≤ x, s y := by
   apply Subset.antisymm
   · exact iUnion₂_subset fun y hy => monotone_accumulate hy
   · exact iUnion₂_mono fun y _ => subset_accumulate
 #align set.bUnion_accumulate Set.biUnion_accumulate
 
-theorem iUnion_accumulate [Preorder α] : (⋃ x, Accumulate s x) = ⋃ x, s x := by
+theorem iUnion_accumulate [Preorder α] : ⋃ x, Accumulate s x = ⋃ x, s x := by
   apply Subset.antisymm
   · simp only [subset_def, mem_iUnion, exists_imp, mem_accumulate]
     intro z x x' ⟨_, hz⟩
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -33,28 +33,28 @@ theorem accumulate_def [LE α] {x : α} : Accumulate s x = ⋃ y ≤ x, s y :=
 
 @[simp]
 theorem mem_accumulate [LE α] {x : α} {z : β} : z ∈ Accumulate s x ↔ ∃ y ≤ x, z ∈ s y := by
-  simp_rw [accumulate_def, mem_unionᵢ₂, exists_prop]
+  simp_rw [accumulate_def, mem_iUnion₂, exists_prop]
 #align set.mem_accumulate Set.mem_accumulate
 
-theorem subset_accumulate [Preorder α] {x : α} : s x ⊆ Accumulate s x := fun _ => mem_bunionᵢ le_rfl
+theorem subset_accumulate [Preorder α] {x : α} : s x ⊆ Accumulate s x := fun _ => mem_biUnion le_rfl
 #align set.subset_accumulate Set.subset_accumulate
 
 theorem monotone_accumulate [Preorder α] : Monotone (Accumulate s) := fun _ _ hxy =>
-  bunionᵢ_subset_bunionᵢ_left fun _ hz => le_trans hz hxy
+  biUnion_subset_biUnion_left fun _ hz => le_trans hz hxy
 #align set.monotone_accumulate Set.monotone_accumulate
 
-theorem bunionᵢ_accumulate [Preorder α] (x : α) : (⋃ y ≤ x, Accumulate s y) = ⋃ y ≤ x, s y := by
+theorem biUnion_accumulate [Preorder α] (x : α) : (⋃ y ≤ x, Accumulate s y) = ⋃ y ≤ x, s y := by
   apply Subset.antisymm
-  · exact unionᵢ₂_subset fun y hy => monotone_accumulate hy
-  · exact unionᵢ₂_mono fun y _ => subset_accumulate
-#align set.bUnion_accumulate Set.bunionᵢ_accumulate
+  · exact iUnion₂_subset fun y hy => monotone_accumulate hy
+  · exact iUnion₂_mono fun y _ => subset_accumulate
+#align set.bUnion_accumulate Set.biUnion_accumulate
 
-theorem unionᵢ_accumulate [Preorder α] : (⋃ x, Accumulate s x) = ⋃ x, s x := by
+theorem iUnion_accumulate [Preorder α] : (⋃ x, Accumulate s x) = ⋃ x, s x := by
   apply Subset.antisymm
-  · simp only [subset_def, mem_unionᵢ, exists_imp, mem_accumulate]
+  · simp only [subset_def, mem_iUnion, exists_imp, mem_accumulate]
     intro z x x' ⟨_, hz⟩
     exact ⟨x', hz⟩
-  · exact unionᵢ_mono fun i => subset_accumulate
-#align set.Union_accumulate Set.unionᵢ_accumulate
+  · exact iUnion_mono fun i => subset_accumulate
+#align set.Union_accumulate Set.iUnion_accumulate
 
 end Set
feat: port Data.Set.Accumulate (#1210)

Relevant Zulip topic

Dependencies 59

60 files ported (100.0%)
33567 lines ported (100.0%)

All dependencies are ported!