CohenCyril milestoned Issue #501 Intro pattern extensions for rewrite, dup, swap and apply (assigned to gares):

## Motivation for this change

Intro pattern ltac views (rewrite, dup, swap, apply)

- calling rewrite from an intro pattern, use with parsimony

`=> /[1 rules]`

does`rewrite rules`

`=> /[-1 rules]`

does`rewrite rules`

`=> /[! rules]`

does`rewrite rules`

`=> /[-! rules]`

does`rewrite rules`

`=> /[? rules]`

does`rewrite rules`

`=> /[-? rules]`

does`rewrite rules`

`=> /[/def]`

does`rewrite /def`

- top of the stack actions:

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril assigned PR #501 Intro pattern extensions for rewrite, dup, swap and apply to gares.

CohenCyril opened PR #501 Intro pattern extensions for rewrite, dup, swap and apply (assigned to gares) from `intro_rw`

to `master`

:

## Motivation for this change

Intro pattern ltac views (rewrite, dup, swap, apply)

- calling rewrite from an intro pattern, use with parsimony

`=> /[1 rules]`

does`rewrite rules`

`=> /[-1 rules]`

does`rewrite rules`

`=> /[! rules]`

does`rewrite rules`

`=> /[-! rules]`

does`rewrite rules`

`=> /[? rules]`

does`rewrite rules`

`=> /[-? rules]`

does`rewrite rules`

`=> /[/def]`

does`rewrite /def`

- top of the stack actions:

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #501 Intro pattern extensions for rewrite, dup, swap and apply (assigned to gares) from `intro_rw`

to `master`

:

## Motivation for this change

Intro pattern ltac views (rewrite, dup, swap, apply) in order not to break intro patterns for silly rewrites.

- calling rewrite from an intro pattern, use with parsimony

`=> /[1 rules]`

does`rewrite rules`

`=> /[-1 rules]`

does`rewrite rules`

`=> /[! rules]`

does`rewrite rules`

`=> /[-! rules]`

does`rewrite rules`

`=> /[? rules]`

does`rewrite rules`

`=> /[-? rules]`

does`rewrite rules`

`=> /[/def]`

does`rewrite /def`

- top of the stack actions:

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #501 Intro pattern extensions for rewrite, dup, swap and apply (assigned to gares) from `intro_rw`

to `master`

:

## Motivation for this change

Intro pattern ltac views (rewrite, dup, swap, apply) in order not to break intro patterns for silly rewrites.

`=> /[1 rules]`

does`rewrite rules`

`=> /[-1 rules]`

does`rewrite rules`

`=> /[! rules]`

does`rewrite rules`

`=> /[-! rules]`

does`rewrite rules`

`=> /[? rules]`

does`rewrite rules`

`=> /[-? rules]`

does`rewrite rules`

`=> /[/def]`

does`rewrite /def`

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #501 Intro pattern extensions for rewrite, dup, swap and apply (assigned to gares) from `intro_rw`

to `master`

:

## Motivation for this change

Intro pattern ltac views (rewrite, dup, swap, apply) in order not to break intro patterns for silly rewrites.

`=> /[1 rules]`

does`rewrite rules`

`=> /[-1 rules]`

does`rewrite rules`

`=> /[! rules]`

does`rewrite rules`

`=> /[-! rules]`

does`rewrite rules`

`=> /[? rules]`

does`rewrite rules`

`=> /[-? rules]`

does`rewrite rules`

`=> /[/def]`

does`rewrite /def`

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril opened PR #502 Intro discharge subst from `intro_discharge_subst`

to `master`

:

## Motivation for this change

Adding to intro pattern: discharge in and rewrite

in.

Working syntax`/[: x @y z]`

, (limited to three variables)

and`/[-> in x0 .. x6]`

, and`/[<- in x0 .. x6]`

(limited to seven variables).## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] pull request in Coq with the final proposition.

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #502 Intro discharge subst from `intro_discharge_subst`

to `master`

:

## Motivation for this change

Adding to intro pattern: discharge in and rewrite

in.

Working syntax`/[: x @y z]`

, (limited to three variables)

and`/[-> in x0 .. x6]`

, and`/[<- in x0 .. x6]`

(limited to seven variables).(This is another simplified part of #377, and sequel of #501)

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] merge of dependency #501
- [ ] pull request in Coq with the final proposition.

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #502 Intro discharge subst from `intro_discharge_subst`

to `master`

:

## Motivation for this change

Adding to intro pattern: discharge in and rewrite

in.

Working syntax`/[: x @y z]`

, (limited to three variables)

and`/[-> in x0 .. x6]`

, and`/[<- in x0 .. x6]`

(limited to seven variables).(This is a sequel of #501, which should close #372)

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] merge of dependency #501
- [ ] pull request in Coq with the final proposition.

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

amahboubi:

- edited TopicsNextMeeting

CohenCyril edited PR #501 Intro pattern extensions for rewrite, dup, swap and apply (assigned to gares) from `intro_rw`

to `master`

:

## Motivation for this change

- calling rewrite from an intro pattern, use with parsimony

`=> /[1 rules]`

does`rewrite rules`

`=> /[-1 rules]`

does`rewrite -rules`

`=> /[! rules]`

does`rewrite !rules`

`=> /[-! rules]`

does`rewrite -!rules`

`=> /[? rules]`

does`rewrite ?rules`

`=> /[-? rules]`

does`rewrite -?rules`

`=> /[/def]`

does`rewrite /def`

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril:

- edited TopicsNextMeeting

chdoc opened PR #503 closed/closure for non-symmetric relations from `fix-closure`

to `master`

:

## Motivation for this change

Adapt the definitions of

`closed`

and`closure`

so that they apply to general relations (i.e., those for which`connect_sym`

does not hold.Resolves #466

Observation: for mathcomp, no changes are required outside of

`fingraph.v`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [ ] check impact on dependent libraries (in particular fourcolor)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 opened PR #504 Revise proofs in ssreflect/*.v from `selectors`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

This PR reduces

- use of numerical occurrence selectors (#436) and
- use of non ssreflect tactics such as
`auto`

,and improves use of comparison predicates such as

`posnP`

,`leqP`

,`ltnP`

,`ltngtP`

, and`eqVneq`

.## Things done/to do

<!-- please fill in the following checklist -->

- ~[ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- ~[ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #504 Revise proofs in ssreflect/*.v from `selectors`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

This PR reduces

- use of numerical occurrence selectors (#436) and
- use of non ssreflect tactics such as
`auto`

,and improves use of comparison predicates such as

`posnP`

,`leqP`

,`ltnP`

,`ltngtP`

, and`eqVneq`

.## Things done/to do

<!-- please fill in the following checklist -->

- ~[ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- ~[ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

MrSet opened Issue #505 Suggestions for various additions to seq.v, ssrnat.v and order.v:

Hi,

I have been using math-comp for a while and have by doing so created a few lemmas which I thought might be useful for others than just me.I would like opinions on if you think that some of the Lemmas should be submitted in a PR. Before submitting such a PR I will, of course, try to make the naming-conventions and phrasings adhere to the

`contributing.md`

specifications. I have excluded proofs as I for the moment being only are interested in knowing whether you find the lemmas relevant or not.It might very well be that some of the content already is and math-comp and I simply have not been able to locate it. Any comments/suggestions are welcome!

## Suggestions for

`seq.v`

## Addition of a find-first-option function

I suggest to add the following function to

`seq.v`

as right now there is only an indexing function to get the first element that fullfills a predicate from a list. Also, this function ensures that it is actually thefirstelement that fulfills the predicate that is returned (i have founds this useful for constructing proofs).`Fixpoint findo {T : Type} (p : ssrbool.pred T) (s : seq T) := if s is x :: xs then if p x then Some x else findo p xs else None. Lemma findo_has {T : Type} (p : ssrbool.pred T) (s : seq T) : ((findo p s) : bool) = has p s. Lemma perm_findo {T : eqType} (p : ssrbool.pred T) (s1 s2 : seq T): perm_eq s1 s2 -> (findo p s1 : bool) = (findo p s2 : bool). Lemma mem_findo {T : eqType} (p : ssrbool.pred T) (s1 s2 : seq T): s1 =i s2 -> (findo p s1 : bool) = (findo p s2 : bool). Lemma findoP {T : eqType} (p : ssrbool.pred T) (s : seq T) (x : T): reflect (exists s1 s2, s1 ++ [:: x] ++ s2 = s /\ p x /\ all (predC p) s1) ((Some x) == (findo p s)). Lemma findo_pred {T : eqType} (p : ssrbool.pred T) (s : seq T) (x : T) : (findo p s) = Some x -> p x. Lemma findo_mem {T : eqType} (p : ssrbool.pred T) (s : seq T) (x : T) : Some x = findo p s -> x \in s.`

Also I suggest to add an function that finds the last element of a list that satisfies some predicate.

`Definition rfindo {T : Type} (p : ssrbool.pred T) (s : seq T) := findo p (rev s). Lemma rfindo_has {T : Type} (p : ssrbool.pred T) (s : seq T) : ((rfindo p s) : bool) = has p s. Lemma rfindoP {T : Type} (p : ssrbool.pred T) (s : seq T) : reflect (exists s1 s2 x, s1 ++ [:: x] ++ s2 = s /\ p x /\ all (predC p) s2) (rfindo p s).`

## Subset lemmas

`Lemma subset_trans {T : eqType} (s1 s2 s3 : seq T) : {subset s1 <= s2} -> {subset s2 <= s3} -> {subset s1 <= s3}. Lemma subset_all {T : eqType} p (s1 s2 : seq T) : {subset s1 <= s2} -> all p s2 -> all p s1. Lemma subset_cons {T : eqType} (s: seq T) (x : T): {subset s <= x:: s}. Lemma subset_cons2 {T : eqType} (s1 s2: seq T) (x : T): {subset s1 <= s2} -> {subset x::s1 <= x:: s2}. Lemma subset_catl {T : eqType} (s s': seq T): {subset s <= s' ++ s}. Lemma subset_catr {T : eqType} (s s': seq T): {subset s <= s' ++ s}. Lemma subset_cat2 {T : eqType} (s1 s2 s3: seq T): {subset s1 <= s2} -> {subset s3 ++ s1 <= s3 ++ s2}. Lemma filter_subset {T : eqType} p (s : seq T) : {subset [seq a <- s | p a] <= s}. Lemma subset_filter {T : eqType} p (s1 s2 : seq T) : {subset s1 <= s2} -> {subset [seq a <- s1 | p a] <= [seq a <- s2 | p a]}. Lemma map_subset {T1 T2 : eqType} (s1 s2 : seq T1) (f : T1 -> T2) : {subset s1 <= s2} -> {subset [seq f x | x <- s1 ] <= [seq f x | x <- s2]}.`

## Membership equality

`Lemma map_mem_eq {T A : eqType} (f : T -> A) (s1 s2 : seq T) : s1 =i s2 -> [seq f a | a <- s1 ] =i [seq f a | a <- s2]. Lemma filter_mem_eq {T : eqType} p (s1 s2 : seq T) : s1 =i s2 -> [seq a <- s1 | p a] =i [seq a <- s2 | p a].`

## Various

All of these are fairly obvious but is handy to have when proving other stuff.

`Lemma inP {T : eqType} (s : seq T) a : reflect (exists s' s'', s = s' ++ (a :: s'')) (a \in s). Lemma map_map {A B C : Type} (f : A -> B) (g : B -> C) (s : seq A): [seq g x | x <- [seq f x | x <- s] ] = [seq g (f x) | x <- s]. Lemma cat_injr {T : Type} (s : seq T) : injective (cat s). Lemma cat_injl {T : Type} (s : seq T) : injective (cat^~ s). Lemma ohead_cat_some {T : Type} (a b : seq T) x : ohead a = Some x -> ohead a = ohead (a ++ b). Lemma all_count0 {T: Type} (p : ssrbool.pred T) (s : seq T): count p s == 0 = all (predC p) s. Lemma perm_rem {T : eqType} (x : T) (s1 s2 : seq T) : perm_eq s1 s2 -> perm_eq (rem x s1) (rem x s2).`

## Suggestions for

`ssrnat.v`

These follow immediately by the corresponding lemmas for

`ltn`

, but I find them use to have specialized as these can easier be found by searching.`Lemma gtn_trans : transitive gtn. Lemma gtn_irr : irreflexive gtn.`

Also: Is there any reason why the irreflextivity lemma of

`ltn`

is named`ltnn`

and does not use the`irreflexive`

construction?I also wondered if the following should be provided:

`Lemma addn_injl n: injective (addn^~ n). Lemma addn_injr n: injective (addn n).`

I also wondered why there is a lemma called

`leq_ltn_trans`

but not the symmetric one:`Lemma ltn_leq_trans n m p : m < n -> n <= p -> m < p.`

## Suggestions for

`order.v`

I have also my self found it useful to have sequences of equality types as a meet-semi-lattice, ordered by the suffix-relation and with longest-common-suffix as meet.

In general, I think that is reasonable to include the suffix predicate in

`seq.v`

(excluding the notation)?`Fixpoint suffix {T : eqType} (s1 s2 : seq T) : bool := (s1 == s2) || if s2 is (x :: xs) then suffix s1 xs else false. Lemma suffix_rec {T : eqType} (s1 s2 : seq T) : suffix s1 s2 = (s1 == s2) || suffix s1 s2. Notation "a ⪯ b" := (suffix a b) (at level 20). Lemma suffix_refl {T : eqType} : reflexive (@suffix T). Lemma suffixP {T : eqType} (s1 s2 : seq T) : reflect (exists xs, xs ++ s1 = s2) (s1 ⪯ s2). Lemma suffix_catl {T : eqType} (xs ys : seq T) : xs ⪯ (ys ++ xs). Lemma suffix_trans {T : eqType} : transitive (@suffix T). Lemma suffix_anti {T : eqType} : antisymmetric (@suffix T). Lemma suffix_nil {T : eqType} (s : seq T) : [::] ⪯ s. Fixpoint lcs {T : eqType} (s1 s2 : seq T) : seq T := if s1 ⪯ s2 then s1 else if s1 is x :: xs then lcs xs s2 else [::]. Lemma lcs_suffix {T : eqType} (s1 s2 : seq T) : lcs s1 s2 ⪯ s1 && lcs s1 s2 ⪯ s2. Lemma lcsP {T : eqType} (s s1 s2 : seq T) : s ⪯ s1 && s ⪯ s2 = s ⪯ lcs s1 s2. Lemma lcsC {T : eqType} : commutative (@lcs T). Lemma lcsA {T : eqType} : associative (@lcs T). Lemma lcsss {T : eqType} : idempotent (@lcs T).`

Should I suggest this to #464 or make it a separate PR?

## Random

I often find my self trying to prove a goal of the form:

`(true -> B) -> A`

, where it somehow follows from the context that`B -> A`

. In these situations, I find it useful to use the following lemma instead of doing`move/(_ (eq_refl true))`

to get rid of the`true`

.`Lemma trueI (A : Type) : (true -> A) -> A.`

Also: I needed the following at some point and couldn't find it:

`Lemma predIC {T : Type} (p1 p2 : ssrbool.pred T): predI p1 p2 =1 predI p2 p1.`

CohenCyril:

- edited TopicsNextMeeting

anton-trunov opened PR #506 ssrnat: add subnA, addnCB, addnCAC, addnAl lemmas from `ssrnat-extra-assoc-lemmas`

to `master`

:

## Motivation for this change

This PR addresses issue #212 by adding some lemmas about natural numbers.

`subnA`

: the name was suggested by @CohenCyril in this comment;`addnCAC`

: I call this "central commutativity", hence the name, but I'm happy to change it to anything else (this applies to any name in this PR);`addnAl`

: "left cyclic associativity" (right cyclic associativity is just commutativity in this case);`addnCB`

: can be proved also`by rewrite [RHS]addnC -!maxnE maxnC.`

, but`maxn`

is defined later in the file; I'd like to add this for the sake of completeness (I only needed it once) and because I've seen more ~five bright students to believe this wasn't provable.I find

`addnCAC`

and`addnAl`

sometimes convenient because having them in the library might save several rewrites once in a while.I'm open to suggestions (including removing some of this PR's lemmas altogether). Thank you for your time.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~[ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

anton-trunov edited PR #506 ssrnat: add subnA, addnCB, addnCAC, addnAl lemmas from `ssrnat-extra-assoc-lemmas`

to `master`

:

## Motivation for this change

This PR addresses issue #212 by adding some lemmas about natural numbers.

`subnA`

: the name was suggested by @CohenCyril in this comment;`addnCAC`

: I call this "central commutativity", hence the name, but I'm happy to change it to anything else (this applies to any name in this PR);`addnAl`

: "left cyclic associativity" (right cyclic associativity is just commutativity in this case);`addnCB`

: can be proved also`by rewrite [RHS]addnC -!maxnE maxnC.`

, but`maxn`

is defined later in the file; I'd like to add this for the sake of completeness (I only needed it once) and because I've seen more ~five bright students to believe this wasn't provable (I'm not saying this should be a reason to include this lemma into the library, though).I find

`addnCAC`

and`addnAl`

sometimes convenient because having them in the library might save several rewrites once in a while.I'm open to suggestions (including removing some of this PR's lemmas altogether). Thank you for your time.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 opened PR #507 Add more test cases for higher-order recursive functions in seq.v w.r.t. the guard condition from `test-guard-cond`

to `master`

:

## Motivation for this change

This PR adds some test cases in

`test_suite/test_guard.v`

which I promised to do in https://github.com/math-comp/math-comp/pull/471#issuecomment-611521366.<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- ~[ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #507 Add more test cases for higher-order recursive functions in seq.v w.r.t. the guard condition from `test-guard-cond`

to `master`

:

## Motivation for this change

This PR adds some test cases in

`test_suite/test_guard.v`

which I promised to do in https://github.com/math-comp/math-comp/pull/471#issuecomment-611521366. Currently, test cases for`find`

,`filter`

,`count`

,`pmap`

,`pairmap`

,`scanl`

are missing.<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- ~[ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc opened Issue #508 mem_imset mem_map naming/statement inconsistency:

while cleaning, I noticed the following oddity:

`Lemma mem_imset (aT rT : finType) (f : aT -> rT) (D : {pred aT}) (x : aT) : x \in D -> f x \in [set f x | x in D] Lemma map_f (T1 T2 : eqType) (f : T1 -> T2) (s : seq T1) (x : T1) : x \in s -> f x \in [seq f i | i <- s] Lemma mem_map (T1 T2 : eqType) (f : T1 -> T2), injective f -> forall (s : seq T1) (x : T1), (f x \in [seq f i | i <- s]) = (x \in s)`

Wouldn't it be more consistent to rename

`mem_imset`

to`imset_f`

and add the following lemma:`Lemma mem_imset (aT rT : finType) (f : aT -> rT) (A : {set aT}) (x : aT) : injective f -> (f x \in f @: A) = (x \in A).`

chdoc opened PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

Additional lemmas about cardinalities of predicates and sets. Mainly picking

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] ~added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril created PR Review Comment on #509 Card lemmas:

In thought I did that one when I added

`fintype_le1P`

tomorrow. :laughing: I will double check tomorrow, if I forgot to push something.

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril created PR Review Comment on #509 Card lemmas:

Nice one to have indeed, I think there is a lot of refactoring to do with all the

`card_*`

lemma you added, through`enum`

(which is`uniq`

which size is the cardinal of the considered set). Indeed, I think`card_eqP`

would be almost a one liner and`card_geqP`

, and`cards2P`

is a simple twice case analysis (the main step being something like`case: (enum A) (enum_uniq A) (size_enum ...) => [|x [|y []//]`

; exists x; exists y`). I also think it would be nice to have le/lt variants and`

pred` variants.

CohenCyril edited PR Review Comment on #509 Card lemmas.

CohenCyril edited PR Review Comment on #509 Card lemmas.

CohenCyril edited PR Review Comment on #509 Card lemmas.

CohenCyril edited PR Review Comment on #509 Card lemmas.

CohenCyril opened Issue #510 Filling as many holes as convenient for lemma composition:

Hi @math-comp/core, @pi8027, @chdoc, @erikmd, @anton-trunov and everyone else (sorry for my non-exhaustivity)...

When combining lemmas in a high-order way, (e.g.

`can_inj`

,`le_trans`

, ...) the leafs of the term that I build are often of the form`(my_thm _ _ _ _)`

, which makes it harder to read and write: my personal methodology varies from`About`

to "wildguessing and adjusting". The nice exceptions are some well adjusted`reflect`

lemmas, which often have all arguments but`reflect`

hypotheses as maximal implicits, which means they can either be used combined with other`reflect`

(as such), or used as a simple implication (by performing a single application without`@`

).I was wondering if we could deal with

`cancel`

, inequalities and the like in some way... Since we sometimes need to provide arguments and sometimes not, we cannot simply put everything as maximal implicits. So what about using a symbol, let's say`%`

for the example, to denote _"fill as many holes as needed if I am going to compose"_?

That way,

`can_inj (@opprK _)`

could be`can_inj %opprK`

`ler_trans _ (ler_norm_sub _ _)`

could be`ler_trans _ %ler_norm_sub`

- ...

A simple implementation that comes to mind with

`Notation`

will naturally impose that in such cases we always need the same number of filled holes... which may be a good enough approximation?

I this case I am still wondering how we could do that without adding manually`Notation "%stuff" = (@stuff _ _ _).`

everywhere in the library (maybe an attribute?).Another (more robust?) implementation would be to modify Coq's pretyper...

Does someone have other ideas that would solve the same problem? (Both in terms of specification or implementation of this issue.)

CohenCyril edited Issue #510 Filling as many holes as convenient for lemma composition:

Hi @math-comp/core, @pi8027, @chdoc, @erikmd, @anton-trunov and everyone else (sorry for my non-exhaustivity)...

When combining lemmas in a high-order way, (e.g.

`can_inj`

,`le_trans`

, ...) the leafs of the term that I build are often of the form`(my_thm _ _ _ _)`

, which makes it hard to read and write: my personal methodology varies from`About`

to "wildguessing and adjusting". The nice exceptions are some well adjusted`reflect`

lemmas, which often have all arguments but`reflect`

hypotheses as maximal implicits, which means they can either be used combined with other`reflect`

(as such), or used as a simple implication (by performing a single application without`@`

).I was wondering if we could deal with

`cancel`

, inequalities and the like in some way... Since we sometimes need to provide arguments and sometimes not, we cannot simply put everything as maximal implicits. So what about using a symbol, let's say`%`

for the example, to denote _"fill as many holes as needed if I am going to compose"_?

That way,

`can_inj (@opprK _)`

could be`can_inj %opprK`

`ler_trans _ (ler_norm_sub _ _)`

could be`ler_trans _ %ler_norm_sub`

- ...

A simple implementation that comes to mind with

`Notation`

will naturally impose that in such cases we always need the same number of filled holes... which may be a good enough approximation?

I this case I am still wondering how we could do that without adding manually`Notation "%stuff" = (@stuff _ _ _).`

everywhere in the library (maybe an attribute?).Another (more robust?) implementation would be to modify Coq's pretyper...

Does someone have other ideas that would solve the same problem? (Both in terms of specification or implementation of this issue.)

CohenCyril edited Issue #510 Filling as many holes as convenient for lemma composition:

Hi @math-comp/core, @pi8027, @chdoc, @erikmd, @anton-trunov and everyone else (sorry for my non-exhaustivity)...

When combining lemmas in a high-order way, (e.g.

`can_inj`

,`le_trans`

, ...) the leafs of the term that I build are often of the form`(my_thm _ _ _ _)`

, which makes it hard to read and write: my personal methodology varies from`About`

to "wildguessing and adjusting". The nice exceptions are some well adjusted`reflect`

lemmas, which often have all arguments but`reflect`

hypotheses as maximal implicits, which means they can either be combined with other`reflect`

(as such), or used as a simple implication (by performing a single application without`@`

).I was wondering if we could deal with

`cancel`

, inequalities and the like in some way... Since we sometimes need to provide arguments and sometimes not, we cannot simply put everything as maximal implicits. So what about using a symbol, let's say`%`

for the example, to denote _"fill as many holes as needed if I am going to compose"_?

That way,

`can_inj (@opprK _)`

could be`can_inj %opprK`

`ler_trans _ (ler_norm_sub _ _)`

could be`ler_trans _ %ler_norm_sub`

- ...

A simple implementation that comes to mind with

`Notation`

will naturally impose that in such cases we always need the same number of filled holes... which may be a good enough approximation?

I this case I am still wondering how we could do that without adding manually`Notation "%stuff" = (@stuff _ _ _).`

everywhere in the library (maybe an attribute?).Another (more robust?) implementation would be to modify Coq's pretyper...

Does someone have other ideas that would solve the same problem? (Both in terms of specification or implementation of this issue.)

CohenCyril edited Issue #510 Filling as many holes as convenient for lemma composition:

When combining lemmas in a high-order way, (e.g.

`can_inj`

,`le_trans`

, ...) the leafs of the term that I build are often of the form`(my_thm _ _ _ _)`

, which makes it hard to read and write: my personal methodology varies from`About`

to "wildguessing and adjusting". The nice exceptions are some well adjusted`reflect`

lemmas, which often have all arguments but`reflect`

hypotheses as maximal implicits, which means they can either be combined with other`reflect`

(as such), or used as a simple implication (by performing a single application without`@`

).`cancel`

, inequalities and the like in some way... Since we sometimes need to provide arguments and sometimes not, we cannot simply put everything as maximal implicits. So what about using a symbol, let's say`%`

for the example, to denote _"fill as many holes as needed if I am going to compose"_?

That way,

`can_inj (@opprK _)`

could be`can_inj %opprK`

`ler_trans _ (ler_norm_sub _ _)`

could be`ler_trans _ %ler_norm_sub`

- ...
Now

`Notation`

will naturally impose that in such cases we always need the same number of filled holes... which may be a good enough approximation?

I this case I am still wondering how we could do that without adding manually`Notation "%stuff" = (@stuff _ _ _).`

everywhere in the library (maybe an attribute?).Another (more robust?) implementation would be to modify Coq's pretyper...

CohenCyril edited Issue #510 Filling as many holes as convenient for lemma composition:

When combining lemmas in a high-order way, (e.g.

`can_inj`

,`le_trans`

, ...) the leafs of the term that I build are often of the form`(my_thm _ _ _ _)`

, which makes it hard to read and write: my personal methodology varies from`About`

to "wildguessing and adjusting". The nice exceptions are some well adjusted`reflect`

lemmas, which often have all arguments but`reflect`

hypotheses as maximal implicits, which means they can either be combined with other`reflect`

(as such), or used as a simple implication (by performing a single application without`@`

).`cancel`

, inequalities and the like in some way... Since we sometimes need to provide arguments and sometimes not, we cannot simply put everything as maximal implicits. So what about using a symbol, let's say`%`

for the example, to denote _"fill as many holes as needed if I am going to compose"_?

That way,

`can_inj (@opprK _)`

could be`can_inj %opprK`

`ler_trans _ (ler_norm_sub _ _)`

could be`ler_trans _ %ler_norm_sub`

- ...
Implementation-wise,

`Notation`

will naturally impose that in such cases we always need the same number of filled holes... which may be a good enough approximation?

I this case I am still wondering how we could do that without adding manually`Notation "%stuff" = (@stuff _ _ _).`

everywhere in the library (maybe an attribute?).Another (more robust?) implementation would be to modify Coq's pretyper...

CohenCyril opened PR #511 adding default nix shell from `nix`

to `master`

:

## Motivation for this change

Adding a default nix-shell.

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- ~added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited Issue #510 Filling as many holes as convenient for lemma composition:

`can_inj`

,`le_trans`

, ...) the leafs of the term that I build are often of the form`(my_thm _ _ _ _)`

, which makes it hard to read and write: my personal methodology varies from`About`

to "wildguessing and adjusting". The nice exceptions are some well adjusted`reflect`

lemmas, which often have all arguments but`reflect`

hypotheses as maximal implicits, which means they can either be combined with other`reflect`

(as such), or used as a simple implication (by performing a single application without`@`

).`cancel`

, inequalities and the like in some way... Since we sometimes need to provide arguments and sometimes not, we cannot simply put everything as maximal implicits. So what about using a symbol, let's say`%`

for the example, to denote _"fill as many holes as needed if I am going to compose"_?

That way,

`can_inj (mulrK _)`

could be`can_inj %mulrK`

`ler_trans _ (ler_norm_sub _ _)`

could be`ler_trans _ %ler_norm_sub`

- ...
Implementation-wise,

`Notation`

will naturally impose that in such cases we always need the same number of filled holes... which may be a good enough approximation?

I this case I am still wondering how we could do that without adding manually`Notation "%stuff" = (@stuff _ _ _).`

everywhere in the library (maybe an attribute?).Another (more robust?) implementation would be to modify Coq's pretyper...

**affeldt-aist** requested affeldt-aist for a review on PR #504 Revise proofs in ssreflect/*.v.

**ybertot** requested ybertot for a review on PR #504 Revise proofs in ssreflect/*.v.

**affeldt-aist** requested ybertot and affeldt-aist for a review on PR #504 Revise proofs in ssreflect/*.v.

affeldt-aist assigned PR #504 Revise proofs in ssreflect/*.v.

affeldt-aist milestoned Issue #504 Revise proofs in ssreflect/*.v (assigned to affeldt-aist):

## Motivation for this change

<!-- please explain your reason for doing this change -->

This PR reduces

- use of numerical occurrence selectors (#436) and
- use of non ssreflect tactics such as
`auto`

,and improves use of comparison predicates such as

`posnP`

,`leqP`

,`ltnP`

,`ltngtP`

, and`eqVneq`

.## Things done/to do

<!-- please fill in the following checklist -->

- ~[ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist milestoned Issue #509 Card lemmas:

## Motivation for this change

Additional lemmas about cardinalities of predicates and sets. Mainly picking

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] ~added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist milestoned Issue #507 Add more test cases for higher-order recursive functions in seq.v w.r.t. the guard condition:

## Motivation for this change

This PR adds some test cases in

`test_suite/test_guard.v`

which I promised to do in https://github.com/math-comp/math-comp/pull/471#issuecomment-611521366. Currently, test cases for`find`

,`filter`

,`count`

,`pmap`

,`pairmap`

,`scanl`

are missing.<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- ~[ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist milestoned Issue #506 ssrnat: add subnA, addnCB, addnCAC, addnAl lemmas:

## Motivation for this change

This PR addresses issue #212 by adding some lemmas about natural numbers.

`subnA`

: the name was suggested by @CohenCyril in this comment;`addnCAC`

: I call this "central commutativity", hence the name, but I'm happy to change it to anything else (this applies to any name in this PR);`addnAl`

: "left cyclic associativity" (right cyclic associativity is just commutativity in this case);`addnCB`

: can be proved also`by rewrite [RHS]addnC -!maxnE maxnC.`

, but`maxn`

is defined later in the file; I'd like to add this for the sake of completeness (I only needed it once) and because I've seen more ~five bright students to believe this wasn't provable (I'm not saying this should be a reason to include this lemma into the library, though).I find

`addnCAC`

and`addnAl`

sometimes convenient because having them in the library might save several rewrites once in a while.I'm open to suggestions (including removing some of this PR's lemmas altogether). Thank you for your time.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist milestoned Issue #499 contra lemmas involving propositions:

## Motivation for this change

Various forms of contraposition are constructively provable and having a collection of lemmas whose naming is consistent with the

`contra`

lemmas already in mathcomp makes it easier and more idiomatic to use them.fixes #491

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers (
`contra`

lemmas have no header documentation)- [ ] Coq side pull request to launch propagation to
`Coq.ssr.ssrbool`

- [ ] find places within mathcomp where these should be used (optional)
<!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist milestoned Issue #210 The vector space of bounded degree polynomials:

Includes a decidable predicate for irreducibly of polynomials of

bounded size over a finite field, and the`'X^i`

and lagrange basis.

- [x] update ChangeLog
- [ ] update
`Make`

and`all_`

- [x] merge dependency #209

affeldt-aist:

- edited TopicsNextMeeting

chdoc submitted PR Review for #509 Card lemmas.

chdoc created PR Review Comment on #509 Card lemmas:

I'm not sure I follow. There is no

`card_eqP`

(yet) and indeed I'm not sure that would be useful, since`enum A`

has already good lemma support. And`card_geqP`

is about encapsulating the picking of a subsequence of`enum A`

, if one only has a lower bound.

Admittedly, using the`_gt?P`

lemmas to prove`cards2P`

may be overkill.

affeldt-aist submitted PR Review for #504 Revise proofs in ssreflect/*.v.

affeldt-aist submitted PR Review for #504 Revise proofs in ssreflect/*.v.

ybertot submitted PR Review for #504 Revise proofs in ssreflect/*.v.

ybertot created PR Review Comment on #504 Revise proofs in ssreflect/*.v:

In other contexts you would write

`-[RHS]partnT // ...`

would it be suitable here?

ybertot submitted PR Review for #504 Revise proofs in ssreflect/*.v.

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril created PR Review Comment on #509 Card lemmas:

Here is an elaboration of what I had in mind:

`Lemma set_enum A : [set x | x \in enum A] = A. Proof. by apply/setP => x; rewrite inE mem_enum. Qed. Variant cards_eq_spec A : seq T -> {set T} -> nat -> Type := | CardEq (s : seq T) & uniq s : cards_eq_spec A s [set x | x \in s] (size s). Lemma cards_eqP A : cards_eq_spec A (enum A) A #|A|. Proof. by move: (enum A) (cardE A) (set_enum A) (enum_uniq A) => s -> <-; constructor. Qed. Lemma cards1P A : reflect (exists x, A = [set x]) (#|A| == 1). Proof. apply: (iffP idP) => [|[x ->]]; last by rewrite cards1. have [[|x []]// _] := cards_eqP; exists x; apply/setP => y; rewrite !inE. Qed. Lemma cards2P A : reflect (exists x y : T, x != y /\ A = [set x; y]) (#|A| == 2). Proof. apply: (iffP idP) => [|[x] [y] [xy ->]]; last by rewrite cards2 xy. have [[|x [|y [|z s]]]//= s_uniq] := cards_eqP; rewrite !inE andbT in s_uniq. by exists x, y; split=> //; apply/setP => z; rewrite !inE. Qed.`

and something like this for fintype...

CohenCyril edited PR Review Comment on #509 Card lemmas.

CohenCyril edited PR Review Comment on #509 Card lemmas.

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril created PR Review Comment on #509 Card lemmas:

And

`card_geqP`

is about encapsulating the picking of a subsequence of`enum A`

, if one only has a lower bound.Indeed, I missed that...

pi8027 submitted PR Review for #504 Revise proofs in ssreflect/*.v.

pi8027 created PR Review Comment on #504 Revise proofs in ssreflect/*.v:

That's right.

pi8027 updated PR #504 Revise proofs in ssreflect/*.v (assigned to affeldt-aist) from `selectors`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

This PR reduces

- use of numerical occurrence selectors (#436) and
- use of non ssreflect tactics such as
`auto`

,and improves use of comparison predicates such as

`posnP`

,`leqP`

,`ltnP`

,`ltngtP`

, and`eqVneq`

.## Things done/to do

<!-- please fill in the following checklist -->

- ~[ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #504 Revise proofs in ssreflect/*.v (assigned to affeldt-aist) from `selectors`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

This PR reduces

- use of numerical occurrence selectors (#436) and
- use of non ssreflect tactics such as
`auto`

,and improves use of comparison predicates such as

`posnP`

,`leqP`

,`ltnP`

,`ltngtP`

, and`eqVneq`

.## Things done/to do

<!-- please fill in the following checklist -->

- ~[ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc opened Issue #512 lemma for proper and setC?

I noticed that there are quite a few lemmas combining

`_ \subset _`

and`~: _`

but none for

`_ \proper _`

and`~: _`

.How about adding (possibly with a different name):

`Lemma properC (T : finType) (A B : {set T}) : A \proper B = (~: B \proper ~: A). Proof. rewrite !properEneq setCS [~: _ == _]inj_eq 1?eq_sym //; exact/inv_inj/setCK. Qed.`

I think this is sufficient, since any introduced double complement can easily be eliminated with

`?setCK`

.

chdoc submitted PR Review for #509 Card lemmas.

chdoc created PR Review Comment on #509 Card lemmas:

Okay, for

`{set _}`

what you propose is indeed more general and more direct than what I had proposed. However, I'm not sure it transfers all that well to predicates: due to the lack of extensionality, one cannot pull the`[set x | x \in enum A]`

trick. One could instead generate`s =i A`

as an assumption, but I'm not sure this view would be all that useful.The same goes for lower bounds, albeit for a different reason: there one doesn't even want to replace the original predicate/set.

chdoc:

- edited TopicsNextMeeting

chdoc updated PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

Additional lemmas about cardinalities of predicates and sets. Mainly picking

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] ~added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

amahboubi:

- edited Home

amahboubi:

- created Minutes May 20 2020

amahboubi:

- edited Minutes May 20 2020

amahboubi:

- edited TopicsNextMeeting

CohenCyril milestoned Issue #511 adding default nix shell:

## Motivation for this change

Adding a default nix-shell.

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- ~added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril pushed 1 commit to branch mono_lemmas.

- Missing mono lemmas (ec0ab89)

CohenCyril deleted the branch mono_lemmas.

CohenCyril opened PR #513 Missing mono lemmas from `mono_lemmas`

to `master`

:

## Motivation for this change

Added lemmas about monotony of functions

`nat -> T`

where`T`

is an ordered type## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist milestoned Issue #514 Lemma addition to ssralg and ssrnum (assigned to ybertot):

## Motivation for this change

Three lemmas that we found useful in the context of the mathcomp-analysis project (https://github.com/math-comp/analysis/blob/f8d361a93db5906a73327d4fcf1fe9070e1960b8/theories/normedtype.v#L90-L103) and which we think are better suited to mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist assigned PR #514 Lemma addition to ssralg and ssrnum to ybertot.

**affeldt-aist** requested CohenCyril for a review on PR #514 Lemma addition to ssralg and ssrnum.

affeldt-aist opened PR #514 Lemma addition to ssralg and ssrnum (assigned to ybertot) from `lemmas_from_analysis_20200521`

to `master`

:

## Motivation for this change

Three lemmas that we found useful in the context of the mathcomp-analysis project (https://github.com/math-comp/analysis/blob/f8d361a93db5906a73327d4fcf1fe9070e1960b8/theories/normedtype.v#L90-L103) and which we think are better suited to mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #514 Lemma addition to ssralg and ssrnum.

CohenCyril submitted PR Review for #514 Lemma addition to ssralg and ssrnum.

CohenCyril created PR Review Comment on #514 Lemma addition to ssralg and ssrnum:

This lemma was already generalized and added as

`subrKA`

(just above), math-comp analysis should use it instead now.

CohenCyril created PR Review Comment on #514 Lemma addition to ssralg and ssrnum:

I believe the naming I picked in mathcomp analysis is wrong, and we should provide a more complete interface the following lemmas:

``|x - y| < e -> y - e < x`

``|x - y| < e -> x < y + e`

``|x - y| < e -> y < x + e`

- same with
`<=`

and the naming convention should encompass all these variants

CohenCyril submitted PR Review for #514 Lemma addition to ssralg and ssrnum.

CohenCyril created PR Review Comment on #514 Lemma addition to ssralg and ssrnum:

maybe something like

`(gtr|ltr)_dist[lr]`

? WDYT?

CohenCyril edited PR Review Comment on #514 Lemma addition to ssralg and ssrnum.

CohenCyril edited PR Review Comment on #514 Lemma addition to ssralg and ssrnum.

affeldt-aist updated PR #514 Lemma addition to ssralg and ssrnum (assigned to ybertot) from `lemmas_from_analysis_20200521`

to `master`

:

## Motivation for this change

Three lemmas that we found useful in the context of the mathcomp-analysis project (https://github.com/math-comp/analysis/blob/f8d361a93db5906a73327d4fcf1fe9070e1960b8/theories/normedtype.v#L90-L103) and which we think are better suited to mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist submitted PR Review for #514 Lemma addition to ssralg and ssrnum.

affeldt-aist created PR Review Comment on #514 Lemma addition to ssralg and ssrnum:

I couldn't make sense of it right away so I looked for an alternative (also for the sake of the conversation). What about?

`ltr_dist_addl`

: on the model of`ltr_subl_addl`

because it looks the same`ltr_dist_subl`

:`sub`

instead of`add`

(does not change the order between`x`

and`y`

)`ltr_distr_{addl,subl}`

: because it is just a matter of reversing the dist

affeldt-aist edited PR #514 Lemma addition to ssrnum (assigned to ybertot) from `lemmas_from_analysis_20200521`

to `master`

:

## Motivation for this change

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc updated PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

amahboubi:

- edited TopicsNextMeeting

amahboubi:

- edited TopicsNextMeeting

ybertot prereleased release The Mathematical Components Library 1.11+beta1 for tag mathcomp-1.11+beta1.

ybertot created release The Mathematical Components Library 1.11+beta1 for tag mathcomp-1.11+beta1.

ybertot published release The Mathematical Components Library 1.11+beta1 for tag mathcomp-1.11+beta1.

ybertot pushed tag mathcomp-1.11+beta1.

CohenCyril:

- edited Home

CohenCyril:

- edited Using nix

CohenCyril:

- edited Using nix

CohenCyril:

- edited Using nix

CohenCyril:

- edited Using nix

CohenCyril pushed 1 commit to branch master.

- URL in https (14291b8)

CohenCyril:

- edited Using nix

CohenCyril:

- edited Using nix

CohenCyril edited release The Mathematical Components Library 1.11+beta1 for tag mathcomp-1.11+beta1.

CohenCyril edited release The Mathematical Components Library 1.11+beta1 for tag mathcomp-1.11+beta1.

amahboubi:

- edited TopicsNextMeeting

ybertot submitted PR Review for #504 Revise proofs in ssreflect/*.v.

affeldt-aist merged PR #504 Revise proofs in ssreflect/*.v.

affeldt-aist pushed 3 commits to branch master. Commits by pi8027 (2) and affeldt-aist (1).

- Revise proofs in ssreflect/*.v (35bd870)
- A few more revisions (37a4951)
- Merge pull request #504 from pi8027/selectors (5c67ea2)

ybertot merged PR #511 adding default nix shell.

ybertot pushed 2 commits to branch master. Commits by CohenCyril (1) and ybertot (1).

CohenCyril opened Issue #515 max and min are too specific:

From 1.10 to 1.11+beta1 we lost in generality in

`ssrnum.v````: indeed`

max`and`

min`where defined in a`

numDomainType`, but they are now defined in terms of`

meet`and`

join`, which requires at least lattice, which a`

numDomainType`` is not...One possible fix is to reintroduce

`Order.max`

(and`Order.min`

) as`if x <= y then y else x`

(and similar for min), and develop their theory in a partial order, when elements are all comparable between themselves. Then link them with meet and join when appropriate.Another fix is to reintroduce

`Num.max`

and`Num.min`

but this would be confusing if we keep`Order.min`

and`Order.max`

.

CohenCyril closed Issue #496 Bugfixes for 1.11.0 (assigned to CohenCyril):

- add again
`maxr`

lemmas (`maxrC`

, ...)- reincorportate
`incnr_inj`

etc,- add missing
`leW_mono`

etc for order too.

CohenCyril reopened Issue #496 Bugfixes for 1.11.0 (assigned to CohenCyril):

- add again
`maxr`

lemmas (`maxrC`

, ...)- reincorportate
`incnr_inj`

etc,- add missing
`leW_mono`

etc for order too.

CohenCyril edited Issue #515 max and min are too specific:

From 1.10 to 1.11+beta1 we lost in generality in

`ssrnum.v`

: indeed`max`

and`min`

where defined in a`numDomainType`

, but they are now defined in terms of`meet`

and`join`

, which requires at least lattice, which a`numDomainType`

is not...One possible fix is to reintroduce

`Order.max`

(and`Order.min`

) as`if x <= y then y else x`

(and similar for min), and develop their theory in a partial order, when elements are all comparable between themselves. Then link them with meet and join when appropriate.Another fix is to reintroduce

`Num.max`

and`Num.min`

but this would be confusing if we keep`Order.min`

and`Order.max`

.

CohenCyril edited Issue #515 max and min are too specific:

From 1.10 to 1.11+beta1 we lost in generality in

`ssrnum.v`

: indeed`max`

and`min`

where defined in a`numDomainType`

, but they are now defined in terms of`meet`

and`join`

, which requires at least lattice, which a`numDomainType`

is not...One possible fix is to reintroduce

`Order.max`

(and`Order.min`

) as`if x <= y then y else x`

(and similar for min), and develop their theory in a partial order, when elements are all comparable between themselves. Then link them with meet and join when appropriate.Another fix is to reintroduce

`Num.max`

and`Num.min`

but this would be confusing if we keep`Order.min`

and`Order.max`

.In any case these definitions must match exactly the one that existed in 1.10.0 for backward compatiblity reasons and the equations given in the factories for total order (which should be updated if they do not match).

CohenCyril milestoned Issue #513 Missing mono lemmas:

## Motivation for this change

Added lemmas about monotony of functions

`nat -> T`

where`T`

is an ordered type## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #513 Missing mono lemmas from `mono_lemmas`

to `master`

:

## Motivation for this change

Added lemmas about monotony of functions

`nat -> T`

where`T`

is an ordered type## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #513 Missing mono lemmas.

CohenCyril created PR Review Comment on #513 Missing mono lemmas:

done?

ybertot submitted PR Review for #513 Missing mono lemmas.

ybertot created PR Review Comment on #513 Missing mono lemmas:

Good for me!

**CohenCyril** requested ybertot for a review on PR #513 Missing mono lemmas.

CohenCyril opened PR #516 Greneralizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

From 1.10 to 1.11+beta1, max and min had lost their generality, introducing a regression.

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

Inserting

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)- [ ] added corresponding documentation in the headers (must add
`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

ybertot submitted PR Review for #513 Missing mono lemmas.

CohenCyril milestoned Issue #516 Greneralizing max and min to porderType:

## Motivation for this change

From 1.10 to 1.11+beta1, max and min had lost their generality, introducing a regression.

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

Inserting

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)- [ ] added corresponding documentation in the headers (must add
`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

From 1.10 to 1.11+beta1, max and min had lost their generality, introducing a regression.

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

Inserting

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)- [ ] added corresponding documentation in the headers (must add
`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery opened PR #517 Extra theorems about subn min and max from `minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery updated PR #517 Extra theorems about subn min and max from `minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery updated PR #517 Extra theorems about subn min and max from `minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery updated PR #517 Extra theorems about subn min and max from `minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery updated PR #517 Extra theorems about subn min and max from `minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

erikmd:

- edited TopicsNextMeeting

gares:

- edited Home

gares:

- edited Home

gares:

- created Minutes June 02 2020

gares:

- edited Minutes June 02 2020

affeldt-aist updated PR #514 Lemma addition to ssrnum (assigned to ybertot) from `lemmas_from_analysis_20200521`

to `master`

:

## Motivation for this change

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

gares:

- edited Minutes June 02 2020

affeldt-aist edited PR #514 Lemma addition to ssrnum (assigned to ybertot) from `lemmas_from_analysis_20200521`

to `master`

:

## Motivation for this change

A few lemmas about norm that we found useful in the context of the mathcomp-analysis project (among them: https://github.com/math-comp/analysis/blob/f8d361a93db5906a73327d4fcf1fe9070e1960b8/theories/normedtype.v#L90-L103) and which we think are better suited to mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

gares edited PR #517 Extra theorems about subn minn and maxn from `minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril opened Issue #518 Missing mono/homo lemmas:

CohenCyril milestoned Issue #518 Missing mono/homo lemmas:

gares:

- edited Minutes June 02 2020

CohenCyril created PR Review Comment on #514 Lemma addition to ssrnum:

The prefix

`n`

for`norm`

does not exist yet, and I am not in favor if it. I suggest this is renamed`norm_lt_eqF`

.

CohenCyril submitted PR Review for #514 Lemma addition to ssrnum.

pi8027 submitted PR Review for #516 Generalizing max and min to porderType.

pi8027 created PR Review Comment on #516 Generalizing max and min to porderType:

If we wish to make it compatible as much as possible with

`minr`

and`maxr`

of version 1.10.0, shouldn't we use`<=`

rather than`<`

? https://github.com/math-comp/math-comp/blob/mathcomp-1.10.0/mathcomp/algebra/ssrnum.v#L256-L257

CohenCyril edited PR Review Comment on #514 Lemma addition to ssrnum.

gares:

- edited Minutes June 02 2020

CohenCyril submitted PR Review for #516 Generalizing max and min to porderType.

CohenCyril created PR Review Comment on #516 Generalizing max and min to porderType:

`minn`

and`maxn`

are defined using`<`

and`<=`

, I'd rather loose backward compatibility than convertibility with nat definitions.

CohenCyril edited PR Review Comment on #516 Generalizing max and min to porderType.

pi8027 submitted PR Review for #516 Generalizing max and min to porderType.

pi8027 created PR Review Comment on #516 Generalizing max and min to porderType:

OK. That's fine (as I said in a MC call).

CohenCyril updated PR #501 Intro pattern extensions for rewrite, dup, swap and apply (assigned to gares) from `intro_rw`

to `master`

:

## Motivation for this change

- calling rewrite from an intro pattern, use with parsimony

`=> /[1 rules]`

does`rewrite rules`

`=> /[-1 rules]`

does`rewrite -rules`

`=> /[! rules]`

does`rewrite !rules`

`=> /[-! rules]`

does`rewrite -!rules`

`=> /[? rules]`

does`rewrite ?rules`

`=> /[-? rules]`

does`rewrite -?rules`

`=> /[/def]`

does`rewrite /def`

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

gares:

- edited Minutes June 02 2020

CohenCyril edited PR #501 Intro pattern extensions for rewrite, dup, swap and apply (assigned to gares) from `intro_rw`

to `master`

:

## Motivation for this change

- calling rewrite from an intro pattern, use with parsimony

`=> /[1! rules]`

does`rewrite rules`

`=> /[-1! rules]`

does`rewrite -rules`

`=> /[! rules]`

does`rewrite !rules`

`=> /[-! rules]`

does`rewrite -!rules`

`=> /[? rules]`

does`rewrite ?rules`

`=> /[-? rules]`

does`rewrite -?rules`

`=> /[/def]`

does`rewrite /def`

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

gares:

- edited Minutes June 02 2020

gares:

- edited Minutes June 02 2020

gares:

- edited Minutes June 02 2020

gares:

- edited Home

gares:

- edited TopicsNextMeeting

affeldt-aist updated PR #514 Lemma addition to ssrnum (assigned to ybertot) from `lemmas_from_analysis_20200521`

to `master`

:

## Motivation for this change

A few lemmas about norm that we found useful in the context of the mathcomp-analysis project (among them: https://github.com/math-comp/analysis/blob/f8d361a93db5906a73327d4fcf1fe9070e1960b8/theories/normedtype.v#L90-L103) and which we think are better suited to mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #514 Lemma addition to ssrnum.

CohenCyril created PR Review Comment on #514 Lemma addition to ssrnum:

@affeldt-aist I edited my comment by the mail you might have received was not. I prefer

`gt_norm_eqF`

pi8027 closed Issue #442 Generalization of order (in fingraph.v) and related lemmas to non-frel graphs:

`order f x`

(in fingraph.v) means the size of`f`

-orbit of`x`

:`Definition order (T : finType) (f : T -> T) (x : T) := #|fconnect f x|.`

This definition can naturally be generalized to non

`frel`

-graphs, which means the number of reachable elements from`x`

in general. Some lemmas that use`order`

can probably be generalized as well. At least, the following lemma introduced by #261 seems to hold in general.`eq_order_cycle : forall p : seq T, fcycle f p -> {in p &, forall x y : T, order y = order x}`

CohenCyril opened PR #519 Missing homo/mono lemmas in the presence of cancellation from `homomono_in`

to `master`

:

## Motivation for this change

The current section

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [ ] backport to
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril milestoned Issue #519 Missing homo/mono lemmas in the presence of cancellation:

## Motivation for this change

The current section

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [ ] backport to
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #514 Lemma addition to ssrnum.

CohenCyril created PR Review Comment on #514 Lemma addition to ssrnum:

`Lemma gt_norm_eqF (x y : R) : `|x| < y -> (x == - y = false) * (x == y = false).`

CohenCyril submitted PR Review for #514 Lemma addition to ssrnum.

CohenCyril submitted PR Review for #514 Lemma addition to ssrnum.

CohenCyril created PR Review Comment on #514 Lemma addition to ssrnum:

For consistency, we should also add

`Lemma gtr_norm : `|x| < y -> x < y. Lemma gtrNnorm : `|x| < y -> - y < x. Lemma ger_norm : `|x| <= y -> x <= y. Lemma gerNnorm : `|x| <= y -> - y <= x.`

and all the

`real_`

variants...

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)- [x] added corresponding documentation in the headers (must add
`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** has marked PR #516 as ready for review.

pi8027 submitted PR Review for #516 Generalizing max and min to porderType.

pi8027 created PR Review Comment on #516 Generalizing max and min to porderType:

I think this was left as a comment on purpose. See L.293 (and L.351 which you may also want to remove).

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)- [x] added corresponding documentation in the headers (must add
`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #516 Generalizing max and min to porderType.

CohenCyril created PR Review Comment on #516 Generalizing max and min to porderType:

:+1: I withdrew this deletion from the PR, since it was an accidental removal unrelated to the changes in this PR, maybe we can open an issue to document or remove this comment.

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)- [x] added corresponding documentation in the headers (must add
`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril opened PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist updated PR #514 Lemma addition to ssrnum (assigned to ybertot) from `lemmas_from_analysis_20200521`

to `master`

:

## Motivation for this change

A few lemmas about norm that we found useful in the context of the mathcomp-analysis project (among them: https://github.com/math-comp/analysis/blob/f8d361a93db5906a73327d4fcf1fe9070e1960b8/theories/normedtype.v#L90-L103) and which we think are better suited to mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** has marked PR #520 as ready for review.

CohenCyril edited PR #520 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Setting up a github action for mathcomp.

This adds a new CI that also building mathcomp on nix and making it available via cachix.## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril pushed 2 commits to branch master.

- update default nix and setup cachix (42fbcdd)
- Merge pull request #520 from CohenCyril/cachix-action (e71aecf)

CohenCyril merged PR #520 Cachix action.

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #514 Lemma addition to ssrnum.

CohenCyril created PR Review Comment on #514 Lemma addition to ssrnum:

Actually I believe this one should be obtained by letting the user compose a

`gtr_norm`

lemma with`gt_eqF`

, otherwise there are two many variants and multi-rules to take into account.

CohenCyril edited PR Review Comment on #514 Lemma addition to ssrnum.

CohenCyril submitted PR Review for #514 Lemma addition to ssrnum.

CohenCyril created PR Review Comment on #514 Lemma addition to ssrnum:

I do not like the lack of symmetry between

`dist`

and`distr`

, (the former should then be`distl`

), but actually all of them must be`distl`

because`dist`

is on the left side of`<`

, swapping arguments of`dist`

should be replaced with the use of suffix`C`

.BTW I noticed a discrepancy introduced by this PR:

- the current convention is that:
`norm`

on the right of`<`

is`ltr_normr`

- the current convention is that:
`norm`

on the left of`<`

is`ltr_norml`

, while this PR introduces the convention`gt_norm`

. I'd rather keep the old convention for`1.11`

and do a global pass for`1.12`

. In which case we cannot keep`gtr_norm`

and we should go for e.g.`ltr_normlW`

.

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril pushed 11 commits to branch maxr. Commits by CohenCyril (10) and affeldt-aist (1).

- Generalizing max and min to porderType (68cf095)
- Increasing definitional equalities (cc92248)
- General theory of min and max, and use in ssrnum (e8d0a3b)
- tentative changelog (321a1b6)
- Improvements (c7edce2)
- CHANGELOG update + bugfix (b653639)
- arg_minP is deprecated (64da030)
- deprecated arg_minnP and arg_maxnP (5a576fa)
- more deprecated arg_maxP (2174f95)
- fixup (ad3986c)
- fixup (7287281)

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril deleted the branch maxr.

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`lemmas_from_analysis_20200521`

to `master`

:

## Motivation for this change

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`lemmas_from_analysis_20200521`

to `master`

:

## Motivation for this change

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 submitted PR Review for #514 Lemma addition to ssrnum.

pi8027 created PR Review Comment on #514 Lemma addition to ssrnum:

Using

`(real_)`

rather than`{real_,}`

would be consistent with the released changelog. See, e.g.: https://github.com/math-comp/math-comp/blob/master/CHANGELOG.md#renamed

`lemmas_from_analysis_20200521`

to `master`

:

## Motivation for this change

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

amahboubi:

- edited TopicsNextMeeting

affeldt-aist updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist updated PR #519 Missing homo/mono lemmas in the presence of cancellation from `homomono_in`

to `master`

:

## Motivation for this change

The current section

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [ ] backport to
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist edited PR #519 Missing homo/mono lemmas in the presence of cancellation from `homomono_in`

to `master`

:

## Motivation for this change

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist updated PR #519 Missing homo/mono lemmas in the presence of cancellation from `homomono_in`

to `master`

:

## Motivation for this change

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #519 Missing homo/mono lemmas in the presence of cancellation from `homomono_in`

to `master`

:

## Motivation for this change

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #519 Missing homo/mono lemmas in the presence of cancellation from `homomono_in`

to `master`

:

## Motivation for this change

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #519 Missing homo/mono lemmas in the presence of cancellation from `homomono_in`

to `master`

:

## Motivation for this change

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** has marked PR #519 as ready for review.

CohenCyril milestoned Issue #521 In and on:

## Motivation for this change

These new lemmas describe more precisely the possible interactions between

`in`

and`on`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~added corresponding documentation in the headers~
- [ ] backport to Coq

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril opened PR #521 In and on from `in_on`

to `master`

:

## Motivation for this change

These new lemmas describe more precisely the possible interactions between

`in`

and`on`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~added corresponding documentation in the headers~
- [ ] backport to Coq

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #207 Work In Progress: adding forms and spectral theorems from `experiment/forms`

to `master`

:

Content:

- Adding bilinear, sesquilinear, hermitian (symmetric, skew symmetric and hermitian) and hermitian positive definite forms.
- A proof of the spectral theorem for normal matrices, and some theory of stability wrt a sub(mx)space.
- Several auxiliary lemmas of general purpose.
TODO:

- [ ] document,
- [ ] replace ad hoc
`cfdot`

in classfun (@LaurenceRideau),- [ ] backport several theorems to matrix, vector or mxalgebra,
- [ ] bridge vector and mxalgebra to port results.
- [ ] update ChangeLog
TODO update after @LaurenceRideau tried on the odd-order repo (https://github.com/math-comp/odd-order/pull/2)

- [ ] Infer the canonical form on a vector space in notations such as
`'[_ ,_]`

,`orthogonal`

,`isometry`

...- [ ] Make the right
`linear_for`

on the right and the left for bilinear forms (so that`'[a *: x, b *: y] = a * b^* * '[x ,y]`

instead of`'[a *: x, b *: y] = a *: b^* *: '[x ,y]`

)- [ ] Have lemmas
`linearZl`

,`linearZr`

,`linearZlr`

,`linearZrl`

(right now only`linearZl_LR`

is only available)

CohenCyril closed without merge PR #372 Taking advantage of Coq 8.10 ssreflect new features.

coqbot demilestoned Issue #372 Taking advantage of Coq 8.10 ssreflect new features (assigned to gares):

## Motivation for this change

<!-- please explain your reason for doing this change -->

Mostly testing ltac in notations in views:

Proposing a few different syntax for rewriting in views, up to debate.

While doing so, I encountered a problem with parsing`! term`

in ssr rewrite but only when followed by a clear. Cf https://github.com/coq/coq/issues/10531. The original intent was to be able to use`=> x /!inE x_mem`

to perform simplification between two introductions.Proposing

`=> /[->]`

syntax to substitute with an equality everywhere in the goal and context.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
<!-- if items above are irrelevant, explain what you did here -->

<!-- please fill in the following checklist -->

<!-- leave this note as a reminder to reviewers -->## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist merged PR #513 Missing mono lemmas.

affeldt-aist pushed 1 commit to branch master. Commits by CohenCyril (1).

- Missing mono lemmas (#513) (913e43e)

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`lemmas_from_analysis_20200521`

to `master`

:

## Motivation for this change

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`intro_rw`

to `master`

:

## Motivation for this change

- calling rewrite from an intro pattern, use with parsimony

`=> /[1! rules]`

does`rewrite rules`

`=> /[-1! rules]`

does`rewrite -rules`

`=> /[! rules]`

does`rewrite !rules`

`=> /[-! rules]`

does`rewrite -!rules`

`=> /[? rules]`

does`rewrite ?rules`

`=> /[-? rules]`

does`rewrite -?rules`

`=> /[/def]`

does`rewrite /def`

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`intro_rw`

to `master`

:

## Motivation for this change

- calling rewrite from an intro pattern, use with parsimony

`=> /[1! rules]`

does`rewrite rules`

`=> /[! rules]`

does`rewrite !rules`

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`homomono_in`

to `master`

:

## Motivation for this change

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #516 Generalizing max and min to porderType.

CohenCyril created PR Review Comment on #516 Generalizing max and min to porderType:

`(* [arg min_(i < i0 | P) M] == a value i : T minimizing M : R, subject to *)`

CohenCyril edited PR Review Comment on #516 Generalizing max and min to porderType.

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #516 Generalizing max and min to porderType.

CohenCyril created PR Review Comment on #516 Generalizing max and min to porderType:

`(* [arg max_(i > i0 | P) M] == a value i maximizing M subject to P and *)`

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #514 Lemma addition to ssrnum.

CohenCyril edited PR #519 Missing homo/mono lemmas in the presence of cancellation from `homomono_in`

to `master`

:

## Motivation for this change

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~added corresponding documentation in the headers~
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 submitted PR Review for #516 Generalizing max and min to porderType.

pi8027 submitted PR Review for #516 Generalizing max and min to porderType.

pi8027 created PR Review Comment on #516 Generalizing max and min to porderType:

``join`, and providing a theory about for min and max, hence generalizing`

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

ybertot merged PR #514 Lemma addition to ssrnum.

ybertot pushed 9 commits to branch master. Commits by affeldt-aist (8) and ybertot (1).

- three lemmas that we found useful in the context of the (83e8892)
- tentative change of naming convention and add variants (a659583)
- another lemma about norm from mathcomp-analysis (3d77e49)
- add real_* variants (e5165bd)
- fix naming (0a999b9)
- fix md formatting (86c72a2)
- fix changelog (33c29d4)
- fix naming (847cc0e)
- Merge pull request #514 from affeldt-aist/lemmas_from_analysis_20200521 (4345954)

affeldt-aist opened PR #522 change links to the wiki to links to the website from `update_readme`

to `master`

:

## Motivation for this change

The README points to pages of the wiki that have not been updated while the website contains more up-to-date and better formatted information.

## Things done/to do

<!-- please fill in the following checklist -->

~- [ ] added corresponding entries in`CHANGELOG_UNRELEASED.md`

~

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist updated PR #522 change links to the wiki to links to the website from `update_readme`

to `master`

:

## Motivation for this change

The README points to pages of the wiki that have not been updated while the website contains more up-to-date and better formatted information.

## Things done/to do

<!-- please fill in the following checklist -->

~- [ ] added corresponding entries in`CHANGELOG_UNRELEASED.md`

~

~- [ ] added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #516 Generalizing max and min to porderType from `maxr`

to `master`

:

## Motivation for this change

This PR redefines max and min with a general theory in order.v, and thus fixes #515.

It also fixes several potential bugs in their definition.

- max and min are not defined in terms or meet and join anymore
- extremum_inP is a generalization of extremum suitable for a partial order
- arg_min and arg_max are usable in a porderType
- equivalences between min and meet, and max and join are proven for orderType
- leP, ltP, ltgtP, and
`[l]?comparable_.*P`

lemmas have been generalized to take this into account- total_display was completely removed
`Order.max`

and`Order.min`

are now convertible to`maxn`

and`minn`

`(fun _ _ => erefl)`

in`LeOrderMixin`

and`LtOrderMixin`

gives`meet`

/`join`

which are convertible to`min`

/`max`

`Order.max`

and`Order.min`

are not convertible to former`Num.max`

and`Num.min`

- min and max can now be used in a partial order (sometimes under preconditions)
- min and max can now be used in a
`numDomainType`

(sometimes under preconditions)- the compatibility module has been fixed accordingly
- deprecating
`fintype.arg_(min|max)P`

- removing dangling comments connecting min max and meet join
- better compatibility module
- removing broken notations with
`\min`

and`\max`

(no neutral available)- fixing
`incompare`

and`incomparel`

in order.v- adding missing elimination lemmas (
`(comparable_)?(max|min)E[lg][et]`

)- adding missing
`(comparable|real)_arg(min|max)P`

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(explain the renaming)`min`

and`max`

in the header of`order.v`

)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`homomono_in`

to `master`

:

## Motivation for this change

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~added corresponding documentation in the headers~
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist closed Issue #515 max and min are too specific:

From 1.10 to 1.11+beta1 we lost in generality in

`ssrnum.v`

: indeed`max`

and`min`

where defined in a`numDomainType`

, but they are now defined in terms of`meet`

and`join`

, which requires at least lattice, which a`numDomainType`

is not...`Order.max`

(and`Order.min`

) as`if x <= y then y else x`

(and similar for min), and develop their theory in a partial order, when elements are all comparable between themselves. Then link them with meet and join when appropriate.`Num.max`

and`Num.min`

but this would be confusing if we keep`Order.min`

and`Order.max`

.In any case these definitions must match exactly the one that existed in 1.10.0 for backward compatiblity reasons and the equations given in the factories for total order (which should be updated if they do not match).

affeldt-aist merged PR #516 Generalizing max and min to porderType.

affeldt-aist pushed 6 commits to branch master. Commits by CohenCyril (4) and affeldt-aist (2).

- Generalizing max and min to porderType (04e78bb)
- Increasing definitional equalities (19d1899)
- General theory of min and max, and use in ssrnum (efed180)
- tentative changelog (7f35534)
- Improvements (ccea591)
- Merge pull request #516 from CohenCyril/maxr (258f7f9)

`homomono_in`

to `master`

:

## Motivation for this change

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~added corresponding documentation in the headers~
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril merged PR #522 change links to the wiki to links to the website.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and affeldt-aist (1).

- change links to the wiki to links to the website (d50fa93)
- Merge pull request #522 from affeldt-aist/update_readme (778a88c)

CohenCyril closed Issue #496 Bugfixes for 1.11.0 (assigned to CohenCyril):

- add again
`maxr`

lemmas (`maxrC`

, ...)- reincorportate
`incnr_inj`

etc,- add missing
`leW_mono`

etc for order too.

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril created PR Review Comment on #509 Card lemmas:

if you are going to add

`take_uniq`

, also add`drop_uniq`

CohenCyril created PR Review Comment on #509 Card lemmas:

`exists [:: x; y; z]; rewrite /= !inE negb_or xDy xDz eq_sym yDz; split=> // u.`

CohenCyril created PR Review Comment on #509 Card lemmas:

`by exists a, b; rewrite aDb !subD ?inE ?eqxx ?orbT.`

CohenCyril created PR Review Comment on #509 Card lemmas:

`by exists x, y, z; rewrite xDy yDz eq_sym xDz !subA ?inE ?eqxx ?orbT.`

CohenCyril created PR Review Comment on #509 Card lemmas:

`by exists [:: x; y]; rewrite /= !inE xDy ; split=> // z; rewrite !inE => /pred2P[]->.`

CohenCyril created PR Review Comment on #509 Card lemmas:

`Proof. apply: (iffP (card_le1_eqP {:T})); [exact: in2T | exact: in2W]. Qed.`

CohenCyril created PR Review Comment on #509 Card lemmas:

`reflect {in A &, forall x, all_equal_to x} (#|A| <= 1).`

CohenCyril created PR Review Comment on #509 Card lemmas:

CohenCyril created PR Review Comment on #509 Card lemmas:

`by exists x; do 1?exists y; rewrite // -root_connect // (eqP rfx) (eqP rfy).`

CohenCyril created PR Review Comment on #509 Card lemmas:

`move=> [x] [y] [/andP [/= rfx xA]] [/andP[/= rfy yA] xDy].`

CohenCyril created PR Review Comment on #509 Card lemmas:

`case: s => [|x [|y [|z []]]]//=; rewrite !inE !andbT negb_or -andbA.`

CohenCyril created PR Review Comment on #509 Card lemmas:

`case: s => [|a [|b []]]//=; rewrite inE andbT => aDb _ subD.`

CohenCyril created PR Review Comment on #509 Card lemmas:

`by rewrite !inE => /or3P [] /eqP->.`

chdoc submitted PR Review for #509 Card lemmas.

chdoc created PR Review Comment on #509 Card lemmas:

Will do.

chdoc updated PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc updated PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**chdoc** requested CohenCyril for a review on PR #509 Card lemmas.

chdoc opened Issue #523 Cachix actions running and failing on forks:

Unlike the GitLab CI pipeline, which is not executed on forks of

`math-comp`

, the`cachix`

actions are trying to execute and fail (while they succeed on the same commits in the`math-comp`

context).See https://github.com/chdoc/math-comp/runs/746817379

This means that updating the master branch of a fork generates emails about run failures.

erikmd opened PR #524 [CI/CD] Deploy mathcomp/mathcomp-dev:coq-8.12 (with Coq 8.12+alpha) from `coq-8.12`

to `master`

:

## Motivation for this change

Coq 8.12+beta1 is not yet released (see this wiki page for the roadmap) but as suggested by @palmskog on Zulip, it can be useful to test projects with Coq 8.12+alpha in advance.

So a

`coqorg/coq:8.12 = coqorg/coq:8.12-alpha`

is now available and rebuilt every night from the`v8.12`

branch. Also, this PR will auto-deploy an accompanying version of mathcomp.dev in`mathcomp/mathcomp-dev:coq-8.12`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- [x] ~added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

erikmd edited PR #524 [CI/CD] Deploy mathcomp/mathcomp-dev:coq-8.12 (with Coq 8.12+alpha) from `coq-8.12`

to `master`

:

## Motivation for this change

Coq 8.12+beta1 is not yet released (see this wiki page for the roadmap) but as suggested by @palmskog on Zulip, it can be useful to test projects with Coq 8.12+alpha in advance.

So a

`coqorg/coq:8.12 = coqorg/coq:8.12-alpha`

is now available and rebuilt every night from the`v8.12`

branch. Also, this PR will auto-deploy an accompanying version of mathcomp.dev in`mathcomp/mathcomp-dev:coq-8.12`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- [x] ~added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

erikmd updated PR #524 [CI/CD] Deploy mathcomp/mathcomp-dev:coq-8.12 (with Coq 8.12+alpha) from `coq-8.12`

to `master`

:

## Motivation for this change

Coq 8.12+beta1 is not yet released (see this wiki page for the roadmap) but as suggested by @palmskog on Zulip, it can be useful to test projects with Coq 8.12+alpha in advance.

So a

`coqorg/coq:8.12 = coqorg/coq:8.12-alpha`

is now available and rebuilt every night from the`v8.12`

branch. Also, this PR will auto-deploy an accompanying version of mathcomp.dev in`mathcomp/mathcomp-dev:coq-8.12`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- [x] ~added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

erikmd updated PR #524 [CI/CD] Deploy mathcomp/mathcomp-dev:coq-8.12 (with Coq 8.12+alpha) from `coq-8.12`

to `master`

:

## Motivation for this change

`coqorg/coq:8.12 = coqorg/coq:8.12-alpha`

is now available and rebuilt every night from the`v8.12`

branch. Also, this PR will auto-deploy an accompanying version of mathcomp.dev in`mathcomp/mathcomp-dev:coq-8.12`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

erikmd closed without merge PR #524 [CI/CD] Deploy mathcomp/mathcomp-dev:coq-8.12 (with Coq 8.12+alpha)

erikmd reopened PR #524 [CI/CD] Deploy mathcomp/mathcomp-dev:coq-8.12 (with Coq 8.12+alpha) from `coq-8.12`

to `master`

:

## Motivation for this change

`coqorg/coq:8.12 = coqorg/coq:8.12-alpha`

is now available and rebuilt every night from the`v8.12`

branch. Also, this PR will auto-deploy an accompanying version of mathcomp.dev in`mathcomp/mathcomp-dev:coq-8.12`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril merged PR #524 [CI/CD] Deploy mathcomp/mathcomp-dev:coq-8.12 (with Coq 8.12+alpha)

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and erikmd (1).

- [CI/CD] Deploy mathcomp/mathcomp-dev:coq-8.12 (with Coq 8.12+alpha) (2b4e709)
- Merge pull request #524 from erikmd/coq-8.12 (239983f)

`homomono_in`

to `master`

:

## Motivation for this change

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~added corresponding documentation in the headers~
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril created PR Review Comment on #509 Card lemmas:

this is not resolved...

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril created PR Review Comment on #509 Card lemmas:

`move=> clfA; apply: (iffP card_gt0P) => [[x /andP[]]|[x xA]]; first by exists x.`

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril created PR Review Comment on #509 Card lemmas:

This change I suggested apparently causes an overflow of the 80 character liimit, I suggest splitting the line as follows:

`exists [:: x; y]; rewrite /= !inE xDy. by split=> // z; rewrite !inE => /pred2P[]->.`

CohenCyril opened PR #525 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Fixes #523

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #525 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Fixes #523

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #525 Cachix action from `cachix-action`

to `master`

:

## Motivation for this change

Fixes #523

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

we are just about to merge #519 and then start the release process.

we wish to invite you on skype

affeldt-aist opened Issue #526 backport ssrbool and ssrfun to Coq:

Backport

`ssrbool.v`

(PR #513 PR #519 ) and`ssrfun.v`

.NB: https://github.com/affeldt-aist/coq/tree/ssrbool_backport_MathComp1.11

already contains an`ssrbool.v`

file with PR #513 and PR #519.@CohenCyril @ybertot

CohenCyril closed Issue #523 Cachix actions running and failing on forks:

Unlike the GitLab CI pipeline, which is not executed on forks of

`math-comp`

, the`cachix`

actions are trying to execute and fail (while they succeed on the same commits in the`math-comp`

context).See https://github.com/chdoc/math-comp/runs/746817379

This means that updating the master branch of a fork generates emails about run failures.

CohenCyril merged PR #525 Cachix action.

CohenCyril pushed 1 commit to branch master.

- Cachix action (#525) (6762000)

affeldt-aist milestoned Issue #447 treating deprecation warnings that appear with coq-8.10 (assigned to CohenCyril):

## Motivation for this change

<!-- please explain your reason for doing this change -->

Remove deprecation warnings that became apparent at the time of the 1.10.0 release.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist demilestoned Issue #447 treating deprecation warnings that appear with coq-8.10 (assigned to CohenCyril):

## Motivation for this change

<!-- please explain your reason for doing this change -->

Remove deprecation warnings that became apparent at the time of the 1.10.0 release.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

ybertot edited PR #519 Missing homo/mono lemmas in the presence of cancellation from `homomono_in`

to `master`

:

## Motivation for this change

`MonoHomoMorphismTheory_in`

from`coq/theories/ssr/ssrbool.v`

is completely unusable because it's`rD`

is too specific, and the cancellation hypothesis is too restrictive`{on D, cancel f a g}`

which barely covers the use cases (e.g. in mathcomp/analysis).Fixes #518

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~added corresponding documentation in the headers~
- [x] backport to
`coq/theories/ssr/ssrbool.v`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril opened PR #527 Adding only parsong to notations in ssrAC from `ssrAC_only_parsing_fix`

to `master`

:

## Motivation for this change

Silence warning by declaring some notations

`only parsing`

.## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist edited Issue #526 backport ssrbool and ssrfun to Coq:

TODO: Backport

`ssrbool.v`

(PR #513 PR #519 ) and`ssrfun.v`

.NB: https://github.com/affeldt-aist/coq/tree/ssrbool_backport_MathComp1.11

already contains an`ssrbool.v`

file with PR #513 and PR #519.@CohenCyril @ybertot

ybertot closed Issue #518 Missing mono/homo lemmas:

ybertot merged PR #519 Missing homo/mono lemmas in the presence of cancellation.

ybertot pushed 6 commits to branch master. Commits by CohenCyril (3), affeldt-aist (2) and ybertot (1).

- Missing homo_mono lemmas (344207b)
- add new lemmas to the changelog (0a4c927)
- fix the changelog (19a798c)
- bugfix (9e73d5d)
- Documenting addition policy to coq. (c07a2c8)
- Merge pull request #519 from CohenCyril/homomono_in (3c425a6)

CohenCyril opened PR #528 silencing warnings in individual packages from `silence_warnings`

to `master`

:

## Motivation for this change

Subsumes and closes #447

We opt for an aggressive silencing in package subdirectories`Make`

in order for users of individual packages (through opam and nix mainly) to get no warnings.

We keep the current, light, silencing in the main`Make`

to make sure we get some diagnostics.We should open an issue for silencing in a better way (by fixing the code) from 1.12.0 is we support only Coq >= 8.10.0

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril milestoned Issue #528 silencing warnings in individual packages:

## Motivation for this change

Subsumes and closes #447

We opt for an aggressive silencing in package subdirectories`Make`

in order for users of individual packages (through opam and nix mainly) to get no warnings.

We keep the current, light, silencing in the main`Make`

to make sure we get some diagnostics.We should open an issue for silencing in a better way (by fixing the code) from 1.12.0 is we support only Coq >= 8.10.0

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist opened Issue #529 Reducing the number of displayed warnings:

This issue records comments that occurred with PR #447

(merged on the occasion of the release of MathComp 1.11).By default, there are many warnings and we do not want to have

too much of them when compiling, in particular for end-users

(likely to compile via opam and thus using Makefiles in MathComp

subdirectories).Currently, we silence (see

`mathcomp/Make`

):

- "undeclared scope" and "duplicate clear" warnings

- We cannot yet get rid of them because of backward compatibility.
- "ambiguous paths" warnings

- Developers may actually want to be aware of them and there is

on-going work at the Coq level to reduce their numbersTODO:

- Timing to get rid of
`-arg -w -arg -undeclared-scope`

(by definitely fixing what cause these warnings)?- Restore display of "ambiguous paths" warnings for developers?
@CohenCyril @ybertot

affeldt-aist edited Issue #529 Reducing the number of displayed warnings:

This issue records comments that occurred with PR #447

(merged on the occasion of the release of MathComp 1.11).By default, there are many warnings and we do not want to have

too much of them when compiling, in particular for end-users

(likely to compile via opam and thus using Makefiles in MathComp

subdirectories).See PR #528 for current policy.

Currently, we silence (see

`mathcomp/Make`

):

- "undeclared scope" and "duplicate clear" warnings

- We cannot yet get rid of them because of backward compatibility.
- "ambiguous paths" warnings

- Developers may actually want to be aware of them and there is

on-going work at the Coq level to reduce their numbersTODO:

- Timing to get rid of
`-arg -w -arg -undeclared-scope`

(by definitely fixing what cause these warnings)?- Restore display of "ambiguous paths" warnings for developers?
@CohenCyril @ybertot

affeldt-aist edited Issue #526 backport ssrbool to Coq:

TODO: Backport

`ssrbool.v`

(PR #513 PR #519 ) and`ssrfun.v`

.NB: https://github.com/affeldt-aist/coq/tree/ssrbool_backport_MathComp1.11

already contains an`ssrbool.v`

file with PR #513 and PR #519.@CohenCyril @ybertot

affeldt-aist edited Issue #526 backport ssrbool to Coq:

Backport to Coq new contents from

`ssrbool.v`

(as introduced by PR #513 PR #519 ).https://github.com/affeldt-aist/coq/tree/ssrbool_backport_MathComp1.11

already contains an`ssrbool.v`

file with an integration of PR #513 and PR #519

and is ready to be PRed.@CohenCyril @ybertot

(NB: this issue has been edited, it was mentioning

`ssrfun.v`

but its contents have already made their way to Coq)

affeldt-aist milestoned Issue #529 Reducing the number of displayed warnings:

This issue records comments that occurred with PR #447

(merged on the occasion of the release of MathComp 1.11).By default, there are many warnings and we do not want to have

too much of them when compiling, in particular for end-users

(likely to compile via opam and thus using Makefiles in MathComp

subdirectories).See PR #528 for current policy.

Currently, we silence (see

`mathcomp/Make`

):

- "undeclared scope" and "duplicate clear" warnings

- We cannot yet get rid of them because of backward compatibility.
- "ambiguous paths" warnings

- Developers may actually want to be aware of them and there is

on-going work at the Coq level to reduce their numbersTODO:

- Timing to get rid of
`-arg -w -arg -undeclared-scope`

(by definitely fixing what cause these warnings)?- Restore display of "ambiguous paths" warnings for developers?
@CohenCyril @ybertot

affeldt-aist labeled Issue #529 Reducing the number of displayed warnings:

(merged on the occasion of the release of MathComp 1.11).

too much of them when compiling, in particular for end-users

(likely to compile via opam and thus using Makefiles in MathComp

subdirectories).See PR #528 for current policy.

Currently, we silence (see

`mathcomp/Make`

):

- We cannot yet get rid of them because of backward compatibility.

on-going work at the Coq level to reduce their numbersTODO:

`-arg -w -arg -undeclared-scope`

(by definitely fixing what cause these warnings)?- Restore display of "ambiguous paths" warnings for developers?
@CohenCyril @ybertot

affeldt-aist milestoned Issue #526 backport ssrbool to Coq:

Backport to Coq new contents from

`ssrbool.v`

(as introduced by PR #513 PR #519 ).https://github.com/affeldt-aist/coq/tree/ssrbool_backport_MathComp1.11

already contains an`ssrbool.v`

file with an integration of PR #513 and PR #519

and is ready to be PRed.@CohenCyril @ybertot

(NB: this issue has been edited, it was mentioning

`ssrfun.v`

but its contents have already made their way to Coq)

CohenCyril merged PR #528 silencing warnings in individual packages.

CohenCyril closed without merge PR #447 treating deprecation warnings that appear with coq-8.10.

CohenCyril pushed 2 commits to branch master.

- silencing warnings in individual packages (fe6a6d9)
- Merge pull request #528 from CohenCyril/silence_warnings (ed58f30)

coqbot demilestoned Issue #447 treating deprecation warnings that appear with coq-8.10 (assigned to CohenCyril):

## Motivation for this change

<!-- please explain your reason for doing this change -->

Remove deprecation warnings that became apparent at the time of the 1.10.0 release.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril opened PR #530 More CI from `moreCI`

to `master`

:

- fourcolor 8.11 and 8.12
- odd-order 8.11 and 8.12
- bigenough 8.11 and 8.12
- finmap 8.11 and 8.12
## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #530 More CI from `moreCI`

to `master`

:

- fourcolor 8.11 and 8.12
- odd-order 8.11 and 8.12
- bigenough 8.11 and 8.12
- finmap 8.11 and 8.12
## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril opened PR #531 turning let into local definition from `fix_cyclotomic`

to `master`

:

## Motivation for this change

This silences a warning, by replacing a toplevel

`Let`

with a`Local Definition`

as sugested by the warning.

```

Warning: Interpreting this declaration as if a global declaration prefixed by

"Local", i.e. as a global declaration which shall not be available without

qualification when imported. [local-declaration,scope]`##### Things done/to do <!-- please fill in the following checklist --> - ~added corresponding entries in `CHANGELOG_UNRELEASED.md`~ - ~added corresponding documentation in the headers~ <!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent --> <!-- You may also add more items to explain what you did and what remains to do --> <!-- leave this note as a reminder to reviewers --> ##### Automatic note to reviewers Read [this Checklist](https://github.com/math-comp/math-comp/wiki/Checklist-for-following,-reviewing-and-playing-with-a-PR#checklist-for-reviewing-a-pr) and make sure there is a milestone. ~~~`

CohenCyril milestoned Issue #531 turning let into local definition:

## Motivation for this change

This silences a warning, by replacing a toplevel

`Let`

with a`Local Definition`

as sugested by the warning.

```

Warning: Interpreting this declaration as if a global declaration prefixed by

"Local", i.e. as a global declaration which shall not be available without

qualification when imported. [local-declaration,scope]`##### Things done/to do <!-- please fill in the following checklist --> - ~added corresponding entries in `CHANGELOG_UNRELEASED.md`~ - ~added corresponding documentation in the headers~ <!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent --> <!-- You may also add more items to explain what you did and what remains to do --> <!-- leave this note as a reminder to reviewers --> ##### Automatic note to reviewers Read [this Checklist](https://github.com/math-comp/math-comp/wiki/Checklist-for-following,-reviewing-and-playing-with-a-PR#checklist-for-reviewing-a-pr) and make sure there is a milestone. ~~~`

CohenCyril merged PR #531 turning let into local definition.

CohenCyril pushed 2 commits to branch master.

- turning let into local definition (6bfc094)
- Merge pull request #531 from CohenCyril/fix_cyclotomic (6784363)

CohenCyril opened PR #532 fix coq 8.12 warnings from `silence-8.12-warnings`

to `master`

:

## Motivation for this change

We address new warnings that arise from coq 8.12

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #527 Adding only parsing to notations in ssrAC from `ssrAC_only_parsing_fix`

to `master`

:

## Motivation for this change

Silence warning by declaring some notations

`only parsing`

.## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #532 fix coq 8.12 warnings from `silence-8.12-warnings`

to `master`

:

## Motivation for this change

We address new warnings that arise from coq 8.12

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #532 fix coq 8.12 warnings from `silence-8.12-warnings`

to `master`

:

## Motivation for this change

We address new warnings that arise from coq 8.12

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril milestoned Issue #532 fix coq 8.12 warnings:

## Motivation for this change

We address new warnings that arise from coq 8.12

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril merged PR #532 fix coq 8.12 warnings.

CohenCyril pushed 2 commits to branch master.

- fix coq 8.12 warnings (8006cbf)
- Merge pull request #532 from CohenCyril/silence-8.12-warnings (226a0f5)

ybertot:

- edited Howto Release

ybertot:

- edited Howto Release

ybertot:

- edited Howto Release

CohenCyril:

- edited Howto Release

CohenCyril:

- edited Howto Release

CohenCyril:

- edited Howto Release

CohenCyril:

- edited Howto Release

affeldt-aist opened PR #533 edit changelogs before release from `changelogs_before_release`

to `master`

:

## Motivation for this change

Update changelogs before release

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~~- [ ] added corresponding documentation in the headers~~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**affeldt-aist** requested CohenCyril for a review on PR #533 edit changelogs before release.

**affeldt-aist** requested CohenCyril and ybertot for a review on PR #533 edit changelogs before release.

affeldt-aist updated PR #533 edit changelogs before release from `changelogs_before_release`

to `master`

:

## Motivation for this change

Update changelogs before release

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~~- [ ] added corresponding documentation in the headers~~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril:

- edited Howto Release

affeldt-aist updated PR #533 edit changelogs before release from `changelogs_before_release`

to `master`

:

## Motivation for this change

Update changelogs before release

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~~- [ ] added corresponding documentation in the headers~~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

ybertot:

- edited Howto Release

CohenCyril:

- edited Howto Release

CohenCyril:

- edited Howto Release

CohenCyril milestoned Issue #533 edit changelogs before release:

## Motivation for this change

Update changelogs before release

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~~- [ ] added corresponding documentation in the headers~~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #533 edit changelogs before release.

CohenCyril opened PR #534 add lua&sed to shell and switch to coq 8.11 + fixing doc from `doc-1.11`

to `master`

:

## Motivation for this change

- The doc of order.v was badly displayed,
`<<`

and`<<<`

was interpreted as`<tt>`

messing with the rest of the doc- The nix shell is now ready to use with make doc (howto release updated accordingly)
## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #534 add lua&sed to nixshell and switch to coq 8.11 + fixing doc from `doc-1.11`

to `master`

:

## Motivation for this change

- The doc of order.v was badly displayed,
`<<`

and`<<<`

was interpreted as`<tt>`

messing with the rest of the doc- The nix shell is now ready to use with make doc (howto release updated accordingly)
## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril merged PR #534 add lua&sed to nixshell and switch to coq 8.11 + fixing doc.

CohenCyril pushed 2 commits to branch master.

- add lua&sed to shell and switch to coq 8.11 + fixing doc (b13a3ab)
- Merge pull request #534 from CohenCyril/doc-1.11 (651076a)

affeldt-aist merged PR #533 edit changelogs before release.

affeldt-aist pushed 2 commits to branch master.

- edit changelogs before release (4c7617b)
- Merge pull request #533 from affeldt-aist/changelogs_before_release (a54978b)

CohenCyril milestoned Issue #534 add lua&sed to nixshell and switch to coq 8.11 + fixing doc:

## Motivation for this change

- The doc of order.v was badly displayed,
`<<`

and`<<<`

was interpreted as`<tt>`

messing with the rest of the doc- The nix shell is now ready to use with make doc (howto release updated accordingly)
## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

ybertot created release The Mathematical Components Library 1.11.0 for tag mathcomp-1.11.0.

ybertot published release The Mathematical Components Library 1.11.0 for tag mathcomp-1.11.0.

ybertot prereleased release The Mathematical Components Library 1.11.0 for tag mathcomp-1.11.0.

ybertot pushed tag mathcomp-1.11.0.

ybertot released release The Mathematical Components Library 1.11.0 for tag mathcomp-1.11.0.

CohenCyril deleted release The Mathematical Components Library 1.11.0+beta1 for tag mathcomp-1.11.0+beta1.

CohenCyril edited release The Mathematical Components Library 1.11.0 for tag mathcomp-1.11.0.

CohenCyril:

- edited Howto Release

CohenCyril:

- edited Howto Release

CohenCyril pushed 1 commit to branch master.

- mailmap for Yves and Reynald (7d2443e)

ybertot:

- edited Howto Release

CohenCyril pushed 1 commit to branch master.

- fixing mailmap (a019067)

CohenCyril edited release The Mathematical Components Library 1.11.0 for tag mathcomp-1.11.0.

CohenCyril:

- edited Howto Release

CohenCyril:

- edited Howto Release

CohenCyril edited release The Mathematical Components Library 1.11+beta1 for tag mathcomp-1.11+beta1.

CohenCyril pushed 1 commit to branch master.

- Complying to SPDX (06c58fe)

CohenCyril pushed 1 commit to branch master.

- removing opam
`| (= "dev")`

for released packages (313e443)

CohenCyril:

- edited Howto Release

ybertot:

- edited Howto Release

ybertot:

- edited Howto Release

CohenCyril opened PR #535 Generated opam packages allow coq-dev again from `allow-coq-dev`

to `master`

:

## Motivation for this change

As a result of a discussion on Zulip

Reverts "removing opam`| (= "dev")`

for released packages"

(commit 313e44316177c918b363c118f15297e08d13eb4e).## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril merged PR #535 Generated opam packages allow coq-dev again.

CohenCyril pushed 2 commits to branch master.

- Generated opam packages allow coq-dev again (02ca8ee)
- Merge pull request #535 from CohenCyril/allow-coq-dev (e0437e0)

`intro_rw`

to `master`

:

## Motivation for this change

- calling rewrite from an intro pattern, use with parsimony

`=> /[1! rules]`

does`rewrite rules`

`=> /[! rules]`

does`rewrite !rules`

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #530 More CI from `moreCI`

to `master`

:

- fourcolor 8.11 and 8.12
- odd-order 8.11 and 8.12
- bigenough 8.11 and 8.12
- finmap 8.11 and 8.12
## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #521 In and on from `in_on`

to `master`

:

## Motivation for this change

These new lemmas describe more precisely the possible interactions between

`in`

and`on`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~added corresponding documentation in the headers~
- [ ] backport to Coq

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #507 Add more test cases for higher-order recursive functions in seq.v w.r.t. the guard condition from `test-guard-cond`

to `master`

:

## Motivation for this change

This PR adds some test cases in

`test_suite/test_guard.v`

which I promised to do in https://github.com/math-comp/math-comp/pull/471#issuecomment-611521366. Currently, test cases for`find`

,`filter`

,`count`

,`pmap`

,`pairmap`

,`scanl`

are missing.<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- ~[ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #464 [WIP] meet semilattice structures from `semilattices`

to `master`

:

## Motivation for this change

This PR adds the following structures:

`meetSemilatticeType`

: inf-semilattice,`bSemilatticeType`

: inf-semilattice with the bottom.cc: @strub

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [ ] merge dependency: #494

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #494 Get rid of displays in class fields and mixin parameters (assigned to CohenCyril) from `rm-displays-in-classes`

to `master`

:

## Motivation for this change

This PR removes displays from class fields and mixin parameters, and also refactor factories and builders, as preliminary work for PR #464.

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [x] merge dependency: #490

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #458 [WIP] new interval library from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures. The main achievements are that intervals on a

`latticeType`

form a`latticeType`

where join is the intersection and meet is the convex hull, and intervals on an`orderType`

form a`distrLatticeType`

as well.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #458 [WIP] new interval library from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures. The main achievements are that intervals on a

`latticeType`

form a`latticeType`

where join is the intersection and meet is the convex hull, and intervals on an`orderType`

form a`distrLatticeType`

as well.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 opened PR #536 Fix some hierarchy.ml related issues from `hierarchy`

to `master`

:

## Motivation for this change

- Fix some issues reported by @strub:

- pass
`Unix.environment ()`

to`coqtop`

to preserve the parent process environment,- check the exit status of
`coqtop`

and report an error if it is wrong.- Fix some
`Makefile`

issues:

- rename
`hierarchy_test.v`

to`test_hierarchy_all.v`

because other test cases are named`test_*.v`

and we may also have`test_hierarchy_ssreflect.v`

,`test_hierarchy_fingroup.v`

, etc. (but I actually had some issues to implement this feature in the`Makefile`

),- the
`build`

prerequisite of`test_suite/test_hierarchy_all.v`

should be order only (right?),- fix
`make test_suite/*.vo`

by adding a rule.## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #536 Fix some hierarchy.ml related issues from `hierarchy`

to `master`

:

## Motivation for this change

- Fix some issues reported by @strub:

- pass
`Unix.environment ()`

to`coqtop`

to preserve the parent process environment,- check the exit status of
`coqtop`

and report an error if it is wrong.- Fix some
`Makefile`

issues:

- rename
`hierarchy_test.v`

to`test_hierarchy_all.v`

because other test cases are named`test_*.v`

and we may also have`test_hierarchy_ssreflect.v`

,`test_hierarchy_fingroup.v`

, etc. (but I actually had some issues to implement this feature in the`Makefile`

),- since the
`test_suite`

directory exists from the beginning, we do not need to do`mkdir -p test_suite`

,- the
`build`

prerequisite of`test_suite/test_hierarchy_all.v`

should be order only (right?),- fix
`make test_suite/*.vo`

by adding a rule.## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 submitted PR Review for #536 Fix some hierarchy.ml related issues.

pi8027 created PR Review Comment on #536 Fix some hierarchy.ml related issues:

@CohenCyril I meant "order-only prerequisites" in this documentation. If we remove this pipe symbol, repeating

`make test-suite`

forces us to rerun the test suite.

pi8027 submitted PR Review for #536 Fix some hierarchy.ml related issues.

pi8027 created PR Review Comment on #536 Fix some hierarchy.ml related issues:

After re-reading the documentation, I think this is not the right solution. Sorry for the mess.

CohenCyril submitted PR Review for #499 contra lemmas involving propositions.

CohenCyril submitted PR Review for #499 contra lemmas involving propositions.

CohenCyril created PR Review Comment on #499 contra lemmas involving propositions:

`auto`

has an impredictable behavior wrt the use of the section context. So I'd recommend doing the proof by hand or writing an explicit`Proof using T1.`

to make sure`T2`

is not pulled in by accident...

pi8027 edited PR #536 Fix some hierarchy.ml related issues from `hierarchy`

to `master`

:

## Motivation for this change

- Fix some issues reported by @strub:

- pass
`Unix.environment ()`

to`coqtop`

to preserve the parent process environment,- check the exit status of
`coqtop`

and report an error if it is wrong.- Fix some
`Makefile`

issues:

- rename
`hierarchy_test.v`

to`test_hierarchy_all.v`

because other test cases are named`test_*.v`

and we may also have`test_hierarchy_ssreflect.v`

,`test_hierarchy_fingroup.v`

, etc. (but I actually had some issues to implement this feature in the`Makefile`

),- since the
`test_suite`

directory exists from the beginning, we do not need to do`mkdir -p test_suite`

,- ~the
`build`

prerequisite of`test_suite/test_hierarchy_all.v`

should be order only (right?),~- fix
`make test_suite/*.vo`

by adding a rule.## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #536 Fix some hierarchy.ml related issues from `hierarchy`

to `master`

:

## Motivation for this change

- pass
`Unix.environment ()`

to`coqtop`

to preserve the parent process environment,- check the exit status of
`coqtop`

and report an error if it is wrong.- Fix some
`Makefile`

issues:

`hierarchy_test.v`

to`test_hierarchy_all.v`

because other test cases are named`test_*.v`

and we may also have`test_hierarchy_ssreflect.v`

,`test_hierarchy_fingroup.v`

, etc. (but I actually had some issues to implement this feature in the`Makefile`

),- since the
`test_suite`

directory exists from the beginning, we do not need to do`mkdir -p test_suite`

,- ~the
`build`

prerequisite of`test_suite/test_hierarchy_all.v`

should be order only (right?),~- fix
`make test_suite/*.vo`

by adding a rule.## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

gares:

- edited Home

gares:

- created Minutes June 16 2020

gares:

- edited Minutes June 16 2020

CohenCyril closed Issue #327 Issue with the Howto release:

Missing steps for Howto Release:

- [x] how to publish released docker images
- [x] how to update the online documentation
cc @gares

cc @erikmd

gares:

- edited Minutes June 16 2020

gares:

- edited TopicsNextMeeting

pi8027 updated PR #536 Fix some hierarchy.ml related issues from `hierarchy`

to `master`

:

## Motivation for this change

- pass
`Unix.environment ()`

to`coqtop`

to preserve the parent process environment,- check the exit status of
`coqtop`

and report an error if it is wrong.- Fix some
`Makefile`

issues:

`hierarchy_test.v`

to`test_hierarchy_all.v`

because other test cases are named`test_*.v`

and we may also have`test_hierarchy_ssreflect.v`

,`test_hierarchy_fingroup.v`

, etc. (but I actually had some issues to implement this feature in the`Makefile`

),- since the
`test_suite`

directory exists from the beginning, we do not need to do`mkdir -p test_suite`

,- ~the
`build`

prerequisite of`test_suite/test_hierarchy_all.v`

should be order only (right?),~- fix
`make test_suite/*.vo`

by adding a rule.## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril:

- edited Home

affeldt-aist opened PR #537 missing bigop lemmas from `from_analysis_20200617`

to `master`

:

Co-authored-by: Cohen Cyril <cyril.cohen@inria.fr>

## Motivation for this change

missing lemmas discovered while developing mathcomp-analysis

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~~- [ ] added corresponding documentation in the headers~~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc updated PR #499 contra lemmas involving propositions from `contra-prop`

to `master`

:

## Motivation for this change

Various forms of contraposition are constructively provable and having a collection of lemmas whose naming is consistent with the

`contra`

lemmas already in mathcomp makes it easier and more idiomatic to use them.fixes #491

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers (
`contra`

lemmas have no header documentation)- [ ] Coq side pull request to launch propagation to
`Coq.ssr.ssrbool`

- [ ] find places within mathcomp where these should be used (optional)
<!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc updated PR #499 contra lemmas involving propositions from `contra-prop`

to `master`

:

## Motivation for this change

Various forms of contraposition are constructively provable and having a collection of lemmas whose naming is consistent with the

`contra`

lemmas already in mathcomp makes it easier and more idiomatic to use them.fixes #491

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers (
`contra`

lemmas have no header documentation)- [ ] Coq side pull request to launch propagation to
`Coq.ssr.ssrbool`

- [ ] find places within mathcomp where these should be used (optional)
<!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc submitted PR Review for #499 contra lemmas involving propositions.

chdoc created PR Review Comment on #499 contra lemmas involving propositions:

Done.

chdoc updated PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc updated PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc updated PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril created PR Review Comment on #509 Card lemmas:

One last nitpicking that I did not see (we should really have a linter):

`reflect (exists x y z, [/\ x \in A, y \in A & z \in A] /\ [/\ x != y, y != z & z != x])`

CohenCyril updated PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril created PR Review Comment on #537 missing bigop lemmas:

In ssrnum,

`%O`

can and must be omitted (unless I am mistaken, but if they can, they must).

CohenCyril submitted PR Review for #537 missing bigop lemmas.

CohenCyril submitted PR Review for #499 contra lemmas involving propositions.

CohenCyril closed Issue #491 "contra" lemmas for propositions:

I've grown quite accustomed to using the various "contra" lemmas to be found

`ssrbool`

. However, sometimes the involved facts are actual propositions and their negations. For this purpose, I've started to use the following collection of lemmas:`Lemma contraTnot b (P : Prop) : (P -> ~~ b) -> (b -> ~ P). Lemma contraNnot (b : bool) (P : Prop) : (P -> b) -> (~~ b -> ~ P). Lemma contraPT (P : Prop) (b : bool) : (~~ b -> ~ P) -> P -> b. Lemma contra_notT (b : bool) (P : Prop) : (~~ b -> P) -> ~ P -> b. Lemma contraPN (b : bool) (P : Prop) : (b -> ~ P) -> (P -> ~~ b). Lemma contraPneq (T:eqType) (a b : T) (P : Prop) : (a = b -> ~ P) -> (P -> a != b). Lemma contraPeq (T:eqType) (a b : T) (P : Prop) : (a != b -> ~ P) -> (P -> a = b).`

The naming scheme is inspired by the remaining contra lemmas, using "P" for assumptions with type in

`Prop`

and "not" for`~ P`

. Do you think this is useful? Should I create a pull request?

CohenCyril merged PR #499 contra lemmas involving propositions.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and chdoc (1).

- contra lemmas involving propositions (ff0120b)
- Merge pull request #499 from chdoc/contra-prop (3ceb153)

affeldt-aist updated PR #537 missing bigop lemmas from `from_analysis_20200617`

to `master`

:

Co-authored-by: Cohen Cyril <cyril.cohen@inria.fr>

## Motivation for this change

missing lemmas discovered while developing mathcomp-analysis

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~~- [ ] added corresponding documentation in the headers~~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist updated PR #537 missing bigop lemmas from `from_analysis_20200617`

to `master`

:

Co-authored-by: Cohen Cyril <cyril.cohen@inria.fr>

## Motivation for this change

missing lemmas discovered while developing mathcomp-analysis

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~~- [ ] added corresponding documentation in the headers~~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**thery** requested thery for a review on PR #537 missing bigop lemmas.

thery milestoned Issue #537 missing bigop lemmas:

Co-authored-by: Cohen Cyril <cyril.cohen@inria.fr>

## Motivation for this change

missing lemmas discovered while developing mathcomp-analysis

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~~- [ ] added corresponding documentation in the headers~~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #507 Add more test cases for higher-order recursive functions in seq.v w.r.t. the guard condition.

chdoc updated PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

affeldt-aist edited Issue #526 backport ssrbool to Coq:

Backport to Coq new contents from

`ssrbool.v`

(as introduced by PR #513 PR #519 PR #499 ).https://github.com/affeldt-aist/coq/tree/ssrbool_backport_MathComp1.11

already contains an`ssrbool.v`

file with an integration of PR #513, PR #519, and PR #499

and is ready to be PRed.@CohenCyril @ybertot

(NB: this issue has been edited, it was mentioning

`ssrfun.v`

but its contents have already made their way to Coq)

chdoc updated PR #509 Card lemmas from `card-lemmas`

to `master`

:

## Motivation for this change

`n`

distinct elements for an a predicate with`n <= #|A|`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc:

- edited TopicsNextMeeting

chdoc:

- edited TopicsNextMeeting

CohenCyril submitted PR Review for #509 Card lemmas.

CohenCyril merged PR #509 Card lemmas.

CohenCyril pushed 8 commits to branch master. Commits by chdoc (6) and CohenCyril (2).

- cardinality lemmas for #|A| <= 1 and n <= #|A| (18edd0a)
- cards_eqP and cards2P (1ac0240)
- add fcard_gt?P lemmas found in fourcolor (5b4b9ad)
- drop_uniq / CHANGELOG (96efc4f)
- Apply suggestions from code review (555655f)
- fixup spacing (c500893)
- conform to 80 chars limit (7fd6f9b)
- Merge pull request #509 from chdoc/card-lemmas (f25ef67)

pi8027 opened Issue #538 Shouldn't notations `dual_(bottom|top|join|meet|max|min)`

be qualified by `Order`

module?

Since

`Order.bottom`

, etc. are qualified, I thought they should, but actually they are not. @CohenCyril

pi8027 edited Issue #538 Notations `dual_(bottom|top|join|meet|max|min)`

should be qualified by the `Order`

module:

Since

`Order.bottom`

, etc. are qualified, I thought they should, but actually they are not. @CohenCyril

pi8027 updated PR #494 Get rid of displays in class fields and mixin parameters (assigned to CohenCyril) from `rm-displays-in-classes`

to `master`

:

## Motivation for this change

This PR removes displays from class fields and mixin parameters, and also refactor factories and builders, as preliminary work for PR #464.

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [x] merge dependency: #490

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #464 [WIP] meet semilattice structures from `semilattices`

to `master`

:

## Motivation for this change

This PR adds the following structures:

`meetSemilatticeType`

: inf-semilattice,`bSemilatticeType`

: inf-semilattice with the bottom.cc: @strub

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [ ] merge dependency: #494

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #494 Get rid of displays in class fields and mixin parameters (assigned to CohenCyril) from `rm-displays-in-classes`

to `master`

:

## Motivation for this change

This PR removes displays from class fields and mixin parameters, and also refactor factories and builders, as preliminary work for PR #464.

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [x] merge dependency: #490

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #494 Get rid of displays in class fields and mixin parameters (assigned to CohenCyril) from `rm-displays-in-classes`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery submitted PR Review for #537 missing bigop lemmas.

thery submitted PR Review for #537 missing bigop lemmas.

thery created PR Review Comment on #537 missing bigop lemmas:

Maybe in two moves (there is a

`iter_addn_0`

for`nat`

)`Lemma iter_addr_0 n (m : V) : iter n (+%R m) 0 = m *+ n. Proof. by elim: n => //= n ->; rewrite mulrS. Qed. Lemma sumr_const_nat (m n : nat) (x : V) : \sum_(n <= i < m) x = x *+ (m - n). Proof. by rewrite big_const_nat iter_addr_0. Qed.`

thery created PR Review Comment on #537 missing bigop lemmas:

Maybe this is simpler

`Lemma ler_sum_nat (m n : nat) (F G : nat -> R) : (forall i, (m <= i < n)%N -> F i <= G i) -> \sum_(m <= i < n) F i <= \sum_(m <= i < n) G i. Proof. move=> leFG. by rewrite ![\sum_(_ <= _ < _) _]big_nat_cond ler_sum // => i /andP[] /leFG. Qed.`

thery opened PR #539 simpler proof from `sum_nat_const`

to `master`

:

## Motivation for this change

While reviewing #537. I've noticed that we could take advantage of

`iter_addn_0`

to simplify the proof of`sum_nat_const_nat`

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery edited PR #539 simpler proof of sum_nat_const_nat in bigop from `sum_nat_const`

to `master`

:

## Motivation for this change

While reviewing #537. I've noticed that we could take advantage of

`iter_addn_0`

to simplify the proof of`sum_nat_const_nat`

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery edited PR #539 simpler proof of `sum_nat_const_nat`

in `bigop.v`

from `sum_nat_const`

to `master`

:

## Motivation for this change

While reviewing #537. I've noticed that we could take advantage of

`iter_addn_0`

to simplify the proof of`sum_nat_const_nat`

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery edited PR #539 simpler proof of sum_nat_const_nat in bigop.v from `sum_nat_const`

to `master`

:

## Motivation for this change

`iter_addn_0`

to simplify the proof of`sum_nat_const_nat`

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #539 simpler proof of sum_nat_const_nat in bigop.v from `sum_nat_const`

to `master`

:

## Motivation for this change

`iter_addn_0`

to simplify the proof of`sum_nat_const_nat`

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #539 simpler proof of sum_nat_const_nat in bigop.v.

CohenCyril pushed 2 commits to branch pr/537. Commits by CohenCyril (1) and affeldt-aist (1).

- missing lemmas discovered while developing mathcomp-analysis (a227c7f)
- Intermediate lemmas and shortening proofs (thanks Laurent) (0859ef0)

CohenCyril pushed the branch pulls/537.

CohenCyril deleted the branch pulls/537.

CohenCyril deleted the branch pr/537.

CohenCyril pushed 2 commits to branch pull/537. Commits by CohenCyril (1) and affeldt-aist (1).

- missing lemmas discovered while developing mathcomp-analysis (a227c7f)
- Intermediate lemmas and shortening proofs (thanks Laurent) (0859ef0)

CohenCyril deleted the branch pull/537.

CohenCyril pushed 2 commits to branch pull/537/head. Commits by CohenCyril (1) and affeldt-aist (1).

- missing lemmas discovered while developing mathcomp-analysis (a227c7f)
- Intermediate lemmas and shortening proofs (thanks Laurent) (0859ef0)

CohenCyril deleted the branch pull/537/head.

CohenCyril updated PR #537 missing bigop lemmas from `from_analysis_20200617`

to `master`

:

Co-authored-by: Cohen Cyril <cyril.cohen@inria.fr>

## Motivation for this change

missing lemmas discovered while developing mathcomp-analysis

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~~- [ ] added corresponding documentation in the headers~~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery opened PR #540 fix the doc for ubnP in ssrnat from `doc`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery edited PR #540 fix the doc for ubnP in ssrnat from `doc`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**thery** requested ggonthier for a review on PR #540 fix the doc for ubnP in ssrnat.

**thery** requested ybertot for a review on PR #540 fix the doc for ubnP in ssrnat.

CohenCyril updated PR #537 missing bigop lemmas from `from_analysis_20200617`

to `master`

:

Co-authored-by: Cohen Cyril <cyril.cohen@inria.fr>

## Motivation for this change

missing lemmas discovered while developing mathcomp-analysis

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~~- [ ] added corresponding documentation in the headers~~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #537 missing bigop lemmas from `from_analysis_20200617`

to `master`

:

Co-authored-by: Cohen Cyril <cyril.cohen@inria.fr>

## Motivation for this change

missing lemmas discovered while developing mathcomp-analysis

## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

~~- [ ] added corresponding documentation in the headers~~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #540 fix the doc for ubnP in ssrnat from `doc`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- [x] added corresponding documentation in the headers

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery merged PR #537 missing bigop lemmas.

thery pushed 2 commits to branch master. Commits by affeldt-aist (1) and thery (1).

- missing lemmas discovered while developing mathcomp-analysis (85ea653)
- missing bigop lemmas (#537) (6ad3755)

CohenCyril submitted PR Review for #540 fix the doc for ubnP in ssrnat.

CohenCyril milestoned Issue #540 fix the doc for ubnP in ssrnat:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~- [x] added corresponding documentation in the headers

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril milestoned Issue #539 simpler proof of sum_nat_const_nat in bigop.v:

## Motivation for this change

`iter_addn_0`

to simplify the proof of`sum_nat_const_nat`

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril merged PR #539 simpler proof of sum_nat_const_nat in bigop.v.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and thery (1).

CohenCyril merged PR #540 fix the doc for ubnP in ssrnat.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and thery (1).

**CohenCyril** requested maximedenes for a review on PR #536 Fix some hierarchy.ml related issues.

CohenCyril assigned PR #536 Fix some hierarchy.ml related issues to CohenCyril.

CohenCyril:

- edited TopicsNextMeeting

chdoc opened PR #541 lemmas for proper and setC from `properC`

to `master`

:

## Motivation for this change

This adds a few trivial lemmas on

`proper`

and`setC`

closes #512

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc opened PR #542 fix "Nothing to inject" warnings from `nothing-to-inject`

to `master`

:

## Motivation for this change

This fixes two "Noting to inject" warnings introduced by #509 :disappointed:

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #464 [WIP] meet semilattice structures from `semilattices`

to `master`

:

## Motivation for this change

This PR adds the following structures:

`meetSemilatticeType`

: inf-semilattice,`bSemilatticeType`

: inf-semilattice with the bottom.cc: @strub

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [ ] merge dependency: #494

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #494 Get rid of displays in class fields and mixin parameters (assigned to CohenCyril) from `rm-displays-in-classes`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #536 Fix some hierarchy.ml related issues (assigned to CohenCyril) from `hierarchy`

to `master`

:

## Motivation for this change

- pass
`Unix.environment ()`

to`coqtop`

to preserve the parent process environment,- check the exit status of
`coqtop`

and report an error if it is wrong.`Makefile`

issues:

`hierarchy_test.v`

to`test_hierarchy_all.v`

because other test cases are named`test_*.v`

and we may also have`test_hierarchy_ssreflect.v`

,`test_hierarchy_fingroup.v`

, etc. (but I actually had some issues to implement this feature in the`Makefile`

),- since the
`test_suite`

directory exists from the beginning, we do not need to do`mkdir -p test_suite`

,- ~the
`build`

prerequisite of`test_suite/test_hierarchy_all.v`

should be order only (right?),~- fix
`make test_suite/*.vo`

by adding a rule.## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027:

- edited TopicsNextMeeting

gares:

- edited Home

gares:

- created Minutes June 30 2020

gares:

- edited Minutes June 30 2020

CohenCyril milestoned Issue #508 mem_imset mem_map naming/statement inconsistency:

while cleaning, I noticed the following oddity:

`Lemma mem_imset (aT rT : finType) (f : aT -> rT) (D : {pred aT}) (x : aT) : x \in D -> f x \in [set f x | x in D] Lemma map_f (T1 T2 : eqType) (f : T1 -> T2) (s : seq T1) (x : T1) : x \in s -> f x \in [seq f i | i <- s] Lemma mem_map (T1 T2 : eqType) (f : T1 -> T2), injective f -> forall (s : seq T1) (x : T1), (f x \in [seq f i | i <- s]) = (x \in s)`

Wouldn't it be more consistent to rename

`mem_imset`

to`imset_f`

and add the following lemma:`Lemma mem_imset (aT rT : finType) (f : aT -> rT) (A : {set aT}) (x : aT) : injective f -> (f x \in f @: A) = (x \in A).`

gares:

- edited Minutes June 30 2020

gares:

- edited TopicsNextMeeting

erikmd:

- edited Howto Release

erikmd:

- edited Howto Release

erikmd:

- edited Howto Release

erikmd:

- edited Howto Release

erikmd:

- edited Howto Release

pi8027:

- edited TopicsNextMeeting

affeldt-aist:

- edited Home

chdoc opened Issue #543 Definition of "rot" suboptomal?

I tried to use list (cycle) rotation today, I and I was surprised to see that

`rot n s`

only performs a rotation if`n <= size s`

. In fact, there is even a lemma stating this. Moreover, several lemmas need (unexpected) side conditions:`rot_oversize: forall (T : Type) (n : nat) (s : seq T), size s <= n -> rot n s = s rotD: forall (T : Type) (m n : nat) (s : seq T), m + n <= size s -> rot (m + n) s = rot m (rot n s) rotS: forall (T : Type) (n : nat) (s : seq T), n < size s -> rot n.+1 s = rot 1 (rot n s) rot_add_mod: forall (T : Type) (m n : nat) (s : seq T), n <= size s -> m <= size s -> rot m (rot n s) = rot (if m + n <= size s then m + n else m + n - size s) s`

Wouldn't it be more natural to define rot as follows:

`Definition rot n s := drop (n %% size s) s ++ take (n %% size s) s.`

(the original definition is without the

`_ %% size s`

)From this one can prove

`Lemma rot_size_r n s : rot (n + size s) s = rot n s. Lemma rot_cons n x s : rot n.+1 (x::s) = rot n (rcons s x).`

This allows removing the side conditions from

`rotD`

and`rotS`

, making`rot_add_mod`

redundant.

CohenCyril edited PR #541 lemmas for proper and setC from `properC`

to `master`

:

## Motivation for this change

This adds a few trivial lemmas on

`proper`

and`setC`

closes #512

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #541 lemmas for proper and setC.

pi8027 opened Issue #544 Ambiguous coercion paths in fieldext.v:

I guess we do too much eta expansion somewhere:

`Warning: New coercion path [FieldExt.base6; GRing.ComUnitAlgebra.base2] : FieldExt.class_of >-> GRing.UnitAlgebra.class_of is ambiguous with existing [FieldExt.base; Falgebra.base1] : FieldExt.class_of >-> GRing.UnitAlgebra.class_of. [ambiguous-paths,typechecker] Warning: New coercion path [FieldExt.comUnitAlgType; GRing.ComUnitAlgebra.unitAlgType] : FieldExt.type >-> GRing.UnitAlgebra.type is ambiguous with existing [FieldExt.unitAlgType] : FieldExt.type >-> GRing.UnitAlgebra.type. [ambiguous-paths,typechecker]`

pi8027 opened PR #545 Make [fieldExtType F of L] work for abstract instances from `fieldext`

to `master`

:

## Motivation for this change

If

`L`

is an abstract`fieldType`

, this pack notation did not work as in https://github.com/math-comp/analysis/pull/205#discussion_r451832262. CC: @CohenCyril## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** requested CohenCyril for a review on PR #545 Make [fieldExtType F of L] work for abstract instances.

CohenCyril assigned PR #545 Make [fieldExtType F of L] work for abstract instances.

pi8027 opened PR #546 Fix ambiguous coercion paths in fieldext.v from `fieldext-coherence`

to `master`

:

## Motivation for this change

The coercion paths from

`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

. This PR fixes it by changing the base of`comUnitAlgType`

to`unitAlgType`

.Fixes: #544.

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #546 Fix ambiguous coercion paths in fieldext.v from `fieldext-coherence`

to `master`

:

## Motivation for this change

The coercion paths from

`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

. This PR fixes it by changing the base of`comUnitAlgType`

to`unitAlgType`

.Fixes: #544.

## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #546 Fix ambiguous coercion paths in fieldext.v from `fieldext-coherence`

to `master`

:

## Motivation for this change

The coercion paths from

`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

. This PR fixes it by changing the base of`comUnitAlgType`

to`unitAlgType`

.Fixes: #544.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #546 Fix a coherence (ambiguous paths) issue of fieldExtType and a conversion issue of "regular" instances from `fieldext-coherence`

to `master`

:

## Motivation for this change

`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

. This PR fixes it by changing the base of`comUnitAlgType`

to`unitAlgType`

.Fixes: #544.

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #546 Fix a coherence (ambiguous paths) issue of fieldExtType and a conversion issue of "regular" instances from `fieldext-coherence`

to `master`

:

## Motivation for this change

- For
`R : ringType`

,`[lalgType R of R^o] : ringType`

and`[ringType of R]`

were not convertible and other "regular" instances had the same issue, because every algebra structure had another algebra/module structure as their base. The algebra structures now take the closest ring/field structure as their base to avoid record eta expansion.- The notation
`[fieldExtType F of L for K]`

is now removed.- Some missing
`comAlgType`

and`comUnitAlgType`

instances are added.- The coercion paths from
`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

. Fixes: #544.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 submitted PR Review for #546 Fix a coherence (ambiguous paths) issue of fieldExtType and a conversion issue of "regular" instances.

pi8027 created PR Review Comment on #546 Fix a coherence (ambiguous paths) issue of fieldExtType and a conversion issue of "regular" instances:

Since the

`[comUnitRingType of R]`

notation does an extra record eta expansion, I had to avoid it. :(

pi8027 updated PR #458 [WIP] new interval library from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures. The main achievements are that intervals on a

`latticeType`

form a`latticeType`

where join is the intersection and meet is the convex hull, and intervals on an`orderType`

form a`distrLatticeType`

as well.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #546 Fix a coherence (ambiguous paths) issue of fieldExtType and a conversion issue of "regular" instances from `fieldext-coherence`

to `master`

:

## Motivation for this change

- For
`R : ringType`

,`[lalgType R of R^o] : ringType`

and`[ringType of R]`

were not convertible and other "regular" instances had the same issue, because every algebra structure had another algebra/module structure as their base. The algebra structures now take the closest ring/field structure as their base to avoid record eta expansion.- The notation
`[fieldExtType F of L for K]`

is now removed. (Removing this notation is too aggressive and I have to put it back for compatibility reasons, but I don't get how to do that.)- Some missing
`comAlgType`

and`comUnitAlgType`

instances are added.- The coercion paths from
`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

. Fixes: #544.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 opened PR #547 Qualify the dual_* notations with the Order module from `qualified-dual-op`

to `master`

:

## Motivation for this change

- Fixes #538: The
`dual_*`

notations were not qualified with the`Order`

module.- Since
`rewrite /<=%O`

did not turn`@Order.le (dual_display d) (dual_porderType T) x y`

into`@Order.le d T y x`

immediately, this PR also removes`dual_le`

and`dual_lt`

from the definition of`dual_porderType`

, and put them back as notations.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] merge dependency: #494
- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #547 Qualify the dual_* notations with the Order module from `qualified-dual-op`

to `master`

:

## Motivation for this change

- Fixes #538: The
`dual_*`

notations were not qualified with the`Order`

module.- Since
`rewrite /<=%O`

did not turn`@Order.le (dual_display d) (dual_porderType T) x y`

into`@Order.le d T y x`

immediately, this PR also removes`dual_le`

and`dual_lt`

from the definition of`dual_porderType`

, and put them back as notations for`@Order.le (dual_display _) _`

and`@Order.lt (dual_display _) _`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] merge dependency: #494
- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`fieldext-coherence`

to `master`

:

## Motivation for this change

- For
`R : ringType`

,`[lalgType R of R^o] : ringType`

and`[ringType of R]`

(≡`GRing.Ring.Pack R (GRing.Ring.class R)`

) were not convertible and other "regular" instances had the same issue, because every algebra structure had another algebra/module structure as their base. The algebra structures now take the closest ring/field structure as their base to avoid record eta expansion.- The notation
`[fieldExtType F of L for K]`

is now removed. (Removing this notation is too aggressive and I have to put it back for compatibility reasons, but I don't get how to do that.)- Some missing
`comAlgType`

and`comUnitAlgType`

instances are added.- The coercion paths from
`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

. Fixes: #544.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #547 Qualify the dual_* notations with the Order module from `qualified-dual-op`

to `master`

:

## Motivation for this change

- Fixes #538: The
`dual_*`

notations were not qualified with the`Order`

module.- Since
`rewrite /<=%O`

did not turn`@Order.le (dual_display d) (dual_porderType T) x y`

into`@Order.le d T y x`

immediately, this PR also removes`dual_le`

and`dual_lt`

from the definition of`dual_porderType`

, and put them back as notations for`@Order.le (dual_display _) _`

and`@Order.lt (dual_display _) _`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] merge dependency: #494
- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`fieldext-coherence`

to `master`

:

## Motivation for this change

- For
`R : ringType`

,`[lalgType R of R^o] : ringType`

and`[ringType of R]`

(≡`GRing.Ring.Pack R (GRing.Ring.class R)`

) were not convertible and other "regular" instances had the same issue, because every algebra structure had another algebra/module structure as their base. The algebra structures now take the closest ring/field structure as their base to avoid record eta expansion.- The notation
`[fieldExtType F of L for K]`

is now removed. (Removing this notation is too aggressive and I have to put it back for compatibility reasons, but I don't get how to do that.)- Some missing
`comAlgType`

and`comUnitAlgType`

instances are added.- Fixes #544: The coercion paths from
`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 opened PR #548 Use predicators even extensively from `predicators`

to `master`

:

## Motivation for this change

This PR attempts to restate several lemmas using predicators such as

`cancel`

,`(left|right)_(id|zero|inverse|distributive)`

,`idempotent`

,`associative`

, and`commutative`

. Some of them are probably too aggressive and I would like to have comments on this point.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- If the ordering of arguments are changed, it has to be mentioned explicitly.

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #548 Use predicators even extensively from `predicators`

to `master`

:

## Motivation for this change

This PR attempts to restate several lemmas using predicators such as

`cancel`

,`(left|right)_(id|zero|inverse|distributive)`

,`idempotent`

,`associative`

, and`commutative`

. Some of them are probably too aggressive and I would like to have comments on this point.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- If the ordering of arguments are changed, it has to be mentioned explicitly.

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril:

- edited TopicsNextMeeting

pi8027 edited PR #546 [DO NOT MERGE] Fix a coherence (ambiguous paths) issue of fieldExtType and a conversion issue of "regular" instances from `fieldext-coherence`

to `master`

:

## Motivation for this change

- For
`R : ringType`

,`[lalgType R of R^o] : ringType`

and`[ringType of R]`

(≡`GRing.Ring.Pack R (GRing.Ring.class R)`

) were not convertible and other "regular" instances had the same issue, because every algebra structure had another algebra/module structure as their base. The algebra structures now take the closest ring/field structure as their base to avoid record eta expansion.`[fieldExtType F of L for K]`

is now removed. (Removing this notation is too aggressive and I have to put it back for compatibility reasons, but I don't get how to do that.)- Some missing
`comAlgType`

and`comUnitAlgType`

instances are added.- Fixes #544: The coercion paths from
`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pochinha opened Issue #549 The (if _ then _ else) pattern is not recognized when using ifN on a simple goal:

I'm not sure what the underlying problem is.

Example:

`From mathcomp Require Import all_ssreflect. Goal (if 1 < 0 then true else false) = false. Proof. Fail rewrite ifN. (* The LHS of ifN (if _ then _ else _) does not match any subterm of the goal *) Fail apply: ifN. (* Cannot apply lemma ifN *) apply ifN (* works *) Abort.`

Using

`rewrite (@ifN _ (1 < 0)).`

also works.Happens both with Coq 8.9.1 + mathcomp 1.9.0 and with Coq 8.11.2 + mathcomp 1.11.0, which are the versions I have installed.

pochinha edited Issue #549 The (if _ then _ else) pattern is not recognized when using ifN on a simple goal:

I'm not sure what the underlying problem is.

Example:

`From mathcomp Require Import all_ssreflect. Goal (if 1 < 0 then true else false) = false. Proof. Fail rewrite ifN. (* The LHS of ifN (if _ then _ else _) does not match any subterm of the goal *) Fail apply: ifN. (* Cannot apply lemma ifN *) apply ifN. (* works *) Abort.`

Using

`rewrite (@ifN _ (1 < 0)).`

also works.Happens both with Coq 8.9.1 + mathcomp 1.9.0 and with Coq 8.11.2 + mathcomp 1.11.0, which are the versions I have installed.

pochinha edited Issue #549 The (if _ then _ else) pattern is not recognized when using ifN on a simple goal:

I'm not sure what the underlying problem is.

Example:

`From mathcomp Require Import all_ssreflect. Goal (if 1 < 0 then true else false) = false. Proof. Fail rewrite ifN. (* The LHS of ifN (if _ then _ else _) does not match any subterm of the goal *) Fail apply: ifN. (* Cannot apply lemma ifN *) apply ifN. (* works *) Abort.`

Using

`rewrite (@ifN _ (1 < 0)).`

also works.EDIT: using

`rewrite (@ifN _ (1 < 0)).`

leaves a dangling`bool`

. Furthermore,`rewrite-> ifN`

works properly.Happens both with Coq 8.9.1 + mathcomp 1.9.0 and with Coq 8.11.2 + mathcomp 1.11.0, which are the versions I have installed.

jashug opened PR #550 Be robust to a change in the default argument naming algorithm. from `dont-refresh-argument-names-overlay`

to `master`

:

## Motivation for this change

Overlay for coq/coq#12756, in which the default argument name changes to just

`S`

from`S0`

. This change preserves the old name; switching instead to use`S`

may be preferable but introduces a potential impact on downstream users of mathcomp.

Should be entirely backwards compatible.<!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril merged PR #536 Fix some hierarchy.ml related issues.

CohenCyril pushed 3 commits to branch master. Commits by pi8027 (2) and CohenCyril (1).

- Fix bugs in hierarchy.ml (4a0bc9e)
- Fix some Makefile issues and rename
`hierarchy_test.v`

to`test_hierarchy_all.v`

(36613c8) - Merge pull request #536 from pi8027/hierarchy (0265476)

CohenCyril milestoned Issue #536 Fix some hierarchy.ml related issues (assigned to CohenCyril):

## Motivation for this change

- pass
`Unix.environment ()`

to`coqtop`

to preserve the parent process environment,- check the exit status of
`coqtop`

and report an error if it is wrong.`Makefile`

issues:

`hierarchy_test.v`

to`test_hierarchy_all.v`

because other test cases are named`test_*.v`

and we may also have`test_hierarchy_ssreflect.v`

,`test_hierarchy_fingroup.v`

, etc. (but I actually had some issues to implement this feature in the`Makefile`

),- since the
`test_suite`

directory exists from the beginning, we do not need to do`mkdir -p test_suite`

,- ~the
`build`

prerequisite of`test_suite/test_hierarchy_all.v`

should be order only (right?),~- fix
`make test_suite/*.vo`

by adding a rule.## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril milestoned Issue #517 Extra theorems about subn minn and maxn:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #517 Extra theorems about subn minn and maxn from `minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #517 Extra theorems about subn minn and maxn.

CohenCyril created PR Review Comment on #517 Extra theorems about subn minn and maxn:

``subn_minr` `subn_maxr` in `ssrnat.v``

CohenCyril updated PR #517 Extra theorems about subn minn and maxn from `minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #517 Extra theorems about subn minn and maxn.

CohenCyril assigned PR #517 Extra theorems about subn minn and maxn to CohenCyril.

CohenCyril submitted PR Review for #521 In and on.

CohenCyril created PR Review Comment on #521 In and on:

CohenCyril submitted PR Review for #521 In and on.

CohenCyril created PR Review Comment on #521 In and on:

CohenCyril updated PR #521 In and on from `in_on`

to `master`

:

## Motivation for this change

These new lemmas describe more precisely the possible interactions between

`in`

and`on`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #521 In and on from `in_on`

to `master`

:

## Motivation for this change

These new lemmas describe more precisely the possible interactions between

`in`

and`on`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- ~added corresponding documentation in the headers~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** has marked PR #521 as ready for review.

CohenCyril closed Issue #512 lemma for proper and setC?

I noticed that there are quite a few lemmas combining

`_ \subset _`

and`~: _`

but none for

`_ \proper _`

and`~: _`

.How about adding (possibly with a different name):

`Lemma properC (T : finType) (A B : {set T}) : A \proper B = (~: B \proper ~: A). Proof. rewrite !properEneq setCS [~: _ == _]inj_eq 1?eq_sym //; exact/inv_inj/setCK. Qed.`

I think this is sufficient, since any introduced double complement can easily be eliminated with

`?setCK`

.

CohenCyril merged PR #541 lemmas for proper and setC.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and chdoc (1).

CohenCyril milestoned Issue #541 lemmas for proper and setC:

## Motivation for this change

This adds a few trivial lemmas on

`proper`

and`setC`

closes #512

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril opened PR #551 Use union driver for CHANGELOG_UNRELEASED from `merge-changelog-by-union`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

End CHANGELOG_UNRELEASED merge conflicts locally!

(Github does not support this yet though)## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril merged PR #551 Use union driver for CHANGELOG_UNRELEASED.

CohenCyril pushed 2 commits to branch master.

- Use union driver for CHANGELOG_UNRELEASED (dc20e2d)
- Merge pull request #551 from CohenCyril/merge-changelog-by-union (d7c08d6)

CohenCyril merged PR #542 fix "Nothing to inject" warnings.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and chdoc (1).

- fix "Nothing to inject" warnings (8a4ae57)
- Merge pull request #542 from chdoc/nothing-to-inject (60bd08e)

CohenCyril milestoned Issue #542 fix "Nothing to inject" warnings:

## Motivation for this change

This fixes two "Noting to inject" warnings introduced by #509 :disappointed:

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery updated PR #517 Extra theorems about subn minn and maxn (assigned to CohenCyril) from `minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril merged PR #507 Add more test cases for higher-order recursive functions in seq.v w.r.t. the guard condition.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and pi8027 (1).

- Add more test cases for higher-order recursive functions in seq.v w.r.t. the guard condition (1e9eda6)
- Merge pull request #507 from pi8027/test-guard-cond (c6051cd)

chdoc opened PR #552 fix notation-incompatible-format warnings from `rel-format-warning`

to `master`

:

## Motivation for this change

notation-incompatible-format warnings are everywhere in 8.12 (Zulip conversation)

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc opened PR #553 fix non-reversible-notation warnings from `non-reversible-notation`

to `master`

:

## Motivation for this change

fix

`non-reversible-notation`

warnings in`ssrAC.v`

caused by Ltac in notations.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #552 fix notation-incompatible-format warnings.

CohenCyril merged PR #552 fix notation-incompatible-format warnings.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and chdoc (1).

- fix notation-incompatible-format warnings (1bbfe34)
- Merge pull request #552 from chdoc/rel-format-warning (ea1d26e)

pi8027 updated PR #458 [WIP] new interval library from `interval`

to `master`

:

## Motivation for this change

`latticeType`

form a`latticeType`

where join is the intersection and meet is the convex hull, and intervals on an`orderType`

form a`distrLatticeType`

as well.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #545 Make [fieldExtType F of L] work for abstract instances (assigned to CohenCyril) from `fieldext`

to `master`

:

## Motivation for this change

If

`L`

is an abstract`fieldType`

, this pack notation did not work as in https://github.com/math-comp/analysis/pull/205#discussion_r451832262. CC: @CohenCyril## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #547 Qualify the dual_* notations with the Order module from `qualified-dual-op`

to `master`

:

## Motivation for this change

- Fixes #538: The
`dual_*`

notations were not qualified with the`Order`

module.- Since
`rewrite /<=%O`

did not turn`@Order.le (dual_display d) (dual_porderType T) x y`

into`@Order.le d T y x`

immediately, this PR also removes`dual_le`

and`dual_lt`

from the definition of`dual_porderType`

, and put them back as notations for`@Order.le (dual_display _) _`

and`@Order.lt (dual_display _) _`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] merge dependency: #494
- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #548 Use predicators even extensively from `predicators`

to `master`

:

## Motivation for this change

This PR attempts to restate several lemmas using predicators such as

`cancel`

,`(left|right)_(id|zero|inverse|distributive)`

,`idempotent`

,`associative`

, and`commutative`

. Some of them are probably too aggressive and I would like to have comments on this point.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- If the ordering of arguments are changed, it has to be mentioned explicitly.

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`rm-displays-in-classes`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #464 [WIP] meet semilattice structures from `semilattices`

to `master`

:

## Motivation for this change

This PR adds the following structures:

`meetSemilatticeType`

: inf-semilattice,`bSemilatticeType`

: inf-semilattice with the bottom.cc: @strub

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #546 [DO NOT MERGE] Fix a coherence (ambiguous paths) issue of fieldExtType and a conversion issue of "regular" instances from `fieldext-coherence`

to `master`

:

## Motivation for this change

`R : ringType`

,`[lalgType R of R^o] : ringType`

and`[ringType of R]`

(≡`GRing.Ring.Pack R (GRing.Ring.class R)`

) were not convertible and other "regular" instances had the same issue, because every algebra structure had another algebra/module structure as their base. The algebra structures now take the closest ring/field structure as their base to avoid record eta expansion.`[fieldExtType F of L for K]`

is now removed. (Removing this notation is too aggressive and I have to put it back for compatibility reasons, but I don't get how to do that.)- Some missing
`comAlgType`

and`comUnitAlgType`

instances are added.- Fixes #544: The coercion paths from
`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc updated PR #553 fix non-reversible-notation warnings from `non-reversible-notation`

to `master`

:

## Motivation for this change

fix

`non-reversible-notation`

warnings in`ssrAC.v`

caused by Ltac in notations.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril submitted PR Review for #494 Get rid of displays in class fields and mixin parameters.

CohenCyril:

- edited TopicsNextMeeting

CohenCyril merged PR #494 Get rid of displays in class fields and mixin parameters.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and pi8027 (1).

- Get rid of displays in class fields and mixin parameters (642182c)
- Merge pull request #494 from pi8027/rm-displays-in-classes (2cf06c9)

pi8027 edited PR #547 Qualify the dual_* notations with the Order module from `qualified-dual-op`

to `master`

:

## Motivation for this change

- Fixes #538: The
`dual_*`

notations were not qualified with the`Order`

module.`rewrite /<=%O`

did not turn`@Order.le (dual_display d) (dual_porderType T) x y`

into`@Order.le d T y x`

immediately, this PR also removes`dual_le`

and`dual_lt`

from the definition of`dual_porderType`

, and put them back as notations for`@Order.le (dual_display _) _`

and`@Order.lt (dual_display _) _`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] merge dependency: #494
- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril merged PR #553 fix non-reversible-notation warnings.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and chdoc (1).

- fix non-reversible-notation warnings (2d4885d)
- Merge pull request #553 from chdoc/non-reversible-notation (6bb890c)

CohenCyril milestoned Issue #553 fix non-reversible-notation warnings:

## Motivation for this change

fix

`non-reversible-notation`

warnings in`ssrAC.v`

caused by Ltac in notations.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril milestoned Issue #552 fix notation-incompatible-format warnings:

## Motivation for this change

notation-incompatible-format warnings are everywhere in 8.12 (Zulip conversation)

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril milestoned Issue #551 Use union driver for CHANGELOG_UNRELEASED:

## Motivation for this change

<!-- please explain your reason for doing this change -->

End CHANGELOG_UNRELEASED merge conflicts locally!

(Github does not support this yet though)## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril demilestoned Issue #551 Use union driver for CHANGELOG_UNRELEASED:

## Motivation for this change

<!-- please explain your reason for doing this change -->

End CHANGELOG_UNRELEASED merge conflicts locally!

(Github does not support this yet though)## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril milestoned Issue #545 Make [fieldExtType F of L] work for abstract instances (assigned to CohenCyril):

## Motivation for this change

If

`L`

is an abstract`fieldType`

, this pack notation did not work as in https://github.com/math-comp/analysis/pull/205#discussion_r451832262. CC: @CohenCyril## Things done/to do

<!-- please fill in the following checklist -->

- ~added corresponding entries in
`CHANGELOG_UNRELEASED.md`

~

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril merged PR #545 Make [fieldExtType F of L] work for abstract instances.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and pi8027 (1).

- Make [fieldExtType F of L] work for abstract instances (c0c2fd1)
- Merge pull request #545 from pi8027/fieldext (43ac266)

jashug updated PR #550 Be robust to a change in the default argument naming algorithm. from `dont-refresh-argument-names-overlay`

to `master`

:

## Motivation for this change

Overlay for coq/coq#12756, in which the default argument name changes to just

`S`

from`S0`

. This change preserves the old name; switching instead to use`S`

may be preferable but introduces a potential impact on downstream users of mathcomp.

Should be entirely backwards compatible.<!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #547 Qualify the dual_* notations with the Order module from `qualified-dual-op`

to `master`

:

## Motivation for this change

- Fixes #538: The
`dual_*`

notations were not qualified with the`Order`

module.`rewrite /<=%O`

did not turn`@Order.le (dual_display d) (dual_porderType T) x y`

into`@Order.le d T y x`

immediately, this PR also removes`dual_le`

and`dual_lt`

from the definition of`dual_porderType`

, and put them back as notations for`@Order.le (dual_display _) _`

and`@Order.lt (dual_display _) _`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] merge dependency: #494
- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #547 Qualify the dual_* notations with the Order module from `qualified-dual-op`

to `master`

:

## Motivation for this change

- Fixes #538: The
`dual_*`

notations were not qualified with the`Order`

module.`rewrite /<=%O`

did not turn`@Order.le (dual_display d) (dual_porderType T) x y`

into`@Order.le d T y x`

immediately, this PR also removes`dual_le`

and`dual_lt`

from the definition of`dual_porderType`

, and put them back as notations for`@Order.le (dual_display _) _`

and`@Order.lt (dual_display _) _`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] merge dependency: #494
- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #458 [WIP] new interval library from `interval`

to `master`

:

## Motivation for this change

`latticeType`

form a`latticeType`

where join is the intersection and meet is the convex hull, and intervals on an`orderType`

form a`distrLatticeType`

as well.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #464 [WIP] meet semilattice structures from `semilattices`

to `master`

:

## Motivation for this change

This PR adds the following structures:

`meetSemilatticeType`

: inf-semilattice,`bSemilatticeType`

: inf-semilattice with the bottom.cc: @strub

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #548 Use predicators even extensively from `predicators`

to `master`

:

## Motivation for this change

`cancel`

,`(left|right)_(id|zero|inverse|distributive)`

,`idempotent`

,`associative`

, and`commutative`

. Some of them are probably too aggressive and I would like to have comments on this point.## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

- If the ordering of arguments are changed, it has to be mentioned explicitly.

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 submitted PR Review for #517 Extra theorems about subn minn and maxn.

pi8027 submitted PR Review for #517 Extra theorems about subn minn and maxn.

pi8027 created PR Review Comment on #517 Extra theorems about subn minn and maxn:

If suffixes

`l`

and`r`

stand for left and right distributivity, this should be named`subn_maxl`

.

pi8027 created PR Review Comment on #517 Extra theorems about subn minn and maxn:

`subn_minl`

?

pi8027 created PR Review Comment on #517 Extra theorems about subn minn and maxn:

`leqP`

has been relocated in #429 after`maxn`

/`minn`

lemmas, so this does not work. I guess we should use`leq_total`

instead here.

pi8027 updated PR #546 [DO NOT MERGE] Fix a coherence (ambiguous paths) issue of fieldExtType and a conversion issue of "regular" instances from `fieldext-coherence`

to `master`

:

## Motivation for this change

`R : ringType`

,`[lalgType R of R^o] : ringType`

and`[ringType of R]`

(≡`GRing.Ring.Pack R (GRing.Ring.class R)`

) were not convertible and other "regular" instances had the same issue, because every algebra structure had another algebra/module structure as their base. The algebra structures now take the closest ring/field structure as their base to avoid record eta expansion.`[fieldExtType F of L for K]`

is now removed. (Removing this notation is too aggressive and I have to put it back for compatibility reasons, but I don't get how to do that.)- Some missing
`comAlgType`

and`comUnitAlgType`

instances are added.`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery updated PR #517 Extra theorems about subn minn and maxn (assigned to CohenCyril) from `minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery updated PR #517 Extra theorems about subn minn and maxn (assigned to CohenCyril) from `minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 submitted PR Review for #517 Extra theorems about subn minn and maxn.

pi8027 submitted PR Review for #517 Extra theorems about subn minn and maxn.

pi8027 created PR Review Comment on #517 Extra theorems about subn minn and maxn:

`move=> m n p; apply/eqP. rewrite eqn_leq !geq_max !leq_sub2r leq_max ?leqnn ?andbT ?orbT // /maxn. by case: (_ < _); rewrite leqnn // orbT.`

pi8027 created PR Review Comment on #517 Extra theorems about subn minn and maxn:

`move=> m n p; apply/eqP. rewrite eqn_leq !leq_min !leq_sub2r geq_min ?leqnn ?orbT //= /minn. by case: (_ < _); rewrite leqnn // orbT.`

**CohenCyril** requested CohenCyril for a review on PR #517 Extra theorems about subn minn and maxn.

`minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** requested pi8027 and CohenCyril for a review on PR #517 Extra theorems about subn minn and maxn.

CohenCyril submitted PR Review for #517 Extra theorems about subn minn and maxn.

CohenCyril labeled Issue #467 Incompatibility with Ltac2:

Hi,

the following sample doesn't work :

`

From Ltac2 Require Import Ltac2.

From Ltac2 Require Option.Ltac2 hello_world () := Message.print (Message.of_string "Hello, world!").

From mathcomp Require Import ssreflect ssrnat eqtype ssrbool ssrnum ssralg.

Variable R: fieldType.

Variable saturation:R.

Open Scope ring_scope.

Import GRing.Theory.

Definition NakaRushon x coeff :=

x / (1%:R + x * (1 - coeff) / saturation).Lemma tmp:

forall x y:R, ~~(y == 0) -> x = x * y / y.

Proof.

move => x y H.

`It fails with the error message :

`Syntax error: [tactic:q_ident] expected after 'move' (in [tactic:tac2expr]).`

Coq is at version 8.11, mathcomp at 1.10.

pi8027 submitted PR Review for #517 Extra theorems about subn minn and maxn.

pi8027 created PR Review Comment on #517 Extra theorems about subn minn and maxn:

`- Added theorems about subtraction and min and max : `subn_minl` and `subn_maxl` in `ssrnat.v``

`minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`minn`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

The theorems are missing but I am not very happy about their proofs

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery submitted PR Review for #517 Extra theorems about subn minn and maxn.

thery created PR Review Comment on #517 Extra theorems about subn minn and maxn:

:see_no_evil: Thanks!

pi8027 submitted PR Review for #517 Extra theorems about subn minn and maxn.

CohenCyril merged PR #517 Extra theorems about subn minn and maxn.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and thery (1).

`qualified-dual-op`

to `master`

:

## Motivation for this change

- Fixes #538: The
`dual_*`

notations were not qualified with the`Order`

module.`rewrite /<=%O`

did not turn`@Order.le (dual_display d) (dual_porderType T) x y`

into`@Order.le d T y x`

immediately, this PR also removes`dual_le`

and`dual_lt`

from the definition of`dual_porderType`

, and put them back as notations for`@Order.le (dual_display _) _`

and`@Order.lt (dual_display _) _`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] merge dependency: #494
- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril closed Issue #467 Incompatibility with Ltac2:

Hi,

the following sample doesn't work :

`

From Ltac2 Require Import Ltac2.

From Ltac2 Require Option.Ltac2 hello_world () := Message.print (Message.of_string "Hello, world!").

From mathcomp Require Import ssreflect ssrnat eqtype ssrbool ssrnum ssralg.

Variable R: fieldType.

Variable saturation:R.

Open Scope ring_scope.

Import GRing.Theory.

Definition NakaRushon x coeff :=

x / (1%:R + x * (1 - coeff) / saturation).Lemma tmp:

forall x y:R, ~~(y == 0) -> x = x * y / y.

Proof.

move => x y H.

`It fails with the error message :

`Syntax error: [tactic:q_ident] expected after 'move' (in [tactic:tac2expr]).`

Coq is at version 8.11, mathcomp at 1.10.

CohenCyril closed Issue #538 Notations `dual_(bottom|top|join|meet|max|min)`

should be qualified by the `Order`

module:

Since

`Order.bottom`

, etc. are qualified, I thought they should, but actually they are not. @CohenCyril

CohenCyril merged PR #547 Qualify the dual_* notations with the Order module.

CohenCyril pushed 2 commits to branch master. Commits by CohenCyril (1) and pi8027 (1).

- Qualify the dual_* notations with the Order module (b73b31c)
- Merge pull request #547 from pi8027/qualified-dual-op (4483643)

CohenCyril milestoned Issue #547 Qualify the dual_* notations with the Order module:

## Motivation for this change

- Fixes #538: The
`dual_*`

notations were not qualified with the`Order`

module.`rewrite /<=%O`

did not turn`@Order.le (dual_display d) (dual_porderType T) x y`

into`@Order.le d T y x`

immediately, this PR also removes`dual_le`

and`dual_lt`

from the definition of`dual_porderType`

, and put them back as notations for`@Order.le (dual_display _) _`

and`@Order.lt (dual_display _) _`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] merge dependency: #494
- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #464 [WIP] meet semilattice structures from `semilattices`

to `master`

:

## Motivation for this change

This PR adds the following structures:

`meetSemilatticeType`

: inf-semilattice,`bSemilatticeType`

: inf-semilattice with the bottom.cc: @strub

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [x] merge dependency: #494

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #458 [WIP] new interval library from `interval`

to `master`

:

## Motivation for this change

`latticeType`

form a`latticeType`

where join is the intersection and meet is the convex hull, and intervals on an`orderType`

form a`distrLatticeType`

as well.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #458 The new interval library from `interval`

to `master`

:

## Motivation for this change

`latticeType`

form a`latticeType`

where join is the intersection and meet is the convex hull, and intervals on an`orderType`

form a`distrLatticeType`

as well.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**pi8027** has marked PR #458 as ready for review.

pi8027 updated PR #458 The new interval library from `interval`

to `master`

:

## Motivation for this change

`latticeType`

form a`latticeType`

where join is the intersection and meet is the convex hull, and intervals on an`orderType`

form a`distrLatticeType`

as well.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #458 The new interval library from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures.

`x <= y ?< if c`

(`lersif`

) has been replaced with`x < y ?<= if c`

(`lteif`

) where`c`

is inverted. This change makes statements of several lemmas (e.g.,`lteif_orb`

) easily comprehensible.- The first constructor
`BOpen_if`

of`itv_bound`

has been replaced with`BClase_if`

where the first argument is inverted. Now`pred_of_itv`

is defined by using`lteif`

instead of`lersif`

.- Intervals of
`T : porderType`

form a`porderType`

where the ordering relation is the subset relation. If`T`

is a`latticeType`

, intervals also form a`latticeType`

where the join and meet are intersection and convex hull respectively. They are distributive if`T`

is an`orderType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #458 The new interval library from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures.

`x <= y ?< if c`

(`lersif`

) has been replaced with`x < y ?<= if c'`

(`lteif`

) where`c'`

is negation of`c`

. This change makes statements of several lemmas (e.g.,`lteif_orb`

) easily comprehensible.- The first constructor
`BOpen_if`

of`itv_bound`

has been replaced with`BClase_if`

where the first argument is inverted. Now`pred_of_itv`

is defined by using`lteif`

instead of`lersif`

.- Intervals of
`T : porderType`

form a`porderType`

where the ordering relation is the subset relation. If`T`

is a`latticeType`

, intervals also form a`latticeType`

where the join and meet are intersection and convex hull respectively. They are distributive if`T`

is an`orderType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #458 The new interval library from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures.

`x <= y ?< if c`

(`lersif`

) has been replaced with`x < y ?<= if c'`

(`lteif`

) where`c'`

is negation of`c`

. This change makes statements of several lemmas (e.g.,`lteif_orb`

) easily comprehensible.- The first constructor
`BOpen_if`

of`itv_bound`

has been replaced with`BClose_if`

where the first argument is inverted. Now`pred_of_itv`

is defined by using`lteif`

instead of`lersif`

.- Intervals of
`T : porderType`

form a`porderType`

where the ordering relation is the subset relation. If`T`

is a`latticeType`

, intervals also form a`latticeType`

where the join and meet are intersection and convex hull respectively. They are distributive if`T`

is an`orderType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc opened Issue #554 More lemmas on subseq, next, arc, findes, etc.

I just proved a number of additional results on

`subseq`

,`next`

,`arc`

, and`findex`

. It's a bit long to post here in it's entirety, but maybe some of these could (should) find their way into the corresponding files in mathcomp.Here is the file: arc.v.

For now the proofs do not conform to the mathcomp guidelines. Comments on what to PR or how to simplify are very much appreciated.

chdoc opened PR #555 some lemmas for disjoint from `disjoint-lemmas`

to `master`

:

## Motivation for this change

Some more lemmas to facilitate reasoning about

`[disjoint _ & _]`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

gares merged PR #550 Be robust to a change in the default argument naming algorithm.

gares pushed 2 commits to branch master. Commits by gares (1) and jashug (1).

- Be robust to a change in the default argument naming algorithm. (94efd6e)
- Merge pull request #550 from jashug/dont-refresh-argument-names-overlay (24b1070)

gares milestoned Issue #550 Be robust to a change in the default argument naming algorithm.

## Motivation for this change

Overlay for coq/coq#12756, in which the default argument name changes to just

`S`

from`S0`

. This change preserves the old name; switching instead to use`S`

may be preferable but introduces a potential impact on downstream users of mathcomp.

Should be entirely backwards compatible.<!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril pushed 19 commits to branch experiment/forms.

- Adding are_allpairs predicate (081c6f5)
- Adding sig_big_dep lemma (1576d0c)
- Adding commr_horner lemma (94edc5b)
- Adding [row|col]_[udlr]submx lemmas (f7ac387)
- minpolymx_minP lemma (5879c89)
- More pinvmx theory (0a32529)
- Adding sub_sums_genmxP (generalizes sub_sumsmxP) (b28f48b)
- Expliciting relation between split and [lr]shift (841166c)
- Adding mxOver predicate (92973e2)
- Adding row, column and diagonal block matrices (a95f4c5)
- Adding more map_mx lemmas (fffbfe0)
- Elementary theory of diagonal and triagular matrices (2e61063)
- Adding missing mxalgebra lemmas (abc2e32)
- Polynomial evaluation and minimal poly of a diagonal matrix (eb5ec66)
- Kernel lemmas, stability and commuting matrices (11854ef)
- Changelog to dispatch (467bffc)
- mxred (af94d4b)
- Initial Import of spectral theorem and bilinear forms (d899871)
- porting math-comp and to odd-order (10ec8ae)

CohenCyril updated PR #207 Work In Progress: adding forms and spectral theorems from `experiment/forms`

to `master`

:

Content:

- Adding bilinear, sesquilinear, hermitian (symmetric, skew symmetric and hermitian) and hermitian positive definite forms.
- A proof of the spectral theorem for normal matrices, and some theory of stability wrt a sub(mx)space.
- Several auxiliary lemmas of general purpose.
TODO:

- [ ] document,
- [ ] replace ad hoc
`cfdot`

in classfun (@LaurenceRideau),- [ ] backport several theorems to matrix, vector or mxalgebra,
- [ ] bridge vector and mxalgebra to port results.
- [ ] update ChangeLog
TODO update after @LaurenceRideau tried on the odd-order repo (https://github.com/math-comp/odd-order/pull/2)

- [ ] Infer the canonical form on a vector space in notations such as
`'[_ ,_]`

,`orthogonal`

,`isometry`

...- [ ] Make the right
`linear_for`

on the right and the left for bilinear forms (so that`'[a *: x, b *: y] = a * b^* * '[x ,y]`

instead of`'[a *: x, b *: y] = a *: b^* *: '[x ,y]`

)- [ ] Have lemmas
`linearZl`

,`linearZr`

,`linearZlr`

,`linearZrl`

(right now only`linearZl_LR`

is only available)

CohenCyril edited PR #207 Work In Progress: adding forms and spectral theorems from `experiment/forms`

to `master`

:

Content:

- Adding bilinear, sesquilinear, hermitian (symmetric, skew symmetric and hermitian) and hermitian positive definite forms.
- A proof of the spectral theorem for normal matrices, and some theory of stability wrt a sub(mx)space.
- Several auxiliary lemmas of general purpose.
TODO:

- [ ] document,
- [ ] replace ad hoc
`cfdot`

in classfun (@LaurenceRideau),- [ ] backport several theorems to matrix, vector or mxalgebra,
- [ ] bridge vector and mxalgebra to port results.
- [ ] update ChangeLog
TODO update after @LaurenceRideau tried on the odd-order repo (https://github.com/math-comp/odd-order/pull/2)

- [ ] Infer the canonical form on a vector space in notations such as
`'[_ ,_]`

,`orthogonal`

,`isometry`

...- [ ] Make the right
`linear_for`

on the right and the left for bilinear forms (so that`'[a *: x, b *: y] = a * b^* * '[x ,y]`

instead of`'[a *: x, b *: y] = a *: b^* *: '[x ,y]`

)- [x] Have lemmas
`linearZl`

,`linearZr`

,`linearZlr`

,`linearZrl`

(right now only`linearZl_LR`

is only available)

CohenCyril edited PR #207 Work In Progress: adding forms and spectral theorems from `experiment/forms`

to `master`

:

Content:

- Several auxiliary lemmas of general purpose.
TODO:

- [ ] document,
- [ ] replace ad hoc
`cfdot`

in classfun (@LaurenceRideau),- [x] backport several theorems to matrix, vector or mxalgebra,
- [ ] bridge vector and mxalgebra to port results.
- [ ] update ChangeLog

`'[_ ,_]`

,`orthogonal`

,`isometry`

...`linear_for`

on the right and the left for bilinear forms (so that`'[a *: x, b *: y] = a * b^* * '[x ,y]`

instead of`'[a *: x, b *: y] = a *: b^* *: '[x ,y]`

)- [x] Have lemmas
`linearZl`

,`linearZr`

,`linearZlr`

,`linearZrl`

(right now only`linearZl_LR`

is only available)

pi8027:

- edited TopicsNextMeeting

gares:

- created Minutes August 25 2020

gares:

- edited Home

CohenCyril:

- edited TopicsNextMeeting

CohenCyril:

- edited TopicsNextMeeting

gares:

- edited Minutes August 25 2020

CohenCyril:

- edited TopicsNextMeeting

affeldt-aist:

- edited TopicsNextMeeting

affeldt-aist:

- edited TopicsNextMeeting

gares:

- edited Minutes August 25 2020

gares:

- edited Minutes August 25 2020

gares:

- edited Minutes August 25 2020

CohenCyril:

- edited TopicsNextMeeting

`intro_rw`

to `master`

:

## Motivation for this change

- calling rewrite from an intro pattern, use with parsimony

`=> /[1! rules]`

does`rewrite rules`

`=> /[! rules]`

does`rewrite !rules`

`=> /apply`

does`=> hyp {}/hyp`

`=> /swap`

does`=> x y; move: y x`

(also swap and perserves let bindings)

`=> /dup`

does`=> x; have copy := x; move: copy x`

(also copies and preserves let bindings)This is a part of #372, simplified, rewritten and rebased.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [x] added corresponding documentation in the headers
- [ ] open corresponding PR in Coq to integrate changes from
`ssreflect.v`

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril labeled Issue #310 clean up using printing only notations:

Grep for:

- strings interrupted by
`' '`

- strings starting with
`\`

a string and then a blank and the continuation of string

CohenCyril labeled Issue #310 clean up using printing only notations:

Grep for:

- strings interrupted by
`' '`

- strings starting with
`\`

a string and then a blank and the continuation of string

CohenCyril labeled Issue #349 build the doc using CI:

One thing I don't know is then how to commit back the result, if wanted (the doc is committed in

`docs/htmldoc`

).

CohenCyril assigned Issue #480 Switching suffixes of more distributivity lemmas (assigned to CohenCyril):

It might be better to have short suffixes

`D`

and`B`

rather than`_add`

and`_sub`

in the following lemmas.`algebra/fraction.v:158:Lemma pi_add : {morph \pi : x y / addf x y >-> add x y}. algebra/matrix.v:1232:Lemma map_mx_sub A B : (A - B)^f = A^f - B^f. algebra/mxalgebra.v:2380:Lemma mulsmx_addr m1 m2 m3 n algebra/mxalgebra.v-2381- (R1 : 'A_(m1, n)) (R2 : 'A_(m2, n)) (R3 : 'A_(m3, n)) : algebra/mxalgebra.v-2382- (R1 * (R2 + R3) = R1 * R2 + R1 * R3)%MS. algebra/poly.v:431:Lemma polyC_add : {morph polyC : a b / a + b}. algebra/poly.v:437:Lemma polyC_sub : {morph polyC : a b / a - b}. algebra/poly.v:1525:Lemma derivn_sub n : {morph derivn n : p q / p - q}. algebra/polydiv.v:563:Lemma rdivp_addr q r : rdvdp d r -> rdivp (q + r) d = rdivp q d + rdivp r d. algebra/polydiv.v:584:Lemma rmodp_add p q : rmodp (p + q) d = rmodp p d + rmodp q d. algebra/polydiv.v:2504:Lemma modp_add p q : (p + q) %% d = p %% d + q %% d. algebra/polydiv.v:2513:Lemma divp_add p q : (p + q) %/ d = p %/ d + q %/ d. algebra/polydiv.v:2826:Lemma modp_add d p q : (p + q) %% d = p %% d + q %% d. algebra/polydiv.v:2837:Lemma divp_add d p q : (p + q) %/ d = p %/ d + q %/ d. algebra/ring_quotient.v:175:Lemma pi_addr zqT : {morph \pi_zqT : x y / addT x y >-> x + y}. algebra/ring_quotient.v:537:Lemma pi_add : {morph \pi : x y / x + y >-> add x y}. algebra/ssrint.v:140:Lemma oppz_add : {morph oppz : m n / m + n}. algebra/vector.v:1494:Lemma limg_add f : {morph lfun_img f : U V / U + V}%VS. algebra/zmodp.v:125:Lemma Zp_mul_addr : right_distributive Zp_mul Zp_add. ssreflect/bigop.v:453:Lemma mulm_addr : right_distributive mul add. ssreflect/seq.v:2422:Lemma iota_add m n1 n2 : iota m (n1 + n2) = iota m n1 ++ iota (m + n1) n2. ssreflect/ssrnat.v:921:Lemma iter_add n m f x : iter (n + m) f x = iter n f (iter m f x).`

Since I did this mechanically with

`grep`

and did not check the meaning of them entirely, I need some input to prepare a PR.

CohenCyril labeled Issue #480 Switching suffixes of more distributivity lemmas (assigned to CohenCyril):

It might be better to have short suffixes

`D`

and`B`

rather than`_add`

and`_sub`

in the following lemmas.`algebra/fraction.v:158:Lemma pi_add : {morph \pi : x y / addf x y >-> add x y}. algebra/matrix.v:1232:Lemma map_mx_sub A B : (A - B)^f = A^f - B^f. algebra/mxalgebra.v:2380:Lemma mulsmx_addr m1 m2 m3 n algebra/mxalgebra.v-2381- (R1 : 'A_(m1, n)) (R2 : 'A_(m2, n)) (R3 : 'A_(m3, n)) : algebra/mxalgebra.v-2382- (R1 * (R2 + R3) = R1 * R2 + R1 * R3)%MS. algebra/poly.v:431:Lemma polyC_add : {morph polyC : a b / a + b}. algebra/poly.v:437:Lemma polyC_sub : {morph polyC : a b / a - b}. algebra/poly.v:1525:Lemma derivn_sub n : {morph derivn n : p q / p - q}. algebra/polydiv.v:563:Lemma rdivp_addr q r : rdvdp d r -> rdivp (q + r) d = rdivp q d + rdivp r d. algebra/polydiv.v:584:Lemma rmodp_add p q : rmodp (p + q) d = rmodp p d + rmodp q d. algebra/polydiv.v:2504:Lemma modp_add p q : (p + q) %% d = p %% d + q %% d. algebra/polydiv.v:2513:Lemma divp_add p q : (p + q) %/ d = p %/ d + q %/ d. algebra/polydiv.v:2826:Lemma modp_add d p q : (p + q) %% d = p %% d + q %% d. algebra/polydiv.v:2837:Lemma divp_add d p q : (p + q) %/ d = p %/ d + q %/ d. algebra/ring_quotient.v:175:Lemma pi_addr zqT : {morph \pi_zqT : x y / addT x y >-> x + y}. algebra/ring_quotient.v:537:Lemma pi_add : {morph \pi : x y / x + y >-> add x y}. algebra/ssrint.v:140:Lemma oppz_add : {morph oppz : m n / m + n}. algebra/vector.v:1494:Lemma limg_add f : {morph lfun_img f : U V / U + V}%VS. algebra/zmodp.v:125:Lemma Zp_mul_addr : right_distributive Zp_mul Zp_add. ssreflect/bigop.v:453:Lemma mulm_addr : right_distributive mul add. ssreflect/seq.v:2422:Lemma iota_add m n1 n2 : iota m (n1 + n2) = iota m n1 ++ iota (m + n1) n2. ssreflect/ssrnat.v:921:Lemma iter_add n m f x : iter (n + m) f x = iter n f (iter m f x).`

Since I did this mechanically with

`grep`

and did not check the meaning of them entirely, I need some input to prepare a PR.

CohenCyril opened PR #556 Adding lemma `oddS`

from `oddS`

to `master`

:

## Motivation for this change

fixes #500

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

maximedenes assigned PR #433 [test suite] infrastructure to test how some statements are printed to maximedenes.

pi8027 submitted PR Review for #556 Adding lemma `oddS`

pi8027 created PR Review Comment on #556 Adding lemma `oddS`

Isn't it better to merge these two items?

thery demilestoned Issue #357 Algebraic structure of dioid (assigned to thery):

Dear mathcomp developers,

This is a formalization of the algebraic structure of dioid and associated lemmas (including the Nerode lemma).

I am using this for formalizing proofs in network calculus: a theory used in certification of some embedded networks like AFDX in airplanes. This is a work done @proux01

Do you think it can be of interest for mathcomp? A separate library?

A few questions:

- rings are semirings, should we formalize it?
a complete dioid is a dioid that happens to be a complete lattice, should we formalize this structure of complete lattice separately? (there are binary lattices in finmap, maybe there are some links here)

[ ] added corresponding entries in

`CHANGELOG_UNRELEASED.md`

- [X] added corresponding documentation in the headers
## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery closed without merge PR #357 Algebraic structure of dioid.

CohenCyril submitted PR Review for #556 Adding lemma `oddS`

CohenCyril created PR Review Comment on #556 Adding lemma `oddS`

I prefer this is done in the release phase, to minimize possible faulty merge union

CohenCyril pushed 1 commit to branch master.

- Update pull_request_template.md (e725070)

CohenCyril:

- edited TopicsNextMeeting

gares submitted PR Review for #316 [build] Preliminary support for building with Dune.

gares created PR Review Comment on #316 [build] Preliminary support for building with Dune.

Do we really need an unreleased version of Dune?

ejgallego submitted PR Review for #316 [build] Preliminary support for building with Dune.

ejgallego created PR Review Comment on #316 [build] Preliminary support for building with Dune.

It should work fine with recent versions, but the PR needs updating.

ejgallego updated PR #316 [build] Preliminary support for building with Dune. (assigned to gares) from `dune`

to `master`

:

This PR provides preliminary support for building math-comp with Dune

[support in Dune's master currently]As of today we do consider math-comp as a monolithic library due to

Dune's Coq support being unable to compose libraries yet, this will be

fixed in the future.

ejgallego submitted PR Review for #316 [build] Preliminary support for building with Dune.

ejgallego created PR Review Comment on #316 [build] Preliminary support for building with Dune.

Updated.

pi8027 submitted PR Review for #556 Adding lemma `oddS`

pi8027 updated PR #458 The new interval library from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures.

`x <= y ?< if c`

(`lersif`

) has been replaced with`x < y ?<= if c'`

(`lteif`

) where`c'`

is negation of`c`

. This change makes statements of several lemmas (e.g.,`lteif_orb`

) easily comprehensible.- The first constructor
`BOpen_if`

of`itv_bound`

has been replaced with`BClose_if`

where the first argument is inverted. Now`pred_of_itv`

is defined by using`lteif`

instead of`lersif`

.`T : porderType`

form a`porderType`

where the ordering relation is the subset relation. If`T`

is a`latticeType`

, intervals also form a`latticeType`

where the join and meet are intersection and convex hull respectively. They are distributive if`T`

is an`orderType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #458 The new interval library from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures.

`x <= y ?< if c`

(`lersif`

) has been replaced with`x < y ?<= if c'`

(`lteif`

) where`c'`

is negation of`c`

. This change makes statements of several lemmas (e.g.,`lteif_orb`

) easily comprehensible.- The first constructor
`BOpen_if`

of`itv_bound`

has been replaced with`BClose_if`

where the first argument is inverted. Now`pred_of_itv`

is defined by using`lteif`

instead of`lersif`

.`T : porderType`

form a`porderType`

where the ordering relation is the subset relation. If`T`

is a`latticeType`

, intervals also form a`latticeType`

where the join and meet are intersection and convex hull respectively. They are distributive if`T`

is an`orderType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #458 The new interval library from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures.

`x <= y ?< if c`

(`lersif`

) has been replaced with`x < y ?<= if c'`

(`lteif`

) where`c'`

is negation of`c`

. This change makes statements of several lemmas (e.g.,`lteif_orb`

) easily comprehensible.`BOpen_if`

of`itv_bound`

has been replaced with`BClose_if`

where the first argument is inverted. Now`pred_of_itv`

is defined by using`lteif`

instead of`lersif`

.`T : porderType`

form a`porderType`

where the ordering relation is the subset relation. If`T`

is a`latticeType`

, intervals also form a`latticeType`

where the join and meet are intersection and convex hull respectively. They are distributive if`T`

is an`orderType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #458 The new interval library from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures.

`x <= y ?< if c`

(`lersif`

) has been replaced with`x < y ?<= if c'`

(`lteif`

) where`c'`

is negation of`c`

. This change makes statements of several lemmas (e.g.,`lteif_orb`

) easily comprehensible.`BOpen_if`

of`itv_bound`

has been replaced with`BClose_if`

where the first argument is inverted. Now`pred_of_itv`

is defined by using`lteif`

instead of`lersif`

.`T : porderType`

form a`porderType`

where the ordering relation is the subset relation. If`T`

is a`latticeType`

, intervals also form a`latticeType`

where the join and meet are intersection and convex hull respectively. They are distributive if`T`

is an`orderType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril assigned PR #458 The new interval library to CohenCyril.

**CohenCyril** requested CohenCyril for a review on PR #458 The new interval library.

CohenCyril milestoned Issue #556 Adding lemma `oddS`

## Motivation for this change

fixes #500

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril closed Issue #500 [ssrnat] Suggestion of additional lemma: oddS:

Hi,

I was reading the book, and for one of the exercices (16 in 5.1.1), I missed a simple lemma on the odd predicate ; I propose to add it:

`Lemma oddS n: odd n.+1 = ~~ odd n. Proof. elim: n => [|n Hn] ; first by easy. by rewrite Hn. Qed.`

which gave me:

`Lemma sum_odd n : \sum_ (0 <= i < n.*2 | odd i) i = n^2. Proof. elim: n => [|n Hn] ; first by rewrite unlock. rewrite doubleS. rewrite big_mkcond. rewrite big_nat_recr //. rewrite big_nat_recr //. rewrite odd_double oddS odd_double //=. rewrite -big_mkcond {}Hn. rewrite addn0 -!mulnn -addnn mulnS mulnC mulnS. ring. Qed.`

I must admit I'm not satisfied by either proof, but as a beginner, getting a correct proof is already an achievement. [I find the last part about the (m.+1)^2=... especially awful].

CohenCyril merged PR #556 Adding lemma `oddS`

CohenCyril pushed 2 commits to branch master.

pi8027 updated PR #458 The new interval library (assigned to CohenCyril) from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures.

`x <= y ?< if c`

(`lersif`

) has been replaced with`x < y ?<= if c'`

(`lteif`

) where`c'`

is negation of`c`

. This change makes statements of several lemmas (e.g.,`lteif_orb`

) easily comprehensible.`BOpen_if`

of`itv_bound`

has been replaced with`BClose_if`

where the first argument is inverted. Now`pred_of_itv`

is defined by using`lteif`

instead of`lersif`

.`T : porderType`

form a`porderType`

where the ordering relation is the subset relation. If`T`

is a`latticeType`

, intervals also form a`latticeType`

where the join and meet are intersection and convex hull respectively. They are distributive if`T`

is an`orderType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 edited PR #458 The new interval library (assigned to CohenCyril) from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures.

`x <= y ?< if c`

(`lersif`

) has been replaced with`x < y ?<= if c'`

(`lteif`

) where`c'`

is negation of`c`

. This change makes statements of several lemmas (e.g.,`lteif_orb`

) easily comprehensible.`BOpen_if`

of`itv_bound`

has been replaced with`BClose_if`

where the first argument is inverted. Now`pred_of_itv`

is defined by using`lteif`

instead of`lersif`

.`T : porderType`

form a`porderType`

where the ordering relation is the subset relation. If`T`

is a`latticeType`

, intervals also form a`latticeType`

where the join and meet are intersection and convex hull respectively. They are distributive if`T`

is an`orderType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do -->## PR overlays

<!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

erikmd opened PR #557 chore: refactor GitLab CI config a bit to lighten nightly builds from `lighten-nightly-build`

to `master`

:

## Motivation for this change

jobs {coq-8.12, mathcomp-dev:coq-8.12} are unneeded in this scheduled pipeline, now that 8.12.0 is tagged.

Insert commented jobs for upcoming coq-8.13 as well.

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 submitted PR Review for #458 The new interval library.

pi8027 created PR Review Comment on #458 The new interval library:

I think this result can be generalized by introducing the notion of the dimension of a lattice. I would say a lattice

`L`

is n-dimensional if "∀x_0 ... x_n ∈ L. ∃i ∈ {0, ..., n}. ⋀_(0 ≦ j ≦ n) x_j = ⋀_(0 ≦ j ≦ n ∧ j ≠ i) x_j" holds. As a result, a totally ordered set is a 1-dimensional lattice, and the product of n- and m-dimensional lattices forms an (n + m)-dimensional lattice. The problem is that this wording is confusing with lattice points.

pi8027 edited PR Review Comment on #458 The new interval library.

pi8027 edited PR Review Comment on #458 The new interval library.

pi8027 edited PR Review Comment on #458 The new interval library.

CohenCyril opened PR #558 Adding are_allpairs predicate from `are_allpairs`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

This predicate is useful in stating that a sequence of matrices all commute.

This is a part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #558 Adding are_allpairs predicate from `are_allpairs`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

This predicate is useful in stating that a sequence of matrices all commute.

This is a part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** requested chdoc for a review on PR #558 Adding are_allpairs predicate.

CohenCyril milestoned Issue #558 Adding are_allpairs predicate:

## Motivation for this change

<!-- please explain your reason for doing this change -->

This predicate is useful in stating that a sequence of matrices all commute.

This is a part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

gares assigned PR #558 Adding are_allpairs predicate to gares.

CohenCyril opened PR #559 Adding sig_big_dep lemma from `sig_big_dep`

to `master`

:

## Motivation for this change

Useful tooling lemma with nested dependent bigops.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** requested gares for a review on PR #559 Adding sig_big_dep lemma.

CohenCyril opened PR #560 Adding commr_horner lemma from `commr_horner`

to `master`

:

## Motivation for this change

Missing lemma between

`GRing.comm`

,`comm_coef`

and`horner`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #560 Adding commr_horner lemma from `commr_horner`

to `master`

:

## Motivation for this change

Missing lemma between

`GRing.comm`

,`comm_coef`

and`horner`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** requested ybertot for a review on PR #560 Adding commr_horner lemma.

CohenCyril opened PR #561 Adding commr_horner lemma from `rowcol_dlrsubmx`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril closed without merge PR #561 Adding commr_horner lemma.

CohenCyril edited PR #560 Adding commr_horner lemma from `commr_horner`

to `master`

:

## Motivation for this change

Missing lemma between

`GRing.comm`

,`comm_coef`

and`horner`

.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril opened PR #562 Adding [row|col]_[udlr]submx lemmas from `rowcol_dlrsubmx`

to `master`

:

## Motivation for this change

Combining

`row`

and`col`

with block submatrices.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #562 Adding [row|col]_[udlr]submx lemmas from `rowcol_dlrsubmx`

to `master`

:

## Motivation for this change

Combining

`row`

and`col`

with block submatrices.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #562 Adding [row|col]_[udlr]submx lemmas from `rowcol_dlrsubmx`

to `master`

:

## Motivation for this change

Combining

`row`

and`col`

with block submatrices.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #562 Adding [row|col]_[udlr]submx lemmas from `rowcol_dlrsubmx`

to `master`

:

## Motivation for this change

Combining

`row`

and`col`

with block submatrices.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #559 Adding sig_big_dep lemma from `sig_big_dep`

to `master`

:

## Motivation for this change

Useful tooling lemma with nested dependent bigops.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril edited PR #560 Adding commr_horner lemma from `commr_horner`

to `master`

:

## Motivation for this change

Missing lemma between

`GRing.comm`

,`comm_coef`

and`horner`

.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #559 Adding sig_big_dep lemma from `sig_big_dep`

to `master`

:

## Motivation for this change

Useful tooling lemma with nested dependent bigops.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

chdoc submitted PR Review for #558 Adding are_allpairs predicate.

chdoc submitted PR Review for #558 Adding are_allpairs predicate.

chdoc created PR Review Comment on #558 Adding are_allpairs predicate:

I agree with @gares in not being happy with this name.

chdoc created PR Review Comment on #558 Adding are_allpairs predicate:

This line has 83 characters, I suggest splitting it at the semicolon :grin:

chdoc created PR Review Comment on #558 Adding are_allpairs predicate:

The more natural generalization would probably be

`_.+1`

rather than`size xs`

gares submitted PR Review for #559 Adding sig_big_dep lemma.

gares submitted PR Review for #558 Adding are_allpairs predicate.

gares created PR Review Comment on #558 Adding are_allpairs predicate:

@CohenCyril probably took my vscode configuration...

CohenCyril opened PR #563 Lemmas mxminpoly_minP and dvd_mxminpoly from `minpolymx_minP`

to `master`

:

## Motivation for this change

Equivalence between

`horner_mx A p`

being zero and divisibility by the

minimal polynomial`mxminpoly A`

. (Only one way was proven)

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** requested thery for a review on PR #563 Lemmas mxminpoly_minP and dvd_mxminpoly.

CohenCyril submitted PR Review for #558 Adding are_allpairs predicate.

CohenCyril created PR Review Comment on #558 Adding are_allpairs predicate:

Also, is it useful to have

`T : nonPropType`

rather than`T : eqType`

while requiring`r : rel T`

to be a boolean relation? I mean, the proof of`are_allpairs_cons`

is nifty, but I would have expected a simpler proof based in`are_allpairsP`

.It may happen that a relation is decidable even on some non discrete types (e.g. a pair of an ordered type with a no discrete type), and I would like to preserve the full generality of the theorem on such occurences.

CohenCyril deleted PR Review Comment on #558 Adding are_allpairs predicate.

CohenCyril opened PR #564 More pinvmx theory from `pinvmx`

to `master`

:

## Motivation for this change

Adding lemma making

`pinvmx`

usable in a broader context, and

equality with`invmx`

when in`unitmx`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** requested ybertot for a review on PR #564 More pinvmx theory.

CohenCyril edited PR #564 More pinvmx theory from `pinvmx`

to `master`

:

## Motivation for this change

Adding lemma making

`pinvmx`

usable in a broader context, and

equality with`invmx`

when in`unitmx`

.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

`experiment/forms`

to `master`

:

Content:

- Several auxiliary lemmas of general purpose.
TODO:

- [ ] document,
- [ ] replace ad hoc
`cfdot`

in classfun (@LaurenceRideau),- [x] backport several theorems to matrix, vector or mxalgebra,
- [ ] bridge vector and mxalgebra to port results.
- [ ] update ChangeLog
- [ ] clear dependencies

`'[_ ,_]`

,`orthogonal`

,`isometry`

...`linear_for`

on the right and the left for bilinear forms (so that`'[a *: x, b *: y] = a * b^* * '[x ,y]`

instead of`'[a *: x, b *: y] = a *: b^* *: '[x ,y]`

)- [x] Have lemmas
`linearZl`

,`linearZr`

,`linearZlr`

,`linearZrl`

(right now only`linearZl_LR`

is only available)

CohenCyril opened PR #565 Expliciting relation between split and [lr]shift from `split_ordP`

to `master`

:

## Motivation for this change

Adds lemma

`split_ordP`

, a variant of`splitP`

which introduces

ordinal equalities between the index and`lshift`

/`rshift`

, rather

than equalities in`nat`

, which in some proofs makes the reasoning

easier (cf`matrix.v`

), especially together with the new lemmas

`eq_shift`

and`eq_lshift`

,`eq_rshift`

,`eq_lrshift`

,`eq_rlshift`

,

`lrshiftP`

, and`rlshiftP`

.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**CohenCyril** requested thery for a review on PR #565 Expliciting relation between split and [lr]shift.

CohenCyril opened PR #566 Lemma `sub_sums_genmxP`

(generalizes `sub_sumsmxP`

) from `sub_sums_genmxP`

to `master`

:

## Motivation for this change

Part of #207.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #566 Lemma `sub_sums_genmxP`

(generalizes `sub_sumsmxP`

) from `sub_sums_genmxP`

to `master`

:

## Motivation for this change

Part of #207.

## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

gares assigned PR #565 Expliciting relation between split and [lr]shift to gares.

thery assigned PR #559 Adding sig_big_dep lemma to thery.

thery milestoned Issue #559 Adding sig_big_dep lemma (assigned to thery):

## Motivation for this change

Useful tooling lemma with nested dependent bigops.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

thery merged PR #559 Adding sig_big_dep lemma.

thery pushed 3 commits to branch master. Commits by CohenCyril (2) and thery (1).

- Adding sig_big_dep lemma (2d9c3d1)
- fix for Coq 8.7 (58efec8)
- Merge pull request #559 from CohenCyril/sig_big_dep (5fc12f8)

thery assigned PR #560 Adding commr_horner lemma to thery.

thery milestoned Issue #560 Adding commr_horner lemma (assigned to thery):

## Motivation for this change

Missing lemma between

`GRing.comm`

,`comm_coef`

and`horner`

.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**thery** requested ybertot and affeldt-aist for a review on PR #560 Adding commr_horner lemma.

thery submitted PR Review for #563 Lemmas mxminpoly_minP and dvd_mxminpoly.

thery assigned PR #564 More pinvmx theory.

thery milestoned Issue #564 More pinvmx theory (assigned to thery):

## Motivation for this change

Adding lemma making

`pinvmx`

usable in a broader context, and

equality with`invmx`

when in`unitmx`

.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

**thery** requested amahboubi and ybertot for a review on PR #564 More pinvmx theory.

thery submitted PR Review for #565 Expliciting relation between split and [lr]shift.

thery submitted PR Review for #565 Expliciting relation between split and [lr]shift.

thery created PR Review Comment on #565 Expliciting relation between split and [lr]shift:

I would never have guessed the name of this theorem P?

thery created PR Review Comment on #565 Expliciting relation between split and [lr]shift:

why not simple apply/eqP/lrshiftP.

thery created PR Review Comment on #565 Expliciting relation between split and [lr]shift:

same as after

thery created PR Review Comment on #565 Expliciting relation between split and [lr]shift:

same as before

pi8027 updated PR #458 The new interval library (assigned to CohenCyril) from `interval`

to `master`

:

## Motivation for this change

This PR generalizes the results in interval.v using order structures.

`x <= y ?< if c`

(`lersif`

) has been replaced with`x < y ?<= if c'`

(`lteif`

) where`c'`

is negation of`c`

. This change makes statements of several lemmas (e.g.,`lteif_orb`

) easily comprehensible.`BOpen_if`

of`itv_bound`

has been replaced with`BClose_if`

where the first argument is inverted. Now`pred_of_itv`

is defined by using`lteif`

instead of`lersif`

.`T : porderType`

form a`porderType`

where the ordering relation is the subset relation. If`T`

is a`latticeType`

, intervals also form a`latticeType`

where the join and meet are intersection and convex hull respectively. They are distributive if`T`

is an`orderType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do -->## PR overlays

<!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #546 [DO NOT MERGE] Fix a coherence (ambiguous paths) issue of fieldExtType and a conversion issue of "regular" instances from `fieldext-coherence`

to `master`

:

## Motivation for this change

`R : ringType`

,`[lalgType R of R^o] : ringType`

and`[ringType of R]`

(≡`GRing.Ring.Pack R (GRing.Ring.class R)`

) were not convertible and other "regular" instances had the same issue, because every algebra structure had another algebra/module structure as their base. The algebra structures now take the closest ring/field structure as their base to avoid record eta expansion.`[fieldExtType F of L for K]`

is now removed. (Removing this notation is too aggressive and I have to put it back for compatibility reasons, but I don't get how to do that.)- Some missing
`comAlgType`

and`comUnitAlgType`

instances are added.`fieldExtType`

to`unitAlgType`

were ambiguous because the base of`FalgType`

was`unitAlgType`

but the base of`comUnitAlgType`

was`comAlgType`

.## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #464 [WIP] meet semilattice structures from `semilattices`

to `master`

:

## Motivation for this change

This PR adds the following structures:

`meetSemilatticeType`

: inf-semilattice,`bSemilatticeType`

: inf-semilattice with the bottom.cc: @strub

## Things done/to do

<!-- please fill in the following checklist -->

- [ ] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

- [ ] added corresponding documentation in the headers
- [x] merge dependency: #494

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

pi8027 updated PR #548 Use predicators even extensively from `predicators`

to `master`

:

## Motivation for this change

`cancel`

,`(left|right)_(id|zero|inverse|distributive)`

,`idempotent`

,`associative`

, and`commutative`

. Some of them are probably too aggressive and I would like to have comments on this point.## Things done/to do

<!-- please fill in the following checklist -->

`CHANGELOG_UNRELEASED.md`

- If the ordering of arguments are changed, it has to be mentioned explicitly.

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #565 Expliciting relation between split and [lr]shift (assigned to gares) from `split_ordP`

to `master`

:

## Motivation for this change

Adds lemma

`split_ordP`

, a variant of`splitP`

which introduces

ordinal equalities between the index and`lshift`

/`rshift`

, rather

than equalities in`nat`

, which in some proofs makes the reasoning

easier (cf`matrix.v`

), especially together with the new lemmas

`eq_shift`

and`eq_lshift`

,`eq_rshift`

,`eq_lrshift`

,`eq_rlshift`

,

`lrshiftP`

, and`rlshiftP`

.

Part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

(do not edit former entries)

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to reviewers -->

## Automatic note to reviewers

Read this Checklist and make sure there is a milestone.

CohenCyril updated PR #558 Adding are_allpairs predicate (assigned to gares) from `are_allpairs`

to `master`

:

## Motivation for this change

<!-- please explain your reason for doing this change -->

This predicate is useful in stating that a sequence of matrices all commute.

This is a part of #207.## Things done/to do

<!-- please fill in the following checklist -->

- [x] added corresponding entries in
`CHANGELOG_UNRELEASED.md`

<!-- Cross-out the above items using ~crossed out item~ if they happen not to be relevent -->

<!-- You may also add more items to explain what you did and what remains to do --><!-- leave this note as a reminder to