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

[Merged by Bors] - feat(analysis/convex/between): betweenness in affine spaces #16191

Closed
wants to merge 4 commits into from

Conversation

jsm28
Copy link
Collaborator

@jsm28 jsm28 commented Aug 22, 2022

Define the notions of (weak and strict) betweenness for points in
affine spaces over an ordered ring, for use in describing geometrical
configurations.

Until convexity is refactored to support abstract affine combination
spaces, this means having a definition affine_segment that
duplicates segment in the affine space case (and is proved to equal
segment when the affine space is a module considered as an affine
space over itself). However, the bulk of results concern betweenness,
not affine_segment, and so would be just as relevant after such a
refactor, even if some of the proofs would change, and indeed most of
the things stated about affine_segment involve +ᵥ and -ᵥ and so
would still be meaningful results, distinct from those already present
for segment, after such a refactor (at which point they might apply
for whatever typeclass describes an add_torsor for a module that is
also an abstract affine combination space where the two affine
combination structures agree). So I think the actual duplication here
is minimal and defining affine_segment is a reasonable approach to
allow betweenness to be handled in affine spaces now rather than
making it depend on a possible future refactor.

There are certainly more things that could sensibly be stated about
betweenness (e.g. various forms of Pasch's axiom), but I think this is
a reasonable starting point.

One thing I definitely intend to add in a followup is notions of two
points being (weakly or strictly) on the same side or opposite sides
of an affine subspace (e.g. a line); I think it will probably be most
convenient to define those notions in terms of same_ray and then
prove appropriate results about how they relate to betweenness for
points.


Open in Gitpod

Define the notions of (weak and strict) betweenness for points in
affine spaces over an ordered ring, for use in describing geometrical
configurations.

Until convexity is refactored to support abstract affine combination
spaces, this means having a definition `affine_segment` that
duplicates `segment` in the affine space case (and is proved to equal
`segment` when the affine space is a module considered as an affine
space over itself).  However, the bulk of results concern betweenness,
not `affine_segment`, and so would be just as relevant after such a
refactor, even if some of the proofs would change, and indeed most of
the things stated about `affine_segment` involve `+ᵥ` and `-ᵥ` and so
would still be meaningful results, distinct from those already present
for `segment`, after such a refactor (at which point they might apply
for whatever typeclass describes an `add_torsor` for a module that is
also an abstract affine combination space where the two affine
combination structures agree).  So I think the actual duplication here
is minimal and defining `affine_segment` is a reasonable approach to
allow betweenness to be handled in affine spaces now rather than
making it depend on a possible future refactor.

There are certainly more things that could sensibly be stated about
betweenness (e.g. various forms of Pasch's axiom), but I think this is
a reasonable starting point.

One thing I definitely intend to add in a followup is notions of two
points being (weakly or strictly) on the same side or opposite sides
of an affine subspace (e.g. a line); I think it will probably be most
convenient to define those notions in terms of `same_ray` and then
prove appropriate results about how they relate to betweenness for
points.
@jsm28 jsm28 added the awaiting-review The author would like community review of the PR label Aug 22, 2022
Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

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

I stopped at L211. Will ocntinue later.

src/analysis/convex/between.lean Show resolved Hide resolved
src/analysis/convex/between.lean Outdated Show resolved Hide resolved
Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

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

The rest looks good to me

Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

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

Thanks 🎉

bors merge

@leanprover-community-bot-assistant leanprover-community-bot-assistant added ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) and removed awaiting-review The author would like community review of the PR labels Sep 30, 2022
bors bot pushed a commit that referenced this pull request Sep 30, 2022
Define the notions of (weak and strict) betweenness for points in
affine spaces over an ordered ring, for use in describing geometrical
configurations.

Until convexity is refactored to support abstract affine combination
spaces, this means having a definition `affine_segment` that
duplicates `segment` in the affine space case (and is proved to equal
`segment` when the affine space is a module considered as an affine
space over itself).  However, the bulk of results concern betweenness,
not `affine_segment`, and so would be just as relevant after such a
refactor, even if some of the proofs would change, and indeed most of
the things stated about `affine_segment` involve `+ᵥ` and `-ᵥ` and so
would still be meaningful results, distinct from those already present
for `segment`, after such a refactor (at which point they might apply
for whatever typeclass describes an `add_torsor` for a module that is
also an abstract affine combination space where the two affine
combination structures agree).  So I think the actual duplication here
is minimal and defining `affine_segment` is a reasonable approach to
allow betweenness to be handled in affine spaces now rather than
making it depend on a possible future refactor.

There are certainly more things that could sensibly be stated about
betweenness (e.g. various forms of Pasch's axiom), but I think this is
a reasonable starting point.

One thing I definitely intend to add in a followup is notions of two
points being (weakly or strictly) on the same side or opposite sides
of an affine subspace (e.g. a line); I think it will probably be most
convenient to define those notions in terms of `same_ray` and then
prove appropriate results about how they relate to betweenness for
points.
@bors
Copy link

bors bot commented Sep 30, 2022

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(analysis/convex/between): betweenness in affine spaces [Merged by Bors] - feat(analysis/convex/between): betweenness in affine spaces Sep 30, 2022
@bors bors bot closed this Sep 30, 2022
@bors bors bot deleted the jsm28/between branch September 30, 2022 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants