analysis.box_integral.partition.basic
⟷
Mathlib.Analysis.BoxIntegral.Partition.Basic
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -944,7 +944,7 @@ theorem iUnion_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.iUni
#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.iUnion_subset
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (J «expr ∈ » π) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (J «expr ∈ » π) -/
#print BoxIntegral.Prepartition.IsPartition.existsUnique /-
protected theorem existsUnique (h : π.IsPartition) (hx : x ∈ I) : ∃! (J : _) (_ : J ∈ π), x ∈ J :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -234,7 +234,7 @@ theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
choose y hy₁ hy₂
exact π.eq_of_mem_of_mem h₁ h₂ hy₁ hy₂
intro i
- simp only [Set.ext_iff, mem_set_of_eq] at H
+ simp only [Set.ext_iff, mem_set_of_eq] at H
cases' (hx₁.1 i).eq_or_lt with hi₁ hi₁
· have hi₂ : J₂.lower i = x i := (H _).1 hi₁
have H₁ : x i < J₁.upper i := by simpa only [hi₁] using J₁.lower_lt_upper i
@@ -351,7 +351,7 @@ theorem le_iff_nonempty_imp_le_and_iUnion_subset :
· refine' fun H => ⟨fun J hJ J' hJ' Hne => _, Union_mono H⟩
rcases H hJ with ⟨J'', hJ'', Hle⟩; rcases Hne with ⟨x, hx, hx'⟩
rwa [π₂.eq_of_mem_of_mem hJ' hJ'' hx' (Hle hx)]
- · rintro ⟨H, HU⟩ J hJ; simp only [Set.subset_def, mem_Union] at HU
+ · rintro ⟨H, HU⟩ J hJ; simp only [Set.subset_def, mem_Union] at HU
rcases HU J.upper ⟨J, hJ, J.upper_mem⟩ with ⟨J₂, hJ₂, hx⟩
exact ⟨J₂, hJ₂, H _ hJ _ hJ₂ ⟨_, J.upper_mem, hx⟩⟩
#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subset
@@ -379,7 +379,7 @@ def biUnion (πi : ∀ J : Box ι, Prepartition J) : Prepartition I
boxes := π.boxes.biUnion fun J => (πi J).boxes
le_of_mem' J hJ :=
by
- simp only [Finset.mem_biUnion, exists_prop, mem_boxes] at hJ
+ simp only [Finset.mem_biUnion, exists_prop, mem_boxes] at hJ
rcases hJ with ⟨J', hJ', hJ⟩
exact ((πi J').le_of_mem hJ).trans (π.le_of_mem hJ')
PairwiseDisjoint :=
@@ -505,7 +505,7 @@ theorem biUnion_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : B
rwa [π.bUnion_index_of_mem hJ₁ hJ₂]
· rintro ⟨J₁, ⟨J₂, hJ₂, hJ₁⟩, hJ⟩
refine' ⟨J₂, hJ₂, J₁, hJ₁, _⟩
- rwa [π.bUnion_index_of_mem hJ₂ hJ₁] at hJ
+ rwa [π.bUnion_index_of_mem hJ₂ hJ₁] at hJ
#align box_integral.prepartition.bUnion_assoc BoxIntegral.Prepartition.biUnion_assoc
-/
@@ -518,11 +518,11 @@ def ofWithBot (boxes : Finset (WithBot (Box ι)))
where
boxes := boxes.eraseNone
le_of_mem' J hJ := by
- rw [mem_erase_none] at hJ
+ rw [mem_erase_none] at hJ
simpa only [WithBot.some_eq_coe, WithBot.coe_le_coe] using le_of_mem _ hJ
PairwiseDisjoint J₁ h₁ J₂ h₂ hne :=
by
- simp only [mem_coe, mem_erase_none] at h₁ h₂
+ simp only [mem_coe, mem_erase_none] at h₁ h₂
exact box.disjoint_coe.1 (pairwise_disjoint h₁ h₂ (mt Option.some_inj.1 hne))
#align box_integral.prepartition.of_with_bot BoxIntegral.Prepartition.ofWithBot
-/
@@ -629,7 +629,7 @@ theorem mem_restrict' : J₁ ∈ π.restrict J ↔ ∃ J' ∈ π, (J₁ : Set (
theorem restrict_mono {π₁ π₂ : Prepartition I} (Hle : π₁ ≤ π₂) : π₁.restrict J ≤ π₂.restrict J :=
by
refine' of_with_bot_mono fun J₁ hJ₁ hne => _
- rw [Finset.mem_image] at hJ₁ ; rcases hJ₁ with ⟨J₁, hJ₁, rfl⟩
+ rw [Finset.mem_image] at hJ₁; rcases hJ₁ with ⟨J₁, hJ₁, rfl⟩
rcases Hle hJ₁ with ⟨J₂, hJ₂, hle⟩
exact ⟨_, Finset.mem_image_of_mem _ hJ₂, inf_le_inf_left _ <| WithBot.coe_le_coe.2 hle⟩
#align box_integral.prepartition.restrict_mono BoxIntegral.Prepartition.restrict_mono
@@ -690,7 +690,7 @@ theorem biUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
by
fconstructor <;> intro H J hJ
· rw [← π.restrict_bUnion πi hJ]; exact restrict_mono H
- · rw [mem_bUnion] at hJ ; rcases hJ with ⟨J₁, h₁, hJ⟩
+ · rw [mem_bUnion] at hJ; rcases hJ with ⟨J₁, h₁, hJ⟩
rcases H J₁ h₁ hJ with ⟨J₂, h₂, Hle⟩
rcases π'.mem_restrict.mp h₂ with ⟨J₃, h₃, H⟩
exact ⟨J₃, h₃, Hle.trans <| WithBot.coe_le_coe.1 <| H.trans_le inf_le_right⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2021 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-/
-import Mathbin.Algebra.BigOperators.Option
-import Mathbin.Analysis.BoxIntegral.Box.Basic
+import Algebra.BigOperators.Option
+import Analysis.BoxIntegral.Box.Basic
#align_import analysis.box_integral.partition.basic from "leanprover-community/mathlib"@"9d2f0748e6c50d7a2657c564b1ff2c695b39148d"
@@ -944,7 +944,7 @@ theorem iUnion_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.iUni
#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.iUnion_subset
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (J «expr ∈ » π) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (J «expr ∈ » π) -/
#print BoxIntegral.Prepartition.IsPartition.existsUnique /-
protected theorem existsUnique (h : π.IsPartition) (hx : x ∈ I) : ∃! (J : _) (_ : J ∈ π), x ∈ J :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2021 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module analysis.box_integral.partition.basic
-! leanprover-community/mathlib commit 9d2f0748e6c50d7a2657c564b1ff2c695b39148d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.BigOperators.Option
import Mathbin.Analysis.BoxIntegral.Box.Basic
+#align_import analysis.box_integral.partition.basic from "leanprover-community/mathlib"@"9d2f0748e6c50d7a2657c564b1ff2c695b39148d"
+
/-!
# Partitions of rectangular boxes in `ℝⁿ`
@@ -947,7 +944,7 @@ theorem iUnion_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.iUni
#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.iUnion_subset
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (J «expr ∈ » π) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (J «expr ∈ » π) -/
#print BoxIntegral.Prepartition.IsPartition.existsUnique /-
protected theorem existsUnique (h : π.IsPartition) (hx : x ∈ I) : ∃! (J : _) (_ : J ∈ π), x ∈ J :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -791,7 +791,7 @@ theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
by
simp only [prepartition.Union]
convert (@Set.biUnion_diff_biUnion_eq _ (box ι) π.boxes (π.filter p).boxes coe _).symm
- · ext (J x); simp (config := { contextual := true })
+ · ext J x; simp (config := { contextual := true })
· convert π.pairwise_disjoint; simp
#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_not
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -78,15 +78,19 @@ theorem mem_boxes : J ∈ π.boxes ↔ J ∈ π :=
#align box_integral.prepartition.mem_boxes BoxIntegral.Prepartition.mem_boxes
-/
+#print BoxIntegral.Prepartition.mem_mk /-
@[simp]
theorem mem_mk {s h₁ h₂} : J ∈ (mk s h₁ h₂ : Prepartition I) ↔ J ∈ s :=
Iff.rfl
#align box_integral.prepartition.mem_mk BoxIntegral.Prepartition.mem_mk
+-/
+#print BoxIntegral.Prepartition.disjoint_coe_of_mem /-
theorem disjoint_coe_of_mem (h₁ : J₁ ∈ π) (h₂ : J₂ ∈ π) (h : J₁ ≠ J₂) :
Disjoint (J₁ : Set (ι → ℝ)) J₂ :=
π.PairwiseDisjoint h₁ h₂ h
#align box_integral.prepartition.disjoint_coe_of_mem BoxIntegral.Prepartition.disjoint_coe_of_mem
+-/
#print BoxIntegral.Prepartition.eq_of_mem_of_mem /-
theorem eq_of_mem_of_mem (h₁ : J₁ ∈ π) (h₂ : J₂ ∈ π) (hx₁ : x ∈ J₁) (hx₂ : x ∈ J₂) : J₁ = J₂ :=
@@ -112,13 +116,17 @@ theorem le_of_mem (hJ : J ∈ π) : J ≤ I :=
#align box_integral.prepartition.le_of_mem BoxIntegral.Prepartition.le_of_mem
-/
+#print BoxIntegral.Prepartition.lower_le_lower /-
theorem lower_le_lower (hJ : J ∈ π) : I.lower ≤ J.lower :=
Box.antitone_lower (π.le_of_mem hJ)
#align box_integral.prepartition.lower_le_lower BoxIntegral.Prepartition.lower_le_lower
+-/
+#print BoxIntegral.Prepartition.upper_le_upper /-
theorem upper_le_upper (hJ : J ∈ π) : J.upper ≤ I.upper :=
Box.monotone_upper (π.le_of_mem hJ)
#align box_integral.prepartition.upper_le_upper BoxIntegral.Prepartition.upper_le_upper
+-/
#print BoxIntegral.Prepartition.injective_boxes /-
theorem injective_boxes : Function.Injective (boxes : Prepartition I → Finset (Box ι)) := by
@@ -183,30 +191,41 @@ instance : OrderBot (Prepartition I)
instance : Inhabited (Prepartition I) :=
⟨⊤⟩
+#print BoxIntegral.Prepartition.le_def /-
theorem le_def : π₁ ≤ π₂ ↔ ∀ J ∈ π₁, ∃ J' ∈ π₂, J ≤ J' :=
Iff.rfl
#align box_integral.prepartition.le_def BoxIntegral.Prepartition.le_def
+-/
+#print BoxIntegral.Prepartition.mem_top /-
@[simp]
theorem mem_top : J ∈ (⊤ : Prepartition I) ↔ J = I :=
mem_singleton
#align box_integral.prepartition.mem_top BoxIntegral.Prepartition.mem_top
+-/
+#print BoxIntegral.Prepartition.top_boxes /-
@[simp]
theorem top_boxes : (⊤ : Prepartition I).boxes = {I} :=
rfl
#align box_integral.prepartition.top_boxes BoxIntegral.Prepartition.top_boxes
+-/
+#print BoxIntegral.Prepartition.not_mem_bot /-
@[simp]
theorem not_mem_bot : J ∉ (⊥ : Prepartition I) :=
id
#align box_integral.prepartition.not_mem_bot BoxIntegral.Prepartition.not_mem_bot
+-/
+#print BoxIntegral.Prepartition.bot_boxes /-
@[simp]
theorem bot_boxes : (⊥ : Prepartition I).boxes = ∅ :=
rfl
#align box_integral.prepartition.bot_boxes BoxIntegral.Prepartition.bot_boxes
+-/
+#print BoxIntegral.Prepartition.injOn_setOf_mem_Icc_setOf_lower_eq /-
/-- An auxiliary lemma used to prove that the same point can't belong to more than
`2 ^ fintype.card ι` closed boxes of a prepartition. -/
theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
@@ -228,7 +247,9 @@ theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
· have hi₂ : J₂.lower i < x i := (hx₂.1 i).lt_of_ne (mt (H _).2 hi₁.ne)
exact ⟨x i, ⟨hi₁, hx₁.2 i⟩, ⟨hi₂, hx₂.2 i⟩⟩
#align box_integral.prepartition.inj_on_set_of_mem_Icc_set_of_lower_eq BoxIntegral.Prepartition.injOn_setOf_mem_Icc_setOf_lower_eq
+-/
+#print BoxIntegral.Prepartition.card_filter_mem_Icc_le /-
/-- The set of boxes of a prepartition that contain `x` in their closures has cardinality
at most `2 ^ fintype.card ι`. -/
theorem card_filter_mem_Icc_le [Fintype ι] (x : ι → ℝ) :
@@ -240,6 +261,7 @@ theorem card_filter_mem_Icc_le [Fintype ι] (x : ι → ℝ) :
(fun _ _ => Finset.mem_univ _) _
simpa only [Finset.mem_filter] using π.inj_on_set_of_mem_Icc_set_of_lower_eq x
#align box_integral.prepartition.card_filter_mem_Icc_le BoxIntegral.Prepartition.card_filter_mem_Icc_le
+-/
#print BoxIntegral.Prepartition.iUnion /-
/-- Given a prepartition `π : box_integral.prepartition I`, `π.Union` is the part of `I` covered by
@@ -261,10 +283,12 @@ theorem iUnion_def' : π.iUnion = ⋃ J ∈ π.boxes, ↑J :=
#align box_integral.prepartition.Union_def' BoxIntegral.Prepartition.iUnion_def'
-/
+#print BoxIntegral.Prepartition.mem_iUnion /-
@[simp]
theorem mem_iUnion : x ∈ π.iUnion ↔ ∃ J ∈ π, x ∈ J :=
Set.mem_iUnion₂
#align box_integral.prepartition.mem_Union BoxIntegral.Prepartition.mem_iUnion
+-/
#print BoxIntegral.Prepartition.iUnion_single /-
@[simp]
@@ -272,19 +296,25 @@ theorem iUnion_single (h : J ≤ I) : (single I J h).iUnion = J := by simp [Unio
#align box_integral.prepartition.Union_single BoxIntegral.Prepartition.iUnion_single
-/
+#print BoxIntegral.Prepartition.iUnion_top /-
@[simp]
theorem iUnion_top : (⊤ : Prepartition I).iUnion = I := by simp [prepartition.Union]
#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.iUnion_top
+-/
+#print BoxIntegral.Prepartition.iUnion_eq_empty /-
@[simp]
theorem iUnion_eq_empty : π₁.iUnion = ∅ ↔ π₁ = ⊥ := by
simp [← injective_boxes.eq_iff, Finset.ext_iff, prepartition.Union, imp_false]
#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.iUnion_eq_empty
+-/
+#print BoxIntegral.Prepartition.iUnion_bot /-
@[simp]
theorem iUnion_bot : (⊥ : Prepartition I).iUnion = ∅ :=
iUnion_eq_empty.2 rfl
#align box_integral.prepartition.Union_bot BoxIntegral.Prepartition.iUnion_bot
+-/
#print BoxIntegral.Prepartition.subset_iUnion /-
theorem subset_iUnion (h : J ∈ π) : ↑J ⊆ π.iUnion :=
@@ -298,19 +328,24 @@ theorem iUnion_subset : π.iUnion ⊆ I :=
#align box_integral.prepartition.Union_subset BoxIntegral.Prepartition.iUnion_subset
-/
+#print BoxIntegral.Prepartition.iUnion_mono /-
@[mono]
theorem iUnion_mono (h : π₁ ≤ π₂) : π₁.iUnion ⊆ π₂.iUnion := fun x hx =>
let ⟨J₁, hJ₁, hx⟩ := π₁.mem_iUnion.1 hx
let ⟨J₂, hJ₂, hle⟩ := h hJ₁
π₂.mem_iUnion.2 ⟨J₂, hJ₂, hle hx⟩
#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.iUnion_mono
+-/
+#print BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_iUnion /-
theorem disjoint_boxes_of_disjoint_iUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
Disjoint π₁.boxes π₂.boxes :=
Finset.disjoint_left.2 fun J h₁ h₂ =>
Disjoint.le_bot (h.mono (π₁.subset_iUnion h₁) (π₂.subset_iUnion h₂)) ⟨J.upper_mem, J.upper_mem⟩
#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_iUnion
+-/
+#print BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subset /-
theorem le_iff_nonempty_imp_le_and_iUnion_subset :
π₁ ≤ π₂ ↔
(∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J') ∧ π₁.iUnion ⊆ π₂.iUnion :=
@@ -323,6 +358,7 @@ theorem le_iff_nonempty_imp_le_and_iUnion_subset :
rcases HU J.upper ⟨J, hJ, J.upper_mem⟩ with ⟨J₂, hJ₂, hx⟩
exact ⟨J₂, hJ₂, H _ hJ _ hJ₂ ⟨_, J.upper_mem, hx⟩⟩
#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subset
+-/
#print BoxIntegral.Prepartition.eq_of_boxes_subset_iUnion_superset /-
theorem eq_of_boxes_subset_iUnion_superset (h₁ : π₁.boxes ⊆ π₂.boxes) (h₂ : π₂.iUnion ⊆ π₁.iUnion) :
@@ -363,18 +399,24 @@ def biUnion (πi : ∀ J : Box ι, Prepartition J) : Prepartition I
variable {πi πi₁ πi₂ : ∀ J : Box ι, Prepartition J}
+#print BoxIntegral.Prepartition.mem_biUnion /-
@[simp]
theorem mem_biUnion : J ∈ π.biUnion πi ↔ ∃ J' ∈ π, J ∈ πi J' := by simp [bUnion]
#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_biUnion
+-/
+#print BoxIntegral.Prepartition.biUnion_le /-
theorem biUnion_le (πi : ∀ J, Prepartition J) : π.biUnion πi ≤ π := fun J hJ =>
let ⟨J', hJ', hJ⟩ := π.mem_biUnion.1 hJ
⟨J', hJ', (πi J').le_of_mem hJ⟩
#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.biUnion_le
+-/
+#print BoxIntegral.Prepartition.biUnion_top /-
@[simp]
theorem biUnion_top : (π.biUnion fun _ => ⊤) = π := by ext; simp
#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.biUnion_top
+-/
#print BoxIntegral.Prepartition.biUnion_congr /-
@[congr]
@@ -470,6 +512,7 @@ theorem biUnion_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : B
#align box_integral.prepartition.bUnion_assoc BoxIntegral.Prepartition.biUnion_assoc
-/
+#print BoxIntegral.Prepartition.ofWithBot /-
/-- Create a `box_integral.prepartition` from a collection of possibly empty boxes by filtering out
the empty one if it exists. -/
def ofWithBot (boxes : Finset (WithBot (Box ι)))
@@ -485,13 +528,17 @@ def ofWithBot (boxes : Finset (WithBot (Box ι)))
simp only [mem_coe, mem_erase_none] at h₁ h₂
exact box.disjoint_coe.1 (pairwise_disjoint h₁ h₂ (mt Option.some_inj.1 hne))
#align box_integral.prepartition.of_with_bot BoxIntegral.Prepartition.ofWithBot
+-/
+#print BoxIntegral.Prepartition.mem_ofWithBot /-
@[simp]
theorem mem_ofWithBot {boxes : Finset (WithBot (Box ι))} {h₁ h₂} :
J ∈ (ofWithBot boxes h₁ h₂ : Prepartition I) ↔ (J : WithBot (Box ι)) ∈ boxes :=
mem_eraseNone
#align box_integral.prepartition.mem_of_with_bot BoxIntegral.Prepartition.mem_ofWithBot
+-/
+#print BoxIntegral.Prepartition.iUnion_ofWithBot /-
@[simp]
theorem iUnion_ofWithBot (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
@@ -503,7 +550,9 @@ theorem iUnion_ofWithBot (boxes : Finset (WithBot (Box ι)))
simp only [← box.bUnion_coe_eq_coe, @Union_comm _ _ (box ι), @Union_comm _ _ (@Eq _ _ _),
Union_Union_eq_right]
#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.iUnion_ofWithBot
+-/
+#print BoxIntegral.Prepartition.ofWithBot_le /-
theorem ofWithBot_le {boxes : Finset (WithBot (Box ι))}
{le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I}
{pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint}
@@ -514,7 +563,9 @@ theorem ofWithBot_le {boxes : Finset (WithBot (Box ι))}
simpa only [WithBot.coe_le_coe] using H J hJ WithBot.coe_ne_bot
simpa [of_with_bot, le_def]
#align box_integral.prepartition.of_with_bot_le BoxIntegral.Prepartition.ofWithBot_le
+-/
+#print BoxIntegral.Prepartition.le_ofWithBot /-
theorem le_ofWithBot {boxes : Finset (WithBot (Box ι))}
{le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I}
{pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint}
@@ -525,7 +576,9 @@ theorem le_ofWithBot {boxes : Finset (WithBot (Box ι))}
lift J' to box ι using ne_bot_of_le_ne_bot WithBot.coe_ne_bot hle
exact ⟨J', mem_of_with_bot.2 J'mem, WithBot.coe_le_coe.1 hle⟩
#align box_integral.prepartition.le_of_with_bot BoxIntegral.Prepartition.le_ofWithBot
+-/
+#print BoxIntegral.Prepartition.ofWithBot_mono /-
theorem ofWithBot_mono {boxes₁ : Finset (WithBot (Box ι))}
{le_of_mem₁ : ∀ J ∈ boxes₁, (J : WithBot (Box ι)) ≤ I}
{pairwise_disjoint₁ : Set.Pairwise (boxes₁ : Set (WithBot (Box ι))) Disjoint}
@@ -536,7 +589,9 @@ theorem ofWithBot_mono {boxes₁ : Finset (WithBot (Box ι))}
ofWithBot boxes₂ le_of_mem₂ pairwise_disjoint₂ :=
le_ofWithBot _ fun J hJ => H J (mem_ofWithBot.1 hJ) WithBot.coe_ne_bot
#align box_integral.prepartition.of_with_bot_mono BoxIntegral.Prepartition.ofWithBot_mono
+-/
+#print BoxIntegral.Prepartition.sum_ofWithBot /-
theorem sum_ofWithBot {M : Type _} [AddCommMonoid M] (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
(pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint) (f : Box ι → M) :
@@ -544,6 +599,7 @@ theorem sum_ofWithBot {M : Type _} [AddCommMonoid M] (boxes : Finset (WithBot (B
∑ J in boxes, Option.elim' 0 f J :=
Finset.sum_eraseNone _ _
#align box_integral.prepartition.sum_of_with_bot BoxIntegral.Prepartition.sum_ofWithBot
+-/
#print BoxIntegral.Prepartition.restrict /-
/-- Restrict a prepartition to a box. -/
@@ -558,15 +614,20 @@ def restrict (π : Prepartition I) (J : Box ι) : Prepartition J :=
#align box_integral.prepartition.restrict BoxIntegral.Prepartition.restrict
-/
+#print BoxIntegral.Prepartition.mem_restrict /-
@[simp]
theorem mem_restrict : J₁ ∈ π.restrict J ↔ ∃ J' ∈ π, (J₁ : WithBot (Box ι)) = J ⊓ J' := by
simp [restrict, eq_comm]
#align box_integral.prepartition.mem_restrict BoxIntegral.Prepartition.mem_restrict
+-/
+#print BoxIntegral.Prepartition.mem_restrict' /-
theorem mem_restrict' : J₁ ∈ π.restrict J ↔ ∃ J' ∈ π, (J₁ : Set (ι → ℝ)) = J ∩ J' := by
simp only [mem_restrict, ← box.with_bot_coe_inj, box.coe_inf, box.coe_coe]
#align box_integral.prepartition.mem_restrict' BoxIntegral.Prepartition.mem_restrict'
+-/
+#print BoxIntegral.Prepartition.restrict_mono /-
@[mono]
theorem restrict_mono {π₁ π₂ : Prepartition I} (Hle : π₁ ≤ π₂) : π₁.restrict J ≤ π₂.restrict J :=
by
@@ -575,6 +636,7 @@ theorem restrict_mono {π₁ π₂ : Prepartition I} (Hle : π₁ ≤ π₂) :
rcases Hle hJ₁ with ⟨J₂, hJ₂, hle⟩
exact ⟨_, Finset.mem_image_of_mem _ hJ₂, inf_le_inf_left _ <| WithBot.coe_le_coe.2 hle⟩
#align box_integral.prepartition.restrict_mono BoxIntegral.Prepartition.restrict_mono
+-/
#print BoxIntegral.Prepartition.monotone_restrict /-
theorem monotone_restrict : Monotone fun π : Prepartition I => restrict π J := fun π₁ π₂ =>
@@ -603,10 +665,12 @@ theorem restrict_self : π.restrict I = π :=
#align box_integral.prepartition.restrict_self BoxIntegral.Prepartition.restrict_self
-/
+#print BoxIntegral.Prepartition.iUnion_restrict /-
@[simp]
theorem iUnion_restrict : (π.restrict J).iUnion = J ∩ π.iUnion := by
simp [restrict, ← inter_Union, ← Union_def]
#align box_integral.prepartition.Union_restrict BoxIntegral.Prepartition.iUnion_restrict
+-/
#print BoxIntegral.Prepartition.restrict_biUnion /-
@[simp]
@@ -623,6 +687,7 @@ theorem restrict_biUnion (πi : ∀ J, Prepartition J) (hJ : J ∈ π) :
#align box_integral.prepartition.restrict_bUnion BoxIntegral.Prepartition.restrict_biUnion
-/
+#print BoxIntegral.Prepartition.biUnion_le_iff /-
theorem biUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
π.biUnion πi ≤ π' ↔ ∀ J ∈ π, πi J ≤ π'.restrict J :=
by
@@ -633,7 +698,9 @@ theorem biUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
rcases π'.mem_restrict.mp h₂ with ⟨J₃, h₃, H⟩
exact ⟨J₃, h₃, Hle.trans <| WithBot.coe_le_coe.1 <| H.trans_le inf_le_right⟩
#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.biUnion_le_iff
+-/
+#print BoxIntegral.Prepartition.le_biUnion_iff /-
theorem le_biUnion_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
π' ≤ π.biUnion πi ↔ π' ≤ π ∧ ∀ J ∈ π, π'.restrict J ≤ πi J :=
by
@@ -646,6 +713,7 @@ theorem le_biUnion_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
rcases Hi J hJ this with ⟨Ji, hJi, hlei⟩
exact ⟨Ji, π.mem_bUnion.2 ⟨J, hJ, hJi⟩, hlei⟩
#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_biUnion_iff
+-/
instance : Inf (Prepartition I) :=
⟨fun π₁ π₂ => π₁.biUnion fun J => π₂.restrict J⟩
@@ -656,16 +724,20 @@ theorem inf_def (π₁ π₂ : Prepartition I) : π₁ ⊓ π₂ = π₁.biUnion
#align box_integral.prepartition.inf_def BoxIntegral.Prepartition.inf_def
-/
+#print BoxIntegral.Prepartition.mem_inf /-
@[simp]
theorem mem_inf {π₁ π₂ : Prepartition I} :
J ∈ π₁ ⊓ π₂ ↔ ∃ J₁ ∈ π₁, ∃ J₂ ∈ π₂, (J : WithBot (Box ι)) = J₁ ⊓ J₂ := by
simp only [inf_def, mem_bUnion, mem_restrict]
#align box_integral.prepartition.mem_inf BoxIntegral.Prepartition.mem_inf
+-/
+#print BoxIntegral.Prepartition.iUnion_inf /-
@[simp]
theorem iUnion_inf (π₁ π₂ : Prepartition I) : (π₁ ⊓ π₂).iUnion = π₁.iUnion ∩ π₂.iUnion := by
simp only [inf_def, Union_bUnion, Union_restrict, ← Union_inter, ← Union_def]
#align box_integral.prepartition.Union_inf BoxIntegral.Prepartition.iUnion_inf
+-/
instance : SemilatticeInf (Prepartition I) :=
{ Prepartition.hasInf,
@@ -692,10 +764,12 @@ theorem mem_filter {p : Box ι → Prop} : J ∈ π.filterₓ p ↔ J ∈ π ∧
#align box_integral.prepartition.mem_filter BoxIntegral.Prepartition.mem_filter
-/
+#print BoxIntegral.Prepartition.filter_le /-
theorem filter_le (π : Prepartition I) (p : Box ι → Prop) : π.filterₓ p ≤ π := fun J hJ =>
let ⟨hπ, hp⟩ := π.mem_filter.1 hJ
⟨J, hπ, le_rfl⟩
#align box_integral.prepartition.filter_le BoxIntegral.Prepartition.filter_le
+-/
#print BoxIntegral.Prepartition.filter_of_true /-
theorem filter_of_true {p : Box ι → Prop} (hp : ∀ J ∈ π, p J) : π.filterₓ p = π := by ext J;
@@ -710,6 +784,7 @@ theorem filter_true : (π.filterₓ fun _ => True) = π :=
#align box_integral.prepartition.filter_true BoxIntegral.Prepartition.filter_true
-/
+#print BoxIntegral.Prepartition.iUnion_filter_not /-
@[simp]
theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
(π.filterₓ fun J => ¬p J).iUnion = π.iUnion \ (π.filterₓ p).iUnion :=
@@ -719,12 +794,16 @@ theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
· ext (J x); simp (config := { contextual := true })
· convert π.pairwise_disjoint; simp
#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_not
+-/
+#print BoxIntegral.Prepartition.sum_fiberwise /-
theorem sum_fiberwise {α M} [AddCommMonoid M] (π : Prepartition I) (f : Box ι → α) (g : Box ι → M) :
∑ y in π.boxes.image f, ∑ J in (π.filterₓ fun J => f J = y).boxes, g J = ∑ J in π.boxes, g J :=
by convert sum_fiberwise_of_maps_to (fun _ => Finset.mem_image_of_mem f) g
#align box_integral.prepartition.sum_fiberwise BoxIntegral.Prepartition.sum_fiberwise
+-/
+#print BoxIntegral.Prepartition.disjUnion /-
/-- Union of two disjoint prepartitions. -/
@[simps]
def disjUnion (π₁ π₂ : Prepartition I) (h : Disjoint π₁.iUnion π₂.iUnion) : Prepartition I
@@ -736,25 +815,32 @@ def disjUnion (π₁ π₂ : Prepartition I) (h : Disjoint π₁.iUnion π₂.iU
simpa [pairwise_union_of_symmetric (symmetric_disjoint.comap _), pairwise_disjoint]
fun J₁ h₁ J₂ h₂ _ => h.mono (π₁.subset_iUnion h₁) (π₂.subset_iUnion h₂)
#align box_integral.prepartition.disj_union BoxIntegral.Prepartition.disjUnion
+-/
+#print BoxIntegral.Prepartition.mem_disjUnion /-
@[simp]
theorem mem_disjUnion (H : Disjoint π₁.iUnion π₂.iUnion) :
J ∈ π₁.disjUnion π₂ H ↔ J ∈ π₁ ∨ J ∈ π₂ :=
Finset.mem_union
#align box_integral.prepartition.mem_disj_union BoxIntegral.Prepartition.mem_disjUnion
+-/
+#print BoxIntegral.Prepartition.iUnion_disjUnion /-
@[simp]
theorem iUnion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
(π₁.disjUnion π₂ h).iUnion = π₁.iUnion ∪ π₂.iUnion := by
simp [disj_union, prepartition.Union, Union_or, Union_union_distrib]
#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.iUnion_disjUnion
+-/
+#print BoxIntegral.Prepartition.sum_disj_union_boxes /-
@[simp]
theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.iUnion π₂.iUnion)
(f : Box ι → M) :
∑ J in π₁.boxes ∪ π₂.boxes, f J = ∑ J in π₁.boxes, f J + ∑ J in π₂.boxes, f J :=
sum_union <| disjoint_boxes_of_disjoint_iUnion h
#align box_integral.prepartition.sum_disj_union_boxes BoxIntegral.Prepartition.sum_disj_union_boxes
+-/
section Distortion
@@ -780,16 +866,20 @@ theorem distortion_le_iff {c : ℝ≥0} : π.distortion ≤ c ↔ ∀ J ∈ π,
#align box_integral.prepartition.distortion_le_iff BoxIntegral.Prepartition.distortion_le_iff
-/
+#print BoxIntegral.Prepartition.distortion_biUnion /-
theorem distortion_biUnion (π : Prepartition I) (πi : ∀ J, Prepartition J) :
(π.biUnion πi).distortion = π.boxes.sup fun J => (πi J).distortion :=
sup_biUnion _ _
#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_biUnion
+-/
+#print BoxIntegral.Prepartition.distortion_disjUnion /-
@[simp]
theorem distortion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
(π₁.disjUnion π₂ h).distortion = max π₁.distortion π₂.distortion :=
sup_union
#align box_integral.prepartition.distortion_disj_union BoxIntegral.Prepartition.distortion_disjUnion
+-/
#print BoxIntegral.Prepartition.distortion_of_const /-
theorem distortion_of_const {c} (h₁ : π.boxes.Nonempty) (h₂ : ∀ J ∈ π, Box.distortion J = c) :
@@ -798,15 +888,19 @@ theorem distortion_of_const {c} (h₁ : π.boxes.Nonempty) (h₂ : ∀ J ∈ π,
#align box_integral.prepartition.distortion_of_const BoxIntegral.Prepartition.distortion_of_const
-/
+#print BoxIntegral.Prepartition.distortion_top /-
@[simp]
theorem distortion_top (I : Box ι) : distortion (⊤ : Prepartition I) = I.distortion :=
sup_singleton
#align box_integral.prepartition.distortion_top BoxIntegral.Prepartition.distortion_top
+-/
+#print BoxIntegral.Prepartition.distortion_bot /-
@[simp]
theorem distortion_bot (I : Box ι) : distortion (⊥ : Prepartition I) = 0 :=
sup_empty
#align box_integral.prepartition.distortion_bot BoxIntegral.Prepartition.distortion_bot
+-/
end Distortion
@@ -831,9 +925,11 @@ theorem isPartition_single_iff (h : J ≤ I) : IsPartition (single I J h) ↔ J
#align box_integral.prepartition.is_partition_single_iff BoxIntegral.Prepartition.isPartition_single_iff
-/
+#print BoxIntegral.Prepartition.isPartitionTop /-
theorem isPartitionTop (I : Box ι) : IsPartition (⊤ : Prepartition I) := fun x hx =>
⟨I, mem_top.2 rfl, hx⟩
#align box_integral.prepartition.is_partition_top BoxIntegral.Prepartition.isPartitionTop
+-/
namespace IsPartition
@@ -873,10 +969,12 @@ theorem eq_of_boxes_subset (h₁ : π₁.IsPartition) (h₂ : π₁.boxes ⊆ π
#align box_integral.prepartition.is_partition.eq_of_boxes_subset BoxIntegral.Prepartition.IsPartition.eq_of_boxes_subset
-/
+#print BoxIntegral.Prepartition.IsPartition.le_iff /-
theorem le_iff (h : π₂.IsPartition) :
π₁ ≤ π₂ ↔ ∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J' :=
le_iff_nonempty_imp_le_and_iUnion_subset.trans <| and_iff_left <| h.iUnion_subset _
#align box_integral.prepartition.is_partition.le_iff BoxIntegral.Prepartition.IsPartition.le_iff
+-/
#print BoxIntegral.Prepartition.IsPartition.biUnion /-
protected theorem biUnion (h : IsPartition π) (hi : ∀ J ∈ π, IsPartition (πi J)) :
@@ -910,10 +1008,12 @@ theorem iUnion_biUnion_partition (h : ∀ J ∈ π, (πi J).IsPartition) :
#align box_integral.prepartition.Union_bUnion_partition BoxIntegral.Prepartition.iUnion_biUnion_partition
-/
+#print BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiff /-
theorem isPartitionDisjUnionOfEqDiff (h : π₂.iUnion = I \ π₁.iUnion) :
IsPartition (π₁.disjUnion π₂ <| h.symm ▸ disjoint_sdiff_self_right) :=
isPartition_iff_iUnion_eq.2 <| (iUnion_disjUnion _).trans <| by simp [h, π₁.Union_subset]
#align box_integral.prepartition.is_partition_disj_union_of_eq_diff BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiff
+-/
end Prepartition
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -402,7 +402,7 @@ theorem iUnion_biUnion (πi : ∀ J : Box ι, Prepartition J) :
@[simp]
theorem sum_biUnion_boxes {M : Type _} [AddCommMonoid M] (π : Prepartition I)
(πi : ∀ J, Prepartition J) (f : Box ι → M) :
- (∑ J in π.boxes.biUnion fun J => (πi J).boxes, f J) =
+ ∑ J in π.boxes.biUnion fun J => (πi J).boxes, f J =
∑ J in π.boxes, ∑ J' in (πi J).boxes, f J' :=
by
refine' Finset.sum_biUnion fun J₁ h₁ J₂ h₂ hne => Finset.disjoint_left.2 fun J' h₁' h₂' => _
@@ -540,7 +540,7 @@ theorem ofWithBot_mono {boxes₁ : Finset (WithBot (Box ι))}
theorem sum_ofWithBot {M : Type _} [AddCommMonoid M] (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
(pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint) (f : Box ι → M) :
- (∑ J in (ofWithBot boxes le_of_mem pairwise_disjoint).boxes, f J) =
+ ∑ J in (ofWithBot boxes le_of_mem pairwise_disjoint).boxes, f J =
∑ J in boxes, Option.elim' 0 f J :=
Finset.sum_eraseNone _ _
#align box_integral.prepartition.sum_of_with_bot BoxIntegral.Prepartition.sum_ofWithBot
@@ -721,8 +721,7 @@ theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_not
theorem sum_fiberwise {α M} [AddCommMonoid M] (π : Prepartition I) (f : Box ι → α) (g : Box ι → M) :
- (∑ y in π.boxes.image f, ∑ J in (π.filterₓ fun J => f J = y).boxes, g J) =
- ∑ J in π.boxes, g J :=
+ ∑ y in π.boxes.image f, ∑ J in (π.filterₓ fun J => f J = y).boxes, g J = ∑ J in π.boxes, g J :=
by convert sum_fiberwise_of_maps_to (fun _ => Finset.mem_image_of_mem f) g
#align box_integral.prepartition.sum_fiberwise BoxIntegral.Prepartition.sum_fiberwise
@@ -753,7 +752,7 @@ theorem iUnion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
@[simp]
theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.iUnion π₂.iUnion)
(f : Box ι → M) :
- (∑ J in π₁.boxes ∪ π₂.boxes, f J) = (∑ J in π₁.boxes, f J) + ∑ J in π₂.boxes, f J :=
+ ∑ J in π₁.boxes ∪ π₂.boxes, f J = ∑ J in π₁.boxes, f J + ∑ J in π₂.boxes, f J :=
sum_union <| disjoint_boxes_of_disjoint_iUnion h
#align box_integral.prepartition.sum_disj_union_boxes BoxIntegral.Prepartition.sum_disj_union_boxes
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -852,7 +852,7 @@ theorem iUnion_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.iUni
#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.iUnion_subset
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (J «expr ∈ » π) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (J «expr ∈ » π) -/
#print BoxIntegral.Prepartition.IsPartition.existsUnique /-
protected theorem existsUnique (h : π.IsPartition) (hx : x ∈ I) : ∃! (J : _) (_ : J ∈ π), x ∈ J :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -210,9 +210,9 @@ theorem bot_boxes : (⊥ : Prepartition I).boxes = ∅ :=
/-- An auxiliary lemma used to prove that the same point can't belong to more than
`2 ^ fintype.card ι` closed boxes of a prepartition. -/
theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
- InjOn (fun J : Box ι => { i | J.lower i = x i }) { J | J ∈ π ∧ x ∈ J.Icc } :=
+ InjOn (fun J : Box ι => {i | J.lower i = x i}) {J | J ∈ π ∧ x ∈ J.Icc} :=
by
- rintro J₁ ⟨h₁, hx₁⟩ J₂ ⟨h₂, hx₂⟩ (H : { i | J₁.lower i = x i } = { i | J₂.lower i = x i })
+ rintro J₁ ⟨h₁, hx₁⟩ J₂ ⟨h₂, hx₂⟩ (H : {i | J₁.lower i = x i} = {i | J₂.lower i = x i})
suffices ∀ i, (Ioc (J₁.lower i) (J₁.upper i) ∩ Ioc (J₂.lower i) (J₂.upper i)).Nonempty
by
choose y hy₁ hy₂
@@ -236,7 +236,7 @@ theorem card_filter_mem_Icc_le [Fintype ι] (x : ι → ℝ) :
by
rw [← Fintype.card_set]
refine'
- Finset.card_le_card_of_inj_on (fun J : box ι => { i | J.lower i = x i })
+ Finset.card_le_card_of_inj_on (fun J : box ι => {i | J.lower i = x i})
(fun _ _ => Finset.mem_univ _) _
simpa only [Finset.mem_filter] using π.inj_on_set_of_mem_Icc_set_of_lower_eq x
#align box_integral.prepartition.card_filter_mem_Icc_le BoxIntegral.Prepartition.card_filter_mem_Icc_le
@@ -435,7 +435,7 @@ theorem biUnionIndex_le (πi : ∀ J, Prepartition J) (J : Box ι) : π.biUnionI
#print BoxIntegral.Prepartition.mem_biUnionIndex /-
theorem mem_biUnionIndex (hJ : J ∈ π.biUnion πi) : J ∈ πi (π.biUnionIndex πi J) := by
- convert(π.mem_bUnion.1 hJ).choose_spec.snd <;> exact dif_pos hJ
+ convert (π.mem_bUnion.1 hJ).choose_spec.snd <;> exact dif_pos hJ
#align box_integral.prepartition.mem_bUnion_index BoxIntegral.Prepartition.mem_biUnionIndex
-/
@@ -715,7 +715,7 @@ theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
(π.filterₓ fun J => ¬p J).iUnion = π.iUnion \ (π.filterₓ p).iUnion :=
by
simp only [prepartition.Union]
- convert(@Set.biUnion_diff_biUnion_eq _ (box ι) π.boxes (π.filter p).boxes coe _).symm
+ convert (@Set.biUnion_diff_biUnion_eq _ (box ι) π.boxes (π.filter p).boxes coe _).symm
· ext (J x); simp (config := { contextual := true })
· convert π.pairwise_disjoint; simp
#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_not
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -218,7 +218,7 @@ theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
choose y hy₁ hy₂
exact π.eq_of_mem_of_mem h₁ h₂ hy₁ hy₂
intro i
- simp only [Set.ext_iff, mem_set_of_eq] at H
+ simp only [Set.ext_iff, mem_set_of_eq] at H
cases' (hx₁.1 i).eq_or_lt with hi₁ hi₁
· have hi₂ : J₂.lower i = x i := (H _).1 hi₁
have H₁ : x i < J₁.upper i := by simpa only [hi₁] using J₁.lower_lt_upper i
@@ -319,7 +319,7 @@ theorem le_iff_nonempty_imp_le_and_iUnion_subset :
· refine' fun H => ⟨fun J hJ J' hJ' Hne => _, Union_mono H⟩
rcases H hJ with ⟨J'', hJ'', Hle⟩; rcases Hne with ⟨x, hx, hx'⟩
rwa [π₂.eq_of_mem_of_mem hJ' hJ'' hx' (Hle hx)]
- · rintro ⟨H, HU⟩ J hJ; simp only [Set.subset_def, mem_Union] at HU
+ · rintro ⟨H, HU⟩ J hJ; simp only [Set.subset_def, mem_Union] at HU
rcases HU J.upper ⟨J, hJ, J.upper_mem⟩ with ⟨J₂, hJ₂, hx⟩
exact ⟨J₂, hJ₂, H _ hJ _ hJ₂ ⟨_, J.upper_mem, hx⟩⟩
#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subset
@@ -346,7 +346,7 @@ def biUnion (πi : ∀ J : Box ι, Prepartition J) : Prepartition I
boxes := π.boxes.biUnion fun J => (πi J).boxes
le_of_mem' J hJ :=
by
- simp only [Finset.mem_biUnion, exists_prop, mem_boxes] at hJ
+ simp only [Finset.mem_biUnion, exists_prop, mem_boxes] at hJ
rcases hJ with ⟨J', hJ', hJ⟩
exact ((πi J').le_of_mem hJ).trans (π.le_of_mem hJ')
PairwiseDisjoint :=
@@ -466,7 +466,7 @@ theorem biUnion_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : B
rwa [π.bUnion_index_of_mem hJ₁ hJ₂]
· rintro ⟨J₁, ⟨J₂, hJ₂, hJ₁⟩, hJ⟩
refine' ⟨J₂, hJ₂, J₁, hJ₁, _⟩
- rwa [π.bUnion_index_of_mem hJ₂ hJ₁] at hJ
+ rwa [π.bUnion_index_of_mem hJ₂ hJ₁] at hJ
#align box_integral.prepartition.bUnion_assoc BoxIntegral.Prepartition.biUnion_assoc
-/
@@ -478,11 +478,11 @@ def ofWithBot (boxes : Finset (WithBot (Box ι)))
where
boxes := boxes.eraseNone
le_of_mem' J hJ := by
- rw [mem_erase_none] at hJ
+ rw [mem_erase_none] at hJ
simpa only [WithBot.some_eq_coe, WithBot.coe_le_coe] using le_of_mem _ hJ
PairwiseDisjoint J₁ h₁ J₂ h₂ hne :=
by
- simp only [mem_coe, mem_erase_none] at h₁ h₂
+ simp only [mem_coe, mem_erase_none] at h₁ h₂
exact box.disjoint_coe.1 (pairwise_disjoint h₁ h₂ (mt Option.some_inj.1 hne))
#align box_integral.prepartition.of_with_bot BoxIntegral.Prepartition.ofWithBot
@@ -571,7 +571,7 @@ theorem mem_restrict' : J₁ ∈ π.restrict J ↔ ∃ J' ∈ π, (J₁ : Set (
theorem restrict_mono {π₁ π₂ : Prepartition I} (Hle : π₁ ≤ π₂) : π₁.restrict J ≤ π₂.restrict J :=
by
refine' of_with_bot_mono fun J₁ hJ₁ hne => _
- rw [Finset.mem_image] at hJ₁; rcases hJ₁ with ⟨J₁, hJ₁, rfl⟩
+ rw [Finset.mem_image] at hJ₁ ; rcases hJ₁ with ⟨J₁, hJ₁, rfl⟩
rcases Hle hJ₁ with ⟨J₂, hJ₂, hle⟩
exact ⟨_, Finset.mem_image_of_mem _ hJ₂, inf_le_inf_left _ <| WithBot.coe_le_coe.2 hle⟩
#align box_integral.prepartition.restrict_mono BoxIntegral.Prepartition.restrict_mono
@@ -628,7 +628,7 @@ theorem biUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
by
fconstructor <;> intro H J hJ
· rw [← π.restrict_bUnion πi hJ]; exact restrict_mono H
- · rw [mem_bUnion] at hJ; rcases hJ with ⟨J₁, h₁, hJ⟩
+ · rw [mem_bUnion] at hJ ; rcases hJ with ⟨J₁, h₁, hJ⟩
rcases H J₁ h₁ hJ with ⟨J₂, h₂, Hle⟩
rcases π'.mem_restrict.mp h₂ with ⟨J₃, h₃, H⟩
exact ⟨J₃, h₃, Hle.trans <| WithBot.coe_le_coe.1 <| H.trans_le inf_le_right⟩
@@ -854,7 +854,7 @@ theorem iUnion_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.iUni
/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (J «expr ∈ » π) -/
#print BoxIntegral.Prepartition.IsPartition.existsUnique /-
-protected theorem existsUnique (h : π.IsPartition) (hx : x ∈ I) : ∃! (J : _)(_ : J ∈ π), x ∈ J :=
+protected theorem existsUnique (h : π.IsPartition) (hx : x ∈ I) : ∃! (J : _) (_ : J ∈ π), x ∈ J :=
by
rcases h x hx with ⟨J, h, hx⟩
exact ExistsUnique.intro₂ J h hx fun J' h' hx' => π.eq_of_mem_of_mem h' h hx' hx
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -46,7 +46,7 @@ rectangular box, partition
open Set Finset Function
-open Classical NNReal BigOperators
+open scoped Classical NNReal BigOperators
noncomputable section
@@ -769,13 +769,17 @@ def distortion : ℝ≥0 :=
#align box_integral.prepartition.distortion BoxIntegral.Prepartition.distortion
-/
+#print BoxIntegral.Prepartition.distortion_le_of_mem /-
theorem distortion_le_of_mem (h : J ∈ π) : J.distortion ≤ π.distortion :=
le_sup h
#align box_integral.prepartition.distortion_le_of_mem BoxIntegral.Prepartition.distortion_le_of_mem
+-/
+#print BoxIntegral.Prepartition.distortion_le_iff /-
theorem distortion_le_iff {c : ℝ≥0} : π.distortion ≤ c ↔ ∀ J ∈ π, Box.distortion J ≤ c :=
Finset.sup_le_iff
#align box_integral.prepartition.distortion_le_iff BoxIntegral.Prepartition.distortion_le_iff
+-/
theorem distortion_biUnion (π : Prepartition I) (πi : ∀ J, Prepartition J) :
(π.biUnion πi).distortion = π.boxes.sup fun J => (πi J).distortion :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -78,23 +78,11 @@ theorem mem_boxes : J ∈ π.boxes ↔ J ∈ π :=
#align box_integral.prepartition.mem_boxes BoxIntegral.Prepartition.mem_boxes
-/
-/- warning: box_integral.prepartition.mem_mk -> BoxIntegral.Prepartition.mem_mk is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {s : Finset.{u1} (BoxIntegral.Box.{u1} ι)} {h₁ : forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasMem.{u1} (BoxIntegral.Box.{u1} ι)) J s) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι) J I)} {h₂ : Set.Pairwise.{u1} (BoxIntegral.Box.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.Set.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) s) (Function.onFun.{succ u1, succ u1, 1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) Prop (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι)))))}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.mk.{u1} ι I s h₁ h₂)) (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasMem.{u1} (BoxIntegral.Box.{u1} ι)) J s)
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {s : Finset.{u1} (BoxIntegral.Box.{u1} ι)} {h₁ : forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instMembershipFinset.{u1} (BoxIntegral.Box.{u1} ι)) J s) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) J I)} {h₂ : Set.Pairwise.{u1} (BoxIntegral.Box.{u1} ι) (Finset.toSet.{u1} (BoxIntegral.Box.{u1} ι) s) (Function.onFun.{succ u1, succ u1, 1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) Prop (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real)))))))) (BoxIntegral.Box.toSet.{u1} ι))}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.mk.{u1} ι I s h₁ h₂)) (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instMembershipFinset.{u1} (BoxIntegral.Box.{u1} ι)) J s)
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_mk BoxIntegral.Prepartition.mem_mkₓ'. -/
@[simp]
theorem mem_mk {s h₁ h₂} : J ∈ (mk s h₁ h₂ : Prepartition I) ↔ J ∈ s :=
Iff.rfl
#align box_integral.prepartition.mem_mk BoxIntegral.Prepartition.mem_mk
-/- warning: box_integral.prepartition.disjoint_coe_of_mem -> BoxIntegral.Prepartition.disjoint_coe_of_mem is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} {J₂ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₁ π) -> (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₂ π) -> (Ne.{succ u1} (BoxIntegral.Box.{u1} ι) J₁ J₂) -> (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J₁) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J₂))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} {J₂ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J₁ π) -> (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J₂ π) -> (Ne.{succ u1} (BoxIntegral.Box.{u1} ι) J₁ J₂) -> (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Box.toSet.{u1} ι J₁) (BoxIntegral.Box.toSet.{u1} ι J₂))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.disjoint_coe_of_mem BoxIntegral.Prepartition.disjoint_coe_of_memₓ'. -/
theorem disjoint_coe_of_mem (h₁ : J₁ ∈ π) (h₂ : J₂ ∈ π) (h : J₁ ≠ J₂) :
Disjoint (J₁ : Set (ι → ℝ)) J₂ :=
π.PairwiseDisjoint h₁ h₂ h
@@ -124,22 +112,10 @@ theorem le_of_mem (hJ : J ∈ π) : J ≤ I :=
#align box_integral.prepartition.le_of_mem BoxIntegral.Prepartition.le_of_mem
-/
-/- warning: box_integral.prepartition.lower_le_lower -> BoxIntegral.Prepartition.lower_le_lower is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (ι -> Real) (Pi.hasLe.{u1, 0} ι (fun (ᾰ : ι) => Real) (fun (i : ι) => Real.hasLe)) (BoxIntegral.Box.lower.{u1} ι I) (BoxIntegral.Box.lower.{u1} ι J))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (ι -> Real) (Pi.hasLe.{u1, 0} ι (fun (ᾰ : ι) => Real) (fun (i : ι) => Real.instLEReal)) (BoxIntegral.Box.lower.{u1} ι I) (BoxIntegral.Box.lower.{u1} ι J))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.lower_le_lower BoxIntegral.Prepartition.lower_le_lowerₓ'. -/
theorem lower_le_lower (hJ : J ∈ π) : I.lower ≤ J.lower :=
Box.antitone_lower (π.le_of_mem hJ)
#align box_integral.prepartition.lower_le_lower BoxIntegral.Prepartition.lower_le_lower
-/- warning: box_integral.prepartition.upper_le_upper -> BoxIntegral.Prepartition.upper_le_upper is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (ι -> Real) (Pi.hasLe.{u1, 0} ι (fun (ᾰ : ι) => Real) (fun (i : ι) => Real.hasLe)) (BoxIntegral.Box.upper.{u1} ι J) (BoxIntegral.Box.upper.{u1} ι I))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (ι -> Real) (Pi.hasLe.{u1, 0} ι (fun (ᾰ : ι) => Real) (fun (i : ι) => Real.instLEReal)) (BoxIntegral.Box.upper.{u1} ι J) (BoxIntegral.Box.upper.{u1} ι I))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.upper_le_upper BoxIntegral.Prepartition.upper_le_upperₓ'. -/
theorem upper_le_upper (hJ : J ∈ π) : J.upper ≤ I.upper :=
Box.monotone_upper (π.le_of_mem hJ)
#align box_integral.prepartition.upper_le_upper BoxIntegral.Prepartition.upper_le_upper
@@ -207,66 +183,30 @@ instance : OrderBot (Prepartition I)
instance : Inhabited (Prepartition I) :=
⟨⊤⟩
-/- warning: box_integral.prepartition.le_def -> BoxIntegral.Prepartition.le_def is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) -> (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π₂) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π₂) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι) J J'))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) -> (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π₂) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) J J'))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_def BoxIntegral.Prepartition.le_defₓ'. -/
theorem le_def : π₁ ≤ π₂ ↔ ∀ J ∈ π₁, ∃ J' ∈ π₂, J ≤ J' :=
Iff.rfl
#align box_integral.prepartition.le_def BoxIntegral.Prepartition.le_def
-/- warning: box_integral.prepartition.mem_top -> BoxIntegral.Prepartition.mem_top is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I)))) (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) J I)
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I)))) (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) J I)
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_top BoxIntegral.Prepartition.mem_topₓ'. -/
@[simp]
theorem mem_top : J ∈ (⊤ : Prepartition I) ↔ J = I :=
mem_singleton
#align box_integral.prepartition.mem_top BoxIntegral.Prepartition.mem_top
-/- warning: box_integral.prepartition.top_boxes -> BoxIntegral.Prepartition.top_boxes is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I)))) (Singleton.singleton.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasSingleton.{u1} (BoxIntegral.Box.{u1} ι)) I)
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I)))) (Singleton.singleton.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instSingletonFinset.{u1} (BoxIntegral.Box.{u1} ι)) I)
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.top_boxes BoxIntegral.Prepartition.top_boxesₓ'. -/
@[simp]
theorem top_boxes : (⊤ : Prepartition I).boxes = {I} :=
rfl
#align box_integral.prepartition.top_boxes BoxIntegral.Prepartition.top_boxes
-/- warning: box_integral.prepartition.not_mem_bot -> BoxIntegral.Prepartition.not_mem_bot is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι}, Not (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι}, Not (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.not_mem_bot BoxIntegral.Prepartition.not_mem_botₓ'. -/
@[simp]
theorem not_mem_bot : J ∉ (⊥ : Prepartition I) :=
id
#align box_integral.prepartition.not_mem_bot BoxIntegral.Prepartition.not_mem_bot
-/- warning: box_integral.prepartition.bot_boxes -> BoxIntegral.Prepartition.bot_boxes is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasEmptyc.{u1} (BoxIntegral.Box.{u1} ι)))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instEmptyCollectionFinset.{u1} (BoxIntegral.Box.{u1} ι)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bot_boxes BoxIntegral.Prepartition.bot_boxesₓ'. -/
@[simp]
theorem bot_boxes : (⊥ : Prepartition I).boxes = ∅ :=
rfl
#align box_integral.prepartition.bot_boxes BoxIntegral.Prepartition.bot_boxes
-/- warning: box_integral.prepartition.inj_on_set_of_mem_Icc_set_of_lower_eq -> BoxIntegral.Prepartition.injOn_setOf_mem_Icc_setOf_lower_eq is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (x : ι -> Real), Set.InjOn.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => setOf.{u1} ι (fun (i : ι) => Eq.{1} Real (BoxIntegral.Box.lower.{u1} ι J i) (x i))) (setOf.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => And (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) (Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.hasLe.{u1} ι) (Set.hasLe.{u1} (ι -> Real))) (fun (_x : RelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) => (BoxIntegral.Box.{u1} ι) -> (Set.{u1} (ι -> Real))) (RelEmbedding.hasCoeToFun.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) (BoxIntegral.Box.Icc.{u1} ι) J))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (x : ι -> Real), Set.InjOn.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => setOf.{u1} ι (fun (i : ι) => Eq.{1} Real (BoxIntegral.Box.lower.{u1} ι J i) (x i))) (setOf.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) (Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (BoxIntegral.Box.Icc.{u1} ι) J))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.inj_on_set_of_mem_Icc_set_of_lower_eq BoxIntegral.Prepartition.injOn_setOf_mem_Icc_setOf_lower_eqₓ'. -/
/-- An auxiliary lemma used to prove that the same point can't belong to more than
`2 ^ fintype.card ι` closed boxes of a prepartition. -/
theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
@@ -289,12 +229,6 @@ theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
exact ⟨x i, ⟨hi₁, hx₁.2 i⟩, ⟨hi₂, hx₂.2 i⟩⟩
#align box_integral.prepartition.inj_on_set_of_mem_Icc_set_of_lower_eq BoxIntegral.Prepartition.injOn_setOf_mem_Icc_setOf_lower_eq
-/- warning: box_integral.prepartition.card_filter_mem_Icc_le -> BoxIntegral.Prepartition.card_filter_mem_Icc_le is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι] (x : ι -> Real), LE.le.{0} Nat Nat.hasLe (Finset.card.{u1} (BoxIntegral.Box.{u1} ι) (Finset.filter.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.hasLe.{u1} ι) (Set.hasLe.{u1} (ι -> Real))) (fun (_x : RelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) => (BoxIntegral.Box.{u1} ι) -> (Set.{u1} (ι -> Real))) (RelEmbedding.hasCoeToFun.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) (BoxIntegral.Box.Icc.{u1} ι) J)) (fun (a : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (J : BoxIntegral.Box.{u1} ι) => Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.hasLe.{u1} ι) (Set.hasLe.{u1} (ι -> Real))) (fun (_x : RelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) => (BoxIntegral.Box.{u1} ι) -> (Set.{u1} (ι -> Real))) (RelEmbedding.hasCoeToFun.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) (BoxIntegral.Box.Icc.{u1} ι) J)) a)) (BoxIntegral.Prepartition.boxes.{u1} ι I π))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fintype.card.{u1} ι _inst_1))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι] (x : ι -> Real), LE.le.{0} Nat instLENat (Finset.card.{u1} (BoxIntegral.Box.{u1} ι) (Finset.filter.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (BoxIntegral.Box.Icc.{u1} ι) J)) (fun (a : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (J : BoxIntegral.Box.{u1} ι) => Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (BoxIntegral.Box.Icc.{u1} ι) J)) a)) (BoxIntegral.Prepartition.boxes.{u1} ι I π))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) (Fintype.card.{u1} ι _inst_1))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.card_filter_mem_Icc_le BoxIntegral.Prepartition.card_filter_mem_Icc_leₓ'. -/
/-- The set of boxes of a prepartition that contain `x` in their closures has cardinality
at most `2 ^ fintype.card ι`. -/
theorem card_filter_mem_Icc_le [Fintype ι] (x : ι → ℝ) :
@@ -327,12 +261,6 @@ theorem iUnion_def' : π.iUnion = ⋃ J ∈ π.boxes, ↑J :=
#align box_integral.prepartition.Union_def' BoxIntegral.Prepartition.iUnion_def'
-/
-/- warning: box_integral.prepartition.mem_Union -> BoxIntegral.Prepartition.mem_iUnion is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {x : ι -> Real}, Iff (Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (BoxIntegral.Prepartition.iUnion.{u1} ι I π)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) => Membership.Mem.{u1, u1} (ι -> Real) (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasMem.{u1} ι) x J)))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {x : ι -> Real}, Iff (Membership.mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.instMembershipSet.{u1} (ι -> Real)) x (BoxIntegral.Prepartition.iUnion.{u1} ι I π)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) (Membership.mem.{u1, u1} (ι -> Real) (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instMembershipForAllRealBox.{u1} ι) x J)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_Union BoxIntegral.Prepartition.mem_iUnionₓ'. -/
@[simp]
theorem mem_iUnion : x ∈ π.iUnion ↔ ∃ J ∈ π, x ∈ J :=
Set.mem_iUnion₂
@@ -344,33 +272,15 @@ theorem iUnion_single (h : J ≤ I) : (single I J h).iUnion = J := by simp [Unio
#align box_integral.prepartition.Union_single BoxIntegral.Prepartition.iUnion_single
-/
-/- warning: box_integral.prepartition.Union_top -> BoxIntegral.Prepartition.iUnion_top is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I)
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I)))) (BoxIntegral.Box.toSet.{u1} ι I)
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.iUnion_topₓ'. -/
@[simp]
theorem iUnion_top : (⊤ : Prepartition I).iUnion = I := by simp [prepartition.Union]
#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.iUnion_top
-/- warning: box_integral.prepartition.Union_eq_empty -> BoxIntegral.Prepartition.iUnion_eq_empty is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.hasEmptyc.{u1} (ι -> Real)))) (Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) π₁ (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.instEmptyCollectionSet.{u1} (ι -> Real)))) (Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) π₁ (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.iUnion_eq_emptyₓ'. -/
@[simp]
theorem iUnion_eq_empty : π₁.iUnion = ∅ ↔ π₁ = ⊥ := by
simp [← injective_boxes.eq_iff, Finset.ext_iff, prepartition.Union, imp_false]
#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.iUnion_eq_empty
-/- warning: box_integral.prepartition.Union_bot -> BoxIntegral.Prepartition.iUnion_bot is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.hasEmptyc.{u1} (ι -> Real)))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.instEmptyCollectionSet.{u1} (ι -> Real)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_bot BoxIntegral.Prepartition.iUnion_botₓ'. -/
@[simp]
theorem iUnion_bot : (⊥ : Prepartition I).iUnion = ∅ :=
iUnion_eq_empty.2 rfl
@@ -388,12 +298,6 @@ theorem iUnion_subset : π.iUnion ⊆ I :=
#align box_integral.prepartition.Union_subset BoxIntegral.Prepartition.iUnion_subset
-/
-/- warning: box_integral.prepartition.Union_mono -> BoxIntegral.Prepartition.iUnion_mono is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) -> (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.hasSubset.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) -> (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.instHasSubsetSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.iUnion_monoₓ'. -/
@[mono]
theorem iUnion_mono (h : π₁ ≤ π₂) : π₁.iUnion ⊆ π₂.iUnion := fun x hx =>
let ⟨J₁, hJ₁, hx⟩ := π₁.mem_iUnion.1 hx
@@ -401,24 +305,12 @@ theorem iUnion_mono (h : π₁ ≤ π₂) : π₁.iUnion ⊆ π₂.iUnion := fun
π₂.mem_iUnion.2 ⟨J₂, hJ₂, hle hx⟩
#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.iUnion_mono
-/- warning: box_integral.prepartition.disjoint_boxes_of_disjoint_Union -> BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_iUnion is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (Disjoint.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.partialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.orderBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (Disjoint.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.partialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instOrderBotFinsetToLEToPreorderPartialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_iUnionₓ'. -/
theorem disjoint_boxes_of_disjoint_iUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
Disjoint π₁.boxes π₂.boxes :=
Finset.disjoint_left.2 fun J h₁ h₂ =>
Disjoint.le_bot (h.mono (π₁.subset_iUnion h₁) (π₂.subset_iUnion h₂)) ⟨J.upper_mem, J.upper_mem⟩
#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_iUnion
-/- warning: box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset -> BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subset is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) (And (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι) J J'))) (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.hasSubset.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) (And (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Box.toSet.{u1} ι J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) J J'))) (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.instHasSubsetSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subsetₓ'. -/
theorem le_iff_nonempty_imp_le_and_iUnion_subset :
π₁ ≤ π₂ ↔
(∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J') ∧ π₁.iUnion ⊆ π₂.iUnion :=
@@ -471,33 +363,15 @@ def biUnion (πi : ∀ J : Box ι, Prepartition J) : Prepartition I
variable {πi πi₁ πi₂ : ∀ J : Box ι, Prepartition J}
-/- warning: box_integral.prepartition.mem_bUnion -> BoxIntegral.Prepartition.mem_biUnion is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J') (BoxIntegral.Prepartition.hasMem.{u1} ι J') J (πi J'))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π) (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J') (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι J') J (πi J'))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_biUnionₓ'. -/
@[simp]
theorem mem_biUnion : J ∈ π.biUnion πi ↔ ∃ J' ∈ π, J ∈ πi J' := by simp [bUnion]
#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_biUnion
-/- warning: box_integral.prepartition.bUnion_le -> BoxIntegral.Prepartition.biUnion_le is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) π
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) π
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.biUnion_leₓ'. -/
theorem biUnion_le (πi : ∀ J, Prepartition J) : π.biUnion πi ≤ π := fun J hJ =>
let ⟨J', hJ', hJ⟩ := π.mem_biUnion.1 hJ
⟨J', hJ', (πi J').le_of_mem hJ⟩
#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.biUnion_le
-/- warning: box_integral.prepartition.bUnion_top -> BoxIntegral.Prepartition.biUnion_top is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π (fun (_x : BoxIntegral.Box.{u1} ι) => Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (BoxIntegral.Prepartition.hasLe.{u1} ι _x) (BoxIntegral.Prepartition.orderTop.{u1} ι _x)))) π
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π (fun (_x : BoxIntegral.Box.{u1} ι) => Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι _x) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι _x)))) π
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.biUnion_topₓ'. -/
@[simp]
theorem biUnion_top : (π.biUnion fun _ => ⊤) = π := by ext; simp
#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.biUnion_top
@@ -596,12 +470,6 @@ theorem biUnion_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : B
#align box_integral.prepartition.bUnion_assoc BoxIntegral.Prepartition.biUnion_assoc
-/
-/- warning: box_integral.prepartition.of_with_bot -> BoxIntegral.Prepartition.ofWithBot is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))), (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) -> (Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))) -> (BoxIntegral.Prepartition.{u1} ι I)
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))), (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))) -> (Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))) -> (BoxIntegral.Prepartition.{u1} ι I)
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.of_with_bot BoxIntegral.Prepartition.ofWithBotₓ'. -/
/-- Create a `box_integral.prepartition` from a collection of possibly empty boxes by filtering out
the empty one if it exists. -/
def ofWithBot (boxes : Finset (WithBot (Box ι)))
@@ -618,24 +486,12 @@ def ofWithBot (boxes : Finset (WithBot (Box ι)))
exact box.disjoint_coe.1 (pairwise_disjoint h₁ h₂ (mt Option.some_inj.1 hne))
#align box_integral.prepartition.of_with_bot BoxIntegral.Prepartition.ofWithBot
-/- warning: box_integral.prepartition.mem_of_with_bot -> BoxIntegral.Prepartition.mem_ofWithBot is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {h₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {h₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes h₁ h₂)) (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) boxes)
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {h₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {h₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes h₁ h₂)) (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J) boxes)
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_of_with_bot BoxIntegral.Prepartition.mem_ofWithBotₓ'. -/
@[simp]
theorem mem_ofWithBot {boxes : Finset (WithBot (Box ι))} {h₁ h₂} :
J ∈ (ofWithBot boxes h₁ h₂ : Prepartition I) ↔ (J : WithBot (Box ι)) ∈ boxes :=
mem_eraseNone
#align box_integral.prepartition.mem_of_with_bot BoxIntegral.Prepartition.mem_ofWithBot
-/- warning: box_integral.prepartition.Union_of_with_bot -> BoxIntegral.Prepartition.iUnion_ofWithBot is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (Set.iUnion.{u1, succ u1} (ι -> Real) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Set.iUnion.{u1, 0} (ι -> Real) (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.withBotCoe.{u1} ι))) J)))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (Set.iUnion.{u1, succ u1} (ι -> Real) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Set.iUnion.{u1, 0} (ι -> Real) (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) (fun (H : Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) => BoxIntegral.Box.withBotToSet.{u1} ι J)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.iUnion_ofWithBotₓ'. -/
@[simp]
theorem iUnion_ofWithBot (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
@@ -648,12 +504,6 @@ theorem iUnion_ofWithBot (boxes : Finset (WithBot (Box ι)))
Union_Union_eq_right]
#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.iUnion_ofWithBot
-/- warning: box_integral.prepartition.of_with_bot_le -> BoxIntegral.Prepartition.ofWithBot_le is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasBot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J'))))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint) π)
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.bot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π) (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J'))))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint) π)
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.of_with_bot_le BoxIntegral.Prepartition.ofWithBot_leₓ'. -/
theorem ofWithBot_le {boxes : Finset (WithBot (Box ι))}
{le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I}
{pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint}
@@ -665,12 +515,6 @@ theorem ofWithBot_le {boxes : Finset (WithBot (Box ι))}
simpa [of_with_bot, le_def]
#align box_integral.prepartition.of_with_bot_le BoxIntegral.Prepartition.ofWithBot_le
-/- warning: box_integral.prepartition.le_of_with_bot -> BoxIntegral.Prepartition.le_ofWithBot is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Exists.{0} (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => And (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes) (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J) J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_of_with_bot BoxIntegral.Prepartition.le_ofWithBotₓ'. -/
theorem le_ofWithBot {boxes : Finset (WithBot (Box ι))}
{le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I}
{pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint}
@@ -682,12 +526,6 @@ theorem le_ofWithBot {boxes : Finset (WithBot (Box ι))}
exact ⟨J', mem_of_with_bot.2 J'mem, WithBot.coe_le_coe.1 hle⟩
#align box_integral.prepartition.le_of_with_bot BoxIntegral.Prepartition.le_ofWithBot
-/- warning: box_integral.prepartition.of_with_bot_mono -> BoxIntegral.Prepartition.ofWithBot_mono is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {boxes₁ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint₁ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes₁) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))} {boxes₂ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₂ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₂) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes₂) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasBot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Exists.{0} (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes₂) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes₂) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₁ le_of_mem₁ pairwise_disjoint₁) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₂ le_of_mem₂ pairwise_disjoint₂))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {boxes₁ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint₁ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes₁) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))} {boxes₂ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₂ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₂) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes₂) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.bot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => And (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes₂) (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₁ le_of_mem₁ pairwise_disjoint₁) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₂ le_of_mem₂ pairwise_disjoint₂))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.of_with_bot_mono BoxIntegral.Prepartition.ofWithBot_monoₓ'. -/
theorem ofWithBot_mono {boxes₁ : Finset (WithBot (Box ι))}
{le_of_mem₁ : ∀ J ∈ boxes₁, (J : WithBot (Box ι)) ≤ I}
{pairwise_disjoint₁ : Set.Pairwise (boxes₁ : Set (WithBot (Box ι))) Disjoint}
@@ -699,12 +537,6 @@ theorem ofWithBot_mono {boxes₁ : Finset (WithBot (Box ι))}
le_ofWithBot _ fun J hJ => H J (mem_ofWithBot.1 hJ) WithBot.coe_ne_bot
#align box_integral.prepartition.of_with_bot_mono BoxIntegral.Prepartition.ofWithBot_mono
-/- warning: box_integral.prepartition.sum_of_with_bot -> BoxIntegral.Prepartition.sum_ofWithBot is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) _inst_1 boxes (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Option.elim'.{u1, u2} (BoxIntegral.Box.{u1} ι) M (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))))) f J))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) _inst_1 boxes (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Option.elim'.{u1, u2} (BoxIntegral.Box.{u1} ι) M (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) f J))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_of_with_bot BoxIntegral.Prepartition.sum_ofWithBotₓ'. -/
theorem sum_ofWithBot {M : Type _} [AddCommMonoid M] (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
(pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint) (f : Box ι → M) :
@@ -726,33 +558,15 @@ def restrict (π : Prepartition I) (J : Box ι) : Prepartition J :=
#align box_integral.prepartition.restrict BoxIntegral.Prepartition.restrict
-/
-/- warning: box_integral.prepartition.mem_restrict -> BoxIntegral.Prepartition.mem_restrict is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasMem.{u1} ι J) J₁ (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => Eq.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J₁) (Inf.inf.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Box.WithBot.hasInf.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J')))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι J) J₁ (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π) (Eq.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J₁) (Inf.inf.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Box.WithBot.inf.{u1} ι) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J')))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_restrict BoxIntegral.Prepartition.mem_restrictₓ'. -/
@[simp]
theorem mem_restrict : J₁ ∈ π.restrict J ↔ ∃ J' ∈ π, (J₁ : WithBot (Box ι)) = J ⊓ J' := by
simp [restrict, eq_comm]
#align box_integral.prepartition.mem_restrict BoxIntegral.Prepartition.mem_restrict
-/- warning: box_integral.prepartition.mem_restrict' -> BoxIntegral.Prepartition.mem_restrict' is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasMem.{u1} ι J) J₁ (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => Eq.{succ u1} (Set.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J₁) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J')))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι J) J₁ (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π) (Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J₁) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Box.toSet.{u1} ι J')))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_restrict' BoxIntegral.Prepartition.mem_restrict'ₓ'. -/
theorem mem_restrict' : J₁ ∈ π.restrict J ↔ ∃ J' ∈ π, (J₁ : Set (ι → ℝ)) = J ∩ J' := by
simp only [mem_restrict, ← box.with_bot_coe_inj, box.coe_inf, box.coe_coe]
#align box_integral.prepartition.mem_restrict' BoxIntegral.Prepartition.mem_restrict'
-/- warning: box_integral.prepartition.restrict_mono -> BoxIntegral.Prepartition.restrict_mono is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasLe.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π₁ J) (BoxIntegral.Prepartition.restrict.{u1} ι I π₂ J))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π₁ J) (BoxIntegral.Prepartition.restrict.{u1} ι I π₂ J))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.restrict_mono BoxIntegral.Prepartition.restrict_monoₓ'. -/
@[mono]
theorem restrict_mono {π₁ π₂ : Prepartition I} (Hle : π₁ ≤ π₂) : π₁.restrict J ≤ π₂.restrict J :=
by
@@ -789,12 +603,6 @@ theorem restrict_self : π.restrict I = π :=
#align box_integral.prepartition.restrict_self BoxIntegral.Prepartition.restrict_self
-/
-/- warning: box_integral.prepartition.Union_restrict -> BoxIntegral.Prepartition.iUnion_restrict is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι J (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) (BoxIntegral.Prepartition.iUnion.{u1} ι I π))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι J (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Prepartition.iUnion.{u1} ι I π))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_restrict BoxIntegral.Prepartition.iUnion_restrictₓ'. -/
@[simp]
theorem iUnion_restrict : (π.restrict J).iUnion = J ∩ π.iUnion := by
simp [restrict, ← inter_Union, ← Union_def]
@@ -815,12 +623,6 @@ theorem restrict_biUnion (πi : ∀ J, Prepartition J) (hJ : J ∈ π) :
#align box_integral.prepartition.restrict_bUnion BoxIntegral.Prepartition.restrict_biUnion
-/
-/- warning: box_integral.prepartition.bUnion_le_iff -> BoxIntegral.Prepartition.biUnion_le_iff is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) π') (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasLe.{u1} ι J) (πi J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J)))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) π') (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι J) (πi J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.biUnion_le_iffₓ'. -/
theorem biUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
π.biUnion πi ≤ π' ↔ ∀ J ∈ π, πi J ≤ π'.restrict J :=
by
@@ -832,12 +634,6 @@ theorem biUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
exact ⟨J₃, h₃, Hle.trans <| WithBot.coe_le_coe.1 <| H.trans_le inf_le_right⟩
#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.biUnion_le_iff
-/- warning: box_integral.prepartition.le_bUnion_iff -> BoxIntegral.Prepartition.le_biUnion_iff is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π' (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi)) (And (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π' π) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasLe.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J) (πi J))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π' (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi)) (And (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π' π) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J) (πi J))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_biUnion_iffₓ'. -/
theorem le_biUnion_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
π' ≤ π.biUnion πi ↔ π' ≤ π ∧ ∀ J ∈ π, π'.restrict J ≤ πi J :=
by
@@ -860,24 +656,12 @@ theorem inf_def (π₁ π₂ : Prepartition I) : π₁ ⊓ π₂ = π₁.biUnion
#align box_integral.prepartition.inf_def BoxIntegral.Prepartition.inf_def
-/
-/- warning: box_integral.prepartition.mem_inf -> BoxIntegral.Prepartition.mem_inf is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasInf.{u1} ι I) π₁ π₂)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J₁ : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₁ π₁) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₁ π₁) => Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J₂ : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₂ π₂) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₂ π₂) => Eq.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) (Inf.inf.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Box.WithBot.hasInf.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J₁) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J₂)))))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.inf.{u1} ι I) π₁ π₂)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J₁ : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J₁ π₁) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J₂ : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J₂ π₂) (Eq.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J) (Inf.inf.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Box.WithBot.inf.{u1} ι) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J₁) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J₂)))))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_inf BoxIntegral.Prepartition.mem_infₓ'. -/
@[simp]
theorem mem_inf {π₁ π₂ : Prepartition I} :
J ∈ π₁ ⊓ π₂ ↔ ∃ J₁ ∈ π₁, ∃ J₂ ∈ π₂, (J : WithBot (Box ι)) = J₁ ⊓ J₂ := by
simp only [inf_def, mem_bUnion, mem_restrict]
#align box_integral.prepartition.mem_inf BoxIntegral.Prepartition.mem_inf
-/- warning: box_integral.prepartition.Union_inf -> BoxIntegral.Prepartition.iUnion_inf is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasInf.{u1} ι I) π₁ π₂)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.inf.{u1} ι I) π₁ π₂)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_inf BoxIntegral.Prepartition.iUnion_infₓ'. -/
@[simp]
theorem iUnion_inf (π₁ π₂ : Prepartition I) : (π₁ ⊓ π₂).iUnion = π₁.iUnion ∩ π₂.iUnion := by
simp only [inf_def, Union_bUnion, Union_restrict, ← Union_inter, ← Union_def]
@@ -908,12 +692,6 @@ theorem mem_filter {p : Box ι → Prop} : J ∈ π.filterₓ p ↔ J ∈ π ∧
#align box_integral.prepartition.mem_filter BoxIntegral.Prepartition.mem_filter
-/
-/- warning: box_integral.prepartition.filter_le -> BoxIntegral.Prepartition.filter_le is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.filter.{u1} ι I π p) π
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.filter.{u1} ι I π p) π
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.filter_le BoxIntegral.Prepartition.filter_leₓ'. -/
theorem filter_le (π : Prepartition I) (p : Box ι → Prop) : π.filterₓ p ≤ π := fun J hJ =>
let ⟨hπ, hp⟩ := π.mem_filter.1 hJ
⟨J, hπ, le_rfl⟩
@@ -932,12 +710,6 @@ theorem filter_true : (π.filterₓ fun _ => True) = π :=
#align box_integral.prepartition.filter_true BoxIntegral.Prepartition.filter_true
-/
-/- warning: box_integral.prepartition.Union_filter_not -> BoxIntegral.Prepartition.iUnion_filter_not is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Not (p J)))) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π p)))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Not (p J)))) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π p)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_notₓ'. -/
@[simp]
theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
(π.filterₓ fun J => ¬p J).iUnion = π.iUnion \ (π.filterₓ p).iUnion :=
@@ -948,24 +720,12 @@ theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
· convert π.pairwise_disjoint; simp
#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_not
-/- warning: box_integral.prepartition.sum_fiberwise -> BoxIntegral.Prepartition.sum_fiberwise is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {α : Type.{u2}} {M : Type.{u3}} [_inst_1 : AddCommMonoid.{u3} M] (π : BoxIntegral.Prepartition.{u1} ι I) (f : (BoxIntegral.Box.{u1} ι) -> α) (g : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u3} M (Finset.sum.{u3, u2} M α _inst_1 (Finset.image.{u1, u2} (BoxIntegral.Box.{u1} ι) α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) f (BoxIntegral.Prepartition.boxes.{u1} ι I π)) (fun (y : α) => Finset.sum.{u3, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Eq.{succ u2} α (f J) y))) (fun (J : BoxIntegral.Box.{u1} ι) => g J))) (Finset.sum.{u3, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => g J))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {α : Type.{u3}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (f : (BoxIntegral.Box.{u1} ι) -> α) (g : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u3} M α _inst_1 (Finset.image.{u1, u3} (BoxIntegral.Box.{u1} ι) α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u3} α a b)) f (BoxIntegral.Prepartition.boxes.{u1} ι I π)) (fun (y : α) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Eq.{succ u3} α (f J) y))) (fun (J : BoxIntegral.Box.{u1} ι) => g J))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => g J))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_fiberwise BoxIntegral.Prepartition.sum_fiberwiseₓ'. -/
theorem sum_fiberwise {α M} [AddCommMonoid M] (π : Prepartition I) (f : Box ι → α) (g : Box ι → M) :
(∑ y in π.boxes.image f, ∑ J in (π.filterₓ fun J => f J = y).boxes, g J) =
∑ J in π.boxes, g J :=
by convert sum_fiberwise_of_maps_to (fun _ => Finset.mem_image_of_mem f) g
#align box_integral.prepartition.sum_fiberwise BoxIntegral.Prepartition.sum_fiberwise
-/- warning: box_integral.prepartition.disj_union -> BoxIntegral.Prepartition.disjUnion is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (BoxIntegral.Prepartition.{u1} ι I)
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (BoxIntegral.Prepartition.{u1} ι I)
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.disj_union BoxIntegral.Prepartition.disjUnionₓ'. -/
/-- Union of two disjoint prepartitions. -/
@[simps]
def disjUnion (π₁ π₂ : Prepartition I) (h : Disjoint π₁.iUnion π₂.iUnion) : Prepartition I
@@ -978,36 +738,18 @@ def disjUnion (π₁ π₂ : Prepartition I) (h : Disjoint π₁.iUnion π₂.iU
fun J₁ h₁ J₂ h₂ _ => h.mono (π₁.subset_iUnion h₁) (π₂.subset_iUnion h₂)
#align box_integral.prepartition.disj_union BoxIntegral.Prepartition.disjUnion
-/- warning: box_integral.prepartition.mem_disj_union -> BoxIntegral.Prepartition.mem_disjUnion is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (H : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ H)) (Or (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₂))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (H : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ H)) (Or (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₂))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_disj_union BoxIntegral.Prepartition.mem_disjUnionₓ'. -/
@[simp]
theorem mem_disjUnion (H : Disjoint π₁.iUnion π₂.iUnion) :
J ∈ π₁.disjUnion π₂ H ↔ J ∈ π₁ ∨ J ∈ π₂ :=
Finset.mem_union
#align box_integral.prepartition.mem_disj_union BoxIntegral.Prepartition.mem_disjUnion
-/- warning: box_integral.prepartition.Union_disj_union -> BoxIntegral.Prepartition.iUnion_disjUnion is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h)) (Union.union.{u1} (Set.{u1} (ι -> Real)) (Set.hasUnion.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h)) (Union.union.{u1} (Set.{u1} (ι -> Real)) (Set.instUnionSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.iUnion_disjUnionₓ'. -/
@[simp]
theorem iUnion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
(π₁.disjUnion π₂ h).iUnion = π₁.iUnion ∪ π₂.iUnion := by
simp [disj_union, prepartition.Union, Union_or, Union_union_distrib]
#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.iUnion_disjUnion
-/- warning: box_integral.prepartition.sum_disj_union_boxes -> BoxIntegral.Prepartition.sum_disj_union_boxes is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasUnion.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b))) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instUnionFinset.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b))) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_disj_union_boxes BoxIntegral.Prepartition.sum_disj_union_boxesₓ'. -/
@[simp]
theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.iUnion π₂.iUnion)
(f : Box ι → M) :
@@ -1027,43 +769,19 @@ def distortion : ℝ≥0 :=
#align box_integral.prepartition.distortion BoxIntegral.Prepartition.distortion
-/
-/- warning: box_integral.prepartition.distortion_le_of_mem -> BoxIntegral.Prepartition.distortion_le_of_mem is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι], (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (BoxIntegral.Box.distortion.{u1} ι _inst_1 J) (BoxIntegral.Prepartition.distortion.{u1} ι I π _inst_1))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι], (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (BoxIntegral.Box.distortion.{u1} ι _inst_1 J) (BoxIntegral.Prepartition.distortion.{u1} ι I π _inst_1))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_le_of_mem BoxIntegral.Prepartition.distortion_le_of_memₓ'. -/
theorem distortion_le_of_mem (h : J ∈ π) : J.distortion ≤ π.distortion :=
le_sup h
#align box_integral.prepartition.distortion_le_of_mem BoxIntegral.Prepartition.distortion_le_of_mem
-/- warning: box_integral.prepartition.distortion_le_iff -> BoxIntegral.Prepartition.distortion_le_iff is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι] {c : NNReal}, Iff (LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (BoxIntegral.Prepartition.distortion.{u1} ι I π _inst_1) c) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (BoxIntegral.Box.distortion.{u1} ι _inst_1 J) c))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι] {c : NNReal}, Iff (LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (BoxIntegral.Prepartition.distortion.{u1} ι I π _inst_1) c) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (BoxIntegral.Box.distortion.{u1} ι _inst_1 J) c))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_le_iff BoxIntegral.Prepartition.distortion_le_iffₓ'. -/
theorem distortion_le_iff {c : ℝ≥0} : π.distortion ≤ c ↔ ∀ J ∈ π, Box.distortion J ≤ c :=
Finset.sup_le_iff
#align box_integral.prepartition.distortion_le_iff BoxIntegral.Prepartition.distortion_le_iff
-/- warning: box_integral.prepartition.distortion_bUnion -> BoxIntegral.Prepartition.distortion_biUnion is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} [_inst_1 : Fintype.{u1} ι] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) _inst_1) (Finset.sup.{0, u1} NNReal (BoxIntegral.Box.{u1} ι) NNReal.semilatticeSup NNReal.orderBot (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.distortion.{u1} ι J (πi J) _inst_1))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} [_inst_1 : Fintype.{u1} ι] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) _inst_1) (Finset.sup.{0, u1} NNReal (BoxIntegral.Box.{u1} ι) instNNRealSemilatticeSup NNReal.instOrderBotNNRealToLEToPreorderToPartialOrderInstNNRealStrictOrderedSemiring (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.distortion.{u1} ι J (πi J) _inst_1))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_biUnionₓ'. -/
theorem distortion_biUnion (π : Prepartition I) (πi : ∀ J, Prepartition J) :
(π.biUnion πi).distortion = π.boxes.sup fun J => (πi J).distortion :=
sup_biUnion _ _
#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_biUnion
-/- warning: box_integral.prepartition.distortion_disj_union -> BoxIntegral.Prepartition.distortion_disjUnion is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} [_inst_1 : Fintype.{u1} ι] (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h) _inst_1) (LinearOrder.max.{0} NNReal (ConditionallyCompleteLinearOrder.toLinearOrder.{0} NNReal (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{0} NNReal NNReal.conditionallyCompleteLinearOrderBot)) (BoxIntegral.Prepartition.distortion.{u1} ι I π₁ _inst_1) (BoxIntegral.Prepartition.distortion.{u1} ι I π₂ _inst_1))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} [_inst_1 : Fintype.{u1} ι] (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h) _inst_1) (Max.max.{0} NNReal (CanonicallyLinearOrderedSemifield.toMax.{0} NNReal NNReal.instCanonicallyLinearOrderedSemifieldNNReal) (BoxIntegral.Prepartition.distortion.{u1} ι I π₁ _inst_1) (BoxIntegral.Prepartition.distortion.{u1} ι I π₂ _inst_1))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_disj_union BoxIntegral.Prepartition.distortion_disjUnionₓ'. -/
@[simp]
theorem distortion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
(π₁.disjUnion π₂ h).distortion = max π₁.distortion π₂.distortion :=
@@ -1077,23 +795,11 @@ theorem distortion_of_const {c} (h₁ : π.boxes.Nonempty) (h₂ : ∀ J ∈ π,
#align box_integral.prepartition.distortion_of_const BoxIntegral.Prepartition.distortion_of_const
-/
-/- warning: box_integral.prepartition.distortion_top -> BoxIntegral.Prepartition.distortion_top is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : Fintype.{u1} ι] (I : BoxIntegral.Box.{u1} ι), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I))) _inst_1) (BoxIntegral.Box.distortion.{u1} ι _inst_1 I)
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_1 : Fintype.{u1} ι] (I : BoxIntegral.Box.{u1} ι), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I))) _inst_1) (BoxIntegral.Box.distortion.{u1} ι _inst_1 I)
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_top BoxIntegral.Prepartition.distortion_topₓ'. -/
@[simp]
theorem distortion_top (I : Box ι) : distortion (⊤ : Prepartition I) = I.distortion :=
sup_singleton
#align box_integral.prepartition.distortion_top BoxIntegral.Prepartition.distortion_top
-/- warning: box_integral.prepartition.distortion_bot -> BoxIntegral.Prepartition.distortion_bot is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : Fintype.{u1} ι] (I : BoxIntegral.Box.{u1} ι), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I))) _inst_1) (OfNat.ofNat.{0} NNReal 0 (OfNat.mk.{0} NNReal 0 (Zero.zero.{0} NNReal (MulZeroClass.toHasZero.{0} NNReal (NonUnitalNonAssocSemiring.toMulZeroClass.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring)))))))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_1 : Fintype.{u1} ι] (I : BoxIntegral.Box.{u1} ι), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I))) _inst_1) (OfNat.ofNat.{0} NNReal 0 (Zero.toOfNat0.{0} NNReal instNNRealZero))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_bot BoxIntegral.Prepartition.distortion_botₓ'. -/
@[simp]
theorem distortion_bot (I : Box ι) : distortion (⊥ : Prepartition I) = 0 :=
sup_empty
@@ -1122,12 +828,6 @@ theorem isPartition_single_iff (h : J ≤ I) : IsPartition (single I J h) ↔ J
#align box_integral.prepartition.is_partition_single_iff BoxIntegral.Prepartition.isPartition_single_iff
-/
-/- warning: box_integral.prepartition.is_partition_top -> BoxIntegral.Prepartition.isPartitionTop is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} (I : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.IsPartition.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I)))
-but is expected to have type
- forall {ι : Type.{u1}} (I : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.IsPartition.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.is_partition_top BoxIntegral.Prepartition.isPartitionTopₓ'. -/
theorem isPartitionTop (I : Box ι) : IsPartition (⊤ : Prepartition I) := fun x hx =>
⟨I, mem_top.2 rfl, hx⟩
#align box_integral.prepartition.is_partition_top BoxIntegral.Prepartition.isPartitionTop
@@ -1170,12 +870,6 @@ theorem eq_of_boxes_subset (h₁ : π₁.IsPartition) (h₂ : π₁.boxes ⊆ π
#align box_integral.prepartition.is_partition.eq_of_boxes_subset BoxIntegral.Prepartition.IsPartition.eq_of_boxes_subset
-/
-/- warning: box_integral.prepartition.is_partition.le_iff -> BoxIntegral.Prepartition.IsPartition.le_iff is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (BoxIntegral.Prepartition.IsPartition.{u1} ι I π₂) -> (Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι) J J'))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (BoxIntegral.Prepartition.IsPartition.{u1} ι I π₂) -> (Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Box.toSet.{u1} ι J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) J J'))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.is_partition.le_iff BoxIntegral.Prepartition.IsPartition.le_iffₓ'. -/
theorem le_iff (h : π₂.IsPartition) :
π₁ ≤ π₂ ↔ ∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J' :=
le_iff_nonempty_imp_le_and_iUnion_subset.trans <| and_iff_left <| h.iUnion_subset _
@@ -1213,12 +907,6 @@ theorem iUnion_biUnion_partition (h : ∀ J ∈ π, (πi J).IsPartition) :
#align box_integral.prepartition.Union_bUnion_partition BoxIntegral.Prepartition.iUnion_biUnion_partition
-/
-/- warning: box_integral.prepartition.is_partition_disj_union_of_eq_diff -> BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiff is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.subst.{succ u1} (Set.{u1} (ι -> Real)) (fun (_x : Set.{u1} (ι -> Real)) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) _x) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) h) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))))))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.rec.{0, succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) (fun (x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11562 : Set.{u1} (ι -> Real)) (h._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11563 : Eq.{succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11562) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11562) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Box.toSet.{u1} ι I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.instBooleanAlgebraSet.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) h)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.is_partition_disj_union_of_eq_diff BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiffₓ'. -/
theorem isPartitionDisjUnionOfEqDiff (h : π₂.iUnion = I \ π₁.iUnion) :
IsPartition (π₁.disjUnion π₂ <| h.symm ▸ disjoint_sdiff_self_right) :=
isPartition_iff_iUnion_eq.2 <| (iUnion_disjUnion _).trans <| by simp [h, π₁.Union_subset]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -145,10 +145,8 @@ theorem upper_le_upper (hJ : J ∈ π) : J.upper ≤ I.upper :=
#align box_integral.prepartition.upper_le_upper BoxIntegral.Prepartition.upper_le_upper
#print BoxIntegral.Prepartition.injective_boxes /-
-theorem injective_boxes : Function.Injective (boxes : Prepartition I → Finset (Box ι)) :=
- by
- rintro ⟨s₁, h₁, h₁'⟩ ⟨s₂, h₂, h₂'⟩ (rfl : s₁ = s₂)
- rfl
+theorem injective_boxes : Function.Injective (boxes : Prepartition I → Finset (Box ι)) := by
+ rintro ⟨s₁, h₁, h₁'⟩ ⟨s₂, h₂, h₂'⟩ (rfl : s₁ = s₂); rfl
#align box_integral.prepartition.injective_boxes BoxIntegral.Prepartition.injective_boxes
-/
@@ -427,11 +425,9 @@ theorem le_iff_nonempty_imp_le_and_iUnion_subset :
by
fconstructor
· refine' fun H => ⟨fun J hJ J' hJ' Hne => _, Union_mono H⟩
- rcases H hJ with ⟨J'', hJ'', Hle⟩
- rcases Hne with ⟨x, hx, hx'⟩
+ rcases H hJ with ⟨J'', hJ'', Hle⟩; rcases Hne with ⟨x, hx, hx'⟩
rwa [π₂.eq_of_mem_of_mem hJ' hJ'' hx' (Hle hx)]
- · rintro ⟨H, HU⟩ J hJ
- simp only [Set.subset_def, mem_Union] at HU
+ · rintro ⟨H, HU⟩ J hJ; simp only [Set.subset_def, mem_Union] at HU
rcases HU J.upper ⟨J, hJ, J.upper_mem⟩ with ⟨J₂, hJ₂, hx⟩
exact ⟨J₂, hJ₂, H _ hJ _ hJ₂ ⟨_, J.upper_mem, hx⟩⟩
#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subset
@@ -503,18 +499,13 @@ but is expected to have type
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π (fun (_x : BoxIntegral.Box.{u1} ι) => Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι _x) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι _x)))) π
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.biUnion_topₓ'. -/
@[simp]
-theorem biUnion_top : (π.biUnion fun _ => ⊤) = π :=
- by
- ext
- simp
+theorem biUnion_top : (π.biUnion fun _ => ⊤) = π := by ext; simp
#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.biUnion_top
#print BoxIntegral.Prepartition.biUnion_congr /-
@[congr]
theorem biUnion_congr (h : π₁ = π₂) (hi : ∀ J ∈ π₁, πi₁ J = πi₂ J) :
- π₁.biUnion πi₁ = π₂.biUnion πi₂ := by
- subst π₂
- ext J
+ π₁.biUnion πi₁ = π₂.biUnion πi₂ := by subst π₂; ext J;
simp (config := { contextual := true }) [hi]
#align box_integral.prepartition.bUnion_congr BoxIntegral.Prepartition.biUnion_congr
-/
@@ -554,10 +545,8 @@ def biUnionIndex (πi : ∀ J, Prepartition J) (J : Box ι) : Box ι :=
-/
#print BoxIntegral.Prepartition.biUnionIndex_mem /-
-theorem biUnionIndex_mem (hJ : J ∈ π.biUnion πi) : π.biUnionIndex πi J ∈ π :=
- by
- rw [bUnion_index, dif_pos hJ]
- exact (π.mem_bUnion.1 hJ).choose_spec.fst
+theorem biUnionIndex_mem (hJ : J ∈ π.biUnion πi) : π.biUnionIndex πi J ∈ π := by
+ rw [bUnion_index, dif_pos hJ]; exact (π.mem_bUnion.1 hJ).choose_spec.fst
#align box_integral.prepartition.bUnion_index_mem BoxIntegral.Prepartition.biUnionIndex_mem
-/
@@ -566,8 +555,7 @@ theorem biUnionIndex_le (πi : ∀ J, Prepartition J) (J : Box ι) : π.biUnionI
by
by_cases hJ : J ∈ π.bUnion πi
· exact π.le_of_mem (π.bUnion_index_mem hJ)
- · rw [bUnion_index, dif_neg hJ]
- exact le_rfl
+ · rw [bUnion_index, dif_neg hJ]; exact le_rfl
#align box_integral.prepartition.bUnion_index_le BoxIntegral.Prepartition.biUnionIndex_le
-/
@@ -729,15 +717,11 @@ theorem sum_ofWithBot {M : Type _} [AddCommMonoid M] (boxes : Finset (WithBot (B
/-- Restrict a prepartition to a box. -/
def restrict (π : Prepartition I) (J : Box ι) : Prepartition J :=
ofWithBot (π.boxes.image fun J' => J ⊓ J')
- (fun J' hJ' => by
- rcases Finset.mem_image.1 hJ' with ⟨J', -, rfl⟩
- exact inf_le_left)
+ (fun J' hJ' => by rcases Finset.mem_image.1 hJ' with ⟨J', -, rfl⟩; exact inf_le_left)
(by
simp only [Set.Pairwise, on_fun, Finset.mem_coe, Finset.mem_image]
rintro _ ⟨J₁, h₁, rfl⟩ _ ⟨J₂, h₂, rfl⟩ Hne
- have : J₁ ≠ J₂ := by
- rintro rfl
- exact Hne rfl
+ have : J₁ ≠ J₂ := by rintro rfl; exact Hne rfl
exact ((box.disjoint_coe.2 <| π.disjoint_coe_of_mem h₁ h₂ this).inf_left' _).inf_right' _)
#align box_integral.prepartition.restrict BoxIntegral.Prepartition.restrict
-/
@@ -826,8 +810,7 @@ theorem restrict_biUnion (πi : ∀ J, Prepartition J) (hJ : J ∈ π) :
exact WithBot.coe_le_coe.2 (le_of_mem _ h₁)
· simp only [Union_restrict, Union_bUnion, Set.subset_def, Set.mem_inter_iff, Set.mem_iUnion]
rintro x ⟨hxJ, J₁, h₁, hx⟩
- obtain rfl : J = J₁
- exact π.eq_of_mem_of_mem hJ h₁ hxJ (Union_subset _ hx)
+ obtain rfl : J = J₁; exact π.eq_of_mem_of_mem hJ h₁ hxJ (Union_subset _ hx)
exact hx
#align box_integral.prepartition.restrict_bUnion BoxIntegral.Prepartition.restrict_biUnion
-/
@@ -842,10 +825,8 @@ theorem biUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
π.biUnion πi ≤ π' ↔ ∀ J ∈ π, πi J ≤ π'.restrict J :=
by
fconstructor <;> intro H J hJ
- · rw [← π.restrict_bUnion πi hJ]
- exact restrict_mono H
- · rw [mem_bUnion] at hJ
- rcases hJ with ⟨J₁, h₁, hJ⟩
+ · rw [← π.restrict_bUnion πi hJ]; exact restrict_mono H
+ · rw [mem_bUnion] at hJ; rcases hJ with ⟨J₁, h₁, hJ⟩
rcases H J₁ h₁ hJ with ⟨J₂, h₂, Hle⟩
rcases π'.mem_restrict.mp h₂ with ⟨J₃, h₃, H⟩
exact ⟨J₃, h₃, Hle.trans <| WithBot.coe_le_coe.1 <| H.trans_le inf_le_right⟩
@@ -861,8 +842,7 @@ theorem le_biUnion_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
π' ≤ π.biUnion πi ↔ π' ≤ π ∧ ∀ J ∈ π, π'.restrict J ≤ πi J :=
by
refine' ⟨fun H => ⟨H.trans (π.bUnion_le πi), fun J hJ => _⟩, _⟩
- · rw [← π.restrict_bUnion πi hJ]
- exact restrict_mono H
+ · rw [← π.restrict_bUnion πi hJ]; exact restrict_mono H
· rintro ⟨H, Hi⟩ J' hJ'
rcases H hJ' with ⟨J, hJ, hle⟩
have : J' ∈ π'.restrict J :=
@@ -940,9 +920,7 @@ theorem filter_le (π : Prepartition I) (p : Box ι → Prop) : π.filterₓ p
#align box_integral.prepartition.filter_le BoxIntegral.Prepartition.filter_le
#print BoxIntegral.Prepartition.filter_of_true /-
-theorem filter_of_true {p : Box ι → Prop} (hp : ∀ J ∈ π, p J) : π.filterₓ p = π :=
- by
- ext J
+theorem filter_of_true {p : Box ι → Prop} (hp : ∀ J ∈ π, p J) : π.filterₓ p = π := by ext J;
simpa using hp J
#align box_integral.prepartition.filter_of_true BoxIntegral.Prepartition.filter_of_true
-/
@@ -966,10 +944,8 @@ theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
by
simp only [prepartition.Union]
convert(@Set.biUnion_diff_biUnion_eq _ (box ι) π.boxes (π.filter p).boxes coe _).symm
- · ext (J x)
- simp (config := { contextual := true })
- · convert π.pairwise_disjoint
- simp
+ · ext (J x); simp (config := { contextual := true })
+ · convert π.pairwise_disjoint; simp
#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_not
/- warning: box_integral.prepartition.sum_fiberwise -> BoxIntegral.Prepartition.sum_fiberwise is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -267,7 +267,7 @@ theorem bot_boxes : (⊥ : Prepartition I).boxes = ∅ :=
lean 3 declaration is
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (x : ι -> Real), Set.InjOn.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => setOf.{u1} ι (fun (i : ι) => Eq.{1} Real (BoxIntegral.Box.lower.{u1} ι J i) (x i))) (setOf.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => And (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) (Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.hasLe.{u1} ι) (Set.hasLe.{u1} (ι -> Real))) (fun (_x : RelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) => (BoxIntegral.Box.{u1} ι) -> (Set.{u1} (ι -> Real))) (RelEmbedding.hasCoeToFun.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) (BoxIntegral.Box.Icc.{u1} ι) J))))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (x : ι -> Real), Set.InjOn.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => setOf.{u1} ι (fun (i : ι) => Eq.{1} Real (BoxIntegral.Box.lower.{u1} ι J i) (x i))) (setOf.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) (Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (BoxIntegral.Box.Icc.{u1} ι) J))))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (x : ι -> Real), Set.InjOn.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => setOf.{u1} ι (fun (i : ι) => Eq.{1} Real (BoxIntegral.Box.lower.{u1} ι J i) (x i))) (setOf.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) (Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (BoxIntegral.Box.Icc.{u1} ι) J))))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.inj_on_set_of_mem_Icc_set_of_lower_eq BoxIntegral.Prepartition.injOn_setOf_mem_Icc_setOf_lower_eqₓ'. -/
/-- An auxiliary lemma used to prove that the same point can't belong to more than
`2 ^ fintype.card ι` closed boxes of a prepartition. -/
@@ -295,7 +295,7 @@ theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
lean 3 declaration is
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι] (x : ι -> Real), LE.le.{0} Nat Nat.hasLe (Finset.card.{u1} (BoxIntegral.Box.{u1} ι) (Finset.filter.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.hasLe.{u1} ι) (Set.hasLe.{u1} (ι -> Real))) (fun (_x : RelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) => (BoxIntegral.Box.{u1} ι) -> (Set.{u1} (ι -> Real))) (RelEmbedding.hasCoeToFun.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) (BoxIntegral.Box.Icc.{u1} ι) J)) (fun (a : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (J : BoxIntegral.Box.{u1} ι) => Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.hasLe.{u1} ι) (Set.hasLe.{u1} (ι -> Real))) (fun (_x : RelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) => (BoxIntegral.Box.{u1} ι) -> (Set.{u1} (ι -> Real))) (RelEmbedding.hasCoeToFun.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) (BoxIntegral.Box.Icc.{u1} ι) J)) a)) (BoxIntegral.Prepartition.boxes.{u1} ι I π))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fintype.card.{u1} ι _inst_1))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι] (x : ι -> Real), LE.le.{0} Nat instLENat (Finset.card.{u1} (BoxIntegral.Box.{u1} ι) (Finset.filter.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (BoxIntegral.Box.Icc.{u1} ι) J)) (fun (a : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (J : BoxIntegral.Box.{u1} ι) => Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (BoxIntegral.Box.Icc.{u1} ι) J)) a)) (BoxIntegral.Prepartition.boxes.{u1} ι I π))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) (Fintype.card.{u1} ι _inst_1))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι] (x : ι -> Real), LE.le.{0} Nat instLENat (Finset.card.{u1} (BoxIntegral.Box.{u1} ι) (Finset.filter.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (BoxIntegral.Box.Icc.{u1} ι) J)) (fun (a : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (J : BoxIntegral.Box.{u1} ι) => Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (BoxIntegral.Box.Icc.{u1} ι) J)) a)) (BoxIntegral.Prepartition.boxes.{u1} ι I π))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) (Fintype.card.{u1} ι _inst_1))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.card_filter_mem_Icc_le BoxIntegral.Prepartition.card_filter_mem_Icc_leₓ'. -/
/-- The set of boxes of a prepartition that contain `x` in their closures has cardinality
at most `2 ^ fintype.card ι`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -533,12 +533,7 @@ theorem iUnion_biUnion (πi : ∀ J : Box ι, Prepartition J) :
#align box_integral.prepartition.Union_bUnion BoxIntegral.Prepartition.iUnion_biUnion
-/
-/- warning: box_integral.prepartition.sum_bUnion_boxes -> BoxIntegral.Prepartition.sum_biUnion_boxes is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Finset.biUnion.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b)) (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.boxes.{u1} ι J (πi J))) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι J (πi J)) (fun (J' : BoxIntegral.Box.{u1} ι) => f J')))
-but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Finset.biUnion.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEqOfDecidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b) (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.boxes.{u1} ι J (πi J))) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι J (πi J)) (fun (J' : BoxIntegral.Box.{u1} ι) => f J')))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_bUnion_boxes BoxIntegral.Prepartition.sum_biUnion_boxesₓ'. -/
+#print BoxIntegral.Prepartition.sum_biUnion_boxes /-
@[simp]
theorem sum_biUnion_boxes {M : Type _} [AddCommMonoid M] (π : Prepartition I)
(πi : ∀ J, Prepartition J) (f : Box ι → M) :
@@ -548,6 +543,7 @@ theorem sum_biUnion_boxes {M : Type _} [AddCommMonoid M] (π : Prepartition I)
refine' Finset.sum_biUnion fun J₁ h₁ J₂ h₂ hne => Finset.disjoint_left.2 fun J' h₁' h₂' => _
exact hne (π.eq_of_le_of_le h₁ h₂ ((πi J₁).le_of_mem h₁') ((πi J₂).le_of_mem h₂'))
#align box_integral.prepartition.sum_bUnion_boxes BoxIntegral.Prepartition.sum_biUnion_boxes
+-/
#print BoxIntegral.Prepartition.biUnionIndex /-
/-- Given a box `J ∈ π.bUnion πi`, returns the box `J' ∈ π` such that `J ∈ πi J'`.
@@ -614,7 +610,7 @@ theorem biUnion_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : B
/- warning: box_integral.prepartition.of_with_bot -> BoxIntegral.Prepartition.ofWithBot is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))), (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) -> (Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))) -> (BoxIntegral.Prepartition.{u1} ι I)
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))), (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) -> (Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))) -> (BoxIntegral.Prepartition.{u1} ι I)
but is expected to have type
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))), (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))) -> (Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))) -> (BoxIntegral.Prepartition.{u1} ι I)
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.of_with_bot BoxIntegral.Prepartition.ofWithBotₓ'. -/
@@ -636,7 +632,7 @@ def ofWithBot (boxes : Finset (WithBot (Box ι)))
/- warning: box_integral.prepartition.mem_of_with_bot -> BoxIntegral.Prepartition.mem_ofWithBot is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {h₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {h₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes h₁ h₂)) (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) boxes)
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {h₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {h₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes h₁ h₂)) (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) boxes)
but is expected to have type
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {h₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {h₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes h₁ h₂)) (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J) boxes)
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_of_with_bot BoxIntegral.Prepartition.mem_ofWithBotₓ'. -/
@@ -648,7 +644,7 @@ theorem mem_ofWithBot {boxes : Finset (WithBot (Box ι))} {h₁ h₂} :
/- warning: box_integral.prepartition.Union_of_with_bot -> BoxIntegral.Prepartition.iUnion_ofWithBot is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (Set.iUnion.{u1, succ u1} (ι -> Real) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Set.iUnion.{u1, 0} (ι -> Real) (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.withBotCoe.{u1} ι))) J)))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (Set.iUnion.{u1, succ u1} (ι -> Real) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Set.iUnion.{u1, 0} (ι -> Real) (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.withBotCoe.{u1} ι))) J)))
but is expected to have type
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (Set.iUnion.{u1, succ u1} (ι -> Real) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Set.iUnion.{u1, 0} (ι -> Real) (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) (fun (H : Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) => BoxIntegral.Box.withBotToSet.{u1} ι J)))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.iUnion_ofWithBotₓ'. -/
@@ -666,7 +662,7 @@ theorem iUnion_ofWithBot (boxes : Finset (WithBot (Box ι)))
/- warning: box_integral.prepartition.of_with_bot_le -> BoxIntegral.Prepartition.ofWithBot_le is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasBot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J'))))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint) π)
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasBot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J'))))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint) π)
but is expected to have type
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.bot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π) (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J'))))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint) π)
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.of_with_bot_le BoxIntegral.Prepartition.ofWithBot_leₓ'. -/
@@ -683,7 +679,7 @@ theorem ofWithBot_le {boxes : Finset (WithBot (Box ι))}
/- warning: box_integral.prepartition.le_of_with_bot -> BoxIntegral.Prepartition.le_ofWithBot is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Exists.{0} (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Exists.{0} (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint))
but is expected to have type
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => And (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes) (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J) J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_of_with_bot BoxIntegral.Prepartition.le_ofWithBotₓ'. -/
@@ -700,7 +696,7 @@ theorem le_ofWithBot {boxes : Finset (WithBot (Box ι))}
/- warning: box_integral.prepartition.of_with_bot_mono -> BoxIntegral.Prepartition.ofWithBot_mono is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {boxes₁ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint₁ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes₁) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))} {boxes₂ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₂ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₂) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes₂) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasBot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Exists.{0} (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes₂) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes₂) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₁ le_of_mem₁ pairwise_disjoint₁) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₂ le_of_mem₂ pairwise_disjoint₂))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {boxes₁ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint₁ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes₁) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))} {boxes₂ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₂ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₂) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes₂) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasBot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Exists.{0} (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes₂) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes₂) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₁ le_of_mem₁ pairwise_disjoint₁) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₂ le_of_mem₂ pairwise_disjoint₂))
but is expected to have type
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {boxes₁ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint₁ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes₁) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))} {boxes₂ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₂ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₂) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes₂) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.bot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => And (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes₂) (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₁ le_of_mem₁ pairwise_disjoint₁) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₂ le_of_mem₂ pairwise_disjoint₂))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.of_with_bot_mono BoxIntegral.Prepartition.ofWithBot_monoₓ'. -/
@@ -717,7 +713,7 @@ theorem ofWithBot_mono {boxes₁ : Finset (WithBot (Box ι))}
/- warning: box_integral.prepartition.sum_of_with_bot -> BoxIntegral.Prepartition.sum_ofWithBot is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) _inst_1 boxes (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Option.elim'.{u1, u2} (BoxIntegral.Box.{u1} ι) M (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))))) f J))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toHasLe.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) _inst_1 boxes (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Option.elim'.{u1, u2} (BoxIntegral.Box.{u1} ι) M (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))))) f J))
but is expected to have type
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) _inst_1 boxes (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Option.elim'.{u1, u2} (BoxIntegral.Box.{u1} ι) M (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) f J))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_of_with_bot BoxIntegral.Prepartition.sum_ofWithBotₓ'. -/
@@ -1034,7 +1030,7 @@ theorem iUnion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
lean 3 declaration is
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasUnion.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b))) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instUnionFinset.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEqOfDecidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instUnionFinset.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b))) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_disj_union_boxes BoxIntegral.Prepartition.sum_disj_union_boxesₓ'. -/
@[simp]
theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.iUnion π₂.iUnion)
@@ -1055,17 +1051,25 @@ def distortion : ℝ≥0 :=
#align box_integral.prepartition.distortion BoxIntegral.Prepartition.distortion
-/
-#print BoxIntegral.Prepartition.distortion_le_of_mem /-
+/- warning: box_integral.prepartition.distortion_le_of_mem -> BoxIntegral.Prepartition.distortion_le_of_mem is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι], (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (BoxIntegral.Box.distortion.{u1} ι _inst_1 J) (BoxIntegral.Prepartition.distortion.{u1} ι I π _inst_1))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι], (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (BoxIntegral.Box.distortion.{u1} ι _inst_1 J) (BoxIntegral.Prepartition.distortion.{u1} ι I π _inst_1))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_le_of_mem BoxIntegral.Prepartition.distortion_le_of_memₓ'. -/
theorem distortion_le_of_mem (h : J ∈ π) : J.distortion ≤ π.distortion :=
le_sup h
#align box_integral.prepartition.distortion_le_of_mem BoxIntegral.Prepartition.distortion_le_of_mem
--/
-#print BoxIntegral.Prepartition.distortion_le_iff /-
+/- warning: box_integral.prepartition.distortion_le_iff -> BoxIntegral.Prepartition.distortion_le_iff is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι] {c : NNReal}, Iff (LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (BoxIntegral.Prepartition.distortion.{u1} ι I π _inst_1) c) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (BoxIntegral.Box.distortion.{u1} ι _inst_1 J) c))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι] {c : NNReal}, Iff (LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (BoxIntegral.Prepartition.distortion.{u1} ι I π _inst_1) c) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (BoxIntegral.Box.distortion.{u1} ι _inst_1 J) c))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_le_iff BoxIntegral.Prepartition.distortion_le_iffₓ'. -/
theorem distortion_le_iff {c : ℝ≥0} : π.distortion ≤ c ↔ ∀ J ∈ π, Box.distortion J ≤ c :=
Finset.sup_le_iff
#align box_integral.prepartition.distortion_le_iff BoxIntegral.Prepartition.distortion_le_iff
--/
/- warning: box_integral.prepartition.distortion_bUnion -> BoxIntegral.Prepartition.distortion_biUnion is a dubious translation:
lean 3 declaration is
@@ -1237,7 +1241,7 @@ theorem iUnion_biUnion_partition (h : ∀ J ∈ π, (πi J).IsPartition) :
lean 3 declaration is
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.subst.{succ u1} (Set.{u1} (ι -> Real)) (fun (_x : Set.{u1} (ι -> Real)) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) _x) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) h) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))))))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.rec.{0, succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) (fun (x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575 : Set.{u1} (ι -> Real)) (h._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11576 : Eq.{succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Box.toSet.{u1} ι I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.instBooleanAlgebraSet.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) h)))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.rec.{0, succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) (fun (x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11562 : Set.{u1} (ι -> Real)) (h._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11563 : Eq.{succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11562) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11562) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Box.toSet.{u1} ι I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.instBooleanAlgebraSet.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) h)))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.is_partition_disj_union_of_eq_diff BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiffₓ'. -/
theorem isPartitionDisjUnionOfEqDiff (h : π₂.iUnion = I \ π₁.iUnion) :
IsPartition (π₁.disjUnion π₂ <| h.symm ▸ disjoint_sdiff_self_right) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/7ad820c4997738e2f542f8a20f32911f52020e26
@@ -537,7 +537,7 @@ theorem iUnion_biUnion (πi : ∀ J : Box ι, Prepartition J) :
lean 3 declaration is
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Finset.biUnion.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b)) (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.boxes.{u1} ι J (πi J))) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι J (πi J)) (fun (J' : BoxIntegral.Box.{u1} ι) => f J')))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Finset.biUnion.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEq_of_decidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b) (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.boxes.{u1} ι J (πi J))) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι J (πi J)) (fun (J' : BoxIntegral.Box.{u1} ι) => f J')))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Finset.biUnion.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEqOfDecidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b) (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.boxes.{u1} ι J (πi J))) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι J (πi J)) (fun (J' : BoxIntegral.Box.{u1} ι) => f J')))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_bUnion_boxes BoxIntegral.Prepartition.sum_biUnion_boxesₓ'. -/
@[simp]
theorem sum_biUnion_boxes {M : Type _} [AddCommMonoid M] (π : Prepartition I)
@@ -1034,7 +1034,7 @@ theorem iUnion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
lean 3 declaration is
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasUnion.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b))) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instUnionFinset.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEq_of_decidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instUnionFinset.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEqOfDecidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_disj_union_boxes BoxIntegral.Prepartition.sum_disj_union_boxesₓ'. -/
@[simp]
theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.iUnion π₂.iUnion)
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -309,121 +309,121 @@ theorem card_filter_mem_Icc_le [Fintype ι] (x : ι → ℝ) :
simpa only [Finset.mem_filter] using π.inj_on_set_of_mem_Icc_set_of_lower_eq x
#align box_integral.prepartition.card_filter_mem_Icc_le BoxIntegral.Prepartition.card_filter_mem_Icc_le
-#print BoxIntegral.Prepartition.unionᵢ /-
+#print BoxIntegral.Prepartition.iUnion /-
/-- Given a prepartition `π : box_integral.prepartition I`, `π.Union` is the part of `I` covered by
the boxes of `π`. -/
-protected def unionᵢ : Set (ι → ℝ) :=
+protected def iUnion : Set (ι → ℝ) :=
⋃ J ∈ π, ↑J
-#align box_integral.prepartition.Union BoxIntegral.Prepartition.unionᵢ
+#align box_integral.prepartition.Union BoxIntegral.Prepartition.iUnion
-/
-#print BoxIntegral.Prepartition.unionᵢ_def /-
-theorem unionᵢ_def : π.unionᵢ = ⋃ J ∈ π, ↑J :=
+#print BoxIntegral.Prepartition.iUnion_def /-
+theorem iUnion_def : π.iUnion = ⋃ J ∈ π, ↑J :=
rfl
-#align box_integral.prepartition.Union_def BoxIntegral.Prepartition.unionᵢ_def
+#align box_integral.prepartition.Union_def BoxIntegral.Prepartition.iUnion_def
-/
-#print BoxIntegral.Prepartition.unionᵢ_def' /-
-theorem unionᵢ_def' : π.unionᵢ = ⋃ J ∈ π.boxes, ↑J :=
+#print BoxIntegral.Prepartition.iUnion_def' /-
+theorem iUnion_def' : π.iUnion = ⋃ J ∈ π.boxes, ↑J :=
rfl
-#align box_integral.prepartition.Union_def' BoxIntegral.Prepartition.unionᵢ_def'
+#align box_integral.prepartition.Union_def' BoxIntegral.Prepartition.iUnion_def'
-/
-/- warning: box_integral.prepartition.mem_Union -> BoxIntegral.Prepartition.mem_unionᵢ is a dubious translation:
+/- warning: box_integral.prepartition.mem_Union -> BoxIntegral.Prepartition.mem_iUnion is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {x : ι -> Real}, Iff (Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) => Membership.Mem.{u1, u1} (ι -> Real) (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasMem.{u1} ι) x J)))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {x : ι -> Real}, Iff (Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (BoxIntegral.Prepartition.iUnion.{u1} ι I π)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) => Membership.Mem.{u1, u1} (ι -> Real) (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasMem.{u1} ι) x J)))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {x : ι -> Real}, Iff (Membership.mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.instMembershipSet.{u1} (ι -> Real)) x (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) (Membership.mem.{u1, u1} (ι -> Real) (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instMembershipForAllRealBox.{u1} ι) x J)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_Union BoxIntegral.Prepartition.mem_unionᵢₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {x : ι -> Real}, Iff (Membership.mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.instMembershipSet.{u1} (ι -> Real)) x (BoxIntegral.Prepartition.iUnion.{u1} ι I π)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) (Membership.mem.{u1, u1} (ι -> Real) (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instMembershipForAllRealBox.{u1} ι) x J)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_Union BoxIntegral.Prepartition.mem_iUnionₓ'. -/
@[simp]
-theorem mem_unionᵢ : x ∈ π.unionᵢ ↔ ∃ J ∈ π, x ∈ J :=
- Set.mem_unionᵢ₂
-#align box_integral.prepartition.mem_Union BoxIntegral.Prepartition.mem_unionᵢ
+theorem mem_iUnion : x ∈ π.iUnion ↔ ∃ J ∈ π, x ∈ J :=
+ Set.mem_iUnion₂
+#align box_integral.prepartition.mem_Union BoxIntegral.Prepartition.mem_iUnion
-#print BoxIntegral.Prepartition.unionᵢ_single /-
+#print BoxIntegral.Prepartition.iUnion_single /-
@[simp]
-theorem unionᵢ_single (h : J ≤ I) : (single I J h).unionᵢ = J := by simp [Union_def]
-#align box_integral.prepartition.Union_single BoxIntegral.Prepartition.unionᵢ_single
+theorem iUnion_single (h : J ≤ I) : (single I J h).iUnion = J := by simp [Union_def]
+#align box_integral.prepartition.Union_single BoxIntegral.Prepartition.iUnion_single
-/
-/- warning: box_integral.prepartition.Union_top -> BoxIntegral.Prepartition.unionᵢ_top is a dubious translation:
+/- warning: box_integral.prepartition.Union_top -> BoxIntegral.Prepartition.iUnion_top is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I)
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I)
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I)))) (BoxIntegral.Box.toSet.{u1} ι I)
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.unionᵢ_topₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I)))) (BoxIntegral.Box.toSet.{u1} ι I)
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.iUnion_topₓ'. -/
@[simp]
-theorem unionᵢ_top : (⊤ : Prepartition I).unionᵢ = I := by simp [prepartition.Union]
-#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.unionᵢ_top
+theorem iUnion_top : (⊤ : Prepartition I).iUnion = I := by simp [prepartition.Union]
+#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.iUnion_top
-/- warning: box_integral.prepartition.Union_eq_empty -> BoxIntegral.Prepartition.unionᵢ_eq_empty is a dubious translation:
+/- warning: box_integral.prepartition.Union_eq_empty -> BoxIntegral.Prepartition.iUnion_eq_empty is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.hasEmptyc.{u1} (ι -> Real)))) (Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) π₁ (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I))))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.hasEmptyc.{u1} (ι -> Real)))) (Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) π₁ (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I))))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.instEmptyCollectionSet.{u1} (ι -> Real)))) (Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) π₁ (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.unionᵢ_eq_emptyₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.instEmptyCollectionSet.{u1} (ι -> Real)))) (Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) π₁ (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.iUnion_eq_emptyₓ'. -/
@[simp]
-theorem unionᵢ_eq_empty : π₁.unionᵢ = ∅ ↔ π₁ = ⊥ := by
+theorem iUnion_eq_empty : π₁.iUnion = ∅ ↔ π₁ = ⊥ := by
simp [← injective_boxes.eq_iff, Finset.ext_iff, prepartition.Union, imp_false]
-#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.unionᵢ_eq_empty
+#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.iUnion_eq_empty
-/- warning: box_integral.prepartition.Union_bot -> BoxIntegral.Prepartition.unionᵢ_bot is a dubious translation:
+/- warning: box_integral.prepartition.Union_bot -> BoxIntegral.Prepartition.iUnion_bot is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.hasEmptyc.{u1} (ι -> Real)))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.hasEmptyc.{u1} (ι -> Real)))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.instEmptyCollectionSet.{u1} (ι -> Real)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_bot BoxIntegral.Prepartition.unionᵢ_botₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.instEmptyCollectionSet.{u1} (ι -> Real)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_bot BoxIntegral.Prepartition.iUnion_botₓ'. -/
@[simp]
-theorem unionᵢ_bot : (⊥ : Prepartition I).unionᵢ = ∅ :=
- unionᵢ_eq_empty.2 rfl
-#align box_integral.prepartition.Union_bot BoxIntegral.Prepartition.unionᵢ_bot
-
-#print BoxIntegral.Prepartition.subset_unionᵢ /-
-theorem subset_unionᵢ (h : J ∈ π) : ↑J ⊆ π.unionᵢ :=
- subset_bunionᵢ_of_mem h
-#align box_integral.prepartition.subset_Union BoxIntegral.Prepartition.subset_unionᵢ
+theorem iUnion_bot : (⊥ : Prepartition I).iUnion = ∅ :=
+ iUnion_eq_empty.2 rfl
+#align box_integral.prepartition.Union_bot BoxIntegral.Prepartition.iUnion_bot
+
+#print BoxIntegral.Prepartition.subset_iUnion /-
+theorem subset_iUnion (h : J ∈ π) : ↑J ⊆ π.iUnion :=
+ subset_biUnion_of_mem h
+#align box_integral.prepartition.subset_Union BoxIntegral.Prepartition.subset_iUnion
-/
-#print BoxIntegral.Prepartition.unionᵢ_subset /-
-theorem unionᵢ_subset : π.unionᵢ ⊆ I :=
- unionᵢ₂_subset π.le_of_mem'
-#align box_integral.prepartition.Union_subset BoxIntegral.Prepartition.unionᵢ_subset
+#print BoxIntegral.Prepartition.iUnion_subset /-
+theorem iUnion_subset : π.iUnion ⊆ I :=
+ iUnion₂_subset π.le_of_mem'
+#align box_integral.prepartition.Union_subset BoxIntegral.Prepartition.iUnion_subset
-/
-/- warning: box_integral.prepartition.Union_mono -> BoxIntegral.Prepartition.unionᵢ_mono is a dubious translation:
+/- warning: box_integral.prepartition.Union_mono -> BoxIntegral.Prepartition.iUnion_mono is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) -> (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.hasSubset.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) -> (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.hasSubset.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) -> (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.instHasSubsetSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.unionᵢ_monoₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) -> (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.instHasSubsetSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.iUnion_monoₓ'. -/
@[mono]
-theorem unionᵢ_mono (h : π₁ ≤ π₂) : π₁.unionᵢ ⊆ π₂.unionᵢ := fun x hx =>
- let ⟨J₁, hJ₁, hx⟩ := π₁.mem_unionᵢ.1 hx
+theorem iUnion_mono (h : π₁ ≤ π₂) : π₁.iUnion ⊆ π₂.iUnion := fun x hx =>
+ let ⟨J₁, hJ₁, hx⟩ := π₁.mem_iUnion.1 hx
let ⟨J₂, hJ₂, hle⟩ := h hJ₁
- π₂.mem_unionᵢ.2 ⟨J₂, hJ₂, hle hx⟩
-#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.unionᵢ_mono
+ π₂.mem_iUnion.2 ⟨J₂, hJ₂, hle hx⟩
+#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.iUnion_mono
-/- warning: box_integral.prepartition.disjoint_boxes_of_disjoint_Union -> BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_unionᵢ is a dubious translation:
+/- warning: box_integral.prepartition.disjoint_boxes_of_disjoint_Union -> BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_iUnion is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (Disjoint.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.partialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.orderBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (Disjoint.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.partialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.orderBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (Disjoint.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.partialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instOrderBotFinsetToLEToPreorderPartialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_unionᵢₓ'. -/
-theorem disjoint_boxes_of_disjoint_unionᵢ (h : Disjoint π₁.unionᵢ π₂.unionᵢ) :
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (Disjoint.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.partialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instOrderBotFinsetToLEToPreorderPartialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_iUnionₓ'. -/
+theorem disjoint_boxes_of_disjoint_iUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
Disjoint π₁.boxes π₂.boxes :=
Finset.disjoint_left.2 fun J h₁ h₂ =>
- Disjoint.le_bot (h.mono (π₁.subset_unionᵢ h₁) (π₂.subset_unionᵢ h₂)) ⟨J.upper_mem, J.upper_mem⟩
-#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_unionᵢ
+ Disjoint.le_bot (h.mono (π₁.subset_iUnion h₁) (π₂.subset_iUnion h₂)) ⟨J.upper_mem, J.upper_mem⟩
+#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_iUnion
-/- warning: box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset -> BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_unionᵢ_subset is a dubious translation:
+/- warning: box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset -> BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subset is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) (And (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι) J J'))) (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.hasSubset.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) (And (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι) J J'))) (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.hasSubset.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) (And (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Box.toSet.{u1} ι J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) J J'))) (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.instHasSubsetSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_unionᵢ_subsetₓ'. -/
-theorem le_iff_nonempty_imp_le_and_unionᵢ_subset :
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) (And (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Box.toSet.{u1} ι J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) J J'))) (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.instHasSubsetSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subsetₓ'. -/
+theorem le_iff_nonempty_imp_le_and_iUnion_subset :
π₁ ≤ π₂ ↔
- (∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J') ∧ π₁.unionᵢ ⊆ π₂.unionᵢ :=
+ (∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J') ∧ π₁.iUnion ⊆ π₂.iUnion :=
by
fconstructor
· refine' fun H => ⟨fun J hJ J' hJ' Hne => _, Union_mono H⟩
@@ -434,171 +434,171 @@ theorem le_iff_nonempty_imp_le_and_unionᵢ_subset :
simp only [Set.subset_def, mem_Union] at HU
rcases HU J.upper ⟨J, hJ, J.upper_mem⟩ with ⟨J₂, hJ₂, hx⟩
exact ⟨J₂, hJ₂, H _ hJ _ hJ₂ ⟨_, J.upper_mem, hx⟩⟩
-#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_unionᵢ_subset
+#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subset
-#print BoxIntegral.Prepartition.eq_of_boxes_subset_unionᵢ_superset /-
-theorem eq_of_boxes_subset_unionᵢ_superset (h₁ : π₁.boxes ⊆ π₂.boxes) (h₂ : π₂.unionᵢ ⊆ π₁.unionᵢ) :
+#print BoxIntegral.Prepartition.eq_of_boxes_subset_iUnion_superset /-
+theorem eq_of_boxes_subset_iUnion_superset (h₁ : π₁.boxes ⊆ π₂.boxes) (h₂ : π₂.iUnion ⊆ π₁.iUnion) :
π₁ = π₂ :=
(le_antisymm fun J hJ => ⟨J, h₁ hJ, le_rfl⟩) <|
- le_iff_nonempty_imp_le_and_unionᵢ_subset.2
+ le_iff_nonempty_imp_le_and_iUnion_subset.2
⟨fun J₁ hJ₁ J₂ hJ₂ Hne =>
(π₂.eq_of_mem_of_mem hJ₁ (h₁ hJ₂) Hne.choose_spec.1 Hne.choose_spec.2).le, h₂⟩
-#align box_integral.prepartition.eq_of_boxes_subset_Union_superset BoxIntegral.Prepartition.eq_of_boxes_subset_unionᵢ_superset
+#align box_integral.prepartition.eq_of_boxes_subset_Union_superset BoxIntegral.Prepartition.eq_of_boxes_subset_iUnion_superset
-/
-#print BoxIntegral.Prepartition.bunionᵢ /-
+#print BoxIntegral.Prepartition.biUnion /-
/-- Given a prepartition `π` of a box `I` and a collection of prepartitions `πi J` of all boxes
`J ∈ π`, returns the prepartition of `I` into the union of the boxes of all `πi J`.
Though we only use the values of `πi` on the boxes of `π`, we require `πi` to be a globally defined
function. -/
@[simps]
-def bunionᵢ (πi : ∀ J : Box ι, Prepartition J) : Prepartition I
+def biUnion (πi : ∀ J : Box ι, Prepartition J) : Prepartition I
where
- boxes := π.boxes.bunionᵢ fun J => (πi J).boxes
+ boxes := π.boxes.biUnion fun J => (πi J).boxes
le_of_mem' J hJ :=
by
- simp only [Finset.mem_bunionᵢ, exists_prop, mem_boxes] at hJ
+ simp only [Finset.mem_biUnion, exists_prop, mem_boxes] at hJ
rcases hJ with ⟨J', hJ', hJ⟩
exact ((πi J').le_of_mem hJ).trans (π.le_of_mem hJ')
PairwiseDisjoint :=
by
- simp only [Set.Pairwise, Finset.mem_coe, Finset.mem_bunionᵢ]
+ simp only [Set.Pairwise, Finset.mem_coe, Finset.mem_biUnion]
rintro J₁' ⟨J₁, hJ₁, hJ₁'⟩ J₂' ⟨J₂, hJ₂, hJ₂'⟩ Hne
rw [Function.onFun, Set.disjoint_left]
rintro x hx₁ hx₂; apply Hne
obtain rfl : J₁ = J₂
exact π.eq_of_mem_of_mem hJ₁ hJ₂ ((πi J₁).le_of_mem hJ₁' hx₁) ((πi J₂).le_of_mem hJ₂' hx₂)
exact (πi J₁).eq_of_mem_of_mem hJ₁' hJ₂' hx₁ hx₂
-#align box_integral.prepartition.bUnion BoxIntegral.Prepartition.bunionᵢ
+#align box_integral.prepartition.bUnion BoxIntegral.Prepartition.biUnion
-/
variable {πi πi₁ πi₂ : ∀ J : Box ι, Prepartition J}
-/- warning: box_integral.prepartition.mem_bUnion -> BoxIntegral.Prepartition.mem_bunionᵢ is a dubious translation:
+/- warning: box_integral.prepartition.mem_bUnion -> BoxIntegral.Prepartition.mem_biUnion is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J') (BoxIntegral.Prepartition.hasMem.{u1} ι J') J (πi J'))))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J') (BoxIntegral.Prepartition.hasMem.{u1} ι J') J (πi J'))))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π) (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J') (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι J') J (πi J'))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_bunionᵢₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π) (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J') (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι J') J (πi J'))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_biUnionₓ'. -/
@[simp]
-theorem mem_bunionᵢ : J ∈ π.bunionᵢ πi ↔ ∃ J' ∈ π, J ∈ πi J' := by simp [bUnion]
-#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_bunionᵢ
+theorem mem_biUnion : J ∈ π.biUnion πi ↔ ∃ J' ∈ π, J ∈ πi J' := by simp [bUnion]
+#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_biUnion
-/- warning: box_integral.prepartition.bUnion_le -> BoxIntegral.Prepartition.bunionᵢ_le is a dubious translation:
+/- warning: box_integral.prepartition.bUnion_le -> BoxIntegral.Prepartition.biUnion_le is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) π
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) π
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) π
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.bunionᵢ_leₓ'. -/
-theorem bunionᵢ_le (πi : ∀ J, Prepartition J) : π.bunionᵢ πi ≤ π := fun J hJ =>
- let ⟨J', hJ', hJ⟩ := π.mem_bunionᵢ.1 hJ
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) π
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.biUnion_leₓ'. -/
+theorem biUnion_le (πi : ∀ J, Prepartition J) : π.biUnion πi ≤ π := fun J hJ =>
+ let ⟨J', hJ', hJ⟩ := π.mem_biUnion.1 hJ
⟨J', hJ', (πi J').le_of_mem hJ⟩
-#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.bunionᵢ_le
+#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.biUnion_le
-/- warning: box_integral.prepartition.bUnion_top -> BoxIntegral.Prepartition.bunionᵢ_top is a dubious translation:
+/- warning: box_integral.prepartition.bUnion_top -> BoxIntegral.Prepartition.biUnion_top is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π (fun (_x : BoxIntegral.Box.{u1} ι) => Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (BoxIntegral.Prepartition.hasLe.{u1} ι _x) (BoxIntegral.Prepartition.orderTop.{u1} ι _x)))) π
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π (fun (_x : BoxIntegral.Box.{u1} ι) => Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (BoxIntegral.Prepartition.hasLe.{u1} ι _x) (BoxIntegral.Prepartition.orderTop.{u1} ι _x)))) π
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π (fun (_x : BoxIntegral.Box.{u1} ι) => Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι _x) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι _x)))) π
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.bunionᵢ_topₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π (fun (_x : BoxIntegral.Box.{u1} ι) => Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι _x) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι _x)))) π
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.biUnion_topₓ'. -/
@[simp]
-theorem bunionᵢ_top : (π.bunionᵢ fun _ => ⊤) = π :=
+theorem biUnion_top : (π.biUnion fun _ => ⊤) = π :=
by
ext
simp
-#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.bunionᵢ_top
+#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.biUnion_top
-#print BoxIntegral.Prepartition.bunionᵢ_congr /-
+#print BoxIntegral.Prepartition.biUnion_congr /-
@[congr]
-theorem bunionᵢ_congr (h : π₁ = π₂) (hi : ∀ J ∈ π₁, πi₁ J = πi₂ J) :
- π₁.bunionᵢ πi₁ = π₂.bunionᵢ πi₂ := by
+theorem biUnion_congr (h : π₁ = π₂) (hi : ∀ J ∈ π₁, πi₁ J = πi₂ J) :
+ π₁.biUnion πi₁ = π₂.biUnion πi₂ := by
subst π₂
ext J
simp (config := { contextual := true }) [hi]
-#align box_integral.prepartition.bUnion_congr BoxIntegral.Prepartition.bunionᵢ_congr
+#align box_integral.prepartition.bUnion_congr BoxIntegral.Prepartition.biUnion_congr
-/
-#print BoxIntegral.Prepartition.bunionᵢ_congr_of_le /-
-theorem bunionᵢ_congr_of_le (h : π₁ = π₂) (hi : ∀ J ≤ I, πi₁ J = πi₂ J) :
- π₁.bunionᵢ πi₁ = π₂.bunionᵢ πi₂ :=
- bunionᵢ_congr h fun J hJ => hi J (π₁.le_of_mem hJ)
-#align box_integral.prepartition.bUnion_congr_of_le BoxIntegral.Prepartition.bunionᵢ_congr_of_le
+#print BoxIntegral.Prepartition.biUnion_congr_of_le /-
+theorem biUnion_congr_of_le (h : π₁ = π₂) (hi : ∀ J ≤ I, πi₁ J = πi₂ J) :
+ π₁.biUnion πi₁ = π₂.biUnion πi₂ :=
+ biUnion_congr h fun J hJ => hi J (π₁.le_of_mem hJ)
+#align box_integral.prepartition.bUnion_congr_of_le BoxIntegral.Prepartition.biUnion_congr_of_le
-/
-#print BoxIntegral.Prepartition.unionᵢ_bunionᵢ /-
+#print BoxIntegral.Prepartition.iUnion_biUnion /-
@[simp]
-theorem unionᵢ_bunionᵢ (πi : ∀ J : Box ι, Prepartition J) :
- (π.bunionᵢ πi).unionᵢ = ⋃ J ∈ π, (πi J).unionᵢ := by simp [prepartition.Union]
-#align box_integral.prepartition.Union_bUnion BoxIntegral.Prepartition.unionᵢ_bunionᵢ
+theorem iUnion_biUnion (πi : ∀ J : Box ι, Prepartition J) :
+ (π.biUnion πi).iUnion = ⋃ J ∈ π, (πi J).iUnion := by simp [prepartition.Union]
+#align box_integral.prepartition.Union_bUnion BoxIntegral.Prepartition.iUnion_biUnion
-/
-/- warning: box_integral.prepartition.sum_bUnion_boxes -> BoxIntegral.Prepartition.sum_bunionᵢ_boxes is a dubious translation:
+/- warning: box_integral.prepartition.sum_bUnion_boxes -> BoxIntegral.Prepartition.sum_biUnion_boxes is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Finset.bunionᵢ.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b)) (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.boxes.{u1} ι J (πi J))) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι J (πi J)) (fun (J' : BoxIntegral.Box.{u1} ι) => f J')))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Finset.biUnion.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b)) (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.boxes.{u1} ι J (πi J))) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι J (πi J)) (fun (J' : BoxIntegral.Box.{u1} ι) => f J')))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Finset.bunionᵢ.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEq_of_decidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b) (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.boxes.{u1} ι J (πi J))) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι J (πi J)) (fun (J' : BoxIntegral.Box.{u1} ι) => f J')))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_bUnion_boxes BoxIntegral.Prepartition.sum_bunionᵢ_boxesₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Finset.biUnion.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEq_of_decidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b) (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.boxes.{u1} ι J (πi J))) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι J (πi J)) (fun (J' : BoxIntegral.Box.{u1} ι) => f J')))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_bUnion_boxes BoxIntegral.Prepartition.sum_biUnion_boxesₓ'. -/
@[simp]
-theorem sum_bunionᵢ_boxes {M : Type _} [AddCommMonoid M] (π : Prepartition I)
+theorem sum_biUnion_boxes {M : Type _} [AddCommMonoid M] (π : Prepartition I)
(πi : ∀ J, Prepartition J) (f : Box ι → M) :
- (∑ J in π.boxes.bunionᵢ fun J => (πi J).boxes, f J) =
+ (∑ J in π.boxes.biUnion fun J => (πi J).boxes, f J) =
∑ J in π.boxes, ∑ J' in (πi J).boxes, f J' :=
by
- refine' Finset.sum_bunionᵢ fun J₁ h₁ J₂ h₂ hne => Finset.disjoint_left.2 fun J' h₁' h₂' => _
+ refine' Finset.sum_biUnion fun J₁ h₁ J₂ h₂ hne => Finset.disjoint_left.2 fun J' h₁' h₂' => _
exact hne (π.eq_of_le_of_le h₁ h₂ ((πi J₁).le_of_mem h₁') ((πi J₂).le_of_mem h₂'))
-#align box_integral.prepartition.sum_bUnion_boxes BoxIntegral.Prepartition.sum_bunionᵢ_boxes
+#align box_integral.prepartition.sum_bUnion_boxes BoxIntegral.Prepartition.sum_biUnion_boxes
-#print BoxIntegral.Prepartition.bunionᵢIndex /-
+#print BoxIntegral.Prepartition.biUnionIndex /-
/-- Given a box `J ∈ π.bUnion πi`, returns the box `J' ∈ π` such that `J ∈ πi J'`.
For `J ∉ π.bUnion πi`, returns `I`. -/
-def bunionᵢIndex (πi : ∀ J, Prepartition J) (J : Box ι) : Box ι :=
- if hJ : J ∈ π.bunionᵢ πi then (π.mem_bunionᵢ.1 hJ).some else I
-#align box_integral.prepartition.bUnion_index BoxIntegral.Prepartition.bunionᵢIndex
+def biUnionIndex (πi : ∀ J, Prepartition J) (J : Box ι) : Box ι :=
+ if hJ : J ∈ π.biUnion πi then (π.mem_biUnion.1 hJ).some else I
+#align box_integral.prepartition.bUnion_index BoxIntegral.Prepartition.biUnionIndex
-/
-#print BoxIntegral.Prepartition.bunionᵢIndex_mem /-
-theorem bunionᵢIndex_mem (hJ : J ∈ π.bunionᵢ πi) : π.bunionᵢIndex πi J ∈ π :=
+#print BoxIntegral.Prepartition.biUnionIndex_mem /-
+theorem biUnionIndex_mem (hJ : J ∈ π.biUnion πi) : π.biUnionIndex πi J ∈ π :=
by
rw [bUnion_index, dif_pos hJ]
exact (π.mem_bUnion.1 hJ).choose_spec.fst
-#align box_integral.prepartition.bUnion_index_mem BoxIntegral.Prepartition.bunionᵢIndex_mem
+#align box_integral.prepartition.bUnion_index_mem BoxIntegral.Prepartition.biUnionIndex_mem
-/
-#print BoxIntegral.Prepartition.bunionᵢIndex_le /-
-theorem bunionᵢIndex_le (πi : ∀ J, Prepartition J) (J : Box ι) : π.bunionᵢIndex πi J ≤ I :=
+#print BoxIntegral.Prepartition.biUnionIndex_le /-
+theorem biUnionIndex_le (πi : ∀ J, Prepartition J) (J : Box ι) : π.biUnionIndex πi J ≤ I :=
by
by_cases hJ : J ∈ π.bUnion πi
· exact π.le_of_mem (π.bUnion_index_mem hJ)
· rw [bUnion_index, dif_neg hJ]
exact le_rfl
-#align box_integral.prepartition.bUnion_index_le BoxIntegral.Prepartition.bunionᵢIndex_le
+#align box_integral.prepartition.bUnion_index_le BoxIntegral.Prepartition.biUnionIndex_le
-/
-#print BoxIntegral.Prepartition.mem_bunionᵢIndex /-
-theorem mem_bunionᵢIndex (hJ : J ∈ π.bunionᵢ πi) : J ∈ πi (π.bunionᵢIndex πi J) := by
+#print BoxIntegral.Prepartition.mem_biUnionIndex /-
+theorem mem_biUnionIndex (hJ : J ∈ π.biUnion πi) : J ∈ πi (π.biUnionIndex πi J) := by
convert(π.mem_bUnion.1 hJ).choose_spec.snd <;> exact dif_pos hJ
-#align box_integral.prepartition.mem_bUnion_index BoxIntegral.Prepartition.mem_bunionᵢIndex
+#align box_integral.prepartition.mem_bUnion_index BoxIntegral.Prepartition.mem_biUnionIndex
-/
-#print BoxIntegral.Prepartition.le_bunionᵢIndex /-
-theorem le_bunionᵢIndex (hJ : J ∈ π.bunionᵢ πi) : J ≤ π.bunionᵢIndex πi J :=
- le_of_mem _ (π.mem_bunionᵢIndex hJ)
-#align box_integral.prepartition.le_bUnion_index BoxIntegral.Prepartition.le_bunionᵢIndex
+#print BoxIntegral.Prepartition.le_biUnionIndex /-
+theorem le_biUnionIndex (hJ : J ∈ π.biUnion πi) : J ≤ π.biUnionIndex πi J :=
+ le_of_mem _ (π.mem_biUnionIndex hJ)
+#align box_integral.prepartition.le_bUnion_index BoxIntegral.Prepartition.le_biUnionIndex
-/
-#print BoxIntegral.Prepartition.bunionᵢIndex_of_mem /-
+#print BoxIntegral.Prepartition.biUnionIndex_of_mem /-
/-- Uniqueness property of `box_integral.partition.bUnion_index`. -/
-theorem bunionᵢIndex_of_mem (hJ : J ∈ π) {J'} (hJ' : J' ∈ πi J) : π.bunionᵢIndex πi J' = J :=
- have : J' ∈ π.bunionᵢ πi := π.mem_bunionᵢ.2 ⟨J, hJ, hJ'⟩
- π.eq_of_le_of_le (π.bunionᵢIndex_mem this) hJ (π.le_bunionᵢIndex this) (le_of_mem _ hJ')
-#align box_integral.prepartition.bUnion_index_of_mem BoxIntegral.Prepartition.bunionᵢIndex_of_mem
+theorem biUnionIndex_of_mem (hJ : J ∈ π) {J'} (hJ' : J' ∈ πi J) : π.biUnionIndex πi J' = J :=
+ have : J' ∈ π.biUnion πi := π.mem_biUnion.2 ⟨J, hJ, hJ'⟩
+ π.eq_of_le_of_le (π.biUnionIndex_mem this) hJ (π.le_biUnionIndex this) (le_of_mem _ hJ')
+#align box_integral.prepartition.bUnion_index_of_mem BoxIntegral.Prepartition.biUnionIndex_of_mem
-/
-#print BoxIntegral.Prepartition.bunionᵢ_assoc /-
-theorem bunionᵢ_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : Box ι, Prepartition J) :
- (π.bunionᵢ fun J => (πi J).bunionᵢ (πi' J)) =
- (π.bunionᵢ πi).bunionᵢ fun J => πi' (π.bunionᵢIndex πi J) J :=
+#print BoxIntegral.Prepartition.biUnion_assoc /-
+theorem biUnion_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : Box ι, Prepartition J) :
+ (π.biUnion fun J => (πi J).biUnion (πi' J)) =
+ (π.biUnion πi).biUnion fun J => πi' (π.biUnionIndex πi J) J :=
by
ext J
simp only [mem_bUnion, exists_prop]
@@ -609,7 +609,7 @@ theorem bunionᵢ_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J :
· rintro ⟨J₁, ⟨J₂, hJ₂, hJ₁⟩, hJ⟩
refine' ⟨J₂, hJ₂, J₁, hJ₁, _⟩
rwa [π.bUnion_index_of_mem hJ₂ hJ₁] at hJ
-#align box_integral.prepartition.bUnion_assoc BoxIntegral.Prepartition.bunionᵢ_assoc
+#align box_integral.prepartition.bUnion_assoc BoxIntegral.Prepartition.biUnion_assoc
-/
/- warning: box_integral.prepartition.of_with_bot -> BoxIntegral.Prepartition.ofWithBot is a dubious translation:
@@ -646,23 +646,23 @@ theorem mem_ofWithBot {boxes : Finset (WithBot (Box ι))} {h₁ h₂} :
mem_eraseNone
#align box_integral.prepartition.mem_of_with_bot BoxIntegral.Prepartition.mem_ofWithBot
-/- warning: box_integral.prepartition.Union_of_with_bot -> BoxIntegral.Prepartition.unionᵢ_ofWithBot is a dubious translation:
+/- warning: box_integral.prepartition.Union_of_with_bot -> BoxIntegral.Prepartition.iUnion_ofWithBot is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (Set.unionᵢ.{u1, succ u1} (ι -> Real) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Set.unionᵢ.{u1, 0} (ι -> Real) (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.withBotCoe.{u1} ι))) J)))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (Set.iUnion.{u1, succ u1} (ι -> Real) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Set.iUnion.{u1, 0} (ι -> Real) (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.withBotCoe.{u1} ι))) J)))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (Set.unionᵢ.{u1, succ u1} (ι -> Real) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Set.unionᵢ.{u1, 0} (ι -> Real) (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) (fun (H : Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) => BoxIntegral.Box.withBotToSet.{u1} ι J)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.unionᵢ_ofWithBotₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (Set.iUnion.{u1, succ u1} (ι -> Real) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Set.iUnion.{u1, 0} (ι -> Real) (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) (fun (H : Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) => BoxIntegral.Box.withBotToSet.{u1} ι J)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.iUnion_ofWithBotₓ'. -/
@[simp]
-theorem unionᵢ_ofWithBot (boxes : Finset (WithBot (Box ι)))
+theorem iUnion_ofWithBot (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
(pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint) :
- (ofWithBot boxes le_of_mem pairwise_disjoint).unionᵢ = ⋃ J ∈ boxes, ↑J :=
+ (ofWithBot boxes le_of_mem pairwise_disjoint).iUnion = ⋃ J ∈ boxes, ↑J :=
by
suffices (⋃ (J : box ι) (hJ : ↑J ∈ boxes), ↑J) = ⋃ J ∈ boxes, ↑J by
simpa [of_with_bot, prepartition.Union]
simp only [← box.bUnion_coe_eq_coe, @Union_comm _ _ (box ι), @Union_comm _ _ (@Eq _ _ _),
Union_Union_eq_right]
-#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.unionᵢ_ofWithBot
+#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.iUnion_ofWithBot
/- warning: box_integral.prepartition.of_with_bot_le -> BoxIntegral.Prepartition.ofWithBot_le is a dubious translation:
lean 3 declaration is
@@ -795,7 +795,7 @@ theorem restrict_boxes_of_le (π : Prepartition I) (h : I ≤ J) : (π.restrict
by
simp only [restrict, of_with_bot, erase_none_eq_bUnion]
refine' finset.image_bUnion.trans _
- refine' (Finset.bunionᵢ_congr rfl _).trans Finset.bunionᵢ_singleton_eq_self
+ refine' (Finset.biUnion_congr rfl _).trans Finset.biUnion_singleton_eq_self
intro J' hJ'
rw [inf_of_le_right, ← WithBot.some_eq_coe, Option.toFinset_some]
exact WithBot.coe_le_coe.2 ((π.le_of_mem hJ').trans h)
@@ -809,41 +809,41 @@ theorem restrict_self : π.restrict I = π :=
#align box_integral.prepartition.restrict_self BoxIntegral.Prepartition.restrict_self
-/
-/- warning: box_integral.prepartition.Union_restrict -> BoxIntegral.Prepartition.unionᵢ_restrict is a dubious translation:
+/- warning: box_integral.prepartition.Union_restrict -> BoxIntegral.Prepartition.iUnion_restrict is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι J (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι J (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) (BoxIntegral.Prepartition.iUnion.{u1} ι I π))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι J (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_restrict BoxIntegral.Prepartition.unionᵢ_restrictₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι J (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Prepartition.iUnion.{u1} ι I π))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_restrict BoxIntegral.Prepartition.iUnion_restrictₓ'. -/
@[simp]
-theorem unionᵢ_restrict : (π.restrict J).unionᵢ = J ∩ π.unionᵢ := by
+theorem iUnion_restrict : (π.restrict J).iUnion = J ∩ π.iUnion := by
simp [restrict, ← inter_Union, ← Union_def]
-#align box_integral.prepartition.Union_restrict BoxIntegral.Prepartition.unionᵢ_restrict
+#align box_integral.prepartition.Union_restrict BoxIntegral.Prepartition.iUnion_restrict
-#print BoxIntegral.Prepartition.restrict_bunionᵢ /-
+#print BoxIntegral.Prepartition.restrict_biUnion /-
@[simp]
-theorem restrict_bunionᵢ (πi : ∀ J, Prepartition J) (hJ : J ∈ π) :
- (π.bunionᵢ πi).restrict J = πi J :=
+theorem restrict_biUnion (πi : ∀ J, Prepartition J) (hJ : J ∈ π) :
+ (π.biUnion πi).restrict J = πi J :=
by
refine' (eq_of_boxes_subset_Union_superset (fun J₁ h₁ => _) _).symm
· refine' (mem_restrict _).2 ⟨J₁, π.mem_bUnion.2 ⟨J, hJ, h₁⟩, (inf_of_le_right _).symm⟩
exact WithBot.coe_le_coe.2 (le_of_mem _ h₁)
- · simp only [Union_restrict, Union_bUnion, Set.subset_def, Set.mem_inter_iff, Set.mem_unionᵢ]
+ · simp only [Union_restrict, Union_bUnion, Set.subset_def, Set.mem_inter_iff, Set.mem_iUnion]
rintro x ⟨hxJ, J₁, h₁, hx⟩
obtain rfl : J = J₁
exact π.eq_of_mem_of_mem hJ h₁ hxJ (Union_subset _ hx)
exact hx
-#align box_integral.prepartition.restrict_bUnion BoxIntegral.Prepartition.restrict_bunionᵢ
+#align box_integral.prepartition.restrict_bUnion BoxIntegral.Prepartition.restrict_biUnion
-/
-/- warning: box_integral.prepartition.bUnion_le_iff -> BoxIntegral.Prepartition.bunionᵢ_le_iff is a dubious translation:
+/- warning: box_integral.prepartition.bUnion_le_iff -> BoxIntegral.Prepartition.biUnion_le_iff is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) π') (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasLe.{u1} ι J) (πi J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J)))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) π') (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasLe.{u1} ι J) (πi J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J)))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) π') (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι J) (πi J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.bunionᵢ_le_iffₓ'. -/
-theorem bunionᵢ_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
- π.bunionᵢ πi ≤ π' ↔ ∀ J ∈ π, πi J ≤ π'.restrict J :=
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) π') (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι J) (πi J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.biUnion_le_iffₓ'. -/
+theorem biUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
+ π.biUnion πi ≤ π' ↔ ∀ J ∈ π, πi J ≤ π'.restrict J :=
by
fconstructor <;> intro H J hJ
· rw [← π.restrict_bUnion πi hJ]
@@ -853,16 +853,16 @@ theorem bunionᵢ_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
rcases H J₁ h₁ hJ with ⟨J₂, h₂, Hle⟩
rcases π'.mem_restrict.mp h₂ with ⟨J₃, h₃, H⟩
exact ⟨J₃, h₃, Hle.trans <| WithBot.coe_le_coe.1 <| H.trans_le inf_le_right⟩
-#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.bunionᵢ_le_iff
+#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.biUnion_le_iff
-/- warning: box_integral.prepartition.le_bUnion_iff -> BoxIntegral.Prepartition.le_bunionᵢ_iff is a dubious translation:
+/- warning: box_integral.prepartition.le_bUnion_iff -> BoxIntegral.Prepartition.le_biUnion_iff is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π' (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi)) (And (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π' π) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasLe.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J) (πi J))))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π' (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi)) (And (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π' π) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasLe.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J) (πi J))))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π' (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi)) (And (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π' π) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J) (πi J))))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_bunionᵢ_iffₓ'. -/
-theorem le_bunionᵢ_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
- π' ≤ π.bunionᵢ πi ↔ π' ≤ π ∧ ∀ J ∈ π, π'.restrict J ≤ πi J :=
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π' (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi)) (And (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π' π) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J) (πi J))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_biUnion_iffₓ'. -/
+theorem le_biUnion_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
+ π' ≤ π.biUnion πi ↔ π' ≤ π ∧ ∀ J ∈ π, π'.restrict J ≤ πi J :=
by
refine' ⟨fun H => ⟨H.trans (π.bUnion_le πi), fun J hJ => _⟩, _⟩
· rw [← π.restrict_bUnion πi hJ]
@@ -873,13 +873,13 @@ theorem le_bunionᵢ_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
π'.mem_restrict.2 ⟨J', hJ', (inf_of_le_right <| WithBot.coe_le_coe.2 hle).symm⟩
rcases Hi J hJ this with ⟨Ji, hJi, hlei⟩
exact ⟨Ji, π.mem_bUnion.2 ⟨J, hJ, hJi⟩, hlei⟩
-#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_bunionᵢ_iff
+#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_biUnion_iff
instance : Inf (Prepartition I) :=
- ⟨fun π₁ π₂ => π₁.bunionᵢ fun J => π₂.restrict J⟩
+ ⟨fun π₁ π₂ => π₁.biUnion fun J => π₂.restrict J⟩
#print BoxIntegral.Prepartition.inf_def /-
-theorem inf_def (π₁ π₂ : Prepartition I) : π₁ ⊓ π₂ = π₁.bunionᵢ fun J => π₂.restrict J :=
+theorem inf_def (π₁ π₂ : Prepartition I) : π₁ ⊓ π₂ = π₁.biUnion fun J => π₂.restrict J :=
rfl
#align box_integral.prepartition.inf_def BoxIntegral.Prepartition.inf_def
-/
@@ -896,23 +896,23 @@ theorem mem_inf {π₁ π₂ : Prepartition I} :
simp only [inf_def, mem_bUnion, mem_restrict]
#align box_integral.prepartition.mem_inf BoxIntegral.Prepartition.mem_inf
-/- warning: box_integral.prepartition.Union_inf -> BoxIntegral.Prepartition.unionᵢ_inf is a dubious translation:
+/- warning: box_integral.prepartition.Union_inf -> BoxIntegral.Prepartition.iUnion_inf is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasInf.{u1} ι I) π₁ π₂)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasInf.{u1} ι I) π₁ π₂)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.inf.{u1} ι I) π₁ π₂)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_inf BoxIntegral.Prepartition.unionᵢ_infₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.inf.{u1} ι I) π₁ π₂)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_inf BoxIntegral.Prepartition.iUnion_infₓ'. -/
@[simp]
-theorem unionᵢ_inf (π₁ π₂ : Prepartition I) : (π₁ ⊓ π₂).unionᵢ = π₁.unionᵢ ∩ π₂.unionᵢ := by
+theorem iUnion_inf (π₁ π₂ : Prepartition I) : (π₁ ⊓ π₂).iUnion = π₁.iUnion ∩ π₂.iUnion := by
simp only [inf_def, Union_bUnion, Union_restrict, ← Union_inter, ← Union_def]
-#align box_integral.prepartition.Union_inf BoxIntegral.Prepartition.unionᵢ_inf
+#align box_integral.prepartition.Union_inf BoxIntegral.Prepartition.iUnion_inf
instance : SemilatticeInf (Prepartition I) :=
{ Prepartition.hasInf,
Prepartition.partialOrder with
- inf_le_left := fun π₁ π₂ => π₁.bunionᵢ_le _
- inf_le_right := fun π₁ π₂ => (bunionᵢ_le_iff _).2 fun J hJ => le_rfl
- le_inf := fun π π₁ π₂ h₁ h₂ => π₁.le_bunionᵢ_iff.2 ⟨h₁, fun J hJ => restrict_mono h₂⟩ }
+ inf_le_left := fun π₁ π₂ => π₁.biUnion_le _
+ inf_le_right := fun π₁ π₂ => (biUnion_le_iff _).2 fun J hJ => le_rfl
+ le_inf := fun π π₁ π₂ h₁ h₂ => π₁.le_biUnion_iff.2 ⟨h₁, fun J hJ => restrict_mono h₂⟩ }
#print BoxIntegral.Prepartition.filter /-
/-- The prepartition with boxes `{J ∈ π | p J}`. -/
@@ -958,23 +958,23 @@ theorem filter_true : (π.filterₓ fun _ => True) = π :=
#align box_integral.prepartition.filter_true BoxIntegral.Prepartition.filter_true
-/
-/- warning: box_integral.prepartition.Union_filter_not -> BoxIntegral.Prepartition.unionᵢ_filter_not is a dubious translation:
+/- warning: box_integral.prepartition.Union_filter_not -> BoxIntegral.Prepartition.iUnion_filter_not is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Not (p J)))) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π p)))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Not (p J)))) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π p)))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Not (p J)))) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π p)))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.unionᵢ_filter_notₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Not (p J)))) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π p)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_notₓ'. -/
@[simp]
-theorem unionᵢ_filter_not (π : Prepartition I) (p : Box ι → Prop) :
- (π.filterₓ fun J => ¬p J).unionᵢ = π.unionᵢ \ (π.filterₓ p).unionᵢ :=
+theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
+ (π.filterₓ fun J => ¬p J).iUnion = π.iUnion \ (π.filterₓ p).iUnion :=
by
simp only [prepartition.Union]
- convert(@Set.bunionᵢ_diff_bunionᵢ_eq _ (box ι) π.boxes (π.filter p).boxes coe _).symm
+ convert(@Set.biUnion_diff_biUnion_eq _ (box ι) π.boxes (π.filter p).boxes coe _).symm
· ext (J x)
simp (config := { contextual := true })
· convert π.pairwise_disjoint
simp
-#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.unionᵢ_filter_not
+#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_not
/- warning: box_integral.prepartition.sum_fiberwise -> BoxIntegral.Prepartition.sum_fiberwise is a dubious translation:
lean 3 declaration is
@@ -990,57 +990,57 @@ theorem sum_fiberwise {α M} [AddCommMonoid M] (π : Prepartition I) (f : Box ι
/- warning: box_integral.prepartition.disj_union -> BoxIntegral.Prepartition.disjUnion is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (BoxIntegral.Prepartition.{u1} ι I)
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (BoxIntegral.Prepartition.{u1} ι I)
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (BoxIntegral.Prepartition.{u1} ι I)
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (BoxIntegral.Prepartition.{u1} ι I)
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.disj_union BoxIntegral.Prepartition.disjUnionₓ'. -/
/-- Union of two disjoint prepartitions. -/
@[simps]
-def disjUnion (π₁ π₂ : Prepartition I) (h : Disjoint π₁.unionᵢ π₂.unionᵢ) : Prepartition I
+def disjUnion (π₁ π₂ : Prepartition I) (h : Disjoint π₁.iUnion π₂.iUnion) : Prepartition I
where
boxes := π₁.boxes ∪ π₂.boxes
le_of_mem' J hJ := (Finset.mem_union.1 hJ).elim π₁.le_of_mem π₂.le_of_mem
PairwiseDisjoint :=
suffices ∀ J₁ ∈ π₁, ∀ J₂ ∈ π₂, J₁ ≠ J₂ → Disjoint (J₁ : Set (ι → ℝ)) J₂ by
simpa [pairwise_union_of_symmetric (symmetric_disjoint.comap _), pairwise_disjoint]
- fun J₁ h₁ J₂ h₂ _ => h.mono (π₁.subset_unionᵢ h₁) (π₂.subset_unionᵢ h₂)
+ fun J₁ h₁ J₂ h₂ _ => h.mono (π₁.subset_iUnion h₁) (π₂.subset_iUnion h₂)
#align box_integral.prepartition.disj_union BoxIntegral.Prepartition.disjUnion
/- warning: box_integral.prepartition.mem_disj_union -> BoxIntegral.Prepartition.mem_disjUnion is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (H : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ H)) (Or (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₂))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (H : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ H)) (Or (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₂))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (H : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ H)) (Or (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₂))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (H : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ H)) (Or (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₂))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_disj_union BoxIntegral.Prepartition.mem_disjUnionₓ'. -/
@[simp]
-theorem mem_disjUnion (H : Disjoint π₁.unionᵢ π₂.unionᵢ) :
+theorem mem_disjUnion (H : Disjoint π₁.iUnion π₂.iUnion) :
J ∈ π₁.disjUnion π₂ H ↔ J ∈ π₁ ∨ J ∈ π₂ :=
Finset.mem_union
#align box_integral.prepartition.mem_disj_union BoxIntegral.Prepartition.mem_disjUnion
-/- warning: box_integral.prepartition.Union_disj_union -> BoxIntegral.Prepartition.unionᵢ_disjUnion is a dubious translation:
+/- warning: box_integral.prepartition.Union_disj_union -> BoxIntegral.Prepartition.iUnion_disjUnion is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h)) (Union.union.{u1} (Set.{u1} (ι -> Real)) (Set.hasUnion.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h)) (Union.union.{u1} (Set.{u1} (ι -> Real)) (Set.hasUnion.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h)) (Union.union.{u1} (Set.{u1} (ι -> Real)) (Set.instUnionSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.unionᵢ_disjUnionₓ'. -/
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h)) (Union.union.{u1} (Set.{u1} (ι -> Real)) (Set.instUnionSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.iUnion_disjUnionₓ'. -/
@[simp]
-theorem unionᵢ_disjUnion (h : Disjoint π₁.unionᵢ π₂.unionᵢ) :
- (π₁.disjUnion π₂ h).unionᵢ = π₁.unionᵢ ∪ π₂.unionᵢ := by
+theorem iUnion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
+ (π₁.disjUnion π₂ h).iUnion = π₁.iUnion ∪ π₂.iUnion := by
simp [disj_union, prepartition.Union, Union_or, Union_union_distrib]
-#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.unionᵢ_disjUnion
+#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.iUnion_disjUnion
/- warning: box_integral.prepartition.sum_disj_union_boxes -> BoxIntegral.Prepartition.sum_disj_union_boxes is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasUnion.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b))) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasUnion.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b))) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instUnionFinset.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEq_of_decidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instUnionFinset.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEq_of_decidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_disj_union_boxes BoxIntegral.Prepartition.sum_disj_union_boxesₓ'. -/
@[simp]
-theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.unionᵢ π₂.unionᵢ)
+theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.iUnion π₂.iUnion)
(f : Box ι → M) :
(∑ J in π₁.boxes ∪ π₂.boxes, f J) = (∑ J in π₁.boxes, f J) + ∑ J in π₂.boxes, f J :=
- sum_union <| disjoint_boxes_of_disjoint_unionᵢ h
+ sum_union <| disjoint_boxes_of_disjoint_iUnion h
#align box_integral.prepartition.sum_disj_union_boxes BoxIntegral.Prepartition.sum_disj_union_boxes
section Distortion
@@ -1067,25 +1067,25 @@ theorem distortion_le_iff {c : ℝ≥0} : π.distortion ≤ c ↔ ∀ J ∈ π,
#align box_integral.prepartition.distortion_le_iff BoxIntegral.Prepartition.distortion_le_iff
-/
-/- warning: box_integral.prepartition.distortion_bUnion -> BoxIntegral.Prepartition.distortion_bunionᵢ is a dubious translation:
+/- warning: box_integral.prepartition.distortion_bUnion -> BoxIntegral.Prepartition.distortion_biUnion is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} [_inst_1 : Fintype.{u1} ι] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) _inst_1) (Finset.sup.{0, u1} NNReal (BoxIntegral.Box.{u1} ι) NNReal.semilatticeSup NNReal.orderBot (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.distortion.{u1} ι J (πi J) _inst_1))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} [_inst_1 : Fintype.{u1} ι] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) _inst_1) (Finset.sup.{0, u1} NNReal (BoxIntegral.Box.{u1} ι) NNReal.semilatticeSup NNReal.orderBot (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.distortion.{u1} ι J (πi J) _inst_1))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} [_inst_1 : Fintype.{u1} ι] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) _inst_1) (Finset.sup.{0, u1} NNReal (BoxIntegral.Box.{u1} ι) instNNRealSemilatticeSup NNReal.instOrderBotNNRealToLEToPreorderToPartialOrderInstNNRealStrictOrderedSemiring (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.distortion.{u1} ι J (πi J) _inst_1))
-Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_bunionᵢₓ'. -/
-theorem distortion_bunionᵢ (π : Prepartition I) (πi : ∀ J, Prepartition J) :
- (π.bunionᵢ πi).distortion = π.boxes.sup fun J => (πi J).distortion :=
- sup_bunionᵢ _ _
-#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_bunionᵢ
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} [_inst_1 : Fintype.{u1} ι] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.biUnion.{u1} ι I π πi) _inst_1) (Finset.sup.{0, u1} NNReal (BoxIntegral.Box.{u1} ι) instNNRealSemilatticeSup NNReal.instOrderBotNNRealToLEToPreorderToPartialOrderInstNNRealStrictOrderedSemiring (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.distortion.{u1} ι J (πi J) _inst_1))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_biUnionₓ'. -/
+theorem distortion_biUnion (π : Prepartition I) (πi : ∀ J, Prepartition J) :
+ (π.biUnion πi).distortion = π.boxes.sup fun J => (πi J).distortion :=
+ sup_biUnion _ _
+#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_biUnion
/- warning: box_integral.prepartition.distortion_disj_union -> BoxIntegral.Prepartition.distortion_disjUnion is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} [_inst_1 : Fintype.{u1} ι] (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h) _inst_1) (LinearOrder.max.{0} NNReal (ConditionallyCompleteLinearOrder.toLinearOrder.{0} NNReal (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{0} NNReal NNReal.conditionallyCompleteLinearOrderBot)) (BoxIntegral.Prepartition.distortion.{u1} ι I π₁ _inst_1) (BoxIntegral.Prepartition.distortion.{u1} ι I π₂ _inst_1))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} [_inst_1 : Fintype.{u1} ι] (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h) _inst_1) (LinearOrder.max.{0} NNReal (ConditionallyCompleteLinearOrder.toLinearOrder.{0} NNReal (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{0} NNReal NNReal.conditionallyCompleteLinearOrderBot)) (BoxIntegral.Prepartition.distortion.{u1} ι I π₁ _inst_1) (BoxIntegral.Prepartition.distortion.{u1} ι I π₂ _inst_1))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} [_inst_1 : Fintype.{u1} ι] (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h) _inst_1) (Max.max.{0} NNReal (CanonicallyLinearOrderedSemifield.toMax.{0} NNReal NNReal.instCanonicallyLinearOrderedSemifieldNNReal) (BoxIntegral.Prepartition.distortion.{u1} ι I π₁ _inst_1) (BoxIntegral.Prepartition.distortion.{u1} ι I π₂ _inst_1))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} [_inst_1 : Fintype.{u1} ι] (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂)), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h) _inst_1) (Max.max.{0} NNReal (CanonicallyLinearOrderedSemifield.toMax.{0} NNReal NNReal.instCanonicallyLinearOrderedSemifieldNNReal) (BoxIntegral.Prepartition.distortion.{u1} ι I π₁ _inst_1) (BoxIntegral.Prepartition.distortion.{u1} ι I π₂ _inst_1))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_disj_union BoxIntegral.Prepartition.distortion_disjUnionₓ'. -/
@[simp]
-theorem distortion_disjUnion (h : Disjoint π₁.unionᵢ π₂.unionᵢ) :
+theorem distortion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
(π₁.disjUnion π₂ h).distortion = max π₁.distortion π₂.distortion :=
sup_union
#align box_integral.prepartition.distortion_disj_union BoxIntegral.Prepartition.distortion_disjUnion
@@ -1128,11 +1128,11 @@ def IsPartition (π : Prepartition I) :=
#align box_integral.prepartition.is_partition BoxIntegral.Prepartition.IsPartition
-/
-#print BoxIntegral.Prepartition.isPartition_iff_unionᵢ_eq /-
-theorem isPartition_iff_unionᵢ_eq {π : Prepartition I} : π.IsPartition ↔ π.unionᵢ = I := by
+#print BoxIntegral.Prepartition.isPartition_iff_iUnion_eq /-
+theorem isPartition_iff_iUnion_eq {π : Prepartition I} : π.IsPartition ↔ π.iUnion = I := by
simp_rw [is_partition, Set.Subset.antisymm_iff, π.Union_subset, true_and_iff, Set.subset_def,
mem_Union, box.mem_coe]
-#align box_integral.prepartition.is_partition_iff_Union_eq BoxIntegral.Prepartition.isPartition_iff_unionᵢ_eq
+#align box_integral.prepartition.is_partition_iff_Union_eq BoxIntegral.Prepartition.isPartition_iff_iUnion_eq
-/
#print BoxIntegral.Prepartition.isPartition_single_iff /-
@@ -1156,16 +1156,16 @@ namespace IsPartition
variable {π}
-#print BoxIntegral.Prepartition.IsPartition.unionᵢ_eq /-
-theorem unionᵢ_eq (h : π.IsPartition) : π.unionᵢ = I :=
- isPartition_iff_unionᵢ_eq.1 h
-#align box_integral.prepartition.is_partition.Union_eq BoxIntegral.Prepartition.IsPartition.unionᵢ_eq
+#print BoxIntegral.Prepartition.IsPartition.iUnion_eq /-
+theorem iUnion_eq (h : π.IsPartition) : π.iUnion = I :=
+ isPartition_iff_iUnion_eq.1 h
+#align box_integral.prepartition.is_partition.Union_eq BoxIntegral.Prepartition.IsPartition.iUnion_eq
-/
-#print BoxIntegral.Prepartition.IsPartition.unionᵢ_subset /-
-theorem unionᵢ_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.unionᵢ ⊆ π.unionᵢ :=
- h.unionᵢ_eq.symm ▸ π₁.unionᵢ_subset
-#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.unionᵢ_subset
+#print BoxIntegral.Prepartition.IsPartition.iUnion_subset /-
+theorem iUnion_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.iUnion ⊆ π.iUnion :=
+ h.iUnion_eq.symm ▸ π₁.iUnion_subset
+#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.iUnion_subset
-/
/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (J «expr ∈ » π) -/
@@ -1186,7 +1186,7 @@ theorem nonempty_boxes (h : π.IsPartition) : π.boxes.Nonempty :=
#print BoxIntegral.Prepartition.IsPartition.eq_of_boxes_subset /-
theorem eq_of_boxes_subset (h₁ : π₁.IsPartition) (h₂ : π₁.boxes ⊆ π₂.boxes) : π₁ = π₂ :=
- eq_of_boxes_subset_unionᵢ_superset h₂ <| h₁.unionᵢ_subset _
+ eq_of_boxes_subset_iUnion_superset h₂ <| h₁.iUnion_subset _
#align box_integral.prepartition.is_partition.eq_of_boxes_subset BoxIntegral.Prepartition.IsPartition.eq_of_boxes_subset
-/
@@ -1198,50 +1198,50 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.is_partition.le_iff BoxIntegral.Prepartition.IsPartition.le_iffₓ'. -/
theorem le_iff (h : π₂.IsPartition) :
π₁ ≤ π₂ ↔ ∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J' :=
- le_iff_nonempty_imp_le_and_unionᵢ_subset.trans <| and_iff_left <| h.unionᵢ_subset _
+ le_iff_nonempty_imp_le_and_iUnion_subset.trans <| and_iff_left <| h.iUnion_subset _
#align box_integral.prepartition.is_partition.le_iff BoxIntegral.Prepartition.IsPartition.le_iff
-#print BoxIntegral.Prepartition.IsPartition.bunionᵢ /-
-protected theorem bunionᵢ (h : IsPartition π) (hi : ∀ J ∈ π, IsPartition (πi J)) :
- IsPartition (π.bunionᵢ πi) := fun x hx =>
+#print BoxIntegral.Prepartition.IsPartition.biUnion /-
+protected theorem biUnion (h : IsPartition π) (hi : ∀ J ∈ π, IsPartition (πi J)) :
+ IsPartition (π.biUnion πi) := fun x hx =>
let ⟨J, hJ, hxi⟩ := h x hx
let ⟨Ji, hJi, hx⟩ := hi J hJ x hxi
- ⟨Ji, π.mem_bunionᵢ.2 ⟨J, hJ, hJi⟩, hx⟩
-#align box_integral.prepartition.is_partition.bUnion BoxIntegral.Prepartition.IsPartition.bunionᵢ
+ ⟨Ji, π.mem_biUnion.2 ⟨J, hJ, hJi⟩, hx⟩
+#align box_integral.prepartition.is_partition.bUnion BoxIntegral.Prepartition.IsPartition.biUnion
-/
#print BoxIntegral.Prepartition.IsPartition.restrict /-
protected theorem restrict (h : IsPartition π) (hJ : J ≤ I) : IsPartition (π.restrict J) :=
- isPartition_iff_unionᵢ_eq.2 <| by simp [h.Union_eq, hJ]
+ isPartition_iff_iUnion_eq.2 <| by simp [h.Union_eq, hJ]
#align box_integral.prepartition.is_partition.restrict BoxIntegral.Prepartition.IsPartition.restrict
-/
#print BoxIntegral.Prepartition.IsPartition.inf /-
protected theorem inf (h₁ : IsPartition π₁) (h₂ : IsPartition π₂) : IsPartition (π₁ ⊓ π₂) :=
- isPartition_iff_unionᵢ_eq.2 <| by simp [h₁.Union_eq, h₂.Union_eq]
+ isPartition_iff_iUnion_eq.2 <| by simp [h₁.Union_eq, h₂.Union_eq]
#align box_integral.prepartition.is_partition.inf BoxIntegral.Prepartition.IsPartition.inf
-/
end IsPartition
-#print BoxIntegral.Prepartition.unionᵢ_bunionᵢ_partition /-
-theorem unionᵢ_bunionᵢ_partition (h : ∀ J ∈ π, (πi J).IsPartition) :
- (π.bunionᵢ πi).unionᵢ = π.unionᵢ :=
- (unionᵢ_bunionᵢ _ _).trans <|
- unionᵢ_congr_of_surjective id surjective_id fun J =>
- unionᵢ_congr_of_surjective id surjective_id fun hJ => (h J hJ).unionᵢ_eq
-#align box_integral.prepartition.Union_bUnion_partition BoxIntegral.Prepartition.unionᵢ_bunionᵢ_partition
+#print BoxIntegral.Prepartition.iUnion_biUnion_partition /-
+theorem iUnion_biUnion_partition (h : ∀ J ∈ π, (πi J).IsPartition) :
+ (π.biUnion πi).iUnion = π.iUnion :=
+ (iUnion_biUnion _ _).trans <|
+ iUnion_congr_of_surjective id surjective_id fun J =>
+ iUnion_congr_of_surjective id surjective_id fun hJ => (h J hJ).iUnion_eq
+#align box_integral.prepartition.Union_bUnion_partition BoxIntegral.Prepartition.iUnion_biUnion_partition
-/
/- warning: box_integral.prepartition.is_partition_disj_union_of_eq_diff -> BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiff is a dubious translation:
lean 3 declaration is
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.subst.{succ u1} (Set.{u1} (ι -> Real)) (fun (_x : Set.{u1} (ι -> Real)) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) _x) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) h) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))))))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.subst.{succ u1} (Set.{u1} (ι -> Real)) (fun (_x : Set.{u1} (ι -> Real)) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) _x) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) h) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))))))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.rec.{0, succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) (fun (x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575 : Set.{u1} (ι -> Real)) (h._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11576 : Eq.{succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Box.toSet.{u1} ι I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.instBooleanAlgebraSet.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) h)))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.rec.{0, succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) (fun (x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575 : Set.{u1} (ι -> Real)) (h._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11576 : Eq.{succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁) (BoxIntegral.Box.toSet.{u1} ι I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.instBooleanAlgebraSet.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.iUnion.{u1} ι I π₁)) h)))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.is_partition_disj_union_of_eq_diff BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiffₓ'. -/
-theorem isPartitionDisjUnionOfEqDiff (h : π₂.unionᵢ = I \ π₁.unionᵢ) :
+theorem isPartitionDisjUnionOfEqDiff (h : π₂.iUnion = I \ π₁.iUnion) :
IsPartition (π₁.disjUnion π₂ <| h.symm ▸ disjoint_sdiff_self_right) :=
- isPartition_iff_unionᵢ_eq.2 <| (unionᵢ_disjUnion _).trans <| by simp [h, π₁.Union_subset]
+ isPartition_iff_iUnion_eq.2 <| (iUnion_disjUnion _).trans <| by simp [h, π₁.Union_subset]
#align box_integral.prepartition.is_partition_disj_union_of_eq_diff BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiff
end Prepartition
mathlib commit https://github.com/leanprover-community/mathlib/commit/36b8aa61ea7c05727161f96a0532897bd72aedab
@@ -1237,7 +1237,7 @@ theorem unionᵢ_bunionᵢ_partition (h : ∀ J ∈ π, (πi J).IsPartition) :
lean 3 declaration is
forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.subst.{succ u1} (Set.{u1} (ι -> Real)) (fun (_x : Set.{u1} (ι -> Real)) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) _x) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) h) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))))))
but is expected to have type
- forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.rec.{0, succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) (fun (x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11577 : Set.{u1} (ι -> Real)) (h._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11578 : Eq.{succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11577) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11577) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Box.toSet.{u1} ι I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.instBooleanAlgebraSet.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) h)))
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.rec.{0, succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) (fun (x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575 : Set.{u1} (ι -> Real)) (h._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11576 : Eq.{succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11575) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Box.toSet.{u1} ι I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.instBooleanAlgebraSet.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) h)))
Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.is_partition_disj_union_of_eq_diff BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiffₓ'. -/
theorem isPartitionDisjUnionOfEqDiff (h : π₂.unionᵢ = I \ π₁.unionᵢ) :
IsPartition (π₁.disjUnion π₂ <| h.symm ▸ disjoint_sdiff_self_right) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/fa78268d4d77cb2b2fbc89f0527e2e7807763780
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
! This file was ported from Lean 3 source module analysis.box_integral.partition.basic
-! leanprover-community/mathlib commit 84dc0bd6619acaea625086d6f53cb35cdd554219
+! leanprover-community/mathlib commit 9d2f0748e6c50d7a2657c564b1ff2c695b39148d
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.Analysis.BoxIntegral.Box.Basic
/-!
# Partitions of rectangular boxes in `ℝⁿ`
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
In this file we define (pre)partitions of rectangular boxes in `ℝⁿ`. A partition of a box `I` in
`ℝⁿ` (see `box_integral.prepartition` and `box_integral.prepartition.is_partition`) is a finite set
of pairwise disjoint boxes such that their union is exactly `I`. We use `boxes : finset (box ι)` to
mathlib commit https://github.com/leanprover-community/mathlib/commit/d2d964c64f8ddcccd6704a731c41f95d13e72f5c
@@ -51,6 +51,7 @@ namespace BoxIntegral
variable {ι : Type _}
+#print BoxIntegral.Prepartition /-
/-- A prepartition of `I : box_integral.box ι` is a finite set of pairwise disjoint subboxes of
`I`. -/
structure Prepartition (I : Box ι) where
@@ -58,6 +59,7 @@ structure Prepartition (I : Box ι) where
le_of_mem' : ∀ J ∈ boxes, J ≤ I
PairwiseDisjoint : Set.Pairwise (↑boxes) (Disjoint on (coe : Box ι → Set (ι → ℝ)))
#align box_integral.prepartition BoxIntegral.Prepartition
+-/
namespace Prepartition
@@ -66,66 +68,108 @@ variable {I J J₁ J₂ : Box ι} (π : Prepartition I) {π₁ π₂ : Prepartit
instance : Membership (Box ι) (Prepartition I) :=
⟨fun J π => J ∈ π.boxes⟩
+#print BoxIntegral.Prepartition.mem_boxes /-
@[simp]
theorem mem_boxes : J ∈ π.boxes ↔ J ∈ π :=
Iff.rfl
#align box_integral.prepartition.mem_boxes BoxIntegral.Prepartition.mem_boxes
+-/
+/- warning: box_integral.prepartition.mem_mk -> BoxIntegral.Prepartition.mem_mk is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {s : Finset.{u1} (BoxIntegral.Box.{u1} ι)} {h₁ : forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasMem.{u1} (BoxIntegral.Box.{u1} ι)) J s) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι) J I)} {h₂ : Set.Pairwise.{u1} (BoxIntegral.Box.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.Set.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) s) (Function.onFun.{succ u1, succ u1, 1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) Prop (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι)))))}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.mk.{u1} ι I s h₁ h₂)) (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasMem.{u1} (BoxIntegral.Box.{u1} ι)) J s)
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {s : Finset.{u1} (BoxIntegral.Box.{u1} ι)} {h₁ : forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instMembershipFinset.{u1} (BoxIntegral.Box.{u1} ι)) J s) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) J I)} {h₂ : Set.Pairwise.{u1} (BoxIntegral.Box.{u1} ι) (Finset.toSet.{u1} (BoxIntegral.Box.{u1} ι) s) (Function.onFun.{succ u1, succ u1, 1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) Prop (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real)))))))) (BoxIntegral.Box.toSet.{u1} ι))}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.mk.{u1} ι I s h₁ h₂)) (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instMembershipFinset.{u1} (BoxIntegral.Box.{u1} ι)) J s)
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_mk BoxIntegral.Prepartition.mem_mkₓ'. -/
@[simp]
theorem mem_mk {s h₁ h₂} : J ∈ (mk s h₁ h₂ : Prepartition I) ↔ J ∈ s :=
Iff.rfl
#align box_integral.prepartition.mem_mk BoxIntegral.Prepartition.mem_mk
+/- warning: box_integral.prepartition.disjoint_coe_of_mem -> BoxIntegral.Prepartition.disjoint_coe_of_mem is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} {J₂ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₁ π) -> (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₂ π) -> (Ne.{succ u1} (BoxIntegral.Box.{u1} ι) J₁ J₂) -> (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J₁) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J₂))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} {J₂ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J₁ π) -> (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J₂ π) -> (Ne.{succ u1} (BoxIntegral.Box.{u1} ι) J₁ J₂) -> (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Box.toSet.{u1} ι J₁) (BoxIntegral.Box.toSet.{u1} ι J₂))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.disjoint_coe_of_mem BoxIntegral.Prepartition.disjoint_coe_of_memₓ'. -/
theorem disjoint_coe_of_mem (h₁ : J₁ ∈ π) (h₂ : J₂ ∈ π) (h : J₁ ≠ J₂) :
Disjoint (J₁ : Set (ι → ℝ)) J₂ :=
π.PairwiseDisjoint h₁ h₂ h
#align box_integral.prepartition.disjoint_coe_of_mem BoxIntegral.Prepartition.disjoint_coe_of_mem
+#print BoxIntegral.Prepartition.eq_of_mem_of_mem /-
theorem eq_of_mem_of_mem (h₁ : J₁ ∈ π) (h₂ : J₂ ∈ π) (hx₁ : x ∈ J₁) (hx₂ : x ∈ J₂) : J₁ = J₂ :=
by_contra fun H => (π.disjoint_coe_of_mem h₁ h₂ H).le_bot ⟨hx₁, hx₂⟩
#align box_integral.prepartition.eq_of_mem_of_mem BoxIntegral.Prepartition.eq_of_mem_of_mem
+-/
+#print BoxIntegral.Prepartition.eq_of_le_of_le /-
theorem eq_of_le_of_le (h₁ : J₁ ∈ π) (h₂ : J₂ ∈ π) (hle₁ : J ≤ J₁) (hle₂ : J ≤ J₂) : J₁ = J₂ :=
π.eq_of_mem_of_mem h₁ h₂ (hle₁ J.upper_mem) (hle₂ J.upper_mem)
#align box_integral.prepartition.eq_of_le_of_le BoxIntegral.Prepartition.eq_of_le_of_le
+-/
+#print BoxIntegral.Prepartition.eq_of_le /-
theorem eq_of_le (h₁ : J₁ ∈ π) (h₂ : J₂ ∈ π) (hle : J₁ ≤ J₂) : J₁ = J₂ :=
π.eq_of_le_of_le h₁ h₂ le_rfl hle
#align box_integral.prepartition.eq_of_le BoxIntegral.Prepartition.eq_of_le
+-/
+#print BoxIntegral.Prepartition.le_of_mem /-
theorem le_of_mem (hJ : J ∈ π) : J ≤ I :=
π.le_of_mem' J hJ
#align box_integral.prepartition.le_of_mem BoxIntegral.Prepartition.le_of_mem
+-/
+/- warning: box_integral.prepartition.lower_le_lower -> BoxIntegral.Prepartition.lower_le_lower is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (ι -> Real) (Pi.hasLe.{u1, 0} ι (fun (ᾰ : ι) => Real) (fun (i : ι) => Real.hasLe)) (BoxIntegral.Box.lower.{u1} ι I) (BoxIntegral.Box.lower.{u1} ι J))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (ι -> Real) (Pi.hasLe.{u1, 0} ι (fun (ᾰ : ι) => Real) (fun (i : ι) => Real.instLEReal)) (BoxIntegral.Box.lower.{u1} ι I) (BoxIntegral.Box.lower.{u1} ι J))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.lower_le_lower BoxIntegral.Prepartition.lower_le_lowerₓ'. -/
theorem lower_le_lower (hJ : J ∈ π) : I.lower ≤ J.lower :=
Box.antitone_lower (π.le_of_mem hJ)
#align box_integral.prepartition.lower_le_lower BoxIntegral.Prepartition.lower_le_lower
+/- warning: box_integral.prepartition.upper_le_upper -> BoxIntegral.Prepartition.upper_le_upper is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (ι -> Real) (Pi.hasLe.{u1, 0} ι (fun (ᾰ : ι) => Real) (fun (i : ι) => Real.hasLe)) (BoxIntegral.Box.upper.{u1} ι J) (BoxIntegral.Box.upper.{u1} ι I))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (ι -> Real) (Pi.hasLe.{u1, 0} ι (fun (ᾰ : ι) => Real) (fun (i : ι) => Real.instLEReal)) (BoxIntegral.Box.upper.{u1} ι J) (BoxIntegral.Box.upper.{u1} ι I))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.upper_le_upper BoxIntegral.Prepartition.upper_le_upperₓ'. -/
theorem upper_le_upper (hJ : J ∈ π) : J.upper ≤ I.upper :=
Box.monotone_upper (π.le_of_mem hJ)
#align box_integral.prepartition.upper_le_upper BoxIntegral.Prepartition.upper_le_upper
+#print BoxIntegral.Prepartition.injective_boxes /-
theorem injective_boxes : Function.Injective (boxes : Prepartition I → Finset (Box ι)) :=
by
rintro ⟨s₁, h₁, h₁'⟩ ⟨s₂, h₂, h₂'⟩ (rfl : s₁ = s₂)
rfl
#align box_integral.prepartition.injective_boxes BoxIntegral.Prepartition.injective_boxes
+-/
+#print BoxIntegral.Prepartition.ext /-
@[ext]
theorem ext (h : ∀ J, J ∈ π₁ ↔ J ∈ π₂) : π₁ = π₂ :=
injective_boxes <| Finset.ext h
#align box_integral.prepartition.ext BoxIntegral.Prepartition.ext
+-/
+#print BoxIntegral.Prepartition.single /-
/-- The singleton prepartition `{J}`, `J ≤ I`. -/
@[simps]
def single (I J : Box ι) (h : J ≤ I) : Prepartition I :=
⟨{J}, by simpa, by simp⟩
#align box_integral.prepartition.single BoxIntegral.Prepartition.single
+-/
+#print BoxIntegral.Prepartition.mem_single /-
@[simp]
theorem mem_single {J'} (h : J ≤ I) : J' ∈ single I J h ↔ J' = J :=
mem_singleton
#align box_integral.prepartition.mem_single BoxIntegral.Prepartition.mem_single
+-/
/-- We say that `π ≤ π'` if each box of `π` is a subbox of some box of `π'`. -/
instance : LE (Prepartition I) :=
@@ -162,30 +206,66 @@ instance : OrderBot (Prepartition I)
instance : Inhabited (Prepartition I) :=
⟨⊤⟩
+/- warning: box_integral.prepartition.le_def -> BoxIntegral.Prepartition.le_def is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) -> (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π₂) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π₂) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι) J J'))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) -> (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π₂) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) J J'))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_def BoxIntegral.Prepartition.le_defₓ'. -/
theorem le_def : π₁ ≤ π₂ ↔ ∀ J ∈ π₁, ∃ J' ∈ π₂, J ≤ J' :=
Iff.rfl
#align box_integral.prepartition.le_def BoxIntegral.Prepartition.le_def
+/- warning: box_integral.prepartition.mem_top -> BoxIntegral.Prepartition.mem_top is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I)))) (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) J I)
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I)))) (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) J I)
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_top BoxIntegral.Prepartition.mem_topₓ'. -/
@[simp]
theorem mem_top : J ∈ (⊤ : Prepartition I) ↔ J = I :=
mem_singleton
#align box_integral.prepartition.mem_top BoxIntegral.Prepartition.mem_top
+/- warning: box_integral.prepartition.top_boxes -> BoxIntegral.Prepartition.top_boxes is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I)))) (Singleton.singleton.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasSingleton.{u1} (BoxIntegral.Box.{u1} ι)) I)
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I)))) (Singleton.singleton.{u1, u1} (BoxIntegral.Box.{u1} ι) (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instSingletonFinset.{u1} (BoxIntegral.Box.{u1} ι)) I)
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.top_boxes BoxIntegral.Prepartition.top_boxesₓ'. -/
@[simp]
theorem top_boxes : (⊤ : Prepartition I).boxes = {I} :=
rfl
#align box_integral.prepartition.top_boxes BoxIntegral.Prepartition.top_boxes
+/- warning: box_integral.prepartition.not_mem_bot -> BoxIntegral.Prepartition.not_mem_bot is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι}, Not (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι}, Not (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.not_mem_bot BoxIntegral.Prepartition.not_mem_botₓ'. -/
@[simp]
theorem not_mem_bot : J ∉ (⊥ : Prepartition I) :=
id
#align box_integral.prepartition.not_mem_bot BoxIntegral.Prepartition.not_mem_bot
+/- warning: box_integral.prepartition.bot_boxes -> BoxIntegral.Prepartition.bot_boxes is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasEmptyc.{u1} (BoxIntegral.Box.{u1} ι)))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instEmptyCollectionFinset.{u1} (BoxIntegral.Box.{u1} ι)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bot_boxes BoxIntegral.Prepartition.bot_boxesₓ'. -/
@[simp]
theorem bot_boxes : (⊥ : Prepartition I).boxes = ∅ :=
rfl
#align box_integral.prepartition.bot_boxes BoxIntegral.Prepartition.bot_boxes
+/- warning: box_integral.prepartition.inj_on_set_of_mem_Icc_set_of_lower_eq -> BoxIntegral.Prepartition.injOn_setOf_mem_Icc_setOf_lower_eq is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (x : ι -> Real), Set.InjOn.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => setOf.{u1} ι (fun (i : ι) => Eq.{1} Real (BoxIntegral.Box.lower.{u1} ι J i) (x i))) (setOf.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => And (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) (Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.hasLe.{u1} ι) (Set.hasLe.{u1} (ι -> Real))) (fun (_x : RelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) => (BoxIntegral.Box.{u1} ι) -> (Set.{u1} (ι -> Real))) (RelEmbedding.hasCoeToFun.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) (BoxIntegral.Box.Icc.{u1} ι) J))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (x : ι -> Real), Set.InjOn.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => setOf.{u1} ι (fun (i : ι) => Eq.{1} Real (BoxIntegral.Box.lower.{u1} ι J i) (x i))) (setOf.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) (Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (BoxIntegral.Box.Icc.{u1} ι) J))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.inj_on_set_of_mem_Icc_set_of_lower_eq BoxIntegral.Prepartition.injOn_setOf_mem_Icc_setOf_lower_eqₓ'. -/
/-- An auxiliary lemma used to prove that the same point can't belong to more than
`2 ^ fintype.card ι` closed boxes of a prepartition. -/
theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
@@ -208,6 +288,12 @@ theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
exact ⟨x i, ⟨hi₁, hx₁.2 i⟩, ⟨hi₂, hx₂.2 i⟩⟩
#align box_integral.prepartition.inj_on_set_of_mem_Icc_set_of_lower_eq BoxIntegral.Prepartition.injOn_setOf_mem_Icc_setOf_lower_eq
+/- warning: box_integral.prepartition.card_filter_mem_Icc_le -> BoxIntegral.Prepartition.card_filter_mem_Icc_le is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι] (x : ι -> Real), LE.le.{0} Nat Nat.hasLe (Finset.card.{u1} (BoxIntegral.Box.{u1} ι) (Finset.filter.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.hasLe.{u1} ι) (Set.hasLe.{u1} (ι -> Real))) (fun (_x : RelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) => (BoxIntegral.Box.{u1} ι) -> (Set.{u1} (ι -> Real))) (RelEmbedding.hasCoeToFun.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) (BoxIntegral.Box.Icc.{u1} ι) J)) (fun (a : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (J : BoxIntegral.Box.{u1} ι) => Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.hasLe.{u1} ι) (Set.hasLe.{u1} (ι -> Real))) (fun (_x : RelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) => (BoxIntegral.Box.{u1} ι) -> (Set.{u1} (ι -> Real))) (RelEmbedding.hasCoeToFun.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)) (LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.hasLe.{u1} (ι -> Real)))) (BoxIntegral.Box.Icc.{u1} ι) J)) a)) (BoxIntegral.Prepartition.boxes.{u1} ι I π))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fintype.card.{u1} ι _inst_1))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) [_inst_1 : Fintype.{u1} ι] (x : ι -> Real), LE.le.{0} Nat instLENat (Finset.card.{u1} (BoxIntegral.Box.{u1} ι) (Finset.filter.{u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (BoxIntegral.Box.Icc.{u1} ι) J)) (fun (a : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (J : BoxIntegral.Box.{u1} ι) => Membership.mem.{u1, u1} (ι -> Real) ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) J) (Set.instMembershipSet.{u1} (ι -> Real)) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (fun (_x : BoxIntegral.Box.{u1} ι) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : BoxIntegral.Box.{u1} ι) => Set.{u1} (ι -> Real)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.instLEBox.{u1} ι) (Set.instLESet.{u1} (ι -> Real))) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (ι -> Real)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (ι -> Real)) => LE.le.{u1} (Set.{u1} (ι -> Real)) (Set.instLESet.{u1} (ι -> Real)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (BoxIntegral.Box.Icc.{u1} ι) J)) a)) (BoxIntegral.Prepartition.boxes.{u1} ι I π))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) (Fintype.card.{u1} ι _inst_1))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.card_filter_mem_Icc_le BoxIntegral.Prepartition.card_filter_mem_Icc_leₓ'. -/
/-- The set of boxes of a prepartition that contain `x` in their closures has cardinality
at most `2 ^ fintype.card ι`. -/
theorem card_filter_mem_Icc_le [Fintype ι] (x : ι → ℝ) :
@@ -220,65 +306,119 @@ theorem card_filter_mem_Icc_le [Fintype ι] (x : ι → ℝ) :
simpa only [Finset.mem_filter] using π.inj_on_set_of_mem_Icc_set_of_lower_eq x
#align box_integral.prepartition.card_filter_mem_Icc_le BoxIntegral.Prepartition.card_filter_mem_Icc_le
+#print BoxIntegral.Prepartition.unionᵢ /-
/-- Given a prepartition `π : box_integral.prepartition I`, `π.Union` is the part of `I` covered by
the boxes of `π`. -/
-protected def union : Set (ι → ℝ) :=
+protected def unionᵢ : Set (ι → ℝ) :=
⋃ J ∈ π, ↑J
-#align box_integral.prepartition.Union BoxIntegral.Prepartition.union
+#align box_integral.prepartition.Union BoxIntegral.Prepartition.unionᵢ
+-/
-theorem union_def : π.unionᵢ = ⋃ J ∈ π, ↑J :=
+#print BoxIntegral.Prepartition.unionᵢ_def /-
+theorem unionᵢ_def : π.unionᵢ = ⋃ J ∈ π, ↑J :=
rfl
-#align box_integral.prepartition.Union_def BoxIntegral.Prepartition.union_def
+#align box_integral.prepartition.Union_def BoxIntegral.Prepartition.unionᵢ_def
+-/
-theorem union_def' : π.unionᵢ = ⋃ J ∈ π.boxes, ↑J :=
+#print BoxIntegral.Prepartition.unionᵢ_def' /-
+theorem unionᵢ_def' : π.unionᵢ = ⋃ J ∈ π.boxes, ↑J :=
rfl
-#align box_integral.prepartition.Union_def' BoxIntegral.Prepartition.union_def'
+#align box_integral.prepartition.Union_def' BoxIntegral.Prepartition.unionᵢ_def'
+-/
+/- warning: box_integral.prepartition.mem_Union -> BoxIntegral.Prepartition.mem_unionᵢ is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {x : ι -> Real}, Iff (Membership.Mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.hasMem.{u1} (ι -> Real)) x (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) => Membership.Mem.{u1, u1} (ι -> Real) (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasMem.{u1} ι) x J)))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {x : ι -> Real}, Iff (Membership.mem.{u1, u1} (ι -> Real) (Set.{u1} (ι -> Real)) (Set.instMembershipSet.{u1} (ι -> Real)) x (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) (Membership.mem.{u1, u1} (ι -> Real) (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instMembershipForAllRealBox.{u1} ι) x J)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_Union BoxIntegral.Prepartition.mem_unionᵢₓ'. -/
@[simp]
-theorem mem_union : x ∈ π.unionᵢ ↔ ∃ J ∈ π, x ∈ J :=
+theorem mem_unionᵢ : x ∈ π.unionᵢ ↔ ∃ J ∈ π, x ∈ J :=
Set.mem_unionᵢ₂
-#align box_integral.prepartition.mem_Union BoxIntegral.Prepartition.mem_union
+#align box_integral.prepartition.mem_Union BoxIntegral.Prepartition.mem_unionᵢ
+#print BoxIntegral.Prepartition.unionᵢ_single /-
@[simp]
-theorem union_single (h : J ≤ I) : (single I J h).unionᵢ = J := by simp [Union_def]
-#align box_integral.prepartition.Union_single BoxIntegral.Prepartition.union_single
+theorem unionᵢ_single (h : J ≤ I) : (single I J h).unionᵢ = J := by simp [Union_def]
+#align box_integral.prepartition.Union_single BoxIntegral.Prepartition.unionᵢ_single
+-/
+/- warning: box_integral.prepartition.Union_top -> BoxIntegral.Prepartition.unionᵢ_top is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I)
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I)))) (BoxIntegral.Box.toSet.{u1} ι I)
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.unionᵢ_topₓ'. -/
@[simp]
-theorem union_top : (⊤ : Prepartition I).unionᵢ = I := by simp [prepartition.Union]
-#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.union_top
-
+theorem unionᵢ_top : (⊤ : Prepartition I).unionᵢ = I := by simp [prepartition.Union]
+#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.unionᵢ_top
+
+/- warning: box_integral.prepartition.Union_eq_empty -> BoxIntegral.Prepartition.unionᵢ_eq_empty is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.hasEmptyc.{u1} (ι -> Real)))) (Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) π₁ (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.instEmptyCollectionSet.{u1} (ι -> Real)))) (Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) π₁ (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.unionᵢ_eq_emptyₓ'. -/
@[simp]
-theorem union_eq_empty : π₁.unionᵢ = ∅ ↔ π₁ = ⊥ := by
+theorem unionᵢ_eq_empty : π₁.unionᵢ = ∅ ↔ π₁ = ⊥ := by
simp [← injective_boxes.eq_iff, Finset.ext_iff, prepartition.Union, imp_false]
-#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.union_eq_empty
-
+#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.unionᵢ_eq_empty
+
+/- warning: box_integral.prepartition.Union_bot -> BoxIntegral.Prepartition.unionᵢ_bot is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.hasEmptyc.{u1} (ι -> Real)))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι}, Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I)))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (ι -> Real)) (Set.instEmptyCollectionSet.{u1} (ι -> Real)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_bot BoxIntegral.Prepartition.unionᵢ_botₓ'. -/
@[simp]
-theorem union_bot : (⊥ : Prepartition I).unionᵢ = ∅ :=
- union_eq_empty.2 rfl
-#align box_integral.prepartition.Union_bot BoxIntegral.Prepartition.union_bot
+theorem unionᵢ_bot : (⊥ : Prepartition I).unionᵢ = ∅ :=
+ unionᵢ_eq_empty.2 rfl
+#align box_integral.prepartition.Union_bot BoxIntegral.Prepartition.unionᵢ_bot
-theorem subset_union (h : J ∈ π) : ↑J ⊆ π.unionᵢ :=
+#print BoxIntegral.Prepartition.subset_unionᵢ /-
+theorem subset_unionᵢ (h : J ∈ π) : ↑J ⊆ π.unionᵢ :=
subset_bunionᵢ_of_mem h
-#align box_integral.prepartition.subset_Union BoxIntegral.Prepartition.subset_union
+#align box_integral.prepartition.subset_Union BoxIntegral.Prepartition.subset_unionᵢ
+-/
-theorem union_subset : π.unionᵢ ⊆ I :=
+#print BoxIntegral.Prepartition.unionᵢ_subset /-
+theorem unionᵢ_subset : π.unionᵢ ⊆ I :=
unionᵢ₂_subset π.le_of_mem'
-#align box_integral.prepartition.Union_subset BoxIntegral.Prepartition.union_subset
+#align box_integral.prepartition.Union_subset BoxIntegral.Prepartition.unionᵢ_subset
+-/
+/- warning: box_integral.prepartition.Union_mono -> BoxIntegral.Prepartition.unionᵢ_mono is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) -> (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.hasSubset.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) -> (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.instHasSubsetSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.unionᵢ_monoₓ'. -/
@[mono]
-theorem union_mono (h : π₁ ≤ π₂) : π₁.unionᵢ ⊆ π₂.unionᵢ := fun x hx =>
+theorem unionᵢ_mono (h : π₁ ≤ π₂) : π₁.unionᵢ ⊆ π₂.unionᵢ := fun x hx =>
let ⟨J₁, hJ₁, hx⟩ := π₁.mem_unionᵢ.1 hx
let ⟨J₂, hJ₂, hle⟩ := h hJ₁
π₂.mem_unionᵢ.2 ⟨J₂, hJ₂, hle hx⟩
-#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.union_mono
-
-theorem disjoint_boxes_of_disjoint_union (h : Disjoint π₁.unionᵢ π₂.unionᵢ) :
+#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.unionᵢ_mono
+
+/- warning: box_integral.prepartition.disjoint_boxes_of_disjoint_Union -> BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_unionᵢ is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (Disjoint.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.partialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.orderBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (Disjoint.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.partialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instOrderBotFinsetToLEToPreorderPartialOrder.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_unionᵢₓ'. -/
+theorem disjoint_boxes_of_disjoint_unionᵢ (h : Disjoint π₁.unionᵢ π₂.unionᵢ) :
Disjoint π₁.boxes π₂.boxes :=
Finset.disjoint_left.2 fun J h₁ h₂ =>
Disjoint.le_bot (h.mono (π₁.subset_unionᵢ h₁) (π₂.subset_unionᵢ h₂)) ⟨J.upper_mem, J.upper_mem⟩
-#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_union
-
-theorem le_iff_nonempty_imp_le_and_union_subset :
+#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_unionᵢ
+
+/- warning: box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset -> BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_unionᵢ_subset is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) (And (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι) J J'))) (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.hasSubset.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) (And (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Box.toSet.{u1} ι J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) J J'))) (HasSubset.Subset.{u1} (Set.{u1} (ι -> Real)) (Set.instHasSubsetSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_unionᵢ_subsetₓ'. -/
+theorem le_iff_nonempty_imp_le_and_unionᵢ_subset :
π₁ ≤ π₂ ↔
(∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J') ∧ π₁.unionᵢ ⊆ π₂.unionᵢ :=
by
@@ -291,23 +431,26 @@ theorem le_iff_nonempty_imp_le_and_union_subset :
simp only [Set.subset_def, mem_Union] at HU
rcases HU J.upper ⟨J, hJ, J.upper_mem⟩ with ⟨J₂, hJ₂, hx⟩
exact ⟨J₂, hJ₂, H _ hJ _ hJ₂ ⟨_, J.upper_mem, hx⟩⟩
-#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_union_subset
+#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_unionᵢ_subset
-theorem eq_of_boxes_subset_union_superset (h₁ : π₁.boxes ⊆ π₂.boxes) (h₂ : π₂.unionᵢ ⊆ π₁.unionᵢ) :
+#print BoxIntegral.Prepartition.eq_of_boxes_subset_unionᵢ_superset /-
+theorem eq_of_boxes_subset_unionᵢ_superset (h₁ : π₁.boxes ⊆ π₂.boxes) (h₂ : π₂.unionᵢ ⊆ π₁.unionᵢ) :
π₁ = π₂ :=
(le_antisymm fun J hJ => ⟨J, h₁ hJ, le_rfl⟩) <|
- le_iff_nonempty_imp_le_and_union_subset.2
+ le_iff_nonempty_imp_le_and_unionᵢ_subset.2
⟨fun J₁ hJ₁ J₂ hJ₂ Hne =>
(π₂.eq_of_mem_of_mem hJ₁ (h₁ hJ₂) Hne.choose_spec.1 Hne.choose_spec.2).le, h₂⟩
-#align box_integral.prepartition.eq_of_boxes_subset_Union_superset BoxIntegral.Prepartition.eq_of_boxes_subset_union_superset
+#align box_integral.prepartition.eq_of_boxes_subset_Union_superset BoxIntegral.Prepartition.eq_of_boxes_subset_unionᵢ_superset
+-/
+#print BoxIntegral.Prepartition.bunionᵢ /-
/-- Given a prepartition `π` of a box `I` and a collection of prepartitions `πi J` of all boxes
`J ∈ π`, returns the prepartition of `I` into the union of the boxes of all `πi J`.
Though we only use the values of `πi` on the boxes of `π`, we require `πi` to be a globally defined
function. -/
@[simps]
-def bUnion (πi : ∀ J : Box ι, Prepartition J) : Prepartition I
+def bunionᵢ (πi : ∀ J : Box ι, Prepartition J) : Prepartition I
where
boxes := π.boxes.bunionᵢ fun J => (πi J).boxes
le_of_mem' J hJ :=
@@ -324,44 +467,75 @@ def bUnion (πi : ∀ J : Box ι, Prepartition J) : Prepartition I
obtain rfl : J₁ = J₂
exact π.eq_of_mem_of_mem hJ₁ hJ₂ ((πi J₁).le_of_mem hJ₁' hx₁) ((πi J₂).le_of_mem hJ₂' hx₂)
exact (πi J₁).eq_of_mem_of_mem hJ₁' hJ₂' hx₁ hx₂
-#align box_integral.prepartition.bUnion BoxIntegral.Prepartition.bUnion
+#align box_integral.prepartition.bUnion BoxIntegral.Prepartition.bunionᵢ
+-/
variable {πi πi₁ πi₂ : ∀ J : Box ι, Prepartition J}
+/- warning: box_integral.prepartition.mem_bUnion -> BoxIntegral.Prepartition.mem_bunionᵢ is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J') (BoxIntegral.Prepartition.hasMem.{u1} ι J') J (πi J'))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π) (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J') (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι J') J (πi J'))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_bunionᵢₓ'. -/
@[simp]
-theorem mem_bUnion : J ∈ π.bunionᵢ πi ↔ ∃ J' ∈ π, J ∈ πi J' := by simp [bUnion]
-#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_bUnion
-
-theorem bUnion_le (πi : ∀ J, Prepartition J) : π.bunionᵢ πi ≤ π := fun J hJ =>
+theorem mem_bunionᵢ : J ∈ π.bunionᵢ πi ↔ ∃ J' ∈ π, J ∈ πi J' := by simp [bUnion]
+#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_bunionᵢ
+
+/- warning: box_integral.prepartition.bUnion_le -> BoxIntegral.Prepartition.bunionᵢ_le is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) π
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) π
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.bunionᵢ_leₓ'. -/
+theorem bunionᵢ_le (πi : ∀ J, Prepartition J) : π.bunionᵢ πi ≤ π := fun J hJ =>
let ⟨J', hJ', hJ⟩ := π.mem_bunionᵢ.1 hJ
⟨J', hJ', (πi J').le_of_mem hJ⟩
-#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.bUnion_le
-
+#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.bunionᵢ_le
+
+/- warning: box_integral.prepartition.bUnion_top -> BoxIntegral.Prepartition.bunionᵢ_top is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π (fun (_x : BoxIntegral.Box.{u1} ι) => Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (BoxIntegral.Prepartition.hasLe.{u1} ι _x) (BoxIntegral.Prepartition.orderTop.{u1} ι _x)))) π
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π (fun (_x : BoxIntegral.Box.{u1} ι) => Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι _x) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι _x) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι _x)))) π
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.bunionᵢ_topₓ'. -/
@[simp]
-theorem bUnion_top : (π.bunionᵢ fun _ => ⊤) = π :=
+theorem bunionᵢ_top : (π.bunionᵢ fun _ => ⊤) = π :=
by
ext
simp
-#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.bUnion_top
+#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.bunionᵢ_top
+#print BoxIntegral.Prepartition.bunionᵢ_congr /-
@[congr]
-theorem bUnion_congr (h : π₁ = π₂) (hi : ∀ J ∈ π₁, πi₁ J = πi₂ J) :
+theorem bunionᵢ_congr (h : π₁ = π₂) (hi : ∀ J ∈ π₁, πi₁ J = πi₂ J) :
π₁.bunionᵢ πi₁ = π₂.bunionᵢ πi₂ := by
subst π₂
ext J
simp (config := { contextual := true }) [hi]
-#align box_integral.prepartition.bUnion_congr BoxIntegral.Prepartition.bUnion_congr
+#align box_integral.prepartition.bUnion_congr BoxIntegral.Prepartition.bunionᵢ_congr
+-/
-theorem bUnion_congr_of_le (h : π₁ = π₂) (hi : ∀ J ≤ I, πi₁ J = πi₂ J) :
+#print BoxIntegral.Prepartition.bunionᵢ_congr_of_le /-
+theorem bunionᵢ_congr_of_le (h : π₁ = π₂) (hi : ∀ J ≤ I, πi₁ J = πi₂ J) :
π₁.bunionᵢ πi₁ = π₂.bunionᵢ πi₂ :=
- bUnion_congr h fun J hJ => hi J (π₁.le_of_mem hJ)
-#align box_integral.prepartition.bUnion_congr_of_le BoxIntegral.Prepartition.bUnion_congr_of_le
+ bunionᵢ_congr h fun J hJ => hi J (π₁.le_of_mem hJ)
+#align box_integral.prepartition.bUnion_congr_of_le BoxIntegral.Prepartition.bunionᵢ_congr_of_le
+-/
+#print BoxIntegral.Prepartition.unionᵢ_bunionᵢ /-
@[simp]
-theorem union_bUnion (πi : ∀ J : Box ι, Prepartition J) :
+theorem unionᵢ_bunionᵢ (πi : ∀ J : Box ι, Prepartition J) :
(π.bunionᵢ πi).unionᵢ = ⋃ J ∈ π, (πi J).unionᵢ := by simp [prepartition.Union]
-#align box_integral.prepartition.Union_bUnion BoxIntegral.Prepartition.union_bUnion
+#align box_integral.prepartition.Union_bUnion BoxIntegral.Prepartition.unionᵢ_bunionᵢ
+-/
+/- warning: box_integral.prepartition.sum_bUnion_boxes -> BoxIntegral.Prepartition.sum_bunionᵢ_boxes is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Finset.bunionᵢ.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b)) (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.boxes.{u1} ι J (πi J))) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι J (πi J)) (fun (J' : BoxIntegral.Box.{u1} ι) => f J')))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Finset.bunionᵢ.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEq_of_decidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b) (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.boxes.{u1} ι J (πi J))) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι J (πi J)) (fun (J' : BoxIntegral.Box.{u1} ι) => f J')))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_bUnion_boxes BoxIntegral.Prepartition.sum_bunionᵢ_boxesₓ'. -/
@[simp]
theorem sum_bunionᵢ_boxes {M : Type _} [AddCommMonoid M] (π : Prepartition I)
(πi : ∀ J, Prepartition J) (f : Box ι → M) :
@@ -372,43 +546,56 @@ theorem sum_bunionᵢ_boxes {M : Type _} [AddCommMonoid M] (π : Prepartition I)
exact hne (π.eq_of_le_of_le h₁ h₂ ((πi J₁).le_of_mem h₁') ((πi J₂).le_of_mem h₂'))
#align box_integral.prepartition.sum_bUnion_boxes BoxIntegral.Prepartition.sum_bunionᵢ_boxes
+#print BoxIntegral.Prepartition.bunionᵢIndex /-
/-- Given a box `J ∈ π.bUnion πi`, returns the box `J' ∈ π` such that `J ∈ πi J'`.
For `J ∉ π.bUnion πi`, returns `I`. -/
-def bUnionIndex (πi : ∀ J, Prepartition J) (J : Box ι) : Box ι :=
+def bunionᵢIndex (πi : ∀ J, Prepartition J) (J : Box ι) : Box ι :=
if hJ : J ∈ π.bunionᵢ πi then (π.mem_bunionᵢ.1 hJ).some else I
-#align box_integral.prepartition.bUnion_index BoxIntegral.Prepartition.bUnionIndex
+#align box_integral.prepartition.bUnion_index BoxIntegral.Prepartition.bunionᵢIndex
+-/
-theorem bUnionIndex_mem (hJ : J ∈ π.bunionᵢ πi) : π.bUnionIndex πi J ∈ π :=
+#print BoxIntegral.Prepartition.bunionᵢIndex_mem /-
+theorem bunionᵢIndex_mem (hJ : J ∈ π.bunionᵢ πi) : π.bunionᵢIndex πi J ∈ π :=
by
rw [bUnion_index, dif_pos hJ]
exact (π.mem_bUnion.1 hJ).choose_spec.fst
-#align box_integral.prepartition.bUnion_index_mem BoxIntegral.Prepartition.bUnionIndex_mem
+#align box_integral.prepartition.bUnion_index_mem BoxIntegral.Prepartition.bunionᵢIndex_mem
+-/
-theorem bUnionIndex_le (πi : ∀ J, Prepartition J) (J : Box ι) : π.bUnionIndex πi J ≤ I :=
+#print BoxIntegral.Prepartition.bunionᵢIndex_le /-
+theorem bunionᵢIndex_le (πi : ∀ J, Prepartition J) (J : Box ι) : π.bunionᵢIndex πi J ≤ I :=
by
by_cases hJ : J ∈ π.bUnion πi
· exact π.le_of_mem (π.bUnion_index_mem hJ)
· rw [bUnion_index, dif_neg hJ]
exact le_rfl
-#align box_integral.prepartition.bUnion_index_le BoxIntegral.Prepartition.bUnionIndex_le
+#align box_integral.prepartition.bUnion_index_le BoxIntegral.Prepartition.bunionᵢIndex_le
+-/
-theorem mem_bUnionIndex (hJ : J ∈ π.bunionᵢ πi) : J ∈ πi (π.bUnionIndex πi J) := by
+#print BoxIntegral.Prepartition.mem_bunionᵢIndex /-
+theorem mem_bunionᵢIndex (hJ : J ∈ π.bunionᵢ πi) : J ∈ πi (π.bunionᵢIndex πi J) := by
convert(π.mem_bUnion.1 hJ).choose_spec.snd <;> exact dif_pos hJ
-#align box_integral.prepartition.mem_bUnion_index BoxIntegral.Prepartition.mem_bUnionIndex
+#align box_integral.prepartition.mem_bUnion_index BoxIntegral.Prepartition.mem_bunionᵢIndex
+-/
-theorem le_bUnionIndex (hJ : J ∈ π.bunionᵢ πi) : J ≤ π.bUnionIndex πi J :=
- le_of_mem _ (π.mem_bUnionIndex hJ)
-#align box_integral.prepartition.le_bUnion_index BoxIntegral.Prepartition.le_bUnionIndex
+#print BoxIntegral.Prepartition.le_bunionᵢIndex /-
+theorem le_bunionᵢIndex (hJ : J ∈ π.bunionᵢ πi) : J ≤ π.bunionᵢIndex πi J :=
+ le_of_mem _ (π.mem_bunionᵢIndex hJ)
+#align box_integral.prepartition.le_bUnion_index BoxIntegral.Prepartition.le_bunionᵢIndex
+-/
+#print BoxIntegral.Prepartition.bunionᵢIndex_of_mem /-
/-- Uniqueness property of `box_integral.partition.bUnion_index`. -/
-theorem bUnionIndex_of_mem (hJ : J ∈ π) {J'} (hJ' : J' ∈ πi J) : π.bUnionIndex πi J' = J :=
+theorem bunionᵢIndex_of_mem (hJ : J ∈ π) {J'} (hJ' : J' ∈ πi J) : π.bunionᵢIndex πi J' = J :=
have : J' ∈ π.bunionᵢ πi := π.mem_bunionᵢ.2 ⟨J, hJ, hJ'⟩
- π.eq_of_le_of_le (π.bUnionIndex_mem this) hJ (π.le_bUnionIndex this) (le_of_mem _ hJ')
-#align box_integral.prepartition.bUnion_index_of_mem BoxIntegral.Prepartition.bUnionIndex_of_mem
+ π.eq_of_le_of_le (π.bunionᵢIndex_mem this) hJ (π.le_bunionᵢIndex this) (le_of_mem _ hJ')
+#align box_integral.prepartition.bUnion_index_of_mem BoxIntegral.Prepartition.bunionᵢIndex_of_mem
+-/
-theorem bUnion_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : Box ι, Prepartition J) :
+#print BoxIntegral.Prepartition.bunionᵢ_assoc /-
+theorem bunionᵢ_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : Box ι, Prepartition J) :
(π.bunionᵢ fun J => (πi J).bunionᵢ (πi' J)) =
- (π.bunionᵢ πi).bunionᵢ fun J => πi' (π.bUnionIndex πi J) J :=
+ (π.bunionᵢ πi).bunionᵢ fun J => πi' (π.bunionᵢIndex πi J) J :=
by
ext J
simp only [mem_bUnion, exists_prop]
@@ -419,8 +606,15 @@ theorem bUnion_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : Bo
· rintro ⟨J₁, ⟨J₂, hJ₂, hJ₁⟩, hJ⟩
refine' ⟨J₂, hJ₂, J₁, hJ₁, _⟩
rwa [π.bUnion_index_of_mem hJ₂ hJ₁] at hJ
-#align box_integral.prepartition.bUnion_assoc BoxIntegral.Prepartition.bUnion_assoc
+#align box_integral.prepartition.bUnion_assoc BoxIntegral.Prepartition.bunionᵢ_assoc
+-/
+/- warning: box_integral.prepartition.of_with_bot -> BoxIntegral.Prepartition.ofWithBot is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))), (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) -> (Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))) -> (BoxIntegral.Prepartition.{u1} ι I)
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))), (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))) -> (Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))) -> (BoxIntegral.Prepartition.{u1} ι I)
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.of_with_bot BoxIntegral.Prepartition.ofWithBotₓ'. -/
/-- Create a `box_integral.prepartition` from a collection of possibly empty boxes by filtering out
the empty one if it exists. -/
def ofWithBot (boxes : Finset (WithBot (Box ι)))
@@ -437,14 +631,26 @@ def ofWithBot (boxes : Finset (WithBot (Box ι)))
exact box.disjoint_coe.1 (pairwise_disjoint h₁ h₂ (mt Option.some_inj.1 hne))
#align box_integral.prepartition.of_with_bot BoxIntegral.Prepartition.ofWithBot
+/- warning: box_integral.prepartition.mem_of_with_bot -> BoxIntegral.Prepartition.mem_ofWithBot is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {h₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {h₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes h₁ h₂)) (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) boxes)
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {h₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {h₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes h₁ h₂)) (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J) boxes)
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_of_with_bot BoxIntegral.Prepartition.mem_ofWithBotₓ'. -/
@[simp]
theorem mem_ofWithBot {boxes : Finset (WithBot (Box ι))} {h₁ h₂} :
J ∈ (ofWithBot boxes h₁ h₂ : Prepartition I) ↔ (J : WithBot (Box ι)) ∈ boxes :=
mem_eraseNone
#align box_integral.prepartition.mem_of_with_bot BoxIntegral.Prepartition.mem_ofWithBot
+/- warning: box_integral.prepartition.Union_of_with_bot -> BoxIntegral.Prepartition.unionᵢ_ofWithBot is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (Set.unionᵢ.{u1, succ u1} (ι -> Real) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Set.unionᵢ.{u1, 0} (ι -> Real) (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.withBotCoe.{u1} ι))) J)))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (Set.unionᵢ.{u1, succ u1} (ι -> Real) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Set.unionᵢ.{u1, 0} (ι -> Real) (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) (fun (H : Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) => BoxIntegral.Box.withBotToSet.{u1} ι J)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.unionᵢ_ofWithBotₓ'. -/
@[simp]
-theorem union_ofWithBot (boxes : Finset (WithBot (Box ι)))
+theorem unionᵢ_ofWithBot (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
(pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint) :
(ofWithBot boxes le_of_mem pairwise_disjoint).unionᵢ = ⋃ J ∈ boxes, ↑J :=
@@ -453,8 +659,14 @@ theorem union_ofWithBot (boxes : Finset (WithBot (Box ι)))
simpa [of_with_bot, prepartition.Union]
simp only [← box.bUnion_coe_eq_coe, @Union_comm _ _ (box ι), @Union_comm _ _ (@Eq _ _ _),
Union_Union_eq_right]
-#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.union_ofWithBot
-
+#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.unionᵢ_ofWithBot
+
+/- warning: box_integral.prepartition.of_with_bot_le -> BoxIntegral.Prepartition.ofWithBot_le is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasBot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J'))))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint) π)
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.bot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π) (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J'))))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint) π)
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.of_with_bot_le BoxIntegral.Prepartition.ofWithBot_leₓ'. -/
theorem ofWithBot_le {boxes : Finset (WithBot (Box ι))}
{le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I}
{pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint}
@@ -466,6 +678,12 @@ theorem ofWithBot_le {boxes : Finset (WithBot (Box ι))}
simpa [of_with_bot, le_def]
#align box_integral.prepartition.of_with_bot_le BoxIntegral.Prepartition.ofWithBot_le
+/- warning: box_integral.prepartition.le_of_with_bot -> BoxIntegral.Prepartition.le_ofWithBot is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Exists.{0} (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => And (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes) (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J) J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_of_with_bot BoxIntegral.Prepartition.le_ofWithBotₓ'. -/
theorem le_ofWithBot {boxes : Finset (WithBot (Box ι))}
{le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I}
{pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint}
@@ -477,6 +695,12 @@ theorem le_ofWithBot {boxes : Finset (WithBot (Box ι))}
exact ⟨J', mem_of_with_bot.2 J'mem, WithBot.coe_le_coe.1 hle⟩
#align box_integral.prepartition.le_of_with_bot BoxIntegral.Prepartition.le_ofWithBot
+/- warning: box_integral.prepartition.of_with_bot_mono -> BoxIntegral.Prepartition.ofWithBot_mono is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {boxes₁ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint₁ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes₁) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))} {boxes₂ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₂ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₂) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))} {pairwise_disjoint₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes₂) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasBot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Exists.{0} (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes₂) (fun (H : Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes₂) => LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₁ le_of_mem₁ pairwise_disjoint₁) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₂ le_of_mem₂ pairwise_disjoint₂))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {boxes₁ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₁ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint₁ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes₁) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))} {boxes₂ : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))} {le_of_mem₂ : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₂) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))} {pairwise_disjoint₂ : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes₂) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))}, (forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes₁) -> (Ne.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) J (Bot.bot.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.bot.{u1} (BoxIntegral.Box.{u1} ι)))) -> (Exists.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (fun (J' : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => And (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J' boxes₂) (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J J')))) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₁ le_of_mem₁ pairwise_disjoint₁) (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes₂ le_of_mem₂ pairwise_disjoint₂))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.of_with_bot_mono BoxIntegral.Prepartition.ofWithBot_monoₓ'. -/
theorem ofWithBot_mono {boxes₁ : Finset (WithBot (Box ι))}
{le_of_mem₁ : ∀ J ∈ boxes₁, (J : WithBot (Box ι)) ≤ I}
{pairwise_disjoint₁ : Set.Pairwise (boxes₁ : Set (WithBot (Box ι))) Disjoint}
@@ -488,6 +712,12 @@ theorem ofWithBot_mono {boxes₁ : Finset (WithBot (Box ι))}
le_ofWithBot _ fun J hJ => H J (mem_ofWithBot.1 hJ) WithBot.coe_ne_bot
#align box_integral.prepartition.of_with_bot_mono BoxIntegral.Prepartition.ofWithBot_mono
+/- warning: box_integral.prepartition.sum_of_with_bot -> BoxIntegral.Prepartition.sum_ofWithBot is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.Mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.hasMem.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)))) J ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Set.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.Set.hasCoeT.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))))) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.partialOrder.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι)))) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) _inst_1 boxes (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Option.elim'.{u1, u2} (BoxIntegral.Box.{u1} ι) M (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))))) f J))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (boxes : Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (le_of_mem : forall (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)), (Membership.mem.{u1, u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) (Finset.instMembershipFinset.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι))) J boxes) -> (LE.le.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Preorder.toLE.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.preorder.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))) J (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) I))) (pairwise_disjoint : Set.Pairwise.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.toSet.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) boxes) (Disjoint.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.partialOrder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)) (WithBot.orderBot.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι)))))) (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I (BoxIntegral.Prepartition.ofWithBot.{u1} ι I boxes le_of_mem pairwise_disjoint)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) _inst_1 boxes (fun (J : WithBot.{u1} (BoxIntegral.Box.{u1} ι)) => Option.elim'.{u1, u2} (BoxIntegral.Box.{u1} ι) M (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) f J))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_of_with_bot BoxIntegral.Prepartition.sum_ofWithBotₓ'. -/
theorem sum_ofWithBot {M : Type _} [AddCommMonoid M] (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
(pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint) (f : Box ι → M) :
@@ -496,6 +726,7 @@ theorem sum_ofWithBot {M : Type _} [AddCommMonoid M] (boxes : Finset (WithBot (B
Finset.sum_eraseNone _ _
#align box_integral.prepartition.sum_of_with_bot BoxIntegral.Prepartition.sum_ofWithBot
+#print BoxIntegral.Prepartition.restrict /-
/-- Restrict a prepartition to a box. -/
def restrict (π : Prepartition I) (J : Box ι) : Prepartition J :=
ofWithBot (π.boxes.image fun J' => J ⊓ J')
@@ -510,16 +741,35 @@ def restrict (π : Prepartition I) (J : Box ι) : Prepartition J :=
exact Hne rfl
exact ((box.disjoint_coe.2 <| π.disjoint_coe_of_mem h₁ h₂ this).inf_left' _).inf_right' _)
#align box_integral.prepartition.restrict BoxIntegral.Prepartition.restrict
+-/
+/- warning: box_integral.prepartition.mem_restrict -> BoxIntegral.Prepartition.mem_restrict is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasMem.{u1} ι J) J₁ (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => Eq.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J₁) (Inf.inf.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Box.WithBot.hasInf.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J')))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι J) J₁ (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π) (Eq.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J₁) (Inf.inf.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Box.WithBot.inf.{u1} ι) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J')))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_restrict BoxIntegral.Prepartition.mem_restrictₓ'. -/
@[simp]
theorem mem_restrict : J₁ ∈ π.restrict J ↔ ∃ J' ∈ π, (J₁ : WithBot (Box ι)) = J ⊓ J' := by
simp [restrict, eq_comm]
#align box_integral.prepartition.mem_restrict BoxIntegral.Prepartition.mem_restrict
+/- warning: box_integral.prepartition.mem_restrict' -> BoxIntegral.Prepartition.mem_restrict' is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasMem.{u1} ι J) J₁ (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π) => Eq.{succ u1} (Set.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J₁) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J')))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {J₁ : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι J) J₁ (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J' : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π) (Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J₁) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Box.toSet.{u1} ι J')))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_restrict' BoxIntegral.Prepartition.mem_restrict'ₓ'. -/
theorem mem_restrict' : J₁ ∈ π.restrict J ↔ ∃ J' ∈ π, (J₁ : Set (ι → ℝ)) = J ∩ J' := by
simp only [mem_restrict, ← box.with_bot_coe_inj, box.coe_inf, box.coe_coe]
#align box_integral.prepartition.mem_restrict' BoxIntegral.Prepartition.mem_restrict'
+/- warning: box_integral.prepartition.restrict_mono -> BoxIntegral.Prepartition.restrict_mono is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasLe.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π₁ J) (BoxIntegral.Prepartition.restrict.{u1} ι I π₂ J))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π₁ J) (BoxIntegral.Prepartition.restrict.{u1} ι I π₂ J))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.restrict_mono BoxIntegral.Prepartition.restrict_monoₓ'. -/
@[mono]
theorem restrict_mono {π₁ π₂ : Prepartition I} (Hle : π₁ ≤ π₂) : π₁.restrict J ≤ π₂.restrict J :=
by
@@ -529,10 +779,13 @@ theorem restrict_mono {π₁ π₂ : Prepartition I} (Hle : π₁ ≤ π₂) :
exact ⟨_, Finset.mem_image_of_mem _ hJ₂, inf_le_inf_left _ <| WithBot.coe_le_coe.2 hle⟩
#align box_integral.prepartition.restrict_mono BoxIntegral.Prepartition.restrict_mono
+#print BoxIntegral.Prepartition.monotone_restrict /-
theorem monotone_restrict : Monotone fun π : Prepartition I => restrict π J := fun π₁ π₂ =>
restrict_mono
#align box_integral.prepartition.monotone_restrict BoxIntegral.Prepartition.monotone_restrict
+-/
+#print BoxIntegral.Prepartition.restrict_boxes_of_le /-
/-- Restricting to a larger box does not change the set of boxes. We cannot claim equality
of prepartitions because they have different types. -/
theorem restrict_boxes_of_le (π : Prepartition I) (h : I ≤ J) : (π.restrict J).boxes = π.boxes :=
@@ -544,19 +797,29 @@ theorem restrict_boxes_of_le (π : Prepartition I) (h : I ≤ J) : (π.restrict
rw [inf_of_le_right, ← WithBot.some_eq_coe, Option.toFinset_some]
exact WithBot.coe_le_coe.2 ((π.le_of_mem hJ').trans h)
#align box_integral.prepartition.restrict_boxes_of_le BoxIntegral.Prepartition.restrict_boxes_of_le
+-/
+#print BoxIntegral.Prepartition.restrict_self /-
@[simp]
theorem restrict_self : π.restrict I = π :=
injective_boxes <| restrict_boxes_of_le π le_rfl
#align box_integral.prepartition.restrict_self BoxIntegral.Prepartition.restrict_self
+-/
+/- warning: box_integral.prepartition.Union_restrict -> BoxIntegral.Prepartition.unionᵢ_restrict is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι J (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι J (BoxIntegral.Prepartition.restrict.{u1} ι I π J)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_restrict BoxIntegral.Prepartition.unionᵢ_restrictₓ'. -/
@[simp]
-theorem union_restrict : (π.restrict J).unionᵢ = J ∩ π.unionᵢ := by
+theorem unionᵢ_restrict : (π.restrict J).unionᵢ = J ∩ π.unionᵢ := by
simp [restrict, ← inter_Union, ← Union_def]
-#align box_integral.prepartition.Union_restrict BoxIntegral.Prepartition.union_restrict
+#align box_integral.prepartition.Union_restrict BoxIntegral.Prepartition.unionᵢ_restrict
+#print BoxIntegral.Prepartition.restrict_bunionᵢ /-
@[simp]
-theorem restrict_bUnion (πi : ∀ J, Prepartition J) (hJ : J ∈ π) :
+theorem restrict_bunionᵢ (πi : ∀ J, Prepartition J) (hJ : J ∈ π) :
(π.bunionᵢ πi).restrict J = πi J :=
by
refine' (eq_of_boxes_subset_Union_superset (fun J₁ h₁ => _) _).symm
@@ -567,9 +830,16 @@ theorem restrict_bUnion (πi : ∀ J, Prepartition J) (hJ : J ∈ π) :
obtain rfl : J = J₁
exact π.eq_of_mem_of_mem hJ h₁ hxJ (Union_subset _ hx)
exact hx
-#align box_integral.prepartition.restrict_bUnion BoxIntegral.Prepartition.restrict_bUnion
+#align box_integral.prepartition.restrict_bUnion BoxIntegral.Prepartition.restrict_bunionᵢ
+-/
-theorem bUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
+/- warning: box_integral.prepartition.bUnion_le_iff -> BoxIntegral.Prepartition.bunionᵢ_le_iff is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) π') (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasLe.{u1} ι J) (πi J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J)))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) π') (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι J) (πi J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.bunionᵢ_le_iffₓ'. -/
+theorem bunionᵢ_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
π.bunionᵢ πi ≤ π' ↔ ∀ J ∈ π, πi J ≤ π'.restrict J :=
by
fconstructor <;> intro H J hJ
@@ -580,9 +850,15 @@ theorem bUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
rcases H J₁ h₁ hJ with ⟨J₂, h₂, Hle⟩
rcases π'.mem_restrict.mp h₂ with ⟨J₃, h₃, H⟩
exact ⟨J₃, h₃, Hle.trans <| WithBot.coe_le_coe.1 <| H.trans_le inf_le_right⟩
-#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.bUnion_le_iff
-
-theorem le_bUnion_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
+#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.bunionᵢ_le_iff
+
+/- warning: box_integral.prepartition.le_bUnion_iff -> BoxIntegral.Prepartition.le_bunionᵢ_iff is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π' (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi)) (And (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π' π) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.hasLe.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J) (πi J))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) {πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J} {π' : BoxIntegral.Prepartition.{u1} ι I}, Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π' (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi)) (And (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π' π) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π) -> (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι J) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι J) (BoxIntegral.Prepartition.restrict.{u1} ι I π' J) (πi J))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_bunionᵢ_iffₓ'. -/
+theorem le_bunionᵢ_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
π' ≤ π.bunionᵢ πi ↔ π' ≤ π ∧ ∀ J ∈ π, π'.restrict J ≤ πi J :=
by
refine' ⟨fun H => ⟨H.trans (π.bUnion_le πi), fun J hJ => _⟩, _⟩
@@ -594,33 +870,48 @@ theorem le_bUnion_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
π'.mem_restrict.2 ⟨J', hJ', (inf_of_le_right <| WithBot.coe_le_coe.2 hle).symm⟩
rcases Hi J hJ this with ⟨Ji, hJi, hlei⟩
exact ⟨Ji, π.mem_bUnion.2 ⟨J, hJ, hJi⟩, hlei⟩
-#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_bUnion_iff
+#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_bunionᵢ_iff
instance : Inf (Prepartition I) :=
⟨fun π₁ π₂ => π₁.bunionᵢ fun J => π₂.restrict J⟩
+#print BoxIntegral.Prepartition.inf_def /-
theorem inf_def (π₁ π₂ : Prepartition I) : π₁ ⊓ π₂ = π₁.bunionᵢ fun J => π₂.restrict J :=
rfl
#align box_integral.prepartition.inf_def BoxIntegral.Prepartition.inf_def
+-/
+/- warning: box_integral.prepartition.mem_inf -> BoxIntegral.Prepartition.mem_inf is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasInf.{u1} ι I) π₁ π₂)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J₁ : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₁ π₁) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₁ π₁) => Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J₂ : BoxIntegral.Box.{u1} ι) => Exists.{0} (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₂ π₂) (fun (H : Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J₂ π₂) => Eq.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J) (Inf.inf.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Box.WithBot.hasInf.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J₁) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.hasCoeT.{u1} (BoxIntegral.Box.{u1} ι)))) J₂)))))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.inf.{u1} ι I) π₁ π₂)) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J₁ : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J₁ π₁) (Exists.{succ u1} (BoxIntegral.Box.{u1} ι) (fun (J₂ : BoxIntegral.Box.{u1} ι) => And (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J₂ π₂) (Eq.{succ u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J) (Inf.inf.{u1} (WithBot.{u1} (BoxIntegral.Box.{u1} ι)) (BoxIntegral.Box.WithBot.inf.{u1} ι) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J₁) (WithBot.some.{u1} (BoxIntegral.Box.{u1} ι) J₂)))))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_inf BoxIntegral.Prepartition.mem_infₓ'. -/
@[simp]
theorem mem_inf {π₁ π₂ : Prepartition I} :
J ∈ π₁ ⊓ π₂ ↔ ∃ J₁ ∈ π₁, ∃ J₂ ∈ π₂, (J : WithBot (Box ι)) = J₁ ⊓ J₂ := by
simp only [inf_def, mem_bUnion, mem_restrict]
#align box_integral.prepartition.mem_inf BoxIntegral.Prepartition.mem_inf
+/- warning: box_integral.prepartition.Union_inf -> BoxIntegral.Prepartition.unionᵢ_inf is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasInf.{u1} ι I) π₁ π₂)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (Inf.inf.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.inf.{u1} ι I) π₁ π₂)) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_inf BoxIntegral.Prepartition.unionᵢ_infₓ'. -/
@[simp]
-theorem union_inf (π₁ π₂ : Prepartition I) : (π₁ ⊓ π₂).unionᵢ = π₁.unionᵢ ∩ π₂.unionᵢ := by
+theorem unionᵢ_inf (π₁ π₂ : Prepartition I) : (π₁ ⊓ π₂).unionᵢ = π₁.unionᵢ ∩ π₂.unionᵢ := by
simp only [inf_def, Union_bUnion, Union_restrict, ← Union_inter, ← Union_def]
-#align box_integral.prepartition.Union_inf BoxIntegral.Prepartition.union_inf
+#align box_integral.prepartition.Union_inf BoxIntegral.Prepartition.unionᵢ_inf
instance : SemilatticeInf (Prepartition I) :=
{ Prepartition.hasInf,
Prepartition.partialOrder with
- inf_le_left := fun π₁ π₂ => π₁.bUnion_le _
- inf_le_right := fun π₁ π₂ => (bUnion_le_iff _).2 fun J hJ => le_rfl
- le_inf := fun π π₁ π₂ h₁ h₂ => π₁.le_bUnion_iff.2 ⟨h₁, fun J hJ => restrict_mono h₂⟩ }
+ inf_le_left := fun π₁ π₂ => π₁.bunionᵢ_le _
+ inf_le_right := fun π₁ π₂ => (bunionᵢ_le_iff _).2 fun J hJ => le_rfl
+ le_inf := fun π π₁ π₂ h₁ h₂ => π₁.le_bunionᵢ_iff.2 ⟨h₁, fun J hJ => restrict_mono h₂⟩ }
+#print BoxIntegral.Prepartition.filter /-
/-- The prepartition with boxes `{J ∈ π | p J}`. -/
@[simps]
def filter (π : Prepartition I) (p : Box ι → Prop) : Prepartition I
@@ -629,30 +920,49 @@ def filter (π : Prepartition I) (p : Box ι → Prop) : Prepartition I
le_of_mem' J hJ := π.le_of_mem (mem_filter.1 hJ).1
PairwiseDisjoint J₁ h₁ J₂ h₂ := π.disjoint_coe_of_mem (mem_filter.1 h₁).1 (mem_filter.1 h₂).1
#align box_integral.prepartition.filter BoxIntegral.Prepartition.filter
+-/
+#print BoxIntegral.Prepartition.mem_filter /-
@[simp]
theorem mem_filter {p : Box ι → Prop} : J ∈ π.filterₓ p ↔ J ∈ π ∧ p J :=
Finset.mem_filter
#align box_integral.prepartition.mem_filter BoxIntegral.Prepartition.mem_filter
+-/
+/- warning: box_integral.prepartition.filter_le -> BoxIntegral.Prepartition.filter_le is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.filter.{u1} ι I π p) π
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.filter.{u1} ι I π p) π
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.filter_le BoxIntegral.Prepartition.filter_leₓ'. -/
theorem filter_le (π : Prepartition I) (p : Box ι → Prop) : π.filterₓ p ≤ π := fun J hJ =>
let ⟨hπ, hp⟩ := π.mem_filter.1 hJ
⟨J, hπ, le_rfl⟩
#align box_integral.prepartition.filter_le BoxIntegral.Prepartition.filter_le
+#print BoxIntegral.Prepartition.filter_of_true /-
theorem filter_of_true {p : Box ι → Prop} (hp : ∀ J ∈ π, p J) : π.filterₓ p = π :=
by
ext J
simpa using hp J
#align box_integral.prepartition.filter_of_true BoxIntegral.Prepartition.filter_of_true
+-/
+#print BoxIntegral.Prepartition.filter_true /-
@[simp]
theorem filter_true : (π.filterₓ fun _ => True) = π :=
π.filter_of_true fun _ _ => trivial
#align box_integral.prepartition.filter_true BoxIntegral.Prepartition.filter_true
+-/
+/- warning: box_integral.prepartition.Union_filter_not -> BoxIntegral.Prepartition.unionᵢ_filter_not is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Not (p J)))) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π p)))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π : BoxIntegral.Prepartition.{u1} ι I) (p : (BoxIntegral.Box.{u1} ι) -> Prop), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Not (p J)))) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π p)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.unionᵢ_filter_notₓ'. -/
@[simp]
-theorem union_filter_not (π : Prepartition I) (p : Box ι → Prop) :
+theorem unionᵢ_filter_not (π : Prepartition I) (p : Box ι → Prop) :
(π.filterₓ fun J => ¬p J).unionᵢ = π.unionᵢ \ (π.filterₓ p).unionᵢ :=
by
simp only [prepartition.Union]
@@ -661,14 +971,26 @@ theorem union_filter_not (π : Prepartition I) (p : Box ι → Prop) :
simp (config := { contextual := true })
· convert π.pairwise_disjoint
simp
-#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.union_filter_not
-
+#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.unionᵢ_filter_not
+
+/- warning: box_integral.prepartition.sum_fiberwise -> BoxIntegral.Prepartition.sum_fiberwise is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {α : Type.{u2}} {M : Type.{u3}} [_inst_1 : AddCommMonoid.{u3} M] (π : BoxIntegral.Prepartition.{u1} ι I) (f : (BoxIntegral.Box.{u1} ι) -> α) (g : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u3} M (Finset.sum.{u3, u2} M α _inst_1 (Finset.image.{u1, u2} (BoxIntegral.Box.{u1} ι) α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) f (BoxIntegral.Prepartition.boxes.{u1} ι I π)) (fun (y : α) => Finset.sum.{u3, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Eq.{succ u2} α (f J) y))) (fun (J : BoxIntegral.Box.{u1} ι) => g J))) (Finset.sum.{u3, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => g J))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {α : Type.{u3}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] (π : BoxIntegral.Prepartition.{u1} ι I) (f : (BoxIntegral.Box.{u1} ι) -> α) (g : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u3} M α _inst_1 (Finset.image.{u1, u3} (BoxIntegral.Box.{u1} ι) α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u3} α a b)) f (BoxIntegral.Prepartition.boxes.{u1} ι I π)) (fun (y : α) => Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I (BoxIntegral.Prepartition.filter.{u1} ι I π (fun (J : BoxIntegral.Box.{u1} ι) => Eq.{succ u3} α (f J) y))) (fun (J : BoxIntegral.Box.{u1} ι) => g J))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => g J))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_fiberwise BoxIntegral.Prepartition.sum_fiberwiseₓ'. -/
theorem sum_fiberwise {α M} [AddCommMonoid M] (π : Prepartition I) (f : Box ι → α) (g : Box ι → M) :
(∑ y in π.boxes.image f, ∑ J in (π.filterₓ fun J => f J = y).boxes, g J) =
∑ J in π.boxes, g J :=
by convert sum_fiberwise_of_maps_to (fun _ => Finset.mem_image_of_mem f) g
#align box_integral.prepartition.sum_fiberwise BoxIntegral.Prepartition.sum_fiberwise
+/- warning: box_integral.prepartition.disj_union -> BoxIntegral.Prepartition.disjUnion is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (BoxIntegral.Prepartition.{u1} ι I)
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} (π₁ : BoxIntegral.Prepartition.{u1} ι I) (π₂ : BoxIntegral.Prepartition.{u1} ι I), (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (BoxIntegral.Prepartition.{u1} ι I)
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.disj_union BoxIntegral.Prepartition.disjUnionₓ'. -/
/-- Union of two disjoint prepartitions. -/
@[simps]
def disjUnion (π₁ π₂ : Prepartition I) (h : Disjoint π₁.unionᵢ π₂.unionᵢ) : Prepartition I
@@ -681,64 +1003,114 @@ def disjUnion (π₁ π₂ : Prepartition I) (h : Disjoint π₁.unionᵢ π₂.
fun J₁ h₁ J₂ h₂ _ => h.mono (π₁.subset_unionᵢ h₁) (π₂.subset_unionᵢ h₂)
#align box_integral.prepartition.disj_union BoxIntegral.Prepartition.disjUnion
+/- warning: box_integral.prepartition.mem_disj_union -> BoxIntegral.Prepartition.mem_disjUnion is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (H : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Iff (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ H)) (Or (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₂))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {J : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (H : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Iff (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ H)) (Or (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₂))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.mem_disj_union BoxIntegral.Prepartition.mem_disjUnionₓ'. -/
@[simp]
theorem mem_disjUnion (H : Disjoint π₁.unionᵢ π₂.unionᵢ) :
J ∈ π₁.disjUnion π₂ H ↔ J ∈ π₁ ∨ J ∈ π₂ :=
Finset.mem_union
#align box_integral.prepartition.mem_disj_union BoxIntegral.Prepartition.mem_disjUnion
+/- warning: box_integral.prepartition.Union_disj_union -> BoxIntegral.Prepartition.unionᵢ_disjUnion is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h)) (Union.union.{u1} (Set.{u1} (ι -> Real)) (Set.hasUnion.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h)) (Union.union.{u1} (Set.{u1} (ι -> Real)) (Set.instUnionSet.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.unionᵢ_disjUnionₓ'. -/
@[simp]
-theorem union_disjUnion (h : Disjoint π₁.unionᵢ π₂.unionᵢ) :
+theorem unionᵢ_disjUnion (h : Disjoint π₁.unionᵢ π₂.unionᵢ) :
(π₁.disjUnion π₂ h).unionᵢ = π₁.unionᵢ ∪ π₂.unionᵢ := by
simp [disj_union, prepartition.Union, Union_or, Union_union_distrib]
-#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.union_disjUnion
-
+#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.unionᵢ_disjUnion
+
+/- warning: box_integral.prepartition.sum_disj_union_boxes -> BoxIntegral.Prepartition.sum_disj_union_boxes is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.hasUnion.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable (Eq.{succ u1} (BoxIntegral.Box.{u1} ι) a b))) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M], (Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)) -> (forall (f : (BoxIntegral.Box.{u1} ι) -> M), Eq.{succ u2} M (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (Union.union.{u1} (Finset.{u1} (BoxIntegral.Box.{u1} ι)) (Finset.instUnionFinset.{u1} (BoxIntegral.Box.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => decidableEq_of_decidableLE.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι) (fun (a : BoxIntegral.Box.{u1} ι) (b : BoxIntegral.Box.{u1} ι) => Classical.propDecidable ((fun (x._@.Mathlib.Init.Algebra.Order._hyg.1911 : BoxIntegral.Box.{u1} ι) (x._@.Mathlib.Init.Algebra.Order._hyg.1913 : BoxIntegral.Box.{u1} ι) => LE.le.{u1} (BoxIntegral.Box.{u1} ι) (Preorder.toLE.{u1} (BoxIntegral.Box.{u1} ι) (PartialOrder.toPreorder.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instPartialOrderBox.{u1} ι))) x._@.Mathlib.Init.Algebra.Order._hyg.1911 x._@.Mathlib.Init.Algebra.Order._hyg.1913) a b)) a b)) (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (BoxIntegral.Prepartition.boxes.{u1} ι I π₂)) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)))) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₁) (fun (J : BoxIntegral.Box.{u1} ι) => f J)) (Finset.sum.{u2, u1} M (BoxIntegral.Box.{u1} ι) _inst_1 (BoxIntegral.Prepartition.boxes.{u1} ι I π₂) (fun (J : BoxIntegral.Box.{u1} ι) => f J))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.sum_disj_union_boxes BoxIntegral.Prepartition.sum_disj_union_boxesₓ'. -/
@[simp]
theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.unionᵢ π₂.unionᵢ)
(f : Box ι → M) :
(∑ J in π₁.boxes ∪ π₂.boxes, f J) = (∑ J in π₁.boxes, f J) + ∑ J in π₂.boxes, f J :=
- sum_union <| disjoint_boxes_of_disjoint_union h
+ sum_union <| disjoint_boxes_of_disjoint_unionᵢ h
#align box_integral.prepartition.sum_disj_union_boxes BoxIntegral.Prepartition.sum_disj_union_boxes
section Distortion
variable [Fintype ι]
+#print BoxIntegral.Prepartition.distortion /-
/-- The distortion of a prepartition is the maximum of the distortions of the boxes of this
prepartition. -/
def distortion : ℝ≥0 :=
π.boxes.sup Box.distortion
#align box_integral.prepartition.distortion BoxIntegral.Prepartition.distortion
+-/
+#print BoxIntegral.Prepartition.distortion_le_of_mem /-
theorem distortion_le_of_mem (h : J ∈ π) : J.distortion ≤ π.distortion :=
le_sup h
#align box_integral.prepartition.distortion_le_of_mem BoxIntegral.Prepartition.distortion_le_of_mem
+-/
+#print BoxIntegral.Prepartition.distortion_le_iff /-
theorem distortion_le_iff {c : ℝ≥0} : π.distortion ≤ c ↔ ∀ J ∈ π, Box.distortion J ≤ c :=
Finset.sup_le_iff
#align box_integral.prepartition.distortion_le_iff BoxIntegral.Prepartition.distortion_le_iff
+-/
-theorem distortion_bUnion (π : Prepartition I) (πi : ∀ J, Prepartition J) :
+/- warning: box_integral.prepartition.distortion_bUnion -> BoxIntegral.Prepartition.distortion_bunionᵢ is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} [_inst_1 : Fintype.{u1} ι] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) _inst_1) (Finset.sup.{0, u1} NNReal (BoxIntegral.Box.{u1} ι) NNReal.semilatticeSup NNReal.orderBot (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.distortion.{u1} ι J (πi J) _inst_1))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} [_inst_1 : Fintype.{u1} ι] (π : BoxIntegral.Prepartition.{u1} ι I) (πi : forall (J : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.{u1} ι J), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.bunionᵢ.{u1} ι I π πi) _inst_1) (Finset.sup.{0, u1} NNReal (BoxIntegral.Box.{u1} ι) instNNRealSemilatticeSup NNReal.instOrderBotNNRealToLEToPreorderToPartialOrderInstNNRealStrictOrderedSemiring (BoxIntegral.Prepartition.boxes.{u1} ι I π) (fun (J : BoxIntegral.Box.{u1} ι) => BoxIntegral.Prepartition.distortion.{u1} ι J (πi J) _inst_1))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_bunionᵢₓ'. -/
+theorem distortion_bunionᵢ (π : Prepartition I) (πi : ∀ J, Prepartition J) :
(π.bunionᵢ πi).distortion = π.boxes.sup fun J => (πi J).distortion :=
sup_bunionᵢ _ _
-#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_bUnion
-
+#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_bunionᵢ
+
+/- warning: box_integral.prepartition.distortion_disj_union -> BoxIntegral.Prepartition.distortion_disjUnion is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} [_inst_1 : Fintype.{u1} ι] (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h) _inst_1) (LinearOrder.max.{0} NNReal (ConditionallyCompleteLinearOrder.toLinearOrder.{0} NNReal (ConditionallyCompleteLinearOrderBot.toConditionallyCompleteLinearOrder.{0} NNReal NNReal.conditionallyCompleteLinearOrderBot)) (BoxIntegral.Prepartition.distortion.{u1} ι I π₁ _inst_1) (BoxIntegral.Prepartition.distortion.{u1} ι I π₂ _inst_1))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} [_inst_1 : Fintype.{u1} ι] (h : Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂)), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ h) _inst_1) (Max.max.{0} NNReal (CanonicallyLinearOrderedSemifield.toMax.{0} NNReal NNReal.instCanonicallyLinearOrderedSemifieldNNReal) (BoxIntegral.Prepartition.distortion.{u1} ι I π₁ _inst_1) (BoxIntegral.Prepartition.distortion.{u1} ι I π₂ _inst_1))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_disj_union BoxIntegral.Prepartition.distortion_disjUnionₓ'. -/
@[simp]
theorem distortion_disjUnion (h : Disjoint π₁.unionᵢ π₂.unionᵢ) :
(π₁.disjUnion π₂ h).distortion = max π₁.distortion π₂.distortion :=
sup_union
#align box_integral.prepartition.distortion_disj_union BoxIntegral.Prepartition.distortion_disjUnion
+#print BoxIntegral.Prepartition.distortion_of_const /-
theorem distortion_of_const {c} (h₁ : π.boxes.Nonempty) (h₂ : ∀ J ∈ π, Box.distortion J = c) :
π.distortion = c :=
(sup_congr rfl h₂).trans (sup_const h₁ _)
#align box_integral.prepartition.distortion_of_const BoxIntegral.Prepartition.distortion_of_const
+-/
+/- warning: box_integral.prepartition.distortion_top -> BoxIntegral.Prepartition.distortion_top is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : Fintype.{u1} ι] (I : BoxIntegral.Box.{u1} ι), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I))) _inst_1) (BoxIntegral.Box.distortion.{u1} ι _inst_1 I)
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_1 : Fintype.{u1} ι] (I : BoxIntegral.Box.{u1} ι), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I))) _inst_1) (BoxIntegral.Box.distortion.{u1} ι _inst_1 I)
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_top BoxIntegral.Prepartition.distortion_topₓ'. -/
@[simp]
theorem distortion_top (I : Box ι) : distortion (⊤ : Prepartition I) = I.distortion :=
sup_singleton
#align box_integral.prepartition.distortion_top BoxIntegral.Prepartition.distortion_top
+/- warning: box_integral.prepartition.distortion_bot -> BoxIntegral.Prepartition.distortion_bot is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : Fintype.{u1} ι] (I : BoxIntegral.Box.{u1} ι), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toHasBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderBot.{u1} ι I))) _inst_1) (OfNat.ofNat.{0} NNReal 0 (OfNat.mk.{0} NNReal 0 (Zero.zero.{0} NNReal (MulZeroClass.toHasZero.{0} NNReal (NonUnitalNonAssocSemiring.toMulZeroClass.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring)))))))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_1 : Fintype.{u1} ι] (I : BoxIntegral.Box.{u1} ι), Eq.{1} NNReal (BoxIntegral.Prepartition.distortion.{u1} ι I (Bot.bot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderBot.toBot.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderBotPrepartitionInstLEPrepartition.{u1} ι I))) _inst_1) (OfNat.ofNat.{0} NNReal 0 (Zero.toOfNat0.{0} NNReal instNNRealZero))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.distortion_bot BoxIntegral.Prepartition.distortion_botₓ'. -/
@[simp]
theorem distortion_bot (I : Box ι) : distortion (⊥ : Prepartition I) = 0 :=
sup_empty
@@ -746,21 +1118,33 @@ theorem distortion_bot (I : Box ι) : distortion (⊥ : Prepartition I) = 0 :=
end Distortion
+#print BoxIntegral.Prepartition.IsPartition /-
/-- A prepartition `π` of `I` is a partition if the boxes of `π` cover the whole `I`. -/
def IsPartition (π : Prepartition I) :=
∀ x ∈ I, ∃ J ∈ π, x ∈ J
#align box_integral.prepartition.is_partition BoxIntegral.Prepartition.IsPartition
+-/
-theorem isPartition_iff_union_eq {π : Prepartition I} : π.IsPartition ↔ π.unionᵢ = I := by
+#print BoxIntegral.Prepartition.isPartition_iff_unionᵢ_eq /-
+theorem isPartition_iff_unionᵢ_eq {π : Prepartition I} : π.IsPartition ↔ π.unionᵢ = I := by
simp_rw [is_partition, Set.Subset.antisymm_iff, π.Union_subset, true_and_iff, Set.subset_def,
mem_Union, box.mem_coe]
-#align box_integral.prepartition.is_partition_iff_Union_eq BoxIntegral.Prepartition.isPartition_iff_union_eq
+#align box_integral.prepartition.is_partition_iff_Union_eq BoxIntegral.Prepartition.isPartition_iff_unionᵢ_eq
+-/
+#print BoxIntegral.Prepartition.isPartition_single_iff /-
@[simp]
theorem isPartition_single_iff (h : J ≤ I) : IsPartition (single I J h) ↔ J = I := by
simp [is_partition_iff_Union_eq]
#align box_integral.prepartition.is_partition_single_iff BoxIntegral.Prepartition.isPartition_single_iff
+-/
+/- warning: box_integral.prepartition.is_partition_top -> BoxIntegral.Prepartition.isPartitionTop is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} (I : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.IsPartition.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toHasTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) (BoxIntegral.Prepartition.orderTop.{u1} ι I)))
+but is expected to have type
+ forall {ι : Type.{u1}} (I : BoxIntegral.Box.{u1} ι), BoxIntegral.Prepartition.IsPartition.{u1} ι I (Top.top.{u1} (BoxIntegral.Prepartition.{u1} ι I) (OrderTop.toTop.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) (BoxIntegral.Prepartition.instOrderTopPrepartitionInstLEPrepartition.{u1} ι I)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.is_partition_top BoxIntegral.Prepartition.isPartitionTopₓ'. -/
theorem isPartitionTop (I : Box ι) : IsPartition (⊤ : Prepartition I) := fun x hx =>
⟨I, mem_top.2 rfl, hx⟩
#align box_integral.prepartition.is_partition_top BoxIntegral.Prepartition.isPartitionTop
@@ -769,62 +1153,92 @@ namespace IsPartition
variable {π}
-theorem union_eq (h : π.IsPartition) : π.unionᵢ = I :=
- isPartition_iff_union_eq.1 h
-#align box_integral.prepartition.is_partition.Union_eq BoxIntegral.Prepartition.IsPartition.union_eq
+#print BoxIntegral.Prepartition.IsPartition.unionᵢ_eq /-
+theorem unionᵢ_eq (h : π.IsPartition) : π.unionᵢ = I :=
+ isPartition_iff_unionᵢ_eq.1 h
+#align box_integral.prepartition.is_partition.Union_eq BoxIntegral.Prepartition.IsPartition.unionᵢ_eq
+-/
-theorem union_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.unionᵢ ⊆ π.unionᵢ :=
+#print BoxIntegral.Prepartition.IsPartition.unionᵢ_subset /-
+theorem unionᵢ_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.unionᵢ ⊆ π.unionᵢ :=
h.unionᵢ_eq.symm ▸ π₁.unionᵢ_subset
-#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.union_subset
+#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.unionᵢ_subset
+-/
/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (J «expr ∈ » π) -/
+#print BoxIntegral.Prepartition.IsPartition.existsUnique /-
protected theorem existsUnique (h : π.IsPartition) (hx : x ∈ I) : ∃! (J : _)(_ : J ∈ π), x ∈ J :=
by
rcases h x hx with ⟨J, h, hx⟩
exact ExistsUnique.intro₂ J h hx fun J' h' hx' => π.eq_of_mem_of_mem h' h hx' hx
#align box_integral.prepartition.is_partition.exists_unique BoxIntegral.Prepartition.IsPartition.existsUnique
+-/
+#print BoxIntegral.Prepartition.IsPartition.nonempty_boxes /-
theorem nonempty_boxes (h : π.IsPartition) : π.boxes.Nonempty :=
let ⟨J, hJ, _⟩ := h _ I.upper_mem
⟨J, hJ⟩
#align box_integral.prepartition.is_partition.nonempty_boxes BoxIntegral.Prepartition.IsPartition.nonempty_boxes
+-/
+#print BoxIntegral.Prepartition.IsPartition.eq_of_boxes_subset /-
theorem eq_of_boxes_subset (h₁ : π₁.IsPartition) (h₂ : π₁.boxes ⊆ π₂.boxes) : π₁ = π₂ :=
- eq_of_boxes_subset_union_superset h₂ <| h₁.unionᵢ_subset _
+ eq_of_boxes_subset_unionᵢ_superset h₂ <| h₁.unionᵢ_subset _
#align box_integral.prepartition.is_partition.eq_of_boxes_subset BoxIntegral.Prepartition.IsPartition.eq_of_boxes_subset
+-/
+/- warning: box_integral.prepartition.is_partition.le_iff -> BoxIntegral.Prepartition.IsPartition.le_iff is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (BoxIntegral.Prepartition.IsPartition.{u1} ι I π₂) -> (Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasLe.{u1} ι I) π₁ π₂) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.Mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.hasMem.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.hasInter.{u1} (ι -> Real)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.hasLe.{u1} ι) J J'))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I}, (BoxIntegral.Prepartition.IsPartition.{u1} ι I π₂) -> (Iff (LE.le.{u1} (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instLEPrepartition.{u1} ι I) π₁ π₂) (forall (J : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J π₁) -> (forall (J' : BoxIntegral.Box.{u1} ι), (Membership.mem.{u1, u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Prepartition.{u1} ι I) (BoxIntegral.Prepartition.instMembershipBoxPrepartition.{u1} ι I) J' π₂) -> (Set.Nonempty.{u1} (ι -> Real) (Inter.inter.{u1} (Set.{u1} (ι -> Real)) (Set.instInterSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι J) (BoxIntegral.Box.toSet.{u1} ι J'))) -> (LE.le.{u1} (BoxIntegral.Box.{u1} ι) (BoxIntegral.Box.instLEBox.{u1} ι) J J'))))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.is_partition.le_iff BoxIntegral.Prepartition.IsPartition.le_iffₓ'. -/
theorem le_iff (h : π₂.IsPartition) :
π₁ ≤ π₂ ↔ ∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J' :=
- le_iff_nonempty_imp_le_and_union_subset.trans <| and_iff_left <| h.unionᵢ_subset _
+ le_iff_nonempty_imp_le_and_unionᵢ_subset.trans <| and_iff_left <| h.unionᵢ_subset _
#align box_integral.prepartition.is_partition.le_iff BoxIntegral.Prepartition.IsPartition.le_iff
-protected theorem bUnion (h : IsPartition π) (hi : ∀ J ∈ π, IsPartition (πi J)) :
+#print BoxIntegral.Prepartition.IsPartition.bunionᵢ /-
+protected theorem bunionᵢ (h : IsPartition π) (hi : ∀ J ∈ π, IsPartition (πi J)) :
IsPartition (π.bunionᵢ πi) := fun x hx =>
let ⟨J, hJ, hxi⟩ := h x hx
let ⟨Ji, hJi, hx⟩ := hi J hJ x hxi
⟨Ji, π.mem_bunionᵢ.2 ⟨J, hJ, hJi⟩, hx⟩
-#align box_integral.prepartition.is_partition.bUnion BoxIntegral.Prepartition.IsPartition.bUnion
+#align box_integral.prepartition.is_partition.bUnion BoxIntegral.Prepartition.IsPartition.bunionᵢ
+-/
+#print BoxIntegral.Prepartition.IsPartition.restrict /-
protected theorem restrict (h : IsPartition π) (hJ : J ≤ I) : IsPartition (π.restrict J) :=
- isPartition_iff_union_eq.2 <| by simp [h.Union_eq, hJ]
+ isPartition_iff_unionᵢ_eq.2 <| by simp [h.Union_eq, hJ]
#align box_integral.prepartition.is_partition.restrict BoxIntegral.Prepartition.IsPartition.restrict
+-/
+#print BoxIntegral.Prepartition.IsPartition.inf /-
protected theorem inf (h₁ : IsPartition π₁) (h₂ : IsPartition π₂) : IsPartition (π₁ ⊓ π₂) :=
- isPartition_iff_union_eq.2 <| by simp [h₁.Union_eq, h₂.Union_eq]
+ isPartition_iff_unionᵢ_eq.2 <| by simp [h₁.Union_eq, h₂.Union_eq]
#align box_integral.prepartition.is_partition.inf BoxIntegral.Prepartition.IsPartition.inf
+-/
end IsPartition
-theorem union_bUnion_partition (h : ∀ J ∈ π, (πi J).IsPartition) :
+#print BoxIntegral.Prepartition.unionᵢ_bunionᵢ_partition /-
+theorem unionᵢ_bunionᵢ_partition (h : ∀ J ∈ π, (πi J).IsPartition) :
(π.bunionᵢ πi).unionᵢ = π.unionᵢ :=
- (union_bUnion _ _).trans <|
+ (unionᵢ_bunionᵢ _ _).trans <|
unionᵢ_congr_of_surjective id surjective_id fun J =>
unionᵢ_congr_of_surjective id surjective_id fun hJ => (h J hJ).unionᵢ_eq
-#align box_integral.prepartition.Union_bUnion_partition BoxIntegral.Prepartition.union_bUnion_partition
+#align box_integral.prepartition.Union_bUnion_partition BoxIntegral.Prepartition.unionᵢ_bunionᵢ_partition
+-/
+/- warning: box_integral.prepartition.is_partition_disj_union_of_eq_diff -> BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiff is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.subst.{succ u1} (Set.{u1} (ι -> Real)) (fun (_x : Set.{u1} (ι -> Real)) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.completeBooleanAlgebra.{u1} (ι -> Real))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) _x) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) h) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (HasLiftT.mk.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (CoeTCₓ.coe.{succ u1, succ u1} (BoxIntegral.Box.{u1} ι) (Set.{u1} (ι -> Real)) (BoxIntegral.Box.Set.hasCoeT.{u1} ι))) I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.booleanAlgebra.{u1} (ι -> Real))))))
+but is expected to have type
+ forall {ι : Type.{u1}} {I : BoxIntegral.Box.{u1} ι} {π₁ : BoxIntegral.Prepartition.{u1} ι I} {π₂ : BoxIntegral.Prepartition.{u1} ι I} (h : Eq.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁))), BoxIntegral.Prepartition.IsPartition.{u1} ι I (BoxIntegral.Prepartition.disjUnion.{u1} ι I π₁ π₂ (Eq.rec.{0, succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) (fun (x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11577 : Set.{u1} (ι -> Real)) (h._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11578 : Eq.{succ u1} (Set.{u1} (ι -> Real)) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11577) => Disjoint.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (ι -> Real)) (Preorder.toLE.{u1} (Set.{u1} (ι -> Real)) (PartialOrder.toPreorder.{u1} (Set.{u1} (ι -> Real)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (ι -> Real)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (ι -> Real)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (ι -> Real)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (ι -> Real)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (ι -> Real)) (Set.instCompleteBooleanAlgebraSet.{u1} (ι -> Real))))))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) x._@.Mathlib.Analysis.BoxIntegral.Partition.Basic._hyg.11577) (disjoint_sdiff_self_right.{u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁) (BoxIntegral.Box.toSet.{u1} ι I) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (ι -> Real)) (Set.instBooleanAlgebraSet.{u1} (ι -> Real)))) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (Eq.symm.{succ u1} (Set.{u1} (ι -> Real)) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₂) (SDiff.sdiff.{u1} (Set.{u1} (ι -> Real)) (Set.instSDiffSet.{u1} (ι -> Real)) (BoxIntegral.Box.toSet.{u1} ι I) (BoxIntegral.Prepartition.unionᵢ.{u1} ι I π₁)) h)))
+Case conversion may be inaccurate. Consider using '#align box_integral.prepartition.is_partition_disj_union_of_eq_diff BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiffₓ'. -/
theorem isPartitionDisjUnionOfEqDiff (h : π₂.unionᵢ = I \ π₁.unionᵢ) :
IsPartition (π₁.disjUnion π₂ <| h.symm ▸ disjoint_sdiff_self_right) :=
- isPartition_iff_union_eq.2 <| (union_disjUnion _).trans <| by simp [h, π₁.Union_subset]
+ isPartition_iff_unionᵢ_eq.2 <| (unionᵢ_disjUnion _).trans <| by simp [h, π₁.Union_subset]
#align box_integral.prepartition.is_partition_disj_union_of_eq_diff BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiff
end Prepartition
mathlib commit https://github.com/leanprover-community/mathlib/commit/7ebf83ed9c262adbf983ef64d5e8c2ae94b625f4
@@ -188,7 +188,7 @@ theorem bot_boxes : (⊥ : Prepartition I).boxes = ∅ :=
/-- An auxiliary lemma used to prove that the same point can't belong to more than
`2 ^ fintype.card ι` closed boxes of a prepartition. -/
-theorem injOn_setOf_mem_icc_setOf_lower_eq (x : ι → ℝ) :
+theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
InjOn (fun J : Box ι => { i | J.lower i = x i }) { J | J ∈ π ∧ x ∈ J.Icc } :=
by
rintro J₁ ⟨h₁, hx₁⟩ J₂ ⟨h₂, hx₂⟩ (H : { i | J₁.lower i = x i } = { i | J₂.lower i = x i })
@@ -206,11 +206,11 @@ theorem injOn_setOf_mem_icc_setOf_lower_eq (x : ι → ℝ) :
exact lt_min H₁ H₂
· have hi₂ : J₂.lower i < x i := (hx₂.1 i).lt_of_ne (mt (H _).2 hi₁.ne)
exact ⟨x i, ⟨hi₁, hx₁.2 i⟩, ⟨hi₂, hx₂.2 i⟩⟩
-#align box_integral.prepartition.inj_on_set_of_mem_Icc_set_of_lower_eq BoxIntegral.Prepartition.injOn_setOf_mem_icc_setOf_lower_eq
+#align box_integral.prepartition.inj_on_set_of_mem_Icc_set_of_lower_eq BoxIntegral.Prepartition.injOn_setOf_mem_Icc_setOf_lower_eq
/-- The set of boxes of a prepartition that contain `x` in their closures has cardinality
at most `2 ^ fintype.card ι`. -/
-theorem card_filter_mem_icc_le [Fintype ι] (x : ι → ℝ) :
+theorem card_filter_mem_Icc_le [Fintype ι] (x : ι → ℝ) :
(π.boxes.filterₓ fun J : Box ι => x ∈ J.Icc).card ≤ 2 ^ Fintype.card ι :=
by
rw [← Fintype.card_set]
@@ -218,7 +218,7 @@ theorem card_filter_mem_icc_le [Fintype ι] (x : ι → ℝ) :
Finset.card_le_card_of_inj_on (fun J : box ι => { i | J.lower i = x i })
(fun _ _ => Finset.mem_univ _) _
simpa only [Finset.mem_filter] using π.inj_on_set_of_mem_Icc_set_of_lower_eq x
-#align box_integral.prepartition.card_filter_mem_Icc_le BoxIntegral.Prepartition.card_filter_mem_icc_le
+#align box_integral.prepartition.card_filter_mem_Icc_le BoxIntegral.Prepartition.card_filter_mem_Icc_le
/-- Given a prepartition `π : box_integral.prepartition I`, `π.Union` is the part of `I` covered by
the boxes of `π`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -393,7 +393,7 @@ theorem bUnionIndex_le (πi : ∀ J, Prepartition J) (J : Box ι) : π.bUnionInd
#align box_integral.prepartition.bUnion_index_le BoxIntegral.Prepartition.bUnionIndex_le
theorem mem_bUnionIndex (hJ : J ∈ π.bunionᵢ πi) : J ∈ πi (π.bUnionIndex πi J) := by
- convert (π.mem_bUnion.1 hJ).choose_spec.snd <;> exact dif_pos hJ
+ convert(π.mem_bUnion.1 hJ).choose_spec.snd <;> exact dif_pos hJ
#align box_integral.prepartition.mem_bUnion_index BoxIntegral.Prepartition.mem_bUnionIndex
theorem le_bUnionIndex (hJ : J ∈ π.bunionᵢ πi) : J ≤ π.bUnionIndex πi J :=
@@ -656,7 +656,7 @@ theorem union_filter_not (π : Prepartition I) (p : Box ι → Prop) :
(π.filterₓ fun J => ¬p J).unionᵢ = π.unionᵢ \ (π.filterₓ p).unionᵢ :=
by
simp only [prepartition.Union]
- convert (@Set.bunionᵢ_diff_bunionᵢ_eq _ (box ι) π.boxes (π.filter p).boxes coe _).symm
+ convert(@Set.bunionᵢ_diff_bunionᵢ_eq _ (box ι) π.boxes (π.filter p).boxes coe _).symm
· ext (J x)
simp (config := { contextual := true })
· convert π.pairwise_disjoint
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -777,7 +777,7 @@ theorem union_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.union
h.unionᵢ_eq.symm ▸ π₁.unionᵢ_subset
#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.union_subset
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (J «expr ∈ » π) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (J «expr ∈ » π) -/
protected theorem existsUnique (h : π.IsPartition) (hx : x ∈ I) : ∃! (J : _)(_ : J ∈ π), x ∈ J :=
by
rcases h x hx with ⟨J, h, hx⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -596,7 +596,7 @@ theorem le_bUnion_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
exact ⟨Ji, π.mem_bUnion.2 ⟨J, hJ, hJi⟩, hlei⟩
#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_bUnion_iff
-instance : HasInf (Prepartition I) :=
+instance : Inf (Prepartition I) :=
⟨fun π₁ π₂ => π₁.bunionᵢ fun J => π₂.restrict J⟩
theorem inf_def (π₁ π₂ : Prepartition I) : π₁ ⊓ π₂ = π₁.bunionᵢ fun J => π₂.restrict J :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -139,8 +139,10 @@ instance partialOrder : PartialOrder (Prepartition I) where
fun π₁ π₂ h₁ h₂ => injective_boxes (Subset.antisymm (this h₁ h₂) (this h₂ h₁))
intro π₁ π₂ h₁ h₂ J hJ
rcases h₁ hJ with ⟨J', hJ', hle⟩; rcases h₂ hJ' with ⟨J'', hJ'', hle'⟩
- obtain rfl : J = J''; exact π₁.eq_of_le hJ hJ'' (hle.trans hle')
- obtain rfl : J' = J; exact le_antisymm ‹_› ‹_›
+ obtain rfl : J = J''
+ · exact π₁.eq_of_le hJ hJ'' (hle.trans hle')
+ obtain rfl : J' = J
+ · exact le_antisymm ‹_› ‹_›
assumption
instance : OrderTop (Prepartition I) where
@@ -304,8 +306,8 @@ def biUnion (πi : ∀ J : Box ι, Prepartition J) : Prepartition I where
rw [Function.onFun, Set.disjoint_left]
rintro x hx₁ hx₂; apply Hne
obtain rfl : J₁ = J₂
- exact π.eq_of_mem_of_mem hJ₁ hJ₂ ((πi J₁).le_of_mem hJ₁' hx₁) ((πi J₂).le_of_mem hJ₂' hx₂)
- exact (πi J₁).eq_of_mem_of_mem hJ₁' hJ₂' hx₁ hx₂
+ · exact π.eq_of_mem_of_mem hJ₁ hJ₂ ((πi J₁).le_of_mem hJ₁' hx₁) ((πi J₂).le_of_mem hJ₂' hx₂)
+ · exact (πi J₁).eq_of_mem_of_mem hJ₁' hJ₂' hx₁ hx₂
#align box_integral.prepartition.bUnion BoxIntegral.Prepartition.biUnion
variable {πi πi₁ πi₂ : ∀ J : Box ι, Prepartition J}
@@ -535,8 +537,8 @@ theorem restrict_biUnion (πi : ∀ J, Prepartition J) (hJ : J ∈ π) :
· simp only [iUnion_restrict, iUnion_biUnion, Set.subset_def, Set.mem_inter_iff, Set.mem_iUnion]
rintro x ⟨hxJ, J₁, h₁, hx⟩
obtain rfl : J = J₁
- exact π.eq_of_mem_of_mem hJ h₁ hxJ (iUnion_subset _ hx)
- exact hx
+ · exact π.eq_of_mem_of_mem hJ h₁ hxJ (iUnion_subset _ hx)
+ · exact hx
#align box_integral.prepartition.restrict_bUnion BoxIntegral.Prepartition.restrict_biUnion
theorem biUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
∃! x ∈ s, p x
syntax (#12237)
More generally, adds a binderPred
variant for ExistsUnique
.
Uses this syntax to clean up Mathlib.Data.Setoid.Partition
and remove Mathport warnings.
@@ -742,9 +742,9 @@ theorem iUnion_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.iUni
#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.iUnion_subset
protected theorem existsUnique (h : π.IsPartition) (hx : x ∈ I) :
- ∃! J, ∃! _ : J ∈ π, x ∈ J := by
+ ∃! J ∈ π, x ∈ J := by
rcases h x hx with ⟨J, h, hx⟩
- exact ExistsUnique.intro₂ J h hx fun J' h' hx' => π.eq_of_mem_of_mem h' h hx' hx
+ exact ExistsUnique.intro J ⟨h, hx⟩ fun J' ⟨h', hx'⟩ => π.eq_of_mem_of_mem h' h hx' hx
#align box_integral.prepartition.is_partition.exists_unique BoxIntegral.Prepartition.IsPartition.existsUnique
theorem nonempty_boxes (h : π.IsPartition) : π.boxes.Nonempty :=
ExistsUnique
notation throw an error when used with more than one binder (#12218)
@@ -742,7 +742,7 @@ theorem iUnion_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.iUni
#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.iUnion_subset
protected theorem existsUnique (h : π.IsPartition) (hx : x ∈ I) :
- ∃! (J : _) (_ : J ∈ π), x ∈ J := by
+ ∃! J, ∃! _ : J ∈ π, x ∈ J := by
rcases h x hx with ⟨J, h, hx⟩
exact ExistsUnique.intro₂ J h hx fun J' h' hx' => π.eq_of_mem_of_mem h' h hx' hx
#align box_integral.prepartition.is_partition.exists_unique BoxIntegral.Prepartition.IsPartition.existsUnique
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -41,7 +41,8 @@ rectangular box, partition
open Set Finset Function
-open Classical NNReal BigOperators
+open scoped Classical
+open NNReal BigOperators
noncomputable section
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -134,8 +134,8 @@ instance partialOrder : PartialOrder (Prepartition I) where
let ⟨I₃, hI₃, hI₂₃⟩ := h₂₃ hI₂
⟨I₃, hI₃, hI₁₂.trans hI₂₃⟩
le_antisymm := by
- suffices : ∀ {π₁ π₂ : Prepartition I}, π₁ ≤ π₂ → π₂ ≤ π₁ → π₁.boxes ⊆ π₂.boxes
- exact fun π₁ π₂ h₁ h₂ => injective_boxes (Subset.antisymm (this h₁ h₂) (this h₂ h₁))
+ suffices ∀ {π₁ π₂ : Prepartition I}, π₁ ≤ π₂ → π₂ ≤ π₁ → π₁.boxes ⊆ π₂.boxes from
+ fun π₁ π₂ h₁ h₂ => injective_boxes (Subset.antisymm (this h₁ h₂) (this h₂ h₁))
intro π₁ π₂ h₁ h₂ J hJ
rcases h₁ hJ with ⟨J', hJ', hle⟩; rcases h₂ hJ' with ⟨J'', hJ'', hle'⟩
obtain rfl : J = J''; exact π₁.eq_of_le hJ hJ'' (hle.trans hle')
@@ -5,6 +5,7 @@ Authors: Yury Kudryashov
-/
import Mathlib.Algebra.BigOperators.Option
import Mathlib.Analysis.BoxIntegral.Box.Basic
+import Mathlib.Data.Set.Pairwise.Lattice
#align_import analysis.box_integral.partition.basic from "leanprover-community/mathlib"@"84dc0bd6619acaea625086d6f53cb35cdd554219"
cases'
(#9171)
I literally went through and regex'd some uses of cases'
, replacing them with rcases
; this is meant to be a low effort PR as I hope that tools can do this in the future.
rcases
is an easier replacement than cases
, though with better tools we could in future do a second pass converting simple rcases
added here (and existing ones) to cases
.
@@ -184,7 +184,7 @@ theorem injOn_setOf_mem_Icc_setOf_lower_eq (x : ι → ℝ) :
exact π.eq_of_mem_of_mem h₁ h₂ hy₁ hy₂
intro i
simp only [Set.ext_iff, mem_setOf] at H
- cases' (hx₁.1 i).eq_or_lt with hi₁ hi₁
+ rcases (hx₁.1 i).eq_or_lt with hi₁ | hi₁
· have hi₂ : J₂.lower i = x i := (H _).1 hi₁
have H₁ : x i < J₁.upper i := by simpa only [hi₁] using J₁.lower_lt_upper i
have H₂ : x i < J₂.upper i := by simpa only [hi₂] using J₂.lower_lt_upper i
Set
/Finset
lemmas match lattice lemma names (#7378)
Rename union_eq_left_iff_subset
to union_eq_left
to match sup_eq_left
. Similarly for the right
and inter
versions.
@@ -622,7 +622,7 @@ theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
· simp (config := { contextual := true })
· rw [Set.PairwiseDisjoint]
convert π.pairwiseDisjoint
- rw [Set.union_eq_left_iff_subset, filter_boxes, coe_filter]
+ rw [Set.union_eq_left, filter_boxes, coe_filter]
exact fun _ ⟨h, _⟩ => h
#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_not
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -46,7 +46,7 @@ noncomputable section
namespace BoxIntegral
-variable {ι : Type _}
+variable {ι : Type*}
/-- A prepartition of `I : BoxIntegral.Box ι` is a finite set of pairwise disjoint subboxes of
`I`. -/
@@ -343,7 +343,7 @@ theorem iUnion_biUnion (πi : ∀ J : Box ι, Prepartition J) :
#align box_integral.prepartition.Union_bUnion BoxIntegral.Prepartition.iUnion_biUnion
@[simp]
-theorem sum_biUnion_boxes {M : Type _} [AddCommMonoid M] (π : Prepartition I)
+theorem sum_biUnion_boxes {M : Type*} [AddCommMonoid M] (π : Prepartition I)
(πi : ∀ J, Prepartition J) (f : Box ι → M) :
(∑ J in π.boxes.biUnion fun J => (πi J).boxes, f J) =
∑ J in π.boxes, ∑ J' in (πi J).boxes, f J' := by
@@ -459,7 +459,7 @@ theorem ofWithBot_mono {boxes₁ : Finset (WithBot (Box ι))}
le_ofWithBot _ fun J hJ => H J (mem_ofWithBot.1 hJ) WithBot.coe_ne_bot
#align box_integral.prepartition.of_with_bot_mono BoxIntegral.Prepartition.ofWithBot_mono
-theorem sum_ofWithBot {M : Type _} [AddCommMonoid M] (boxes : Finset (WithBot (Box ι)))
+theorem sum_ofWithBot {M : Type*} [AddCommMonoid M] (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
(pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint) (f : Box ι → M) :
(∑ J in (ofWithBot boxes le_of_mem pairwise_disjoint).boxes, f J) =
@@ -656,7 +656,7 @@ theorem iUnion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.iUnion_disjUnion
@[simp]
-theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.iUnion π₂.iUnion)
+theorem sum_disj_union_boxes {M : Type*} [AddCommMonoid M] (h : Disjoint π₁.iUnion π₂.iUnion)
(f : Box ι → M) :
∑ J in π₁.boxes ∪ π₂.boxes, f J = (∑ J in π₁.boxes, f J) + ∑ J in π₂.boxes, f J :=
sum_union <| disjoint_boxes_of_disjoint_iUnion h
@@ -2,15 +2,12 @@
Copyright (c) 2021 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module analysis.box_integral.partition.basic
-! leanprover-community/mathlib commit 84dc0bd6619acaea625086d6f53cb35cdd554219
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.BigOperators.Option
import Mathlib.Analysis.BoxIntegral.Box.Basic
+#align_import analysis.box_integral.partition.basic from "leanprover-community/mathlib"@"84dc0bd6619acaea625086d6f53cb35cdd554219"
+
/-!
# Partitions of rectangular boxes in `ℝⁿ`
∑'
precedence (#5615)
∑
, ∏
and variants).([^a-zA-Zα-ωΑ-Ω'𝓝ℳ₀𝕂ₛ)]) \(([∑∏][^()∑∏]*,[^()∑∏:]*)\) ([⊂⊆=<≤])
replaced by $1 $2 $3
@@ -661,7 +661,7 @@ theorem iUnion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
@[simp]
theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.iUnion π₂.iUnion)
(f : Box ι → M) :
- (∑ J in π₁.boxes ∪ π₂.boxes, f J) = (∑ J in π₁.boxes, f J) + ∑ J in π₂.boxes, f J :=
+ ∑ J in π₁.boxes ∪ π₂.boxes, f J = (∑ J in π₁.boxes, f J) + ∑ J in π₂.boxes, f J :=
sum_union <| disjoint_boxes_of_disjoint_iUnion h
#align box_integral.prepartition.sum_disj_union_boxes BoxIntegral.Prepartition.sum_disj_union_boxes
@@ -425,7 +425,7 @@ theorem iUnion_ofWithBot (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
(pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint) :
(ofWithBot boxes le_of_mem pairwise_disjoint).iUnion = ⋃ J ∈ boxes, ↑J := by
- suffices (⋃ (J : Box ι) (_ : ↑J ∈ boxes), ↑J) = ⋃ J ∈ boxes, (J : Set (ι → ℝ)) by
+ suffices ⋃ (J : Box ι) (_ : ↑J ∈ boxes), ↑J = ⋃ J ∈ boxes, (J : Set (ι → ℝ)) by
simpa [ofWithBot, Prepartition.iUnion]
simp only [← Box.biUnion_coe_eq_coe, @iUnion_comm _ _ (Box ι), @iUnion_comm _ _ (@Eq _ _ _),
iUnion_iUnion_eq_right]
@@ -56,7 +56,7 @@ variable {ι : Type _}
structure Prepartition (I : Box ι) where
boxes : Finset (Box ι)
le_of_mem' : ∀ J ∈ boxes, J ≤ I
- PairwiseDisjoint : Set.Pairwise (↑boxes) (Disjoint on ((↑) : Box ι → Set (ι → ℝ)))
+ pairwiseDisjoint : Set.Pairwise (↑boxes) (Disjoint on ((↑) : Box ι → Set (ι → ℝ)))
#align box_integral.prepartition BoxIntegral.Prepartition
namespace Prepartition
@@ -76,7 +76,7 @@ theorem mem_mk {s h₁ h₂} : J ∈ (mk s h₁ h₂ : Prepartition I) ↔ J ∈
theorem disjoint_coe_of_mem (h₁ : J₁ ∈ π) (h₂ : J₂ ∈ π) (h : J₁ ≠ J₂) :
Disjoint (J₁ : Set (ι → ℝ)) J₂ :=
- π.PairwiseDisjoint h₁ h₂ h
+ π.pairwiseDisjoint h₁ h₂ h
#align box_integral.prepartition.disjoint_coe_of_mem BoxIntegral.Prepartition.disjoint_coe_of_mem
theorem eq_of_mem_of_mem (h₁ : J₁ ∈ π) (h₂ : J₂ ∈ π) (hx₁ : x ∈ J₁) (hx₂ : x ∈ J₂) : J₁ = J₂ :=
@@ -299,7 +299,7 @@ def biUnion (πi : ∀ J : Box ι, Prepartition J) : Prepartition I where
simp only [Finset.mem_biUnion, exists_prop, mem_boxes] at hJ
rcases hJ with ⟨J', hJ', hJ⟩
exact ((πi J').le_of_mem hJ).trans (π.le_of_mem hJ')
- PairwiseDisjoint := by
+ pairwiseDisjoint := by
simp only [Set.Pairwise, Finset.mem_coe, Finset.mem_biUnion]
rintro J₁' ⟨J₁, hJ₁, hJ₁'⟩ J₂' ⟨J₂, hJ₂, hJ₂'⟩ Hne
rw [Function.onFun, Set.disjoint_left]
@@ -409,7 +409,7 @@ def ofWithBot (boxes : Finset (WithBot (Box ι)))
le_of_mem' J hJ := by
rw [mem_eraseNone] at hJ
simpa only [WithBot.some_eq_coe, WithBot.coe_le_coe] using le_of_mem _ hJ
- PairwiseDisjoint J₁ h₁ J₂ h₂ hne := by
+ pairwiseDisjoint J₁ h₁ J₂ h₂ hne := by
simp only [mem_coe, mem_eraseNone] at h₁ h₂
exact Box.disjoint_coe.1 (pairwise_disjoint h₁ h₂ (mt Option.some_inj.1 hne))
#align box_integral.prepartition.of_with_bot BoxIntegral.Prepartition.ofWithBot
@@ -594,7 +594,7 @@ instance : SemilatticeInf (Prepartition I) :=
def filter (π : Prepartition I) (p : Box ι → Prop) : Prepartition I where
boxes := π.boxes.filter p
le_of_mem' _ hJ := π.le_of_mem (mem_filter.1 hJ).1
- PairwiseDisjoint _ h₁ _ h₂ := π.disjoint_coe_of_mem (mem_filter.1 h₁).1 (mem_filter.1 h₂).1
+ pairwiseDisjoint _ h₁ _ h₂ := π.disjoint_coe_of_mem (mem_filter.1 h₁).1 (mem_filter.1 h₂).1
#align box_integral.prepartition.filter BoxIntegral.Prepartition.filter
@[simp]
@@ -624,7 +624,7 @@ theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
convert (@Set.biUnion_diff_biUnion_eq _ (Box ι) π.boxes (π.filter p).boxes (↑) _).symm
· simp (config := { contextual := true })
· rw [Set.PairwiseDisjoint]
- convert π.PairwiseDisjoint
+ convert π.pairwiseDisjoint
rw [Set.union_eq_left_iff_subset, filter_boxes, coe_filter]
exact fun _ ⟨h, _⟩ => h
#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_not
@@ -640,9 +640,9 @@ theorem sum_fiberwise {α M} [AddCommMonoid M] (π : Prepartition I) (f : Box ι
def disjUnion (π₁ π₂ : Prepartition I) (h : Disjoint π₁.iUnion π₂.iUnion) : Prepartition I where
boxes := π₁.boxes ∪ π₂.boxes
le_of_mem' J hJ := (Finset.mem_union.1 hJ).elim π₁.le_of_mem π₂.le_of_mem
- PairwiseDisjoint :=
+ pairwiseDisjoint :=
suffices ∀ J₁ ∈ π₁, ∀ J₂ ∈ π₂, J₁ ≠ J₂ → Disjoint (J₁ : Set (ι → ℝ)) J₂ by
- simpa [pairwise_union_of_symmetric (symmetric_disjoint.comap _), PairwiseDisjoint]
+ simpa [pairwise_union_of_symmetric (symmetric_disjoint.comap _), pairwiseDisjoint]
fun J₁ h₁ J₂ h₂ _ => h.mono (π₁.subset_iUnion h₁) (π₂.subset_iUnion h₂)
#align box_integral.prepartition.disj_union BoxIntegral.Prepartition.disjUnion
@@ -425,7 +425,7 @@ theorem iUnion_ofWithBot (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
(pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint) :
(ofWithBot boxes le_of_mem pairwise_disjoint).iUnion = ⋃ J ∈ boxes, ↑J := by
- suffices (⋃ (J : Box ι) (_hJ : ↑J ∈ boxes), ↑J) = ⋃ J ∈ boxes, (J : Set (ι → ℝ)) by
+ suffices (⋃ (J : Box ι) (_ : ↑J ∈ boxes), ↑J) = ⋃ J ∈ boxes, (J : Set (ι → ℝ)) by
simpa [ofWithBot, Prepartition.iUnion]
simp only [← Box.biUnion_coe_eq_coe, @iUnion_comm _ _ (Box ι), @iUnion_comm _ _ (@Eq _ _ _),
iUnion_iUnion_eq_right]
sSup
/iSup
(#3938)
As discussed on Zulip
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>
@@ -29,7 +29,7 @@ such that
Then we define a predicate `BoxIntegral.Prepartition.IsPartition`; `π.IsPartition` means that the
boxes of `π` actually cover the whole `I`. We also define some operations on prepartitions:
-* `BoxIntegral.Prepartition.bunionᵢ`: split each box of a partition into smaller boxes;
+* `BoxIntegral.Prepartition.biUnion`: split each box of a partition into smaller boxes;
* `BoxIntegral.Prepartition.restrict`: restrict a partition to a smaller box.
We also define a `SemilatticeInf` structure on `BoxIntegral.Prepartition I` for all
@@ -207,85 +207,85 @@ theorem card_filter_mem_Icc_le [Fintype ι] (x : ι → ℝ) :
simpa only [Finset.mem_filter] using π.injOn_setOf_mem_Icc_setOf_lower_eq x
#align box_integral.prepartition.card_filter_mem_Icc_le BoxIntegral.Prepartition.card_filter_mem_Icc_le
-/-- Given a prepartition `π : BoxIntegral.Prepartition I`, `π.unionᵢ` is the part of `I` covered by
+/-- Given a prepartition `π : BoxIntegral.Prepartition I`, `π.iUnion` is the part of `I` covered by
the boxes of `π`. -/
-protected def unionᵢ : Set (ι → ℝ) :=
+protected def iUnion : Set (ι → ℝ) :=
⋃ J ∈ π, ↑J
-#align box_integral.prepartition.Union BoxIntegral.Prepartition.unionᵢ
+#align box_integral.prepartition.Union BoxIntegral.Prepartition.iUnion
-theorem unionᵢ_def : π.unionᵢ = ⋃ J ∈ π, ↑J := rfl
-#align box_integral.prepartition.Union_def BoxIntegral.Prepartition.unionᵢ_def
+theorem iUnion_def : π.iUnion = ⋃ J ∈ π, ↑J := rfl
+#align box_integral.prepartition.Union_def BoxIntegral.Prepartition.iUnion_def
-theorem unionᵢ_def' : π.unionᵢ = ⋃ J ∈ π.boxes, ↑J := rfl
-#align box_integral.prepartition.Union_def' BoxIntegral.Prepartition.unionᵢ_def'
+theorem iUnion_def' : π.iUnion = ⋃ J ∈ π.boxes, ↑J := rfl
+#align box_integral.prepartition.Union_def' BoxIntegral.Prepartition.iUnion_def'
--- Porting note: Previous proof was `:= Set.mem_unionᵢ₂`
+-- Porting note: Previous proof was `:= Set.mem_iUnion₂`
@[simp]
-theorem mem_unionᵢ : x ∈ π.unionᵢ ↔ ∃ J ∈ π, x ∈ J := by
- convert Set.mem_unionᵢ₂
+theorem mem_iUnion : x ∈ π.iUnion ↔ ∃ J ∈ π, x ∈ J := by
+ convert Set.mem_iUnion₂
rw [Box.mem_coe, exists_prop]
-#align box_integral.prepartition.mem_Union BoxIntegral.Prepartition.mem_unionᵢ
+#align box_integral.prepartition.mem_Union BoxIntegral.Prepartition.mem_iUnion
@[simp]
-theorem unionᵢ_single (h : J ≤ I) : (single I J h).unionᵢ = J := by simp [unionᵢ_def]
-#align box_integral.prepartition.Union_single BoxIntegral.Prepartition.unionᵢ_single
+theorem iUnion_single (h : J ≤ I) : (single I J h).iUnion = J := by simp [iUnion_def]
+#align box_integral.prepartition.Union_single BoxIntegral.Prepartition.iUnion_single
@[simp]
-theorem unionᵢ_top : (⊤ : Prepartition I).unionᵢ = I := by simp [Prepartition.unionᵢ]
-#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.unionᵢ_top
+theorem iUnion_top : (⊤ : Prepartition I).iUnion = I := by simp [Prepartition.iUnion]
+#align box_integral.prepartition.Union_top BoxIntegral.Prepartition.iUnion_top
@[simp]
-theorem unionᵢ_eq_empty : π₁.unionᵢ = ∅ ↔ π₁ = ⊥ := by
- simp [← injective_boxes.eq_iff, Finset.ext_iff, Prepartition.unionᵢ, imp_false]
-#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.unionᵢ_eq_empty
+theorem iUnion_eq_empty : π₁.iUnion = ∅ ↔ π₁ = ⊥ := by
+ simp [← injective_boxes.eq_iff, Finset.ext_iff, Prepartition.iUnion, imp_false]
+#align box_integral.prepartition.Union_eq_empty BoxIntegral.Prepartition.iUnion_eq_empty
@[simp]
-theorem unionᵢ_bot : (⊥ : Prepartition I).unionᵢ = ∅ :=
- unionᵢ_eq_empty.2 rfl
-#align box_integral.prepartition.Union_bot BoxIntegral.Prepartition.unionᵢ_bot
+theorem iUnion_bot : (⊥ : Prepartition I).iUnion = ∅ :=
+ iUnion_eq_empty.2 rfl
+#align box_integral.prepartition.Union_bot BoxIntegral.Prepartition.iUnion_bot
-theorem subset_unionᵢ (h : J ∈ π) : ↑J ⊆ π.unionᵢ :=
- subset_bunionᵢ_of_mem h
-#align box_integral.prepartition.subset_Union BoxIntegral.Prepartition.subset_unionᵢ
+theorem subset_iUnion (h : J ∈ π) : ↑J ⊆ π.iUnion :=
+ subset_biUnion_of_mem h
+#align box_integral.prepartition.subset_Union BoxIntegral.Prepartition.subset_iUnion
-theorem unionᵢ_subset : π.unionᵢ ⊆ I :=
- unionᵢ₂_subset π.le_of_mem'
-#align box_integral.prepartition.Union_subset BoxIntegral.Prepartition.unionᵢ_subset
+theorem iUnion_subset : π.iUnion ⊆ I :=
+ iUnion₂_subset π.le_of_mem'
+#align box_integral.prepartition.Union_subset BoxIntegral.Prepartition.iUnion_subset
@[mono]
-theorem unionᵢ_mono (h : π₁ ≤ π₂) : π₁.unionᵢ ⊆ π₂.unionᵢ := fun _ hx =>
- let ⟨_, hJ₁, hx⟩ := π₁.mem_unionᵢ.1 hx
+theorem iUnion_mono (h : π₁ ≤ π₂) : π₁.iUnion ⊆ π₂.iUnion := fun _ hx =>
+ let ⟨_, hJ₁, hx⟩ := π₁.mem_iUnion.1 hx
let ⟨J₂, hJ₂, hle⟩ := h hJ₁
- π₂.mem_unionᵢ.2 ⟨J₂, hJ₂, hle hx⟩
-#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.unionᵢ_mono
+ π₂.mem_iUnion.2 ⟨J₂, hJ₂, hle hx⟩
+#align box_integral.prepartition.Union_mono BoxIntegral.Prepartition.iUnion_mono
-theorem disjoint_boxes_of_disjoint_unionᵢ (h : Disjoint π₁.unionᵢ π₂.unionᵢ) :
+theorem disjoint_boxes_of_disjoint_iUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
Disjoint π₁.boxes π₂.boxes :=
Finset.disjoint_left.2 fun J h₁ h₂ =>
- Disjoint.le_bot (h.mono (π₁.subset_unionᵢ h₁) (π₂.subset_unionᵢ h₂)) ⟨J.upper_mem, J.upper_mem⟩
-#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_unionᵢ
+ Disjoint.le_bot (h.mono (π₁.subset_iUnion h₁) (π₂.subset_iUnion h₂)) ⟨J.upper_mem, J.upper_mem⟩
+#align box_integral.prepartition.disjoint_boxes_of_disjoint_Union BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_iUnion
-theorem le_iff_nonempty_imp_le_and_unionᵢ_subset :
+theorem le_iff_nonempty_imp_le_and_iUnion_subset :
π₁ ≤ π₂ ↔
- (∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J') ∧ π₁.unionᵢ ⊆ π₂.unionᵢ := by
+ (∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J') ∧ π₁.iUnion ⊆ π₂.iUnion := by
constructor
- · refine' fun H => ⟨fun J hJ J' hJ' Hne => _, unionᵢ_mono H⟩
+ · refine' fun H => ⟨fun J hJ J' hJ' Hne => _, iUnion_mono H⟩
rcases H hJ with ⟨J'', hJ'', Hle⟩
rcases Hne with ⟨x, hx, hx'⟩
rwa [π₂.eq_of_mem_of_mem hJ' hJ'' hx' (Hle hx)]
· rintro ⟨H, HU⟩ J hJ
- simp only [Set.subset_def, mem_unionᵢ] at HU
+ simp only [Set.subset_def, mem_iUnion] at HU
rcases HU J.upper ⟨J, hJ, J.upper_mem⟩ with ⟨J₂, hJ₂, hx⟩
exact ⟨J₂, hJ₂, H _ hJ _ hJ₂ ⟨_, J.upper_mem, hx⟩⟩
-#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_unionᵢ_subset
+#align box_integral.prepartition.le_iff_nonempty_imp_le_and_Union_subset BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subset
-theorem eq_of_boxes_subset_unionᵢ_superset (h₁ : π₁.boxes ⊆ π₂.boxes) (h₂ : π₂.unionᵢ ⊆ π₁.unionᵢ) :
+theorem eq_of_boxes_subset_iUnion_superset (h₁ : π₁.boxes ⊆ π₂.boxes) (h₂ : π₂.iUnion ⊆ π₁.iUnion) :
π₁ = π₂ :=
le_antisymm (fun J hJ => ⟨J, h₁ hJ, le_rfl⟩) <|
- le_iff_nonempty_imp_le_and_unionᵢ_subset.2
+ le_iff_nonempty_imp_le_and_iUnion_subset.2
⟨fun _ hJ₁ _ hJ₂ Hne =>
(π₂.eq_of_mem_of_mem hJ₁ (h₁ hJ₂) Hne.choose_spec.1 Hne.choose_spec.2).le, h₂⟩
-#align box_integral.prepartition.eq_of_boxes_subset_Union_superset BoxIntegral.Prepartition.eq_of_boxes_subset_unionᵢ_superset
+#align box_integral.prepartition.eq_of_boxes_subset_Union_superset BoxIntegral.Prepartition.eq_of_boxes_subset_iUnion_superset
/-- Given a prepartition `π` of a box `I` and a collection of prepartitions `πi J` of all boxes
`J ∈ π`, returns the prepartition of `I` into the union of the boxes of all `πi J`.
@@ -293,111 +293,111 @@ theorem eq_of_boxes_subset_unionᵢ_superset (h₁ : π₁.boxes ⊆ π₂.boxes
Though we only use the values of `πi` on the boxes of `π`, we require `πi` to be a globally defined
function. -/
@[simps]
-def bunionᵢ (πi : ∀ J : Box ι, Prepartition J) : Prepartition I where
- boxes := π.boxes.bunionᵢ fun J => (πi J).boxes
+def biUnion (πi : ∀ J : Box ι, Prepartition J) : Prepartition I where
+ boxes := π.boxes.biUnion fun J => (πi J).boxes
le_of_mem' J hJ := by
- simp only [Finset.mem_bunionᵢ, exists_prop, mem_boxes] at hJ
+ simp only [Finset.mem_biUnion, exists_prop, mem_boxes] at hJ
rcases hJ with ⟨J', hJ', hJ⟩
exact ((πi J').le_of_mem hJ).trans (π.le_of_mem hJ')
PairwiseDisjoint := by
- simp only [Set.Pairwise, Finset.mem_coe, Finset.mem_bunionᵢ]
+ simp only [Set.Pairwise, Finset.mem_coe, Finset.mem_biUnion]
rintro J₁' ⟨J₁, hJ₁, hJ₁'⟩ J₂' ⟨J₂, hJ₂, hJ₂'⟩ Hne
rw [Function.onFun, Set.disjoint_left]
rintro x hx₁ hx₂; apply Hne
obtain rfl : J₁ = J₂
exact π.eq_of_mem_of_mem hJ₁ hJ₂ ((πi J₁).le_of_mem hJ₁' hx₁) ((πi J₂).le_of_mem hJ₂' hx₂)
exact (πi J₁).eq_of_mem_of_mem hJ₁' hJ₂' hx₁ hx₂
-#align box_integral.prepartition.bUnion BoxIntegral.Prepartition.bunionᵢ
+#align box_integral.prepartition.bUnion BoxIntegral.Prepartition.biUnion
variable {πi πi₁ πi₂ : ∀ J : Box ι, Prepartition J}
@[simp]
-theorem mem_bunionᵢ : J ∈ π.bunionᵢ πi ↔ ∃ J' ∈ π, J ∈ πi J' := by simp [bunionᵢ]
-#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_bunionᵢ
+theorem mem_biUnion : J ∈ π.biUnion πi ↔ ∃ J' ∈ π, J ∈ πi J' := by simp [biUnion]
+#align box_integral.prepartition.mem_bUnion BoxIntegral.Prepartition.mem_biUnion
-theorem bunionᵢ_le (πi : ∀ J, Prepartition J) : π.bunionᵢ πi ≤ π := fun _ hJ =>
- let ⟨J', hJ', hJ⟩ := π.mem_bunionᵢ.1 hJ
+theorem biUnion_le (πi : ∀ J, Prepartition J) : π.biUnion πi ≤ π := fun _ hJ =>
+ let ⟨J', hJ', hJ⟩ := π.mem_biUnion.1 hJ
⟨J', hJ', (πi J').le_of_mem hJ⟩
-#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.bunionᵢ_le
+#align box_integral.prepartition.bUnion_le BoxIntegral.Prepartition.biUnion_le
@[simp]
-theorem bunionᵢ_top : (π.bunionᵢ fun _ => ⊤) = π := by
+theorem biUnion_top : (π.biUnion fun _ => ⊤) = π := by
ext
simp
-#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.bunionᵢ_top
+#align box_integral.prepartition.bUnion_top BoxIntegral.Prepartition.biUnion_top
@[congr]
-theorem bunionᵢ_congr (h : π₁ = π₂) (hi : ∀ J ∈ π₁, πi₁ J = πi₂ J) :
- π₁.bunionᵢ πi₁ = π₂.bunionᵢ πi₂ := by
+theorem biUnion_congr (h : π₁ = π₂) (hi : ∀ J ∈ π₁, πi₁ J = πi₂ J) :
+ π₁.biUnion πi₁ = π₂.biUnion πi₂ := by
subst π₂
ext J
- simp only [mem_bunionᵢ]
+ simp only [mem_biUnion]
constructor <;> exact fun ⟨J', h₁, h₂⟩ => ⟨J', h₁, hi J' h₁ ▸ h₂⟩
-#align box_integral.prepartition.bUnion_congr BoxIntegral.Prepartition.bunionᵢ_congr
+#align box_integral.prepartition.bUnion_congr BoxIntegral.Prepartition.biUnion_congr
-theorem bunionᵢ_congr_of_le (h : π₁ = π₂) (hi : ∀ J ≤ I, πi₁ J = πi₂ J) :
- π₁.bunionᵢ πi₁ = π₂.bunionᵢ πi₂ :=
- bunionᵢ_congr h fun J hJ => hi J (π₁.le_of_mem hJ)
-#align box_integral.prepartition.bUnion_congr_of_le BoxIntegral.Prepartition.bunionᵢ_congr_of_le
+theorem biUnion_congr_of_le (h : π₁ = π₂) (hi : ∀ J ≤ I, πi₁ J = πi₂ J) :
+ π₁.biUnion πi₁ = π₂.biUnion πi₂ :=
+ biUnion_congr h fun J hJ => hi J (π₁.le_of_mem hJ)
+#align box_integral.prepartition.bUnion_congr_of_le BoxIntegral.Prepartition.biUnion_congr_of_le
@[simp]
-theorem unionᵢ_bunionᵢ (πi : ∀ J : Box ι, Prepartition J) :
- (π.bunionᵢ πi).unionᵢ = ⋃ J ∈ π, (πi J).unionᵢ := by simp [Prepartition.unionᵢ]
-#align box_integral.prepartition.Union_bUnion BoxIntegral.Prepartition.unionᵢ_bunionᵢ
+theorem iUnion_biUnion (πi : ∀ J : Box ι, Prepartition J) :
+ (π.biUnion πi).iUnion = ⋃ J ∈ π, (πi J).iUnion := by simp [Prepartition.iUnion]
+#align box_integral.prepartition.Union_bUnion BoxIntegral.Prepartition.iUnion_biUnion
@[simp]
-theorem sum_bunionᵢ_boxes {M : Type _} [AddCommMonoid M] (π : Prepartition I)
+theorem sum_biUnion_boxes {M : Type _} [AddCommMonoid M] (π : Prepartition I)
(πi : ∀ J, Prepartition J) (f : Box ι → M) :
- (∑ J in π.boxes.bunionᵢ fun J => (πi J).boxes, f J) =
+ (∑ J in π.boxes.biUnion fun J => (πi J).boxes, f J) =
∑ J in π.boxes, ∑ J' in (πi J).boxes, f J' := by
- refine' Finset.sum_bunionᵢ fun J₁ h₁ J₂ h₂ hne => Finset.disjoint_left.2 fun J' h₁' h₂' => _
+ refine' Finset.sum_biUnion fun J₁ h₁ J₂ h₂ hne => Finset.disjoint_left.2 fun J' h₁' h₂' => _
exact hne (π.eq_of_le_of_le h₁ h₂ ((πi J₁).le_of_mem h₁') ((πi J₂).le_of_mem h₂'))
-#align box_integral.prepartition.sum_bUnion_boxes BoxIntegral.Prepartition.sum_bunionᵢ_boxes
-
-/-- Given a box `J ∈ π.bunionᵢ πi`, returns the box `J' ∈ π` such that `J ∈ πi J'`.
-For `J ∉ π.bunionᵢ πi`, returns `I`. -/
-def bunionᵢIndex (πi : ∀ (J : Box ι), Prepartition J) (J : Box ι) : Box ι :=
- if hJ : J ∈ π.bunionᵢ πi then (π.mem_bunionᵢ.1 hJ).choose else I
-#align box_integral.prepartition.bUnion_index BoxIntegral.Prepartition.bunionᵢIndex
-
-theorem bunionᵢIndex_mem (hJ : J ∈ π.bunionᵢ πi) : π.bunionᵢIndex πi J ∈ π := by
- rw [bunionᵢIndex, dif_pos hJ]
- exact (π.mem_bunionᵢ.1 hJ).choose_spec.1
-#align box_integral.prepartition.bUnion_index_mem BoxIntegral.Prepartition.bunionᵢIndex_mem
-
-theorem bunionᵢIndex_le (πi : ∀ J, Prepartition J) (J : Box ι) : π.bunionᵢIndex πi J ≤ I := by
- by_cases hJ : J ∈ π.bunionᵢ πi
- · exact π.le_of_mem (π.bunionᵢIndex_mem hJ)
- · rw [bunionᵢIndex, dif_neg hJ]
-#align box_integral.prepartition.bUnion_index_le BoxIntegral.Prepartition.bunionᵢIndex_le
-
-theorem mem_bunionᵢIndex (hJ : J ∈ π.bunionᵢ πi) : J ∈ πi (π.bunionᵢIndex πi J) := by
- convert (π.mem_bunionᵢ.1 hJ).choose_spec.2 <;> exact dif_pos hJ
-#align box_integral.prepartition.mem_bUnion_index BoxIntegral.Prepartition.mem_bunionᵢIndex
-
-theorem le_bunionᵢIndex (hJ : J ∈ π.bunionᵢ πi) : J ≤ π.bunionᵢIndex πi J :=
- le_of_mem _ (π.mem_bunionᵢIndex hJ)
-#align box_integral.prepartition.le_bUnion_index BoxIntegral.Prepartition.le_bunionᵢIndex
-
-/-- Uniqueness property of `BoxIntegral.Prepartition.bunionᵢIndex`. -/
-theorem bunionᵢIndex_of_mem (hJ : J ∈ π) {J'} (hJ' : J' ∈ πi J) : π.bunionᵢIndex πi J' = J :=
- have : J' ∈ π.bunionᵢ πi := π.mem_bunionᵢ.2 ⟨J, hJ, hJ'⟩
- π.eq_of_le_of_le (π.bunionᵢIndex_mem this) hJ (π.le_bunionᵢIndex this) (le_of_mem _ hJ')
-#align box_integral.prepartition.bUnion_index_of_mem BoxIntegral.Prepartition.bunionᵢIndex_of_mem
-
-theorem bunionᵢ_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : Box ι, Prepartition J) :
- (π.bunionᵢ fun J => (πi J).bunionᵢ (πi' J)) =
- (π.bunionᵢ πi).bunionᵢ fun J => πi' (π.bunionᵢIndex πi J) J := by
+#align box_integral.prepartition.sum_bUnion_boxes BoxIntegral.Prepartition.sum_biUnion_boxes
+
+/-- Given a box `J ∈ π.biUnion πi`, returns the box `J' ∈ π` such that `J ∈ πi J'`.
+For `J ∉ π.biUnion πi`, returns `I`. -/
+def biUnionIndex (πi : ∀ (J : Box ι), Prepartition J) (J : Box ι) : Box ι :=
+ if hJ : J ∈ π.biUnion πi then (π.mem_biUnion.1 hJ).choose else I
+#align box_integral.prepartition.bUnion_index BoxIntegral.Prepartition.biUnionIndex
+
+theorem biUnionIndex_mem (hJ : J ∈ π.biUnion πi) : π.biUnionIndex πi J ∈ π := by
+ rw [biUnionIndex, dif_pos hJ]
+ exact (π.mem_biUnion.1 hJ).choose_spec.1
+#align box_integral.prepartition.bUnion_index_mem BoxIntegral.Prepartition.biUnionIndex_mem
+
+theorem biUnionIndex_le (πi : ∀ J, Prepartition J) (J : Box ι) : π.biUnionIndex πi J ≤ I := by
+ by_cases hJ : J ∈ π.biUnion πi
+ · exact π.le_of_mem (π.biUnionIndex_mem hJ)
+ · rw [biUnionIndex, dif_neg hJ]
+#align box_integral.prepartition.bUnion_index_le BoxIntegral.Prepartition.biUnionIndex_le
+
+theorem mem_biUnionIndex (hJ : J ∈ π.biUnion πi) : J ∈ πi (π.biUnionIndex πi J) := by
+ convert (π.mem_biUnion.1 hJ).choose_spec.2 <;> exact dif_pos hJ
+#align box_integral.prepartition.mem_bUnion_index BoxIntegral.Prepartition.mem_biUnionIndex
+
+theorem le_biUnionIndex (hJ : J ∈ π.biUnion πi) : J ≤ π.biUnionIndex πi J :=
+ le_of_mem _ (π.mem_biUnionIndex hJ)
+#align box_integral.prepartition.le_bUnion_index BoxIntegral.Prepartition.le_biUnionIndex
+
+/-- Uniqueness property of `BoxIntegral.Prepartition.biUnionIndex`. -/
+theorem biUnionIndex_of_mem (hJ : J ∈ π) {J'} (hJ' : J' ∈ πi J) : π.biUnionIndex πi J' = J :=
+ have : J' ∈ π.biUnion πi := π.mem_biUnion.2 ⟨J, hJ, hJ'⟩
+ π.eq_of_le_of_le (π.biUnionIndex_mem this) hJ (π.le_biUnionIndex this) (le_of_mem _ hJ')
+#align box_integral.prepartition.bUnion_index_of_mem BoxIntegral.Prepartition.biUnionIndex_of_mem
+
+theorem biUnion_assoc (πi : ∀ J, Prepartition J) (πi' : Box ι → ∀ J : Box ι, Prepartition J) :
+ (π.biUnion fun J => (πi J).biUnion (πi' J)) =
+ (π.biUnion πi).biUnion fun J => πi' (π.biUnionIndex πi J) J := by
ext J
- simp only [mem_bunionᵢ, exists_prop]
+ simp only [mem_biUnion, exists_prop]
constructor
· rintro ⟨J₁, hJ₁, J₂, hJ₂, hJ⟩
refine' ⟨J₂, ⟨J₁, hJ₁, hJ₂⟩, _⟩
- rwa [π.bunionᵢIndex_of_mem hJ₁ hJ₂]
+ rwa [π.biUnionIndex_of_mem hJ₁ hJ₂]
· rintro ⟨J₁, ⟨J₂, hJ₂, hJ₁⟩, hJ⟩
refine' ⟨J₂, hJ₂, J₁, hJ₁, _⟩
- rwa [π.bunionᵢIndex_of_mem hJ₂ hJ₁] at hJ
-#align box_integral.prepartition.bUnion_assoc BoxIntegral.Prepartition.bunionᵢ_assoc
+ rwa [π.biUnionIndex_of_mem hJ₂ hJ₁] at hJ
+#align box_integral.prepartition.bUnion_assoc BoxIntegral.Prepartition.biUnion_assoc
/-- Create a `BoxIntegral.Prepartition` from a collection of possibly empty boxes by filtering out
the empty one if it exists. -/
@@ -421,15 +421,15 @@ theorem mem_ofWithBot {boxes : Finset (WithBot (Box ι))} {h₁ h₂} :
#align box_integral.prepartition.mem_of_with_bot BoxIntegral.Prepartition.mem_ofWithBot
@[simp]
-theorem unionᵢ_ofWithBot (boxes : Finset (WithBot (Box ι)))
+theorem iUnion_ofWithBot (boxes : Finset (WithBot (Box ι)))
(le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I)
(pairwise_disjoint : Set.Pairwise (boxes : Set (WithBot (Box ι))) Disjoint) :
- (ofWithBot boxes le_of_mem pairwise_disjoint).unionᵢ = ⋃ J ∈ boxes, ↑J := by
+ (ofWithBot boxes le_of_mem pairwise_disjoint).iUnion = ⋃ J ∈ boxes, ↑J := by
suffices (⋃ (J : Box ι) (_hJ : ↑J ∈ boxes), ↑J) = ⋃ J ∈ boxes, (J : Set (ι → ℝ)) by
- simpa [ofWithBot, Prepartition.unionᵢ]
- simp only [← Box.bunionᵢ_coe_eq_coe, @unionᵢ_comm _ _ (Box ι), @unionᵢ_comm _ _ (@Eq _ _ _),
- unionᵢ_unionᵢ_eq_right]
-#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.unionᵢ_ofWithBot
+ simpa [ofWithBot, Prepartition.iUnion]
+ simp only [← Box.biUnion_coe_eq_coe, @iUnion_comm _ _ (Box ι), @iUnion_comm _ _ (@Eq _ _ _),
+ iUnion_iUnion_eq_right]
+#align box_integral.prepartition.Union_of_with_bot BoxIntegral.Prepartition.iUnion_ofWithBot
theorem ofWithBot_le {boxes : Finset (WithBot (Box ι))}
{le_of_mem : ∀ J ∈ boxes, (J : WithBot (Box ι)) ≤ I}
@@ -509,9 +509,9 @@ theorem monotone_restrict : Monotone fun π : Prepartition I => restrict π J :=
/-- Restricting to a larger box does not change the set of boxes. We cannot claim equality
of prepartitions because they have different types. -/
theorem restrict_boxes_of_le (π : Prepartition I) (h : I ≤ J) : (π.restrict J).boxes = π.boxes := by
- simp only [restrict, ofWithBot, eraseNone_eq_bunionᵢ]
- refine' Finset.image_bunionᵢ.trans _
- refine' (Finset.bunionᵢ_congr rfl _).trans Finset.bunionᵢ_singleton_eq_self
+ simp only [restrict, ofWithBot, eraseNone_eq_biUnion]
+ refine' Finset.image_biUnion.trans _
+ refine' (Finset.biUnion_congr rfl _).trans Finset.biUnion_singleton_eq_self
intro J' hJ'
rw [inf_of_le_right, ← WithBot.some_eq_coe, Option.toFinset_some]
exact WithBot.coe_le_coe.2 ((π.le_of_mem hJ').trans h)
@@ -523,71 +523,71 @@ theorem restrict_self : π.restrict I = π :=
#align box_integral.prepartition.restrict_self BoxIntegral.Prepartition.restrict_self
@[simp]
-theorem unionᵢ_restrict : (π.restrict J).unionᵢ = (J : Set (ι → ℝ)) ∩ (π.unionᵢ) := by
- simp [restrict, ← inter_unionᵢ, ← unionᵢ_def]
-#align box_integral.prepartition.Union_restrict BoxIntegral.Prepartition.unionᵢ_restrict
+theorem iUnion_restrict : (π.restrict J).iUnion = (J : Set (ι → ℝ)) ∩ (π.iUnion) := by
+ simp [restrict, ← inter_iUnion, ← iUnion_def]
+#align box_integral.prepartition.Union_restrict BoxIntegral.Prepartition.iUnion_restrict
@[simp]
-theorem restrict_bunionᵢ (πi : ∀ J, Prepartition J) (hJ : J ∈ π) :
- (π.bunionᵢ πi).restrict J = πi J := by
- refine' (eq_of_boxes_subset_unionᵢ_superset (fun J₁ h₁ => _) _).symm
- · refine' (mem_restrict _).2 ⟨J₁, π.mem_bunionᵢ.2 ⟨J, hJ, h₁⟩, (inf_of_le_right _).symm⟩
+theorem restrict_biUnion (πi : ∀ J, Prepartition J) (hJ : J ∈ π) :
+ (π.biUnion πi).restrict J = πi J := by
+ refine' (eq_of_boxes_subset_iUnion_superset (fun J₁ h₁ => _) _).symm
+ · refine' (mem_restrict _).2 ⟨J₁, π.mem_biUnion.2 ⟨J, hJ, h₁⟩, (inf_of_le_right _).symm⟩
exact WithBot.coe_le_coe.2 (le_of_mem _ h₁)
- · simp only [unionᵢ_restrict, unionᵢ_bunionᵢ, Set.subset_def, Set.mem_inter_iff, Set.mem_unionᵢ]
+ · simp only [iUnion_restrict, iUnion_biUnion, Set.subset_def, Set.mem_inter_iff, Set.mem_iUnion]
rintro x ⟨hxJ, J₁, h₁, hx⟩
obtain rfl : J = J₁
- exact π.eq_of_mem_of_mem hJ h₁ hxJ (unionᵢ_subset _ hx)
+ exact π.eq_of_mem_of_mem hJ h₁ hxJ (iUnion_subset _ hx)
exact hx
-#align box_integral.prepartition.restrict_bUnion BoxIntegral.Prepartition.restrict_bunionᵢ
+#align box_integral.prepartition.restrict_bUnion BoxIntegral.Prepartition.restrict_biUnion
-theorem bunionᵢ_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
- π.bunionᵢ πi ≤ π' ↔ ∀ J ∈ π, πi J ≤ π'.restrict J := by
+theorem biUnion_le_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
+ π.biUnion πi ≤ π' ↔ ∀ J ∈ π, πi J ≤ π'.restrict J := by
constructor <;> intro H J hJ
- · rw [← π.restrict_bunionᵢ πi hJ]
+ · rw [← π.restrict_biUnion πi hJ]
exact restrict_mono H
- · rw [mem_bunionᵢ] at hJ
+ · rw [mem_biUnion] at hJ
rcases hJ with ⟨J₁, h₁, hJ⟩
rcases H J₁ h₁ hJ with ⟨J₂, h₂, Hle⟩
rcases π'.mem_restrict.mp h₂ with ⟨J₃, h₃, H⟩
exact ⟨J₃, h₃, Hle.trans <| WithBot.coe_le_coe.1 <| H.trans_le inf_le_right⟩
-#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.bunionᵢ_le_iff
+#align box_integral.prepartition.bUnion_le_iff BoxIntegral.Prepartition.biUnion_le_iff
-theorem le_bunionᵢ_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
- π' ≤ π.bunionᵢ πi ↔ π' ≤ π ∧ ∀ J ∈ π, π'.restrict J ≤ πi J := by
- refine' ⟨fun H => ⟨H.trans (π.bunionᵢ_le πi), fun J hJ => _⟩, _⟩
- · rw [← π.restrict_bunionᵢ πi hJ]
+theorem le_biUnion_iff {πi : ∀ J, Prepartition J} {π' : Prepartition I} :
+ π' ≤ π.biUnion πi ↔ π' ≤ π ∧ ∀ J ∈ π, π'.restrict J ≤ πi J := by
+ refine' ⟨fun H => ⟨H.trans (π.biUnion_le πi), fun J hJ => _⟩, _⟩
+ · rw [← π.restrict_biUnion πi hJ]
exact restrict_mono H
· rintro ⟨H, Hi⟩ J' hJ'
rcases H hJ' with ⟨J, hJ, hle⟩
have : J' ∈ π'.restrict J :=
π'.mem_restrict.2 ⟨J', hJ', (inf_of_le_right <| WithBot.coe_le_coe.2 hle).symm⟩
rcases Hi J hJ this with ⟨Ji, hJi, hlei⟩
- exact ⟨Ji, π.mem_bunionᵢ.2 ⟨J, hJ, hJi⟩, hlei⟩
-#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_bunionᵢ_iff
+ exact ⟨Ji, π.mem_biUnion.2 ⟨J, hJ, hJi⟩, hlei⟩
+#align box_integral.prepartition.le_bUnion_iff BoxIntegral.Prepartition.le_biUnion_iff
instance inf : Inf (Prepartition I) :=
- ⟨fun π₁ π₂ => π₁.bunionᵢ fun J => π₂.restrict J⟩
+ ⟨fun π₁ π₂ => π₁.biUnion fun J => π₂.restrict J⟩
-theorem inf_def (π₁ π₂ : Prepartition I) : π₁ ⊓ π₂ = π₁.bunionᵢ fun J => π₂.restrict J := rfl
+theorem inf_def (π₁ π₂ : Prepartition I) : π₁ ⊓ π₂ = π₁.biUnion fun J => π₂.restrict J := rfl
#align box_integral.prepartition.inf_def BoxIntegral.Prepartition.inf_def
@[simp]
theorem mem_inf {π₁ π₂ : Prepartition I} :
J ∈ π₁ ⊓ π₂ ↔ ∃ J₁ ∈ π₁, ∃ J₂ ∈ π₂, (J : WithBot (Box ι)) = ↑J₁ ⊓ ↑J₂ := by
- simp only [inf_def, mem_bunionᵢ, mem_restrict]
+ simp only [inf_def, mem_biUnion, mem_restrict]
#align box_integral.prepartition.mem_inf BoxIntegral.Prepartition.mem_inf
@[simp]
-theorem unionᵢ_inf (π₁ π₂ : Prepartition I) : (π₁ ⊓ π₂).unionᵢ = π₁.unionᵢ ∩ π₂.unionᵢ := by
- simp only [inf_def, unionᵢ_bunionᵢ, unionᵢ_restrict, ← unionᵢ_inter, ← unionᵢ_def]
-#align box_integral.prepartition.Union_inf BoxIntegral.Prepartition.unionᵢ_inf
+theorem iUnion_inf (π₁ π₂ : Prepartition I) : (π₁ ⊓ π₂).iUnion = π₁.iUnion ∩ π₂.iUnion := by
+ simp only [inf_def, iUnion_biUnion, iUnion_restrict, ← iUnion_inter, ← iUnion_def]
+#align box_integral.prepartition.Union_inf BoxIntegral.Prepartition.iUnion_inf
instance : SemilatticeInf (Prepartition I) :=
{ Prepartition.inf,
Prepartition.partialOrder with
- inf_le_left := fun π₁ _ => π₁.bunionᵢ_le _
- inf_le_right := fun _ _ => (bunionᵢ_le_iff _).2 fun _ _ => le_rfl
- le_inf := fun _ π₁ _ h₁ h₂ => π₁.le_bunionᵢ_iff.2 ⟨h₁, fun _ _ => restrict_mono h₂⟩ }
+ inf_le_left := fun π₁ _ => π₁.biUnion_le _
+ inf_le_right := fun _ _ => (biUnion_le_iff _).2 fun _ _ => le_rfl
+ le_inf := fun _ π₁ _ h₁ h₂ => π₁.le_biUnion_iff.2 ⟨h₁, fun _ _ => restrict_mono h₂⟩ }
/-- The prepartition with boxes `{J ∈ π | p J}`. -/
@[simps]
@@ -618,16 +618,16 @@ theorem filter_true : (π.filter fun _ => True) = π :=
#align box_integral.prepartition.filter_true BoxIntegral.Prepartition.filter_true
@[simp]
-theorem unionᵢ_filter_not (π : Prepartition I) (p : Box ι → Prop) :
- (π.filter fun J => ¬p J).unionᵢ = π.unionᵢ \ (π.filter p).unionᵢ := by
- simp only [Prepartition.unionᵢ]
- convert (@Set.bunionᵢ_diff_bunionᵢ_eq _ (Box ι) π.boxes (π.filter p).boxes (↑) _).symm
+theorem iUnion_filter_not (π : Prepartition I) (p : Box ι → Prop) :
+ (π.filter fun J => ¬p J).iUnion = π.iUnion \ (π.filter p).iUnion := by
+ simp only [Prepartition.iUnion]
+ convert (@Set.biUnion_diff_biUnion_eq _ (Box ι) π.boxes (π.filter p).boxes (↑) _).symm
· simp (config := { contextual := true })
· rw [Set.PairwiseDisjoint]
convert π.PairwiseDisjoint
rw [Set.union_eq_left_iff_subset, filter_boxes, coe_filter]
exact fun _ ⟨h, _⟩ => h
-#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.unionᵢ_filter_not
+#align box_integral.prepartition.Union_filter_not BoxIntegral.Prepartition.iUnion_filter_not
theorem sum_fiberwise {α M} [AddCommMonoid M] (π : Prepartition I) (f : Box ι → α) (g : Box ι → M) :
(∑ y in π.boxes.image f, ∑ J in (π.filter fun J => f J = y).boxes, g J) =
@@ -637,32 +637,32 @@ theorem sum_fiberwise {α M} [AddCommMonoid M] (π : Prepartition I) (f : Box ι
/-- Union of two disjoint prepartitions. -/
@[simps]
-def disjUnion (π₁ π₂ : Prepartition I) (h : Disjoint π₁.unionᵢ π₂.unionᵢ) : Prepartition I where
+def disjUnion (π₁ π₂ : Prepartition I) (h : Disjoint π₁.iUnion π₂.iUnion) : Prepartition I where
boxes := π₁.boxes ∪ π₂.boxes
le_of_mem' J hJ := (Finset.mem_union.1 hJ).elim π₁.le_of_mem π₂.le_of_mem
PairwiseDisjoint :=
suffices ∀ J₁ ∈ π₁, ∀ J₂ ∈ π₂, J₁ ≠ J₂ → Disjoint (J₁ : Set (ι → ℝ)) J₂ by
simpa [pairwise_union_of_symmetric (symmetric_disjoint.comap _), PairwiseDisjoint]
- fun J₁ h₁ J₂ h₂ _ => h.mono (π₁.subset_unionᵢ h₁) (π₂.subset_unionᵢ h₂)
+ fun J₁ h₁ J₂ h₂ _ => h.mono (π₁.subset_iUnion h₁) (π₂.subset_iUnion h₂)
#align box_integral.prepartition.disj_union BoxIntegral.Prepartition.disjUnion
@[simp]
-theorem mem_disjUnion (H : Disjoint π₁.unionᵢ π₂.unionᵢ) :
+theorem mem_disjUnion (H : Disjoint π₁.iUnion π₂.iUnion) :
J ∈ π₁.disjUnion π₂ H ↔ J ∈ π₁ ∨ J ∈ π₂ :=
Finset.mem_union
#align box_integral.prepartition.mem_disj_union BoxIntegral.Prepartition.mem_disjUnion
@[simp]
-theorem unionᵢ_disjUnion (h : Disjoint π₁.unionᵢ π₂.unionᵢ) :
- (π₁.disjUnion π₂ h).unionᵢ = π₁.unionᵢ ∪ π₂.unionᵢ := by
- simp [disjUnion, Prepartition.unionᵢ, unionᵢ_or, unionᵢ_union_distrib]
-#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.unionᵢ_disjUnion
+theorem iUnion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
+ (π₁.disjUnion π₂ h).iUnion = π₁.iUnion ∪ π₂.iUnion := by
+ simp [disjUnion, Prepartition.iUnion, iUnion_or, iUnion_union_distrib]
+#align box_integral.prepartition.Union_disj_union BoxIntegral.Prepartition.iUnion_disjUnion
@[simp]
-theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.unionᵢ π₂.unionᵢ)
+theorem sum_disj_union_boxes {M : Type _} [AddCommMonoid M] (h : Disjoint π₁.iUnion π₂.iUnion)
(f : Box ι → M) :
(∑ J in π₁.boxes ∪ π₂.boxes, f J) = (∑ J in π₁.boxes, f J) + ∑ J in π₂.boxes, f J :=
- sum_union <| disjoint_boxes_of_disjoint_unionᵢ h
+ sum_union <| disjoint_boxes_of_disjoint_iUnion h
#align box_integral.prepartition.sum_disj_union_boxes BoxIntegral.Prepartition.sum_disj_union_boxes
section Distortion
@@ -683,13 +683,13 @@ theorem distortion_le_iff {c : ℝ≥0} : π.distortion ≤ c ↔ ∀ J ∈ π,
Finset.sup_le_iff
#align box_integral.prepartition.distortion_le_iff BoxIntegral.Prepartition.distortion_le_iff
-theorem distortion_bunionᵢ (π : Prepartition I) (πi : ∀ J, Prepartition J) :
- (π.bunionᵢ πi).distortion = π.boxes.sup fun J => (πi J).distortion :=
- sup_bunionᵢ _ _
-#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_bunionᵢ
+theorem distortion_biUnion (π : Prepartition I) (πi : ∀ J, Prepartition J) :
+ (π.biUnion πi).distortion = π.boxes.sup fun J => (πi J).distortion :=
+ sup_biUnion _ _
+#align box_integral.prepartition.distortion_bUnion BoxIntegral.Prepartition.distortion_biUnion
@[simp]
-theorem distortion_disjUnion (h : Disjoint π₁.unionᵢ π₂.unionᵢ) :
+theorem distortion_disjUnion (h : Disjoint π₁.iUnion π₂.iUnion) :
(π₁.disjUnion π₂ h).distortion = max π₁.distortion π₂.distortion :=
sup_union
#align box_integral.prepartition.distortion_disj_union BoxIntegral.Prepartition.distortion_disjUnion
@@ -716,14 +716,14 @@ def IsPartition (π : Prepartition I) :=
∀ x ∈ I, ∃ J ∈ π, x ∈ J
#align box_integral.prepartition.is_partition BoxIntegral.Prepartition.IsPartition
-theorem isPartition_iff_unionᵢ_eq {π : Prepartition I} : π.IsPartition ↔ π.unionᵢ = I := by
- simp_rw [IsPartition, Set.Subset.antisymm_iff, π.unionᵢ_subset, true_and_iff, Set.subset_def,
- mem_unionᵢ, Box.mem_coe]
-#align box_integral.prepartition.is_partition_iff_Union_eq BoxIntegral.Prepartition.isPartition_iff_unionᵢ_eq
+theorem isPartition_iff_iUnion_eq {π : Prepartition I} : π.IsPartition ↔ π.iUnion = I := by
+ simp_rw [IsPartition, Set.Subset.antisymm_iff, π.iUnion_subset, true_and_iff, Set.subset_def,
+ mem_iUnion, Box.mem_coe]
+#align box_integral.prepartition.is_partition_iff_Union_eq BoxIntegral.Prepartition.isPartition_iff_iUnion_eq
@[simp]
theorem isPartition_single_iff (h : J ≤ I) : IsPartition (single I J h) ↔ J = I := by
- simp [isPartition_iff_unionᵢ_eq]
+ simp [isPartition_iff_iUnion_eq]
#align box_integral.prepartition.is_partition_single_iff BoxIntegral.Prepartition.isPartition_single_iff
theorem isPartitionTop (I : Box ι) : IsPartition (⊤ : Prepartition I) :=
@@ -734,13 +734,13 @@ namespace IsPartition
variable {π}
-theorem unionᵢ_eq (h : π.IsPartition) : π.unionᵢ = I :=
- isPartition_iff_unionᵢ_eq.1 h
-#align box_integral.prepartition.is_partition.Union_eq BoxIntegral.Prepartition.IsPartition.unionᵢ_eq
+theorem iUnion_eq (h : π.IsPartition) : π.iUnion = I :=
+ isPartition_iff_iUnion_eq.1 h
+#align box_integral.prepartition.is_partition.Union_eq BoxIntegral.Prepartition.IsPartition.iUnion_eq
-theorem unionᵢ_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.unionᵢ ⊆ π.unionᵢ :=
- h.unionᵢ_eq.symm ▸ π₁.unionᵢ_subset
-#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.unionᵢ_subset
+theorem iUnion_subset (h : π.IsPartition) (π₁ : Prepartition I) : π₁.iUnion ⊆ π.iUnion :=
+ h.iUnion_eq.symm ▸ π₁.iUnion_subset
+#align box_integral.prepartition.is_partition.Union_subset BoxIntegral.Prepartition.IsPartition.iUnion_subset
protected theorem existsUnique (h : π.IsPartition) (hx : x ∈ I) :
∃! (J : _) (_ : J ∈ π), x ∈ J := by
@@ -754,41 +754,41 @@ theorem nonempty_boxes (h : π.IsPartition) : π.boxes.Nonempty :=
#align box_integral.prepartition.is_partition.nonempty_boxes BoxIntegral.Prepartition.IsPartition.nonempty_boxes
theorem eq_of_boxes_subset (h₁ : π₁.IsPartition) (h₂ : π₁.boxes ⊆ π₂.boxes) : π₁ = π₂ :=
- eq_of_boxes_subset_unionᵢ_superset h₂ <| h₁.unionᵢ_subset _
+ eq_of_boxes_subset_iUnion_superset h₂ <| h₁.iUnion_subset _
#align box_integral.prepartition.is_partition.eq_of_boxes_subset BoxIntegral.Prepartition.IsPartition.eq_of_boxes_subset
theorem le_iff (h : π₂.IsPartition) :
π₁ ≤ π₂ ↔ ∀ J ∈ π₁, ∀ J' ∈ π₂, (J ∩ J' : Set (ι → ℝ)).Nonempty → J ≤ J' :=
- le_iff_nonempty_imp_le_and_unionᵢ_subset.trans <| and_iff_left <| h.unionᵢ_subset _
+ le_iff_nonempty_imp_le_and_iUnion_subset.trans <| and_iff_left <| h.iUnion_subset _
#align box_integral.prepartition.is_partition.le_iff BoxIntegral.Prepartition.IsPartition.le_iff
-protected theorem bunionᵢ (h : IsPartition π) (hi : ∀ J ∈ π, IsPartition (πi J)) :
- IsPartition (π.bunionᵢ πi) := fun x hx =>
+protected theorem biUnion (h : IsPartition π) (hi : ∀ J ∈ π, IsPartition (πi J)) :
+ IsPartition (π.biUnion πi) := fun x hx =>
let ⟨J, hJ, hxi⟩ := h x hx
let ⟨Ji, hJi, hx⟩ := hi J hJ x hxi
- ⟨Ji, π.mem_bunionᵢ.2 ⟨J, hJ, hJi⟩, hx⟩
-#align box_integral.prepartition.is_partition.bUnion BoxIntegral.Prepartition.IsPartition.bunionᵢ
+ ⟨Ji, π.mem_biUnion.2 ⟨J, hJ, hJi⟩, hx⟩
+#align box_integral.prepartition.is_partition.bUnion BoxIntegral.Prepartition.IsPartition.biUnion
protected theorem restrict (h : IsPartition π) (hJ : J ≤ I) : IsPartition (π.restrict J) :=
- isPartition_iff_unionᵢ_eq.2 <| by simp [h.unionᵢ_eq, hJ]
+ isPartition_iff_iUnion_eq.2 <| by simp [h.iUnion_eq, hJ]
#align box_integral.prepartition.is_partition.restrict BoxIntegral.Prepartition.IsPartition.restrict
protected theorem inf (h₁ : IsPartition π₁) (h₂ : IsPartition π₂) : IsPartition (π₁ ⊓ π₂) :=
- isPartition_iff_unionᵢ_eq.2 <| by simp [h₁.unionᵢ_eq, h₂.unionᵢ_eq]
+ isPartition_iff_iUnion_eq.2 <| by simp [h₁.iUnion_eq, h₂.iUnion_eq]
#align box_integral.prepartition.is_partition.inf BoxIntegral.Prepartition.IsPartition.inf
end IsPartition
-theorem unionᵢ_bunionᵢ_partition (h : ∀ J ∈ π, (πi J).IsPartition) :
- (π.bunionᵢ πi).unionᵢ = π.unionᵢ :=
- (unionᵢ_bunionᵢ _ _).trans <|
- unionᵢ_congr_of_surjective id surjective_id fun J =>
- unionᵢ_congr_of_surjective id surjective_id fun hJ => (h J hJ).unionᵢ_eq
-#align box_integral.prepartition.Union_bUnion_partition BoxIntegral.Prepartition.unionᵢ_bunionᵢ_partition
+theorem iUnion_biUnion_partition (h : ∀ J ∈ π, (πi J).IsPartition) :
+ (π.biUnion πi).iUnion = π.iUnion :=
+ (iUnion_biUnion _ _).trans <|
+ iUnion_congr_of_surjective id surjective_id fun J =>
+ iUnion_congr_of_surjective id surjective_id fun hJ => (h J hJ).iUnion_eq
+#align box_integral.prepartition.Union_bUnion_partition BoxIntegral.Prepartition.iUnion_biUnion_partition
-theorem isPartitionDisjUnionOfEqDiff (h : π₂.unionᵢ = ↑I \ π₁.unionᵢ) :
+theorem isPartitionDisjUnionOfEqDiff (h : π₂.iUnion = ↑I \ π₁.iUnion) :
IsPartition (π₁.disjUnion π₂ <| h.symm ▸ disjoint_sdiff_self_right) :=
- isPartition_iff_unionᵢ_eq.2 <| (unionᵢ_disjUnion _).trans <| by simp [h, π₁.unionᵢ_subset]
+ isPartition_iff_iUnion_eq.2 <| (iUnion_disjUnion _).trans <| by simp [h, π₁.iUnion_subset]
#align box_integral.prepartition.is_partition_disj_union_of_eq_diff BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiff
end Prepartition
The unported dependencies are
algebra.order.module
init.core
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file