-
Notifications
You must be signed in to change notification settings - Fork 701
[stdlib] add Fin and Vector lemmas #16765
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
01cf083 to
3122783
Compare
andres-erbsen
left a comment
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.
I don't really understand Vector, but more lemmas about existing definitions seems like a good idea and I don't see any issues.
@coqbot run full ci
|
It would be best to merge #16731 first, to work with the new definition here. |
25eee8d to
44ae957
Compare
|
Rebased, squared for easier review, and added changelog. |
|
This PR addresses the main concerns of rocq-prover/stdlib#54 and arguably closes it, by providing a good toolset to work with stdlib vectors. |
|
#16731 is merged; I imagine this PR will need to be rebased and adjusted. As for what to do with rocq-prover/stdlib#54, I don't really see a reason to keep it open 🤷. I too prefer vectors defined using fix or sig, but I don't think keeping the issue helps with moving towards that (that issue doesn't have an alternative design, a list of considerations, or a list of affected developments). I'm not even sure Vector particularly stands out as cumbersome out of stuff bundled with Coq. |
added to Vector: nth_append_L, nth_append_R, In_nth, nth_replace_eq, nth_replace_neq, replace_append_L, replace_append_R, append_const, map_append, map2_ext, append_inj, In_cons_iff, Forall_cons_iff, Forall_map, Forall_append, Forall_nth, Forall2_nth, Forall2_append, map_shiftin, fold_right_shiftin, In_shiftin, Forall_shiftin, rev_nil, rev_cons, rev_shiftin, rev_rev, map_rev, fold_left_rev_right, In_rev, Forall_rev
44ae957 to
1c27776
Compare
|
@coqbot merge now |
FinL_inj,R_inj,L_R_neq,case_L_R',case_L_RVectornth_append_L,nth_append_R,In_nth,nth_replace_eq,nth_replace_neq,replace_append_L,replace_append_R,append_const,map_append,map2_ext,append_inj,In_cons_iff,Forall_cons_iff,Forall_map,Forall_append,Forall_nth,Forall2_nth,Forall2_append,map_shiftin,fold_right_shiftin,In_shiftin,Forall_shiftin,rev_nil,rev_cons,rev_shiftin,rev_rev,map_rev,fold_left_rev_right,In_rev,Forall_revNotably,
rev_revandfold_left_rev_rightlemmas are shown for the tail-recursiverevdefinition, in contrast to PR #16742.Only properties of existing definitions are shown, no new definitions are added.
Closes rocq-prover/stdlib#54