-
Notifications
You must be signed in to change notification settings - Fork 64
feat: Implementing TODO 6VZME Step 1 (the work seems to be pretty large so it has been divided to be done in multiple PRs) #875
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
Conversation
…ge so it has been divided to be done in multiple PRs)
|
This and your more recent PRs look great. Though they are not building (i.e. one of the linters is failing), which we unfortunately need to fix before merging. |
|
|
||
| /-! | ||
| ##### A.2.1.3. Correctness proofs |
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.
Bit confused by this header, but otherwise looks great! Is this meant to be here?
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.
Yes, I agree it's confusing, I have just pushed a commit that should clarify hopefully
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.
Great! Many thanks for fixing this. The linter isn't a problem with your PR (I'm not sure why this is a problem at all, but I'm going to fix it now). You don't have to do anything else here, once I've fixed the linter, I will merge.
|
Merged |
Scope
This PR implements the first of three alternative initial condition parametrizations mentioned in TODO 6VZME. We deliberately took an incremental approach to keep the PR focused and reviewable.
Rationale for scope reduction:
InitialConditionsAtTimeis the simplest case with no degeneracy issuesWhat's Included
Implemented:
InitialConditionsAtTime- Initial conditions specified at arbitrary time t₀t₀,x_t₀,v_t₀toInitialConditionsconversion function using backward time evolutionWhat's Deferred to Future PRs
The following alternative parametrizations mentioned in the original TODO are intentionally deferred:
Two correctness lemmas have proof obligations that automatic tactics are struggling to close:
1.
toInitialConditions_trajectory_at_t₀(lines 477-489)Goal: Prove that trajectory passes through
x_t₀at timet₀Mathematical correctness: The proof is valid. After expanding and using
cos²+sin²=1, the goal reduces to showing that coefficients ofx_t₀andv_t₀are 1 and 0 respectively.Issue: After
field_simp,linarithfails to close the polynomial equality. Tried tactics:linarith- failsnlinarith- failsring- "ring expressions not equal" (likely due toEuclideanSpaceoperations)linear_combination- fails2.
toInitialConditions_velocity_at_t₀(lines 494-506)Goal: Prove that velocity equals
v_t₀at timet₀Same issue: Identical proof structure, same failure mode with automatic tactics.