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

Team_F_Changed_Ray_ex.lean #96

Merged
merged 4 commits into from
Sep 23, 2023
Merged

Conversation

mathzhuonichi
Copy link
Contributor

Modified most proofs, 60 lines shorter now.
The last theorem is still too long. I think we can prove this by prove that it lies on seg_nd.toRay and (SEG A source).toRay. And the proof should be much shorter. But I met some problem, for example, to unify pt LiesOn seg with Seg.IsOn pt seg, and also i don't know how to define (SEG target A).toSeg_nd and some other stuff without lemmas and calculations.

@jjdishere
Copy link
Owner

jjdishere commented Sep 22, 2023

But I met some problem, for example, to unify pt LiesOn seg with Seg.IsOn pt seg,

  1. Here, pt LiesOn seg and Seg.IsOn pt seg are definitionally equal. They are equal by rfl you may directly substitute one with another. e. g.
variable {P : Type _} [EuclideanPlane P]
theorem test_is_on (A : P) (seg : Seg P) : (p LiesOn seg) = (Seg.IsOn p seg) := rfl

and also i don't know how to define (SEG target A).toSeg_nd and some other stuff without lemmas and calculations.

  1. To define a Seg_nd, you can use constructor ⟨ ⟩. One can use ⟨ SEG target A, h ⟩ : Seg_nd to create a Seg_nd, where h : A ≠ target

Would you like to further modify some of the proof? The already modified proofs are good!

@mathzhuonichi
Copy link
Contributor Author

But I met some problem, for example, to unify pt LiesOn seg with Seg.IsOn pt seg,

  1. Here, pt LiesOn seg and Seg.IsOn pt seg are definitionally equal. They are equal by rfl you may directly substitute one with another. e. g.
variable {P : Type _} [EuclideanPlane P]
theorem test_is_on (A : P) (seg : Seg P) : (p LiesOn seg) = (Seg.IsOn p seg) := rfl

and also i don't know how to define (SEG target A).toSeg_nd and some other stuff without lemmas and calculations.

  1. To define a Seg_nd, you can use constructor ⟨ ⟩. One can use ⟨ SEG target A, h ⟩ : Seg_nd to create a Seg_nd, where h : A ≠ target

Would you like to further modify some of the proof? The already modified proofs are good!

I’d say not so soon as I have other stuff to deal with.

@jjdishere
Copy link
Owner

I’d say not so soon as I have other stuff to deal with.

That is fine. I shall merge your current PR. If you further modified your code, you can always open a new PR.

@jjdishere jjdishere merged commit 97437fe into jjdishere:master Sep 23, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants