aboutsummaryrefslogtreecommitdiff
path: root/mathcomp/ssreflect/bigop.v
AgeCommit message (Collapse)Author
2021-01-25Merge pull request #696 from CohenCyril/sumnBYves Bertot
Adding lemma sumnB
2021-01-19Adding lemma sumnBCyril Cohen
cf https://stackoverflow.com/questions/61556710
2021-01-16Drop support for Coq 8.10 and deprecate the `deprecate` notationKazuhiko Sakaguchi
- The `deprecate` notation and `iota_add` have been deprecated. All the uses of the `deprecate` notation have been replaced with the `deprecated` attribute. - Deprecation aliases in `ssrnat` and `ssrnum` introduced in MathComp 1.11+beta1 have been removed. - Remove `VDFILE` related hacks from `Makefile.common`.
2020-11-26using under and removing commentCyril Cohen
2020-11-23Merge pull request #667 from CohenCyril/ssrcoq8.10Enrico Tassi
Using Coq 8.10 ssreflect new features
2020-11-20Using Coq 8.10 ssreflect new featuresCyril Cohen
2020-11-19Removing duplicate clears and turning the warning into an errorCyril Cohen
2020-11-19add declare scopesReynald Affeldt
2020-11-13Rename `eq_sorted` lemmas to `sorted_eq` and generalize `sort_le_id`Kazuhiko Sakaguchi
- Rename `eq_sorted` lemmas to `sorted_eq` to address a naming inconsistency. - Lemma `sort_le_id` has been generalized from `orderType` to `porderType`.
2020-10-29Switch from long suffixes to short suffixesKazuhiko Sakaguchi
2020-10-09Added results about `mask` and `subseq`Cyril Cohen
2020-09-10Merge pull request #492 from CohenCyril/big_rmcondKazuhiko Sakaguchi
New `big_uncond` and `big_rmcond -> big_rmcond_in`
2020-09-03compat Coq < 8.10Cyril Cohen
2020-09-03Lemmas reindex_omap and bigD1_ordCyril Cohen
+ eq_liftF and lift_eqF + proof simplificaions
2020-09-03New `big_uncond` and `big_rmcond -> big_rmcond_in`Cyril Cohen
- Lemma `big_rmcond` has been renamed `big_rmcomd_in` and the variant which does not require an `eqType` has been added and named `big_uncond`. - The name `big_rmcond` is deprecated and will be reused for `big_uncond` in the next version of math-comp - Additionally `big_uncond_in` is made available for uniformity, but is already deprecated.
2020-09-01fix for Coq 8.7Cyril Cohen
2020-09-01Adding sig_big_dep lemmaCyril Cohen
2020-06-24simpler proofthery
2020-06-09fix coq 8.12 warningsCyril Cohen
2020-06-06ImprovementsCyril Cohen
- 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` - CHANGELOG update
2020-05-16A few more revisionsKazuhiko Sakaguchi
2020-05-13Revise proofs in ssreflect/*.vKazuhiko Sakaguchi
This change 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`.
2020-04-09Merge pull request #474 from llelf/doc-typosaffeldt-aist
Documentation typos
2020-04-08fix typos in documentation: textAntonio Nikishaev
2020-03-31remove deprecated commands whose deprecation was introduced in release 1.9.0Yves Bertot
fixes #418
2020-01-08Adapt to coq/coq#11368 (Turn trailing implicit warning into an error)SimonBoulier
2019-12-28Refactoring and linting especially polydivKazuhiko Sakaguchi
- Replace `altP eqP` and `altP (_ =P _)` with `eqVneq`: The improved `eqVneq` lemma (#351) is redesigned as a comparison predicate and introduces a hypothesis in the form of `x != y` in the second case. Thus, `case: (altP eqP)`, `case: (altP (x =P _))` and `case: (altP (x =P y))` idioms can be replaced with `case: eqVneq`, `case: (eqVneq x)` and `case: (eqVneq x y)` respectively. This replacement slightly simplifies and reduces proof scripts. - use `have [] :=` rather than `case` if it is better. - `by apply:` -> `exact:`. - `apply/lem1; apply/lem2` or `apply: lem1; apply: lem2` -> `apply/lem1/lem2`. - `move/lem1; move/lem2` -> `move/lem1/lem2`. - Remove `GRing.` prefix if applicable. - `negbTE` -> `negPf`, `eq_refl` -> `eqxx` and `sym_equal` -> `esym`.
2019-11-27Explicit `bigop` enumeration handlingGeorges Gonthier
Added lemmas `big_enum_cond`, `big_enum` and `big_enumP` to handle more explicitly big ops iterating over explicit enumerations in a `finType`. The previous practice was to rely on the convertibility between `enum A` and `filter A (index_enum T)`, sometimes explicitly via the `filter_index_enum` equality, more often than not implicitly. Both are likely to fail after the integration of `finmap`, as the `choiceType` theory can’t guarantee that the order in selected enumerations is consistent. For this reason `big_enum` and the related (but currently unused) `big_image` lemmas are restricted to the abelian case. The `big_enumP` lemma can be used to handle enumerations in the non-abelian case, as explained in the `bigop.v` internal documentation. The Changelog entry enjoins clients to stop relying on either `filter_index_enum` and convertibility (though this PR still provides both), and warns about the restriction of the `big_image` lemma set to the abelian case, as it it a possible source of incompatibility.
2019-11-22New generalised induction idiom (#434)Georges Gonthier
Replaced the legacy generalised induction idiom with a more robust one that does not rely on the `{-2}` numerical occurrence selector, using either new helper lemmas `ubnP` and `ltnSE` or a specific `nat` induction principle `ltn_ind`. Added (non-strict in)equality induction helper lemmas Added `ubnP[lg]?eq` helper lemmas that abstract an integer expression along with some (in)equality, in preparation for some generalised induction. Note that while `ubnPleq` is very similar to `ubnP` (indeed `ubnP M` is basically `ubnPleq M.+1`), `ubnPgeq` is used to remember that the inductive value remains below the initial one. Used the change log to give notice to users to update the generalised induction idioms in their proofs to one of the new forms before Mathcomp 1.11.
2019-10-16renaming new `reindex_` lemmas with prefix `big_`Cyril Cohen
2019-10-16Improving fintype and bigopCyril Cohen
### Added - Fintype theorems: `fintype0`, `card_le1P`, `mem_card1`, `card1P`, `fintype_le1P`, `fintype1`, `fintype1P`. - Bigop theorems: `big_rmcond`, `bigD1_seq`, `reindex_enum_val_cond`, `reindex_enum_rank_cond`, `reindex_enum_val`, `reindex_enum_rank`, `big_set`.
2019-05-17refactor `seq` permutation theoryGeorges Gonthier
- Change the naming of permutation lemmas so they conform to a consistent policy: `perm_eq` lemmas have a `perm_` (_not_ `perm_eq`) prefix, or sometimes a `_perm` suffix for lemmas that _prove_ `perm_eq` using a property when there is also a lemma _using_ `perm_eq` for the same property. Lemmas that do not concern `perm_eq` do _not_ have `perm` in their name. - Change the definition of `permutations` for a time- and space- back-to-front generation algorithm. - Add frequency tally operations `tally`, `incr_tally`, `wf_tally` and `tally_seq`, used by the improved `permutation` algorithm. - add deprecated aliases for renamed lemmas
2019-04-26Cleaning Require and Require ImportsCyril Cohen
2019-03-26Refactoring allpairs to handle the dependent version as wellCyril Cohen
2019-03-24Compat of sumn with bigop and renaming dep to cond when appropriateCyril Cohen
2018-12-11Fix some new warnings emitted by Coq 8.10:Anton Trunov
``` Warning: Adding and removing hints in the core database implicitly is deprecated. Please specify a hint database. [implicit-core-hint-db,deprecated] ```
2018-07-12Replace all the CoInductives with VariantsKazuhiko Sakaguchi
2018-02-21Change Implicit Arguments to Arguments in ssreflectJasper Hugunin
2018-02-06running semi-automated linting on the whole libraryCyril Cohen
2017-12-12bigop with allpairsFlorent Hivert
2017-10-30Fix obsolete vernacular syntax for locality.Maxime Dénès
It was emitting a deprecation warning and will soon be removed from Coq.
2016-11-07update copyright bannerAssia Mahboubi
2015-11-05merge basic/ into ssreflect/Enrico Tassi