-
Notifications
You must be signed in to change notification settings - Fork 45
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
Banach fixed point theorem #678
Conversation
On further reflection, something is wrong with the Edit: Thankfully |
In another setting, we've been discussing with @proux01 a way to introduce a type for real numbers r between 0 and 1 so that 1 - r can be ruled out automatically as non-negative. It would help here too, wouldn't it? |
Yes, support for a "between 0 and 1" real would definitely simplify things for this proof. There are some details regarding strictness of the inequalities. I defined contractions here as |
cleaning up a bit putting lemmas in more appropriate places rewritten to support subspaces better linting a bit rm exprn_ler; lint (wip) full thing working! cleaning up a bit putting lemmas in more appropriate places rewritten to support subspaces better linting a bit rm exprn_ler; lint (wip) improving proofs with funS linting changelog moving fixed point stuff around changing implicits
I think that in other situations similar needs to work with |
It's definitely an improvement. Factoring out the reusable bits from that giant algebra rewrite block is great. This look like a good halfway to building some canonical automation. I have a two thoughts:
|
I tried to do without
(I changed the notation to |
I once took inspiration of |
Yeah, this looks good. That theory should probably move elsewhere, but otherwise I'm quite happy to see this improvement. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks ok to me in the current state of affairs.
Motivation for this change
A generally useful result that doesn't require any machinery beyond geometric series. The proof is not too long, thankfully.
signed.v
is a massive help, although it was a bit difficult to work with at first. I have a lot of terms like(1 - q)
and(1-q^+n)
, and aq<1
in scope. But, by default, the canonical instance tried to prove0 < 1-q
via0 < 1 + -q
, which was bad news. I needed to refactor things so1-q
get rewritten asPosNum(... : 0 < 1-q)
. This seemed to do the trick. Once I figured this out things worked much better.ball
, it's difficult to get a metric out. I have a suspicious it's not possible in general if the definition ofball
is pathological. The proof doesn't use any interesting properties of norms, so will be easy to generalize if pseudoMetrics are ever fixed.U
as the domain off
. Our existing definition ofsubspace topology
includes points outside the "good subset". This interferes with the definition of contraction.Note that I'm taking a set
U
as an argument, so theindexing
trick (thatfilter_from
) uses could apply here. However, the typeX
appears in both covariant and contravariant positions. Is there some value in doing it that way?There are probably some simplifications, and some cleanup. There's also some docs and changelogs to write.
CHANGELOG_UNRELEASED.md
(do not edit former entries, only append new ones, be careful:
merge and rebase have a tendency to mess up
CHANGELOG_UNRELEASED.md
)Automatic note to reviewers
Read this Checklist and put a milestone if possible.