aboutsummaryrefslogtreecommitdiff
path: root/mathcomp/algebra
AgeCommit message (Collapse)Author
2019-05-08suppress use of `Arith` hintsSora Chen
2019-04-29Generalise use of `{pred T}` from coq/coq#9995Georges Gonthier
Use `{pred T}` systematically for generic _collective_ boolean predicate. Use `PredType` to construct `predType` instances. Instrument core `ssreflect` files to replicate these and other new features introduces by coq/coq#9555 (`nonPropType` interface, `simpl_rel` that simplifies with `inE`).
2019-04-26Cleaning Require and Require ImportsCyril Cohen
2019-04-24remove deprecated use of `if ... return`Georges Gonthier
Replace improper use of non-dependent `return` clause in `if` with a type cast; an upcoming coq-side PR will discontinue support for this, in order to support dependent return clauses with an implicit `as` annotation.
2019-04-18Remove unused `Require`s and a hint directive from interval.vKazuhiko Sakaguchi
2019-04-17ssrnum doesn't use zmodpKazuhiko Sakaguchi
2019-04-08switching to opam 2.0 formatCyril Cohen
2019-04-06Fix inheritance bugs in finalg and extremalKazuhiko Sakaguchi
2019-04-03Merge pull request #291 from pi8027/finalg-hierarchyCyril Cohen
Fix inheritances from countalg to finalg
2019-04-03Fix inheritances in ssrnumKazuhiko Sakaguchi
2019-04-02Fix inheritances in countalg and finalg (the 2nd attempt)Kazuhiko Sakaguchi
2019-03-20Add extra eta lemmas for the under tacticErik Martin-Dorel
Related: coq/coq#9651
2019-03-19Fix countalg to finalg inheritancesKazuhiko Sakaguchi
2019-03-05Export addrKA and subrKA from GRing.TheoryKazuhiko Sakaguchi
2019-02-07Add the eqType instance for intervals, le_bound(l|r)_anti, and ↵Kazuhiko Sakaguchi
itv_intersection, redefine prev_of_itv and itv_decompose using lersif, extend itv_rewrite, simplify proofs (#271)
2019-01-29Add some theorems on lersif and intervals (#269)Kazuhiko Sakaguchi
* Add some theorems on lersif and intervals * Add more theorems on lersif * Remove needless parens * ChangeLog * Move lersifN * Add lersif_anti
2018-12-20Move-and-rename opam files to the root folderErik Martin-Dorel
* (Update make's path accordingly) * This patch is required for opam 2.0 pinning * As a result, these *.opam files are now similar to the opam files in https://github.com/coq/opam-coq-archive/blob/master/extra-dev/packages/coq-mathcomp-*/coq-mathcomp-*.dev/
2018-12-19Generalizing homo-mono-morphism lemmas and extremum (#201)Cyril Cohen
2018-12-13Adjust implicits of cancellation lemmasGeorges Gonthier
Like injectivity lemmas, instances of cancellation lemmas (whose conclusion is `cancel ? ?`, `{in ?, cancel ? ?}`, `pcancel`, or `ocancel`) are passed to generic lemmas such as `canRL` or `canLR_in`. Thus such lemmas should not have trailing on-demand implicits _just before_ the `cancel` conclusion, as these would be inconvenient to insert (requiring essentially an explicit eta-expansion). We therefore use `Arguments` or `Prenex Implicits` directives to make all such arguments maximally inserted implicits. We don’t, however make other arguments implicit, so as not to spoil direct instantiation of the lemmas (in, e.g., `rewrite -[y](invmK injf)`). We have also tried to do this with lemmas whose statement matches a `cancel`, i.e., ending in `forall x, g (E[x]) = x` (where pattern unification will pick up `f = fun x => E[x]`). We also adjusted implicits of a few stray injectivity lemmas, and defined constants. We provide a shorthand for reindexing a bigop with a permutation. Finally we used the new implicit signatures to simplify proofs that use injectivity or cancellation lemmas.
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-12-10Adding lemma `eqmxMunitP`Cyril Cohen
2018-12-04Remove `_ : Type` from packed classesAnton Trunov
This increases performance 10% - 15% for Coq v8.6.1 - v8.9.dev. Tested on a Debain-based 16-core build server and a Macbook Pro laptop with 2,3 GHz Intel Core i5. | | Compilation time, old | Compilation | Speedup | | | (mathcomp commit 967088a6f87) | time, new | | | Coq 8.6.1 | 10min 33s | 9min 10s | 15% | | Coq 8.7.2 | 10min 12s | 8min 50s | 15% | | Coq 8.8.2 | 9min 39s | 8min 32s | 13% | | Coq 8.9.dev(05d827c800544) | 9min 12s | 8min 16s | 11% | | | | | | It seems Coq at some point fixed the problem `_ : Type` was supposed to solve.
2018-12-04Merge pull request #253 from anton-trunov/argumentsGeorges Gonthier
Document parameter names whenever possible
2018-12-04Document parameter names whenever possibleAnton Trunov
As suggested by @ggonthier [here](https://github.com/math-comp/math-comp/pull/249#pullrequestreview-177938295) > One of the design ideas for the `Arguments` command was that it would allow to centralise the documentation of the application of constants. In that spirit it would be in my opinion better to make as much use of this as possible, and to document the parameter names whenever possible, especially that of implicit parameters. and [here](https://github.com/math-comp/math-comp/pull/253#discussion_r237434163): > As a general rule, defined functional constants should have maximal prenex implicit arguments, as this facilitates their use as arguments to functionals, because this mimics the way function constants are treated in functional programming languages with Hindley-Milner type inference. Conversely, lemmas and theorems should have on-demand implicit arguments, possibly interspersed with explicit ones, as it's fairly common for other lemmas to have universally quantified premises; also, this makes it easier to specify such arguments with the apply: tactic. This policy may be amended for lemmas that are used as functional arguments, such as reflection or cancellation lemmas. Unfortunately there is currently no easy way to tell Coq to use different defaults for definitions and lemmas, so MathComp sticks to the on-demand default, as there are significantly more lemmas than definition, and use the Prenex Implicits to redress matters in bulk for definitions. However, this is not completely systematic, and is sometimes omitted for constants that are not used as functional arguments in the library, or inside the sections in which the definition occur, since such commands need to be repeated after the section is closed. Since Arguments commands should document the intended constant usage as best as possible, they should follow the implicits policy - even in cases such as this where the Prenex Implicits had been skipped.
2018-11-26correct and improve signature and documentation of FieldMixinGeorges Gonthier
Documentation of FieldUnitMixin and FieldMixin corrected to reflect actual arguments, with mulVf and inv0 made explicit arguments for FieldMixin (they were implicit due to the extended signature of Field.mixin_of). Type of FieldMixin changed to a convertible variant to facilitate construction of on-the-fly in-proof construction of fieldType instances, exposing an idomainType instance.
2018-11-21Merge Arguments and Prenex ImplicitsAnton Trunov
See the discussion here: https://github.com/math-comp/math-comp/pull/242#discussion_r233778114
2018-11-15Tweak code related to canonical mixinsAnton Trunov
Remove some unused canonical mixins. Change simplification behavior of concrete comparison functions to allow for better simplification using unfolding and sebsequent folding back e.g. with `rewrite !eqE /= -!eqE`. A bit of cleanup for `Prenex Implicits` declarations. Document some explanations by G. Gonthier.
2018-10-31fixing local MakefileCyril Cohen
should fix #238
2018-10-26moving countalg and closed_field aroundCyril Cohen
- countalg goes to the algebra package - finalg now get the expected inheritance from countalg - closed_field now contains the construction of algebraic closure for countable fields (previously in countalg) - proof of quantifier elimination for closed field rewritten in a monadic style
2018-10-03[opam]: add dev-repo linksAnton Trunov
This commit fixes the following issue: ```shell $ opam pin add coq-mathcomp-ssreflect --dev [ERROR] "dev-repo" field missing in coq-mathcomp-ssreflect metadata, you'll need to specify the pinning location ``` This commit also changes http to https for the homepage links.
2018-09-11Fixes the doc of ratFlorent Hivert
2018-08-06changing companionmx to a more standard oneCyril Cohen
2018-08-03update ChangeLog and docCyril Cohen
2018-08-01Companion matrix of a polynomialCyril Cohen
2018-07-31Rework the whole Makefile architectureCyril Cohen
- Cleanup, refactoring and generalize the makefile architecture - Reuses @strub math-comp/analysis Makefile / Makefile.common organization - As #174, this fixes #88, but looks more stable than trying to fix the use of the MAKEFLAGS internal variable
2018-07-19Merge pull request #202 from CohenCyril/improving-polyLaurent Théry
small generalizations and extensions in poly
2018-07-19poly_size_eq1 phrased with reflect + combinatorsCyril Cohen
2018-07-14updated proposition for big_prod_seq_eq1Cyril Cohen
2018-07-14Laurent's simplificationsCyril Cohen
2018-07-12Replace all the CoInductives with VariantsKazuhiko Sakaguchi
2018-07-04small generalizations in polyCyril Cohen
2018-04-20fix symlinks to README, INSTALL and LICENSEEnrico Tassi
2018-03-04Change deprecated Arguments Scope to ArgumentsJasper Hugunin
2018-02-21Change Implicit Arguments to Arguments in algebraJasper Hugunin
2018-02-06fixing things that @ggonthier and @ybertot spotted and some I spottedCyril Cohen
2018-02-06running semi-automated linting on the whole libraryCyril Cohen
2018-01-26Merge pull request #171 from CohenCyril/mxdirect_deltaCyril Cohen
The spaces generated by some delta_mx are in a direct sum
2017-12-20Merge pull request #172 from CohenCyril/row_mx_eq0Assia Mahboubi
Adding row/col/block_mx_eq0
2017-12-14The spaces generated by some delta_mx are in a direct sumCyril Cohen
proof by @ggonthier
2017-12-14Using x * y = 1 and x / y = 1 to derive the inverseCyril Cohen
fixes #169