-
Notifications
You must be signed in to change notification settings - Fork 974
feat(LinearAlgebra/AffineSpace/Ceva): Ceva's theorem #33409
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
base: master
Are you sure you want to change the base?
Conversation
Add Ceva's theorem. Unlike various previous attempts, I think this in appropriate generality for mathlib; it starts with a version for an arbitary (possibly infinite) affinely independent family of points (not necessarily spanning the whole space), in any affine space over any ring, and with the second point given on each line not necessarily being on the opposite face, then deduces a simpler version for a finite family, then deduces versions for a triangle, now with actual cevians (lines between a vertex and a point on the opposite side), either just multiplying weights (here the ring becomes an integral domain) or expressed with a product of divisions equal to 1 (here it becomes a field). This doesn't include any form of the converse (with a "concurrent or parallel" conclusion, and note that you don't need affine independence for the converse), or variants of the forward direction where you're given parallel lines rather than concurrent lines, but I think those things can reasonably be done in followups.
PR summary c67909964bImport changes for modified filesNo significant changes to the import graph Import changes for all files
|
|
How does one decide the appropriate level of generality for Mathlib? What if |
|
I have however now done a slight generalization from |
|
As well as a version for a vector shared by the directions of the lines, and converses, other versions that might be reasonable for followups would be ones using |
|
(For the noncommutative case, see Theorem 4.2 here.) Mostly I'm trying to get a feel for this concept of "appropriate generality for mathlib". I'm impressed that for "Ceva's theorem", that means something that doesn't include Ceva's theorem as stated by any result I get online, all of which use distances in Euclidean space. |
|
Theorem 4.2 there is explicitly described in the following sentence as "the Ceva’ theorem in the commutative case" (and despite the title of the following section there, I don't see anything actually claiming to be noncommutative Ceva; whereas the statements in this PR that aren't specific to triangles do work in the noncommutative case). "appropriate generality for mathlib" would better be discussed on Zulip (with a view to someone writing up conclusions for a page on the community website) rather than in an individual PR. Specifically for Ceva only, an informal statement can talk about signed distances without trying to write down a precise definition of what a signed distance is, whereas in a formal context you can notice that "proportion of two signed distances on the same line" is a better-behaved, more-generally-meaningful concept than an individual signed distance in isolation, and a natural way to express such proportions in a formal statement that works in any affine space is to talk about points expressed using |
|
And since 200 lines is plenty for one PR, it also makes sense to leave other versions for followups on the ground of keeping individual PRs small. |
|
(Sorry, I meant Theorem 4.13.) |
|
Theorem 4.13 there looks like a noncommutative version of Menelaus, not of Ceva. It does however suggest how it might be possible to produce a similar noncommutative version (stated with |
Add Ceva's theorem. Unlike various previous attempts, I think this in appropriate generality for mathlib; it starts with a version for an arbitary (possibly infinite) affinely independent family of points (not necessarily spanning the whole space), in any affine space over any ring, and with the second point given on each line not necessarily being on the opposite face, then deduces a simpler version for a finite family, then deduces versions for a triangle, now with actual cevians (lines between a vertex and a point on the opposite side), either just multiplying weights (here the ring requires no zero divisors) or expressed with a product of divisions equal to 1 (here it becomes a field).
This doesn't include any form of the converse (with a "concurrent or parallel" conclusion, and note that you don't need affine independence for the converse), or variants of the forward direction where you're given parallel lines rather than concurrent lines, but I think those things can reasonably be done in followups.