Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(analysis/cauchy_equation): Add Cauchy's Functional Equation #12933

Closed
wants to merge 61 commits into from

Conversation

MantasBaksys
Copy link
Collaborator

@MantasBaksys MantasBaksys commented Mar 25, 2022

@MantasBaksys MantasBaksys added the WIP Work in progress label Mar 25, 2022
@leanprover-community-bot-assistant leanprover-community-bot-assistant added the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label Mar 25, 2022
@MantasBaksys MantasBaksys changed the title Cauchy's functional equation feat (analysis/cauchy_equation) : Add Cauchy's Functional Equation Mar 25, 2022
Copy link
Member

@urkud urkud left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this! The proof can be golfed a lot using lemmas I mention in my comments.


/-- **Cauchy's functional equation**. An additive monoid homomorphism automatically preserves `ℚ`.
-/
theorem add_monoid_hom.is_linear_map_rat (f : ℝ →+ ℝ) : is_linear_map ℚ f :=
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

src/analysis/cauchy_equation.lean Outdated Show resolved Hide resolved
bors bot pushed a commit that referenced this pull request Jun 4, 2022
…sitive measure (#14449)

Motivated by #12933 

Co-authored-by: Mantas Bakšys <baksysmantas@gmail.com>
tomaz1502 pushed a commit that referenced this pull request Jun 5, 2022
…sitive measure (#14449)

Motivated by #12933 

Co-authored-by: Mantas Bakšys <baksysmantas@gmail.com>
src/analysis/cauchy_equation.lean Outdated Show resolved Hide resolved
src/analysis/cauchy_equation.lean Outdated Show resolved Hide resolved
λ h, is_open_univ.measure_ne_zero μ univ_nonempty $ by rw [h, coe_zero, pi.zero_apply]

lemma exists_zero_nhds_bounded (f : ℝ →+ ℝ) (h : measurable f) :
∃ s, s ∈ 𝓝 (0 : ℝ) ∧ bounded (f '' s) :=
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the right generality for this lemma? Probably, it's true at least for all finite dimensional real normed spaces.

end

lemma additive_continuous_at_zero_of_bounded_nhds_zero (f : ℝ →+ ℝ) (hs : s ∈ 𝓝 (0 : ℝ))
(hbounded : bounded (f '' s)) : continuous_at f 0 :=
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you upgrade f to a -linear map, then you can use linear_map.bound_of_shell or linear_map.bound_of_ball_bound. Again, you can upgrade your lemma to a real TVS.

{ rw [smul_eq_mul, smul_eq_mul, h (c * x), h x, ←mul_assoc, mul_comm _ c, mul_assoc] }
end

lemma is_linear_rat (f : ℝ →+ ℝ) : ∀ (q : ℚ), f q = f 1 * q :=
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This lemma and most lemmas below are already in mathlib, aren't they?

@eric-wieser
Copy link
Member

@YaelDillies, are you interested in finishing this, or are your own PRs more important to you?

@YaelDillies YaelDillies requested a review from a team as a code owner July 16, 2023 18:47
@github-actions github-actions bot added the modifies-synchronized-file This PR touches a files that has already been ported to mathlib4, and may need a synchronization PR. label Jul 16, 2023
@YaelDillies
Copy link
Collaborator

Yes, I in fact started fixing it earlier today. It needs some more cleanup but the gist is here.

@YaelDillies YaelDillies added the awaiting-CI The author would like to see what CI has to say before doing more work. label Jul 16, 2023
@semorrison semorrison added the not-too-late This PR was ready at the point mathlib3 was frozen: we will try to merge it and port it to mathlib4 label Jul 16, 2023
@github-actions github-actions bot removed the awaiting-CI The author would like to see what CI has to say before doing more work. label Aug 3, 2023

local notation `ℝⁿ` := ι → ℝ

lemma add_monoid_hom.measurable_of_continuous (f : ℝ →+ ℝ) (h : measurable f) : continuous f :=
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Name says measurable_of_continuous but the theorem says measurable f -> continuous f.

@@ -2329,6 +2329,8 @@ by rw [← empty_mem_iff_bot, mem_ae_iff, compl_empty, measure_univ_eq_zero]
@[simp] lemma ae_ne_bot : μ.ae.ne_bot ↔ μ ≠ 0 :=
ne_bot_iff.trans (not_congr ae_eq_bot)

instance ae_ne_bot.to_ne_zero [μ.ae.ne_bot] : ne_zero μ := ⟨ae_ne_bot.1 ‹_›⟩
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have [NeZero μ] : μ.ae.NeBot in Lean 4.

open topological_space
variables {G H : Type*} [seminormed_add_group G] [topological_add_group G] [is_R_or_C H] {s : set G}

lemma add_monoid_hom.continuous_of_bounded_nhds_zero (f : G →+ H) (hs : s ∈ 𝓝 (0 : G))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't [is_R_or_C H] too strong? Is it true for any normed space over rationals?

@YaelDillies
Copy link
Collaborator

Ported to LeanCamCombi

@YaelDillies YaelDillies deleted the Cauchy's-Functional-Equation branch November 18, 2023 11:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
modifies-synchronized-file This PR touches a files that has already been ported to mathlib4, and may need a synchronization PR. not-too-late This PR was ready at the point mathlib3 was frozen: we will try to merge it and port it to mathlib4 RFC Request for comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants