phillips
⟷
Counterexamples.Phillips
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -402,7 +402,7 @@ theorem continuousPart_apply_eq_zero_of_countable (f : BoundedAdditiveMeasure α
simp [continuous_part]
convert f.apply_countable s hs using 2
ext x
- simp [and_comm']
+ simp [and_comm]
#align counterexample.phillips_1940.bounded_additive_measure.continuous_part_apply_eq_zero_of_countable Counterexample.Phillips1940.BoundedAdditiveMeasure.continuousPart_apply_eq_zero_of_countable
theorem continuousPart_apply_diff (f : BoundedAdditiveMeasure α) (s t : Set α) (hs : s.Countable) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -217,8 +217,8 @@ theorem le_bound (f : BoundedAdditiveMeasure α) (s : Set α) : f s ≤ f.C :=
theorem empty (f : BoundedAdditiveMeasure α) : f ∅ = 0 :=
by
have : (∅ : Set α) = ∅ ∪ ∅ := by simp only [empty_union]
- apply_fun f at this
- rwa [f.additive _ _ (empty_disjoint _), self_eq_add_left] at this
+ apply_fun f at this
+ rwa [f.additive _ _ (empty_disjoint _), self_eq_add_left] at this
#align counterexample.phillips_1940.bounded_additive_measure.empty Counterexample.Phillips1940.BoundedAdditiveMeasure.empty
instance : Neg (BoundedAdditiveMeasure α) :=
@@ -350,7 +350,7 @@ theorem exists_discrete_support (f : BoundedAdditiveMeasure α) :
exact h₁ _ (ht.mono (diff_subset _ _))
· have : t \ (s₁ ∪ s₂) = (t \ (s₁ ∪ s₂)) \ s₂ := by rw [diff_diff, union_assoc, union_self]
rw [this]
- simp only [neg_nonpos, neg_apply] at h₂
+ simp only [neg_nonpos, neg_apply] at h₂
exact h₂ _ (ht.mono (diff_subset _ _))
#align counterexample.phillips_1940.bounded_additive_measure.exists_discrete_support Counterexample.Phillips1940.BoundedAdditiveMeasure.exists_discrete_support
@@ -593,15 +593,15 @@ theorem countable_ne (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ
by
intro x hx
contrapose! hx
- simp only [Classical.not_not, mem_set_of_eq] at hx
+ simp only [Classical.not_not, mem_set_of_eq] at hx
simp [apply_f_eq_continuous_part Hcont φ x hx]
have B :
{x | φ.to_bounded_additive_measure.discrete_support ∩ spf Hcont x ≠ ∅} ⊆
⋃ y ∈ φ.to_bounded_additive_measure.discrete_support, {x | y ∈ spf Hcont x} :=
by
intro x hx
- dsimp at hx
- rw [← Ne.def, ← nonempty_iff_ne_empty] at hx
+ dsimp at hx
+ rw [← Ne.def, ← nonempty_iff_ne_empty] at hx
simp only [exists_prop, mem_Union, mem_set_of_eq]
exact hx
apply countable.mono (subset.trans A B)
@@ -664,15 +664,15 @@ theorem no_pettis_integral (Hcont : (#ℝ) = aleph 1) :
∀ φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ, ∫ x in Icc 0 1, φ (f Hcont x) = φ g :=
by
rintro ⟨g, h⟩
- simp only [integral_comp] at h
+ simp only [integral_comp] at h
have : g = 0 := by
ext x
have : g x = eval_clm ℝ x g := rfl
rw [this, ← h]
simp
- simp only [this, ContinuousLinearMap.map_zero] at h
+ simp only [this, ContinuousLinearMap.map_zero] at h
specialize h (volume.restrict (Icc (0 : ℝ) 1)).extensionToBoundedFunctions
- simp_rw [to_functions_to_measure_continuous_part _ _ MeasurableSet.univ] at h
+ simp_rw [to_functions_to_measure_continuous_part _ _ MeasurableSet.univ] at h
simpa using h
#align counterexample.phillips_1940.no_pettis_integral Counterexample.Phillips1940.no_pettis_integral
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -454,16 +454,16 @@ def ContinuousLinearMap.toBoundedAdditiveMeasure [TopologicalSpace α] [Discrete
#align continuous_linear_map.to_bounded_additive_measure ContinuousLinearMap.toBoundedAdditiveMeasure
@[simp]
-theorem continuousPart_evalClm_eq_zero [TopologicalSpace α] [DiscreteTopology α] (s : Set α)
- (x : α) : (evalClm ℝ x).toBoundedAdditiveMeasure.continuousPart s = 0 :=
- let f := (evalClm ℝ x).toBoundedAdditiveMeasure
+theorem continuousPart_evalCLM_eq_zero [TopologicalSpace α] [DiscreteTopology α] (s : Set α)
+ (x : α) : (evalCLM ℝ x).toBoundedAdditiveMeasure.continuousPart s = 0 :=
+ let f := (evalCLM ℝ x).toBoundedAdditiveMeasure
calc
f.continuousPart s = f.continuousPart (s \ {x}) :=
(continuousPart_apply_diff _ _ _ (countable_singleton x)).symm
_ = f (univ \ f.discreteSupport ∩ (s \ {x})) := rfl
_ = indicator (univ \ f.discreteSupport ∩ (s \ {x})) 1 x := rfl
_ = 0 := by simp
-#align counterexample.phillips_1940.continuous_part_eval_clm_eq_zero Counterexample.Phillips1940.continuousPart_evalClm_eq_zero
+#align counterexample.phillips_1940.continuous_part_eval_clm_eq_zero Counterexample.Phillips1940.continuousPart_evalCLM_eq_zero
theorem to_functions_to_measure [MeasurableSpace α] (μ : Measure α) [IsFiniteMeasure μ] (s : Set α)
(hs : MeasurableSet s) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -266,7 +266,7 @@ theorem exists_discrete_support_nonpos (f : BoundedAdditiveMeasure α) :
In this proof, we use explicit coercions `↑s` for `s : A` as otherwise the system tries to find
a `has_coe_to_fun` instance on `↥A`, which is too costly.
-/
- by_contra' h
+ by_contra! h
-- We will formulate things in terms of the type of countable subsets of `α`, as this is more
-- convenient to formalize the inductive construction.
let A : Set (Set α) := {t | t.Countable}
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2021 Sébastien Gouëzel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
-/
-import Mathbin.Analysis.NormedSpace.HahnBanach.Extension
-import Mathbin.MeasureTheory.Integral.SetIntegral
-import Mathbin.MeasureTheory.Measure.Lebesgue.Basic
-import Mathbin.Topology.ContinuousFunction.Bounded
+import Analysis.NormedSpace.HahnBanach.Extension
+import MeasureTheory.Integral.SetIntegral
+import MeasureTheory.Measure.Lebesgue.Basic
+import Topology.ContinuousFunction.Bounded
#align_import phillips from "leanprover-community/mathlib"@"08b081ea92d80e3a41f899eea36ef6d56e0f1db0"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2021 Sébastien Gouëzel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
-
-! This file was ported from Lean 3 source module phillips
-! leanprover-community/mathlib commit 08b081ea92d80e3a41f899eea36ef6d56e0f1db0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.NormedSpace.HahnBanach.Extension
import Mathbin.MeasureTheory.Integral.SetIntegral
import Mathbin.MeasureTheory.Measure.Lebesgue.Basic
import Mathbin.Topology.ContinuousFunction.Bounded
+#align_import phillips from "leanprover-community/mathlib"@"08b081ea92d80e3a41f899eea36ef6d56e0f1db0"
+
/-!
# A counterexample on Pettis integrability
mathlib commit https://github.com/leanprover-community/mathlib/commit/bf2428c9486c407ca38b5b3fb10b87dad0bc99fa
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
! This file was ported from Lean 3 source module phillips
-! leanprover-community/mathlib commit 328375597f2c0dd00522d9c2e5a33b6a6128feeb
+! leanprover-community/mathlib commit 08b081ea92d80e3a41f899eea36ef6d56e0f1db0
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.Topology.ContinuousFunction.Bounded
/-!
# A counterexample on Pettis integrability
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
There are several theories of integration for functions taking values in Banach spaces. Bochner
integration, requiring approximation by simple functions, is the analogue of the one-dimensional
theory. It is very well behaved, but only works for functions with second-countable range.
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -474,7 +474,7 @@ theorem to_functions_to_measure [MeasurableSpace α] (μ : Measure α) [IsFinite
(of_normed_add_comm_group_discrete (indicator s 1) 1 (norm_indicator_le_one s)) =
(μ s).toReal
rw [extension_to_bounded_functions_apply]
- · change (∫ x, s.indicator (fun y => (1 : ℝ)) x ∂μ) = _
+ · change ∫ x, s.indicator (fun y => (1 : ℝ)) x ∂μ = _
simp [integral_indicator hs]
· change integrable (indicator s 1) μ
have : integrable (fun x => (1 : ℝ)) μ := integrable_const (1 : ℝ)
@@ -629,7 +629,7 @@ theorem integrable_comp (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →
#align counterexample.phillips_1940.integrable_comp Counterexample.Phillips1940.integrable_comp
theorem integral_comp (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ) :
- (∫ x in Icc 0 1, φ (f Hcont x)) = φ.toBoundedAdditiveMeasure.continuousPart univ :=
+ ∫ x in Icc 0 1, φ (f Hcont x) = φ.toBoundedAdditiveMeasure.continuousPart univ :=
by
rw [← integral_congr_ae (comp_ae_eq_const Hcont φ)]
simp
@@ -661,7 +661,7 @@ theorem norm_bound (Hcont : (#ℝ) = aleph 1) (x : ℝ) : ‖f Hcont x‖ ≤ 1
/-- The function `f Hcont : ℝ → (discrete_copy ℝ →ᵇ ℝ)` has no Pettis integral. -/
theorem no_pettis_integral (Hcont : (#ℝ) = aleph 1) :
¬∃ g : DiscreteCopy ℝ →ᵇ ℝ,
- ∀ φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ, (∫ x in Icc 0 1, φ (f Hcont x)) = φ g :=
+ ∀ φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ, ∫ x in Icc 0 1, φ (f Hcont x) = φ g :=
by
rintro ⟨g, h⟩
simp only [integral_comp] at h
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -296,7 +296,6 @@ theorem exists_discrete_support_nonpos (f : BoundedAdditiveMeasure α) :
f (↑u \ ↑s) ≤ S := le_ciSup B _
_ = 2 * (S / 2) := by ring
_ ≤ 2 * f (↑t \ ↑s) := mul_le_mul_of_nonneg_left ht.le (by norm_num)
-
choose! F hF using this
-- iterate the above construction, by adding at each step a set with measure close to maximal in
-- the complement of already chosen points. This is the set `s n` at step `n`.
@@ -333,7 +332,6 @@ theorem exists_discrete_support_nonpos (f : BoundedAdditiveMeasure α) :
calc
((n + 1 : ℕ) : ℝ) * (ε / 2) = ε / 2 + n * (ε / 2) := by simp only [Nat.cast_succ] <;> ring
_ ≤ f (↑(s (n + 1 : ℕ)) \ ↑(s n)) + f ↑(s n) := add_le_add (I1 n) IH
-
rcases exists_nat_gt (f.C / (ε / 2)) with ⟨n, hn⟩
have : (n : ℝ) ≤ f.C / (ε / 2) := by rw [le_div_iff (half_pos ε_pos)];
exact (I2 n).trans (f.le_bound _)
@@ -465,7 +463,6 @@ theorem continuousPart_evalClm_eq_zero [TopologicalSpace α] [DiscreteTopology
_ = f (univ \ f.discreteSupport ∩ (s \ {x})) := rfl
_ = indicator (univ \ f.discreteSupport ∩ (s \ {x})) 1 x := rfl
_ = 0 := by simp
-
#align counterexample.phillips_1940.continuous_part_eval_clm_eq_zero Counterexample.Phillips1940.continuousPart_evalClm_eq_zero
theorem to_functions_to_measure [MeasurableSpace α] (μ : Measure α) [IsFiniteMeasure μ] (s : Set α)
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3209ddf94136d36e5e5c624b10b2a347cc9d090
@@ -577,7 +577,7 @@ theorem countable_ne (Hcont : #ℝ = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ
⋃ y ∈ φ.toBoundedAdditiveMeasure.discreteSupport, {x | y ∈ spf Hcont x} := by
intro x hx
dsimp at hx
- rw [← Ne.def, ← nonempty_iff_ne_empty] at hx
+ rw [← Ne, ← nonempty_iff_ne_empty] at hx
simp only [exists_prop, mem_iUnion, mem_setOf_eq]
exact hx
apply Countable.mono (Subset.trans A B)
@@ -312,7 +312,7 @@ theorem exists_discrete_support_nonpos (f : BoundedAdditiveMeasure α) :
have I2 : ∀ n : ℕ, (n : ℝ) * (ε / 2) ≤ f ↑(s n) := by
intro n
induction' n with n IH
- · simp only [s, BoundedAdditiveMeasure.empty, id.def, Nat.cast_zero, zero_mul,
+ · simp only [s, BoundedAdditiveMeasure.empty, id, Nat.cast_zero, zero_mul,
Function.iterate_zero, Subtype.coe_mk, Nat.zero_eq]
rfl
· have : (s (n + 1)).1 = (s (n + 1)).1 \ (s n).1 ∪ (s n).1 := by
Standardizes the following names for distributivity laws across Finset
and Set
:
inter_union_distrib_left
inter_union_distrib_right
union_inter_distrib_left
union_inter_distrib_right
Makes arguments explicit in:
Set.union_inter_distrib_right
Set.union_inter_distrib_left
Set.inter_union_distrib_right
Deprecates these theorem names:
Finset.inter_distrib_left
Finset.inter_distrib_right
Finset.union_distrib_right
Finset.union_distrib_left
Set.inter_distrib_left
Set.inter_distrib_right
Set.union_distrib_right
Set.union_distrib_left
Fixes use of deprecated names and implicit arguments in these files:
@@ -374,7 +374,7 @@ def continuousPart (f : BoundedAdditiveMeasure α) : BoundedAdditiveMeasure α :
theorem eq_add_parts (f : BoundedAdditiveMeasure α) (s : Set α) :
f s = f.discretePart s + f.continuousPart s := by
simp only [discretePart, continuousPart, restrict_apply]
- rw [← f.additive, ← inter_distrib_right]
+ rw [← f.additive, ← union_inter_distrib_right]
· simp only [union_univ, union_diff_self, univ_inter]
· have : Disjoint f.discreteSupport (univ \ f.discreteSupport) := disjoint_sdiff_self_right
exact this.mono (inter_subset_left _ _) (inter_subset_left _ _)
The termination checker has been getting more capable, and many of the termination_by
or decreasing_by
clauses in Mathlib are no longer needed.
(Note that termination_by?
will show the automatically derived termination expression, so no information is being lost by removing these.)
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -498,7 +498,6 @@ We need the continuum hypothesis to construct it.
theorem sierpinski_pathological_family (Hcont : #ℝ = aleph 1) :
∃ f : ℝ → Set ℝ, (∀ x, (univ \ f x).Countable) ∧ ∀ y, {x : ℝ | y ∈ f x}.Countable := by
rcases Cardinal.ord_eq ℝ with ⟨r, hr, H⟩
- skip
refine' ⟨fun x => {y | r x y}, fun x => _, fun y => _⟩
· have : univ \ {y | r x y} = {y | r y x} ∪ {x} := by
ext y
This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0
branch as we update to intermediate nightlies.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>
@@ -413,7 +413,8 @@ section
theorem norm_indicator_le_one (s : Set α) (x : α) : ‖(indicator s (1 : α → ℝ)) x‖ ≤ 1 := by
- simp only [indicator, Pi.one_apply]; split_ifs <;> norm_num
+ simp only [indicator, Pi.one_apply]; split_ifs <;>
+ set_option tactic.skipAssignedInstances false in norm_num
#align counterexample.phillips_1940.norm_indicator_le_one Counterexample.Phillips1940.norm_indicator_le_one
/-- A functional in the dual space of bounded functions gives rise to a bounded additive measure,
@@ -308,15 +308,15 @@ theorem exists_discrete_support_nonpos (f : BoundedAdditiveMeasure α) :
simp only [not_exists, mem_iUnion, mem_diff]
tauto
· congr 1
- simp only [Function.iterate_succ', Subtype.coe_mk, union_diff_left, Function.comp]
+ simp only [s, Function.iterate_succ', Subtype.coe_mk, union_diff_left, Function.comp]
have I2 : ∀ n : ℕ, (n : ℝ) * (ε / 2) ≤ f ↑(s n) := by
intro n
induction' n with n IH
- · simp only [BoundedAdditiveMeasure.empty, id.def, Nat.cast_zero, zero_mul,
+ · simp only [s, BoundedAdditiveMeasure.empty, id.def, Nat.cast_zero, zero_mul,
Function.iterate_zero, Subtype.coe_mk, Nat.zero_eq]
rfl
· have : (s (n + 1)).1 = (s (n + 1)).1 \ (s n).1 ∪ (s n).1 := by
- simpa only [Function.iterate_succ', union_diff_self]
+ simpa only [s, Function.iterate_succ', union_diff_self]
using (diff_union_of_subset <| subset_union_left _ _).symm
rw [Nat.succ_eq_add_one, this, f.additive]
swap; · exact disjoint_sdiff_self_left
@@ -434,7 +434,7 @@ def _root_.ContinuousLinearMap.toBoundedAdditiveMeasure [TopologicalSpace α] [D
have I :
‖ofNormedAddCommGroupDiscrete (indicator s 1) 1 (norm_indicator_le_one s)‖ ≤ 1 := by
apply norm_ofNormedAddCommGroup_le _ zero_le_one
- apply le_trans (f.le_op_norm _)
+ apply le_trans (f.le_opNorm _)
simpa using mul_le_mul_of_nonneg_left I (norm_nonneg f)⟩
#align continuous_linear_map.to_bounded_additive_measure ContinuousLinearMap.toBoundedAdditiveMeasure
Set.Countable
(#9831)
Redefine Set.Countable s
as _root_.Countable s
.
Fix compile, golf some of the broken proofs.
@@ -315,9 +315,9 @@ theorem exists_discrete_support_nonpos (f : BoundedAdditiveMeasure α) :
· simp only [BoundedAdditiveMeasure.empty, id.def, Nat.cast_zero, zero_mul,
Function.iterate_zero, Subtype.coe_mk, Nat.zero_eq]
rfl
- · have : (↑(s (n + 1)) : Set α) = ↑(s (n + 1)) \ ↑(s n) ∪ ↑(s n) := by
- simp only [Function.iterate_succ', union_comm, union_diff_self, Subtype.coe_mk,
- union_diff_left, Function.comp]
+ · have : (s (n + 1)).1 = (s (n + 1)).1 \ (s n).1 ∪ (s n).1 := by
+ simpa only [Function.iterate_succ', union_diff_self]
+ using (diff_union_of_subset <| subset_union_left _ _).symm
rw [Nat.succ_eq_add_one, this, f.additive]
swap; · exact disjoint_sdiff_self_left
calc
Clm
-> CLM
, Cle
-> CLE
(#10018)
Rename
Complex.equivRealProdClm
→ Complex.equivRealProdCLM
;
CLE
?Complex.reClm
→ Complex.reCLM
;Complex.imClm
→ Complex.imCLM
;Complex.conjLie
→ Complex.conjLIE
;Complex.conjCle
→ Complex.conjCLE
;Complex.ofRealLi
→ Complex.ofRealLI
;Complex.ofRealClm
→ Complex.ofRealCLM
;fderivInnerClm
→ fderivInnerCLM
;LinearPMap.adjointDomainMkClm
→ LinearPMap.adjointDomainMkCLM
;LinearPMap.adjointDomainMkClmExtend
→ LinearPMap.adjointDomainMkCLMExtend
;IsROrC.reClm
→ IsROrC.reCLM
;IsROrC.imClm
→ IsROrC.imCLM
;IsROrC.conjLie
→ IsROrC.conjLIE
;IsROrC.conjCle
→ IsROrC.conjCLE
;IsROrC.ofRealLi
→ IsROrC.ofRealLI
;IsROrC.ofRealClm
→ IsROrC.ofRealCLM
;MeasureTheory.condexpL1Clm
→ MeasureTheory.condexpL1CLM
;algebraMapClm
→ algebraMapCLM
;WeakDual.CharacterSpace.toClm
→ WeakDual.CharacterSpace.toCLM
;BoundedContinuousFunction.evalClm
→ BoundedContinuousFunction.evalCLM
;ContinuousMap.evalClm
→ ContinuousMap.evalCLM
;TrivSqZeroExt.fstClm
→ TrivSqZeroExt.fstClm
;TrivSqZeroExt.sndClm
→ TrivSqZeroExt.sndCLM
;TrivSqZeroExt.inlClm
→ TrivSqZeroExt.inlCLM
;TrivSqZeroExt.inrClm
→ TrivSqZeroExt.inrCLM
and related theorems.
@@ -439,16 +439,16 @@ def _root_.ContinuousLinearMap.toBoundedAdditiveMeasure [TopologicalSpace α] [D
#align continuous_linear_map.to_bounded_additive_measure ContinuousLinearMap.toBoundedAdditiveMeasure
@[simp]
-theorem continuousPart_evalClm_eq_zero [TopologicalSpace α] [DiscreteTopology α] (s : Set α)
- (x : α) : (evalClm ℝ x).toBoundedAdditiveMeasure.continuousPart s = 0 :=
- let f := (evalClm ℝ x).toBoundedAdditiveMeasure
+theorem continuousPart_evalCLM_eq_zero [TopologicalSpace α] [DiscreteTopology α] (s : Set α)
+ (x : α) : (evalCLM ℝ x).toBoundedAdditiveMeasure.continuousPart s = 0 :=
+ let f := (evalCLM ℝ x).toBoundedAdditiveMeasure
calc
f.continuousPart s = f.continuousPart (s \ {x}) :=
(continuousPart_apply_diff _ _ _ (countable_singleton x)).symm
_ = f (univ \ f.discreteSupport ∩ (s \ {x})) := rfl
_ = indicator (univ \ f.discreteSupport ∩ (s \ {x})) 1 x := rfl
_ = 0 := by simp
-#align counterexample.phillips_1940.continuous_part_eval_clm_eq_zero Counterexample.Phillips1940.continuousPart_evalClm_eq_zero
+#align counterexample.phillips_1940.continuous_part_eval_clm_eq_zero Counterexample.Phillips1940.continuousPart_evalCLM_eq_zero
theorem toFunctions_toMeasure [MeasurableSpace α] (μ : Measure α) [IsFiniteMeasure μ] (s : Set α)
(hs : MeasurableSet s) :
@@ -638,7 +638,7 @@ theorem no_pettis_integral (Hcont : #ℝ = aleph 1) :
simp only [integral_comp] at h
have : g = 0 := by
ext x
- have : g x = evalClm ℝ x g := rfl
+ have : g x = evalCLM ℝ x g := rfl
rw [this, ← h]
simp
simp only [this, ContinuousLinearMap.map_zero] at h
@@ -287,8 +287,7 @@ theorem exists_discrete_support_nonpos (f : BoundedAdditiveMeasure α) :
refine' ⟨t, fun u => _⟩
calc
f (↑u \ ↑s) ≤ S := le_ciSup B _
- _ = 2 * (S / 2) := by ring
- _ ≤ 2 * f (↑t \ ↑s) := mul_le_mul_of_nonneg_left ht.le (by norm_num)
+ _ ≤ 2 * f (↑t \ ↑s) := (div_le_iff' two_pos).1 ht.le
choose! F hF using this
-- iterate the above construction, by adding at each step a set with measure close to maximal in
-- the complement of already chosen points. This is the set `s n` at step `n`.
@@ -570,9 +570,9 @@ theorem countable_ne (Hcont : #ℝ = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ
{x | φ.toBoundedAdditiveMeasure.continuousPart univ ≠ φ (f Hcont x)} ⊆
{x | φ.toBoundedAdditiveMeasure.discreteSupport ∩ spf Hcont x ≠ ∅} := by
intro x hx
+ simp only [mem_setOf] at *
contrapose! hx
- simp only [Classical.not_not, mem_setOf_eq, not_nonempty_iff_eq_empty] at hx
- simp [apply_f_eq_continuousPart Hcont φ x hx]
+ exact apply_f_eq_continuousPart Hcont φ x hx |>.symm
have B :
{x | φ.toBoundedAdditiveMeasure.discreteSupport ∩ spf Hcont x ≠ ∅} ⊆
⋃ y ∈ φ.toBoundedAdditiveMeasure.discreteSupport, {x | y ∈ spf Hcont x} := by
@@ -261,7 +261,7 @@ theorem exists_discrete_support_nonpos (f : BoundedAdditiveMeasure α) :
In this proof, we use explicit coercions `↑s` for `s : A` as otherwise the system tries to find
a `CoeFun` instance on `↥A`, which is too costly.
-/
- by_contra' h
+ by_contra! h
-- We will formulate things in terms of the type of countable subsets of `α`, as this is more
-- convenient to formalize the inductive construction.
let A : Set (Set α) := {t | t.Countable}
@@ -571,7 +571,7 @@ theorem countable_ne (Hcont : #ℝ = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ
{x | φ.toBoundedAdditiveMeasure.discreteSupport ∩ spf Hcont x ≠ ∅} := by
intro x hx
contrapose! hx
- simp only [Classical.not_not, mem_setOf_eq] at hx
+ simp only [Classical.not_not, mem_setOf_eq, not_nonempty_iff_eq_empty] at hx
simp [apply_f_eq_continuousPart Hcont φ x hx]
have B :
{x | φ.toBoundedAdditiveMeasure.discreteSupport ∩ spf Hcont x ≠ ∅} ⊆
rcases
, convert
and congrm
(#7725)
Replace rcases(
with rcases (
. Same thing for convert(
and congrm(
. No other change.
@@ -333,7 +333,7 @@ theorem exists_discrete_support_nonpos (f : BoundedAdditiveMeasure α) :
theorem exists_discrete_support (f : BoundedAdditiveMeasure α) :
∃ s : Set α, s.Countable ∧ ∀ t : Set α, t.Countable → f (t \ s) = 0 := by
rcases f.exists_discrete_support_nonpos with ⟨s₁, s₁_count, h₁⟩
- rcases(-f).exists_discrete_support_nonpos with ⟨s₂, s₂_count, h₂⟩
+ rcases (-f).exists_discrete_support_nonpos with ⟨s₂, s₂_count, h₂⟩
refine' ⟨s₁ ∪ s₂, s₁_count.union s₂_count, fun t ht => le_antisymm _ _⟩
· have : t \ (s₁ ∪ s₂) = (t \ (s₁ ∪ s₂)) \ s₁ := by
rw [diff_diff, union_comm, union_assoc, union_self]
MulZeroClass.
in mul_zero
/zero_mul
(#6682)
Search&replace MulZeroClass.mul_zero
-> mul_zero
, MulZeroClass.zero_mul
-> zero_mul
.
These were introduced by Mathport, as the full name of mul_zero
is actually MulZeroClass.mul_zero
(it's exported with the short name).
@@ -313,7 +313,7 @@ theorem exists_discrete_support_nonpos (f : BoundedAdditiveMeasure α) :
have I2 : ∀ n : ℕ, (n : ℝ) * (ε / 2) ≤ f ↑(s n) := by
intro n
induction' n with n IH
- · simp only [BoundedAdditiveMeasure.empty, id.def, Nat.cast_zero, MulZeroClass.zero_mul,
+ · simp only [BoundedAdditiveMeasure.empty, id.def, Nat.cast_zero, zero_mul,
Function.iterate_zero, Subtype.coe_mk, Nat.zero_eq]
rfl
· have : (↑(s (n + 1)) : Set α) = ↑(s (n + 1)) \ ↑(s n) ∪ ↑(s n) := by
@@ -2,17 +2,14 @@
Copyright (c) 2021 Sébastien Gouëzel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
-
-! This file was ported from Lean 3 source module phillips
-! leanprover-community/mathlib commit 328375597f2c0dd00522d9c2e5a33b6a6128feeb
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.NormedSpace.HahnBanach.Extension
import Mathlib.MeasureTheory.Integral.SetIntegral
import Mathlib.MeasureTheory.Measure.Lebesgue.Basic
import Mathlib.Topology.ContinuousFunction.Bounded
+#align_import phillips from "leanprover-community/mathlib"@"328375597f2c0dd00522d9c2e5a33b6a6128feeb"
+
/-!
# A counterexample on Pettis integrability
@@ -498,7 +498,7 @@ We need the continuum hypothesis to construct it.
-/
-theorem sierpinski_pathological_family (Hcont : (#ℝ) = aleph 1) :
+theorem sierpinski_pathological_family (Hcont : #ℝ = aleph 1) :
∃ f : ℝ → Set ℝ, (∀ x, (univ \ f x).Countable) ∧ ∀ y, {x : ℝ | y ∈ f x}.Countable := by
rcases Cardinal.ord_eq ℝ with ⟨r, hr, H⟩
skip
@@ -523,15 +523,15 @@ theorem sierpinski_pathological_family (Hcont : (#ℝ) = aleph 1) :
/-- A family of sets in `ℝ` which only miss countably many points, but such that any point is
contained in only countably many of them. -/
-def spf (Hcont : (#ℝ) = aleph 1) (x : ℝ) : Set ℝ :=
+def spf (Hcont : #ℝ = aleph 1) (x : ℝ) : Set ℝ :=
(sierpinski_pathological_family Hcont).choose x
#align counterexample.phillips_1940.spf Counterexample.Phillips1940.spf
-theorem countable_compl_spf (Hcont : (#ℝ) = aleph 1) (x : ℝ) : (univ \ spf Hcont x).Countable :=
+theorem countable_compl_spf (Hcont : #ℝ = aleph 1) (x : ℝ) : (univ \ spf Hcont x).Countable :=
(sierpinski_pathological_family Hcont).choose_spec.1 x
#align counterexample.phillips_1940.countable_compl_spf Counterexample.Phillips1940.countable_compl_spf
-theorem countable_spf_mem (Hcont : (#ℝ) = aleph 1) (y : ℝ) : {x | y ∈ spf Hcont x}.Countable :=
+theorem countable_spf_mem (Hcont : #ℝ = aleph 1) (y : ℝ) : {x | y ∈ spf Hcont x}.Countable :=
(sierpinski_pathological_family Hcont).choose_spec.2 y
#align counterexample.phillips_1940.countable_spf_mem Counterexample.Phillips1940.countable_spf_mem
@@ -552,11 +552,11 @@ which is large (it has countable complement), as in the Sierpinski pathological
/-- A family of bounded functions `f_x` from `ℝ` (seen with the discrete topology) to `ℝ` (in fact
taking values in `{0, 1}`), indexed by a real parameter `x`, corresponding to the characteristic
functions of the different fibers of the Sierpinski pathological family -/
-def f (Hcont : (#ℝ) = aleph 1) (x : ℝ) : DiscreteCopy ℝ →ᵇ ℝ :=
+def f (Hcont : #ℝ = aleph 1) (x : ℝ) : DiscreteCopy ℝ →ᵇ ℝ :=
ofNormedAddCommGroupDiscrete (indicator (spf Hcont x) 1) 1 (norm_indicator_le_one _)
#align counterexample.phillips_1940.f Counterexample.Phillips1940.f
-theorem apply_f_eq_continuousPart (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ)
+theorem apply_f_eq_continuousPart (Hcont : #ℝ = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ)
(x : ℝ) (hx : φ.toBoundedAdditiveMeasure.discreteSupport ∩ spf Hcont x = ∅) :
φ (f Hcont x) = φ.toBoundedAdditiveMeasure.continuousPart univ := by
set ψ := φ.toBoundedAdditiveMeasure
@@ -567,7 +567,7 @@ theorem apply_f_eq_continuousPart (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy
ψ.continuousPart_apply_eq_zero_of_countable _ (countable_compl_spf Hcont x), add_zero]
#align counterexample.phillips_1940.apply_f_eq_continuous_part Counterexample.Phillips1940.apply_f_eq_continuousPart
-theorem countable_ne (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ) :
+theorem countable_ne (Hcont : #ℝ = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ) :
{x | φ.toBoundedAdditiveMeasure.continuousPart univ ≠ φ (f Hcont x)}.Countable := by
have A :
{x | φ.toBoundedAdditiveMeasure.continuousPart univ ≠ φ (f Hcont x)} ⊆
@@ -588,7 +588,7 @@ theorem countable_ne (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ
exact Countable.biUnion (countable_discreteSupport _) fun a _ => countable_spf_mem Hcont a
#align counterexample.phillips_1940.countable_ne Counterexample.Phillips1940.countable_ne
-theorem comp_ae_eq_const (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ) :
+theorem comp_ae_eq_const (Hcont : #ℝ = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ) :
∀ᵐ x ∂volume.restrict (Icc (0 : ℝ) 1),
φ.toBoundedAdditiveMeasure.continuousPart univ = φ (f Hcont x) := by
apply ae_restrict_of_ae
@@ -597,7 +597,7 @@ theorem comp_ae_eq_const (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →
simp only [imp_self, mem_setOf_eq, mem_compl_iff]
#align counterexample.phillips_1940.comp_ae_eq_const Counterexample.Phillips1940.comp_ae_eq_const
-theorem integrable_comp (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ) :
+theorem integrable_comp (Hcont : #ℝ = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ) :
IntegrableOn (fun x => φ (f Hcont x)) (Icc 0 1) := by
have :
IntegrableOn (fun _ => φ.toBoundedAdditiveMeasure.continuousPart univ) (Icc (0 : ℝ) 1)
@@ -606,7 +606,7 @@ theorem integrable_comp (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →
apply Integrable.congr this (comp_ae_eq_const Hcont φ)
#align counterexample.phillips_1940.integrable_comp Counterexample.Phillips1940.integrable_comp
-theorem integral_comp (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ) :
+theorem integral_comp (Hcont : #ℝ = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ) :
∫ x in Icc 0 1, φ (f Hcont x) = φ.toBoundedAdditiveMeasure.continuousPart univ := by
rw [← integral_congr_ae (comp_ae_eq_const Hcont φ)]
simp
@@ -622,7 +622,7 @@ no Pettis integral.
example : CompleteSpace (DiscreteCopy ℝ →ᵇ ℝ) := by infer_instance
/-- The function `f Hcont : ℝ → (DiscreteCopy ℝ →ᵇ ℝ)` is scalarly measurable. -/
-theorem measurable_comp (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ) :
+theorem measurable_comp (Hcont : #ℝ = aleph 1) (φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ) :
Measurable fun x => φ (f Hcont x) := by
have : Measurable fun _ : ℝ => φ.toBoundedAdditiveMeasure.continuousPart univ := measurable_const
refine' this.measurable_of_countable_ne _
@@ -630,12 +630,12 @@ theorem measurable_comp (Hcont : (#ℝ) = aleph 1) (φ : (DiscreteCopy ℝ →
#align counterexample.phillips_1940.measurable_comp Counterexample.Phillips1940.measurable_comp
/-- The function `f Hcont : ℝ → (DiscreteCopy ℝ →ᵇ ℝ)` is uniformly bounded by `1` in norm. -/
-theorem norm_bound (Hcont : (#ℝ) = aleph 1) (x : ℝ) : ‖f Hcont x‖ ≤ 1 :=
+theorem norm_bound (Hcont : #ℝ = aleph 1) (x : ℝ) : ‖f Hcont x‖ ≤ 1 :=
norm_ofNormedAddCommGroup_le _ zero_le_one (norm_indicator_le_one _)
#align counterexample.phillips_1940.norm_bound Counterexample.Phillips1940.norm_bound
/-- The function `f Hcont : ℝ → (DiscreteCopy ℝ →ᵇ ℝ)` has no Pettis integral. -/
-theorem no_pettis_integral (Hcont : (#ℝ) = aleph 1) :
+theorem no_pettis_integral (Hcont : #ℝ = aleph 1) :
¬∃ g : DiscreteCopy ℝ →ᵇ ℝ,
∀ φ : (DiscreteCopy ℝ →ᵇ ℝ) →L[ℝ] ℝ, ∫ x in Icc 0 1, φ (f Hcont x) = φ g := by
rintro ⟨g, h⟩
@@ -296,7 +296,7 @@ theorem exists_discrete_support_nonpos (f : BoundedAdditiveMeasure α) :
-- iterate the above construction, by adding at each step a set with measure close to maximal in
-- the complement of already chosen points. This is the set `s n` at step `n`.
let G : A → A := fun u => ⟨(↑u : Set α) ∪ ↑(F u), u.2.union (F u).2⟩
- let s : ℕ → A := fun n => (G^[n]) empty
+ let s : ℕ → A := fun n => G^[n] empty
-- We will get a contradiction from the fact that there is a countable set `u` with positive
-- measure in the complement of `⋃ n, s n`.
rcases h (⋃ n, ↑(s n)) (countable_iUnion fun n => (s n).2) with ⟨t, t_count, ht⟩
Rewrite the IMO 2019 q4 solution to make the "implicit" calc blocks (lots of lt_of_le_of_lt
) explicit, then automate some proofs.
This is not a golf in the sense of decreasing the number of lines (maybe it is if you take into account the number of lines like
intros; rw [sub_nonneg]; apply pow_le_pow; norm_num; apply le_of_lt; rwa [← mem_range]
in the original). So, if desired, I can make this an additional proof rather than a replacement to the existing proof.
The unported dependencies are
algebra.order.module
init.core
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
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