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

Cylindrical decomposition #3

Draft
wants to merge 36 commits into
base: master
Choose a base branch
from
Draft

Conversation

Tragicus
Copy link
Contributor

@Tragicus Tragicus commented Apr 4, 2024

Adds a definition of cylindrical decomposition and the required definitions and lemmas.

@Tragicus Tragicus changed the title Cylinder decomposition Cylindrical decomposition Apr 4, 2024
Copy link
Member

@CohenCyril CohenCyril left a comment

Choose a reason for hiding this comment

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

🎉 ?

cylinder.v Outdated
rewrite -ball_normE inE/= [normr _]mx_normrE => /bigmax_ltP[_].
move=> /(_ (ord0, ord0) isT)/=; rewrite !mxE -opprB normrN => /ltr_normlW.
by rewrite -subr_lt0 -addrA subrr addr0 mem_setE inSAset_itv in_itv/=.
mp.
Copy link
Member

Choose a reason for hiding this comment

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

what is mp?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That is a tactic I have defined earlier that turns a goal (A -> B) -> C into goals A and B -> C. It may disappear during cleanup if we want to, although it has been pervasively useful, so unless you know a hack that does it without copying large terms, we may want to keep it.

Copy link
Member

Choose a reason for hiding this comment

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

the typical hack is move=> /(_ _)/wrap[]

Lemma test A B C : (A -> B) -> C.
Proof.
move=> /(_ _)/wrap[].
Abort.

Copy link
Member

@CohenCyril CohenCyril Jul 24, 2024

Choose a reason for hiding this comment

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

could be a good idea to turn it into a dedicated intro pattern tactic to use e.g. move=> /(fill 1) (that would fill for example the nth hole in the top of the stack).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah, another one I did not know. It is not in the refman?

Copy link
Member

Choose a reason for hiding this comment

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

Ah, another one I did not know. It is not in the refman?

No... do you think it should be put there, or isn't a bit too advanced?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Should not a reference manual be exhaustive?

Copy link
Member

Choose a reason for hiding this comment

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

Well one cannot document every single program or sequence of tactics... But we could add this one... though I still believe it may be nicer packaged as a dedicated intropattern tactic view...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The fact that move=> /(_ _)/wrap[] and move=> /(_ _) => /wrap[] are not equivalent triggers me a lot makes me feel like this needs some documentation. But maybe I just have a completely wrong model of what ssreflect does and I could have been able to guess what the combination does otherwise (although I have never seen wrap either).

@Tragicus
Copy link
Contributor Author

Tragicus commented Aug 1, 2024

@CohenCyril It looks like mathcomp-multinomials is not available to the CI when it tries to build and I failed to add it, can you take a look? Also, it looks like I inadvertently duplicated bundle 8.19.

@CohenCyril
Copy link
Member

Where is topology.v ?

@Tragicus
Copy link
Contributor Author

Tragicus commented Aug 1, 2024

Here !

- add generic makefile
- add multinomials and analysis as dependencies
@CohenCyril
Copy link
Member

Should be fixed now

@CohenCyril
Copy link
Member

CohenCyril commented Aug 1, 2024

@CohenCyril
Copy link
Member

CI passes for Coq 8.18 and 8.19 🎉

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