Repository navigation
Add displays for topologies - #2143
nmolinamounier wants to merge 8 commits into
Conversation
a2ff513 to
2e40f3e
Compare
e0b18bf to
07a70c7
Compare
837bd9c to
39ab475
Compare
39ab475 to
e143ae8
Compare
| Filter F -> (F --> (x : T)) <-> (F --> (x : initialT)). | ||
| Proof. | ||
| move=> FF; split. | ||
| move=> FF; split. |
There was a problem hiding this comment.
| move=> FF; split. | |
| move=> FF; split. |
| Context (d : fdisp_t). | ||
| Context (V : topologicalType d) (S : pred V) (U : subChoiceType S). |
There was a problem hiding this comment.
| Context (d : fdisp_t). | |
| Context (V : topologicalType d) (S : pred V) (U : subChoiceType S). | |
| Context d (V : topologicalType d) (S : pred V) (U : subChoiceType S). |
|
Could you check for trailing spaces? (It looks your PR is introducing a few.) Regarding the order of declaration of displays, it looks like you put all the displays at the beginning of the type signature. An alternative could be to put the display just before the first type that uses it. I have the vague memory that we already discussed this in a meeting. Do you remember @proux01 ? Maybe we do not need to indicate the type of displays in type signatures. This is an advantage of using |
|
Maybe we need to update the documentation. For example, |
|
(If it is possible, maybe several PRs introducing the notations incrementally could help organizing the work (including documentation, changelog, and review).) |
|
|
||
| Arguments nbhs_subspaceP {T} A x. | ||
| Notation "{ 'within' A , 'continuous' f }" := | ||
| (continuous (f :> subspace A -> _)) (only parsing) : classical_set_scope. |
| (forall x, @continuous_at (subspace_fdisp A) _ _ _ x f) | ||
| (only printing) : classical_set_scope. | ||
| Notation "{ 'within' A , E @[ x --> F ] --> l }" := | ||
| (E @[x --> (F :> set_system (subspace A))] --> l) |
|
Shouldn't |
They are different, |
Is this documented somewhere? If not, it is maybe worth at least a comment in the code, as I don't see this usage mentioned in |
Yes, here in the Rocq manual. |
|
Ah, I didn't know. I assumed this was coming from ssreflect which always had a similar syntax for equality. No documentation issue then. |
|
( |
Here for example the displays are not put at the beginning of the type signature: HB.mixin Record isPath {d} {i : bpTopologicalType d}
{d'} {T : topologicalType d'} (x y : T) (f : i -> T)
& isContinuous d i d' T f := {(other occurrences in |
|
You're looking at a recent commit, I'm changing them to be before the relevant type because that's what mathcomp does for orders. |
|
I am soon going to rename
|
Motivation for this change
Fixes #758 by adding extra display arguments to topologies, in the same way as orders in math-comp.
A new type
fdisp_tis added infilter.v, and every topology is associated with an instance offdisp_t, which can be used in notations for proper display.Since it is common to define specific topologies in terms of more generic ones,
with_fdisp d' Thas the same topology asT, but with displayd'.This PR requires changing every single definition involving a filtered type to add a display argument, hence its very large footprint.
About order topologies : right now, order topologies have two arguments for topology and order displays respectively. I tried merging them into a record, but this doesn't seem to play well with canonical structure inference ; we should discuss this.
Checklist
CHANGELOG_UNRELEASED.mdReference: How to document
Merge policy
As a rule of thumb:
all compile are likely to be merged as they are into master.
Reminder to reviewers