Zulip Chat Archive
Stream: new members
Topic: Bounded bilinear forms
Moritz (Nov 16 2021 at 21:32):
I was playing around with Lax-Milgram and I noticed that the definitions of is_bounded_bilinear_map
in analysis/normed_space/bounded_linear_maps
and bilinear_form
in linear_algebra/bilinear_form
are quite different, the former defines a proposition and the later defines the object. Is this intentional or should is_bounded_bilinear_map
be a lemma and a new definition bounded_bilinear_map
, which is of the same form as the one in linear_algebra/bilinear_form
?
Heather Macbeth (Nov 16 2021 at 21:48):
@Moritz, perhaps you are asking whether the concept is_bounded_bilinear_map
should be "bundled". Is that right?
Heather Macbeth (Nov 16 2021 at 21:52):
That is, you're asking whether it would be better to define something like
structure bounded_bilinear_form extends bilin_form R M :=
(bounded : ∃ (C : ℝ) (H : C > 0), ∀ (x : E) (y : F), ∥f (x, y)∥ ≤ (C * ∥x∥) * ∥y∥)
Moritz (Nov 16 2021 at 21:55):
I was asking whether one could imitate the definition of bilin_form
, but extending it sounds even better
Heather Macbeth (Nov 16 2021 at 21:57):
I believe this is a case where it was written "unbundled" a long time ago, before bundling everything became the mathlib convention. It seems that @Patrick Massot wrote the first version of this file back in 2018 so he can probably confirm this.
Heather Macbeth (Nov 16 2021 at 21:58):
Offhand, I would say, yes, it might be good to change to a bundled definition, but it might be a fair bit of work to switch over.
Heather Macbeth (Nov 16 2021 at 21:59):
For something related which is already bundled, check out docs#continuous_multilinear_map
Heather Macbeth (Nov 16 2021 at 22:04):
Mathlib often goes through large-scale refactors like this, so if there's a consensus, you'd be welcome to switch it over (but we usually try to save our newcomers from having to do this kind of tedious work :smiley: )
Kevin Buzzard (Nov 16 2021 at 22:06):
I've actually found that bundling stuff is really educational! Several Imperial students bundled basic algebraic stuff very early on in their career and I'm convinced it taught them a lot. "Look at this file, now try to do the same with this thing"
Moritz (Nov 16 2021 at 22:06):
I feel it is more tedious to prove Lax-Milgram with the unbundled version :-D
Heather Macbeth (Nov 16 2021 at 22:07):
(I am delighted to hear someone is attacking Lax-Milgram!)
Moritz (Nov 16 2021 at 22:07):
Yeah, refactoring the stuff in linear_algebra was really instructive, even though it was not that difficult. I am just afraid that if I start refactoring everything I find, I will never prove anything in Lean
Eric Rodriguez (Nov 16 2021 at 22:08):
welcome to what we do here ;b
Patrick Massot (Nov 16 2021 at 22:08):
I don't think I introduced bounded bilinear maps. But I can confirm that nothing was bundled in 2018
Heather Macbeth (Nov 16 2021 at 22:13):
Ah, in fact it was @Sebastien Gouezel, in #966.
Heather Macbeth (Nov 16 2021 at 22:17):
Moritz said:
I feel it is more tedious to prove Lax-Milgram with the unbundled version :-D
Moritz said:
I am just afraid that if I start refactoring everything I find, I will never prove anything in Lean
Indeed, there's a bit of "tedious either way" going on here .... but my guess is that it'll be slightly pleasanter (for now) to do it with the existing, unbundled version, feel free to recruit help on Zulip for things that feel harder than they should be.
Heather Macbeth (Nov 16 2021 at 22:32):
Actually, a third way would be to assume
(B : bilin_form R M) (hB : is_bounded_bilinear_map B)
which is a little redundant (since it's stating the bilinearity twice), but not actually wrong.
Heather Macbeth (Nov 16 2021 at 22:35):
(I mean, hopefully this would not be what is done in the library in another 3 years from now, but I think it's a perfectly fine hack for now.)
Moritz (Nov 18 2021 at 10:12):
The issue with not cleaning up now (or soon) is that it will only get more involved the more stuff we build on top of the non-refactored structure.
Moritz (Nov 18 2021 at 10:18):
I've looked at the linear algebra part of it and I feel like even that is in need of a quite significant cleanup: I think it is possible to unify bilinear_map
, bilin_form
and sesq_form
into a single semibilin_map
which has the former three as special cases. The definition could be essentially what is the definition of bilin_form
but way more general (yesterday I generalized it to a bilinear map, but not with the ring homomorphism yet). the way that bilin_form
is written makes it easy to extend it to a bounded bilinear form, I don't see how to do the same thing with the current definition of the bilinear map.
Moritz (Nov 18 2021 at 10:19):
Is it ok to do a pull-request with a very much wip version just to get feedback on whether this has any chance of getting accepted into mathlib?
Johan Commelin (Nov 18 2021 at 10:20):
Certainly! There are RFC
and WIP
labels that you can use.
Frédéric Dupuis (Nov 18 2021 at 13:10):
Moritz said:
I've looked at the linear algebra part of it and I feel like even that is in need of a quite significant cleanup: I think it is possible to unify
bilinear_map
,bilin_form
andsesq_form
into a singlesemibilin_map
which has the former three as special cases. The definition could be essentially what is the definition ofbilin_form
but way more general (yesterday I generalized it to a bilinear map, but not with the ring homomorphism yet). the way thatbilin_form
is written makes it easy to extend it to a bounded bilinear form, I don't see how to do the same thing with the current definition of the bilinear map.
Is there any reason to use these over things like E →ₗ[R] F →ₗ[R] G
?
Notification Bot (Nov 18 2021 at 16:02):
This topic was moved by Anne Baanen to #maths > Bounded bilinear forms
Frédéric Dupuis (Nov 18 2021 at 16:05):
I was also thinking about this because just yesterday I opened a PR (#10373) to allow semilinear versions of maps of type E →ₗ[R] F →ₗ[R] G
, i.e. E →ₛₗ[σ] F →ₛₗ[ρ] G
, with [module R₁ E]
, [module R₂ F]
and [module R₃ G]
, and σ : R₁ →+* R₃
, ρ : R₂ →+* R₃
. As far as I can tell, this should cover pretty much all cases of interest, so I was wondering if we should just use that systematically and deprecate bilin_form
and sesq_form
.
Last updated: Dec 20 2023 at 11:08 UTC