aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2019-01-29Add more libraries to CI & Update local opam doc (#272)Erik Martin-Dorel
* Update INSTALL.md for installing mathcomp as local opam packages This patch documents the change 1046da99d22462d6aeb23dd12043c2537f47abf1 that was required by the GitLab CI setup to be able to rely on opam 2.0. Close #251 * Propose to bump the required version of coq in coq-mathcomp-ssreflect.opam so the CI could use the Docker image coqorg/coq:8.9 (which is already available albeit it currently is a synonymous of coqorg/coq:8.9-beta1 with the opam repos coq-released + coq-core-dev + coq-extra-dev) * [ci] Add math-comp/odd-order and coq-community/lemma-overloading jobs Related: math-comp/math-comp#245 and math-comp/math-comp#256
2019-01-28Travis no moreCyril Cohen
2019-01-15Merge pull request #266 from erikmd/setup-gitlab-ciCyril Cohen
Setup Docker-based configuration for GitLab CI
2018-12-21README.md: Add GitLab CI badgeErik Martin-Dorel
2018-12-21Add hidden job .make-build to also test the Makefile build infraErik Martin-Dorel
* This job is only instantiated with coqorg/coq:latest * Add the associated Dockerfile.make
2018-12-21chore: s/.build/.opam-build/Erik Martin-Dorel
2018-12-21Improve the mathcomp-dev Dockerfile (using Docker's multi-stage build)Erik Martin-Dorel
* Install coq-mathcomp-character in only 1 switch (cf. the build-arg $compiler) * Remove the other switch * Base the final image on coqorg/base:bare (which has no OCaml compiler layers)
2018-12-21Add Docker-based GitLab CI configurationErik Martin-Dorel
* Design: - build stage (e.g. docker build -t mathcomp-dev:$IID_$SLUG_coq-8.6 .) - choice of the OCaml compiler: var OPAM_SWITCH in {base, edge} (Dockerfile containing: "opam switch set $compiler && eval $(opam env)") - master (protected branch) => push on GitLab registry and Docker Hub - other branches (not tags) => push on GitLab registry - Todo: GitHub PRs => push on GitLab - test stage (image: mathcomp-dev:$IID_$SLUG_coq-8.6) - script template foreach project (custom CONTRIB_URL, script) - jobs foreach project and Coq version (custom COQ_VERSION, CONTRIB_VERSION) * Config for protected branches: - set vars HUB_REGISTRY, HUB_REGISTRY_USER, HUB_REGISTRY_IMAGE, HUB_TOKEN * Remark: - The name chosen for branches should ideally yield different values of CI_COMMIT_REF_SLUG. - But this is not mandatory as image tags start with "${CI_PIPELINE_IID}_". cf. doc: - CI_COMMIT_REF_NAME: The branch or tag name for which project is built. - CI_COMMIT_REF_SLUG: $CI_COMMIT_REF_NAME lowercased, shortened to 63 bytes, and with everything except 0-9 and a-z replaced with -. No leading / trailing -. Use in URLs, host names and domain names. - CI_PIPELINE_IID: The unique id of the current pipeline scoped to project.
2018-12-21Add Dockerfile to build mathcomp using its opam filesErik Martin-Dorel
2018-12-20Add .dockerignore (partly whitelist-based, partly like .gitignore)Erik Martin-Dorel
2018-12-20Avoid a warning regarding opam filesErik Martin-Dorel
""" Failed checks on coq-mathcomp-ssreflect package definition from source at file:///home/coq/mathcomp/ssreflect: error 57: Synopsis and description must not be both empty """
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-20Merge pull request #265 from math-comp/swap-maxgroup-argsCyril Cohen
swap mingroup / maxgroup arguments
2018-12-19Generalizing homo-mono-morphism lemmas and extremum (#201)Cyril Cohen
2018-12-18swap mingroup / maxgroup argumentsGeorges Gonthier
Moved set argument before predicate argument for mingroup and maxgroup because Coq only displays notation with identifier parameters that are both bound and free if there is at least one free occurrence to the left of the binder.
2018-12-14Merge pull request #264 from math-comp/document-MatrixGenFieldGeorges Gonthier
Correct and improve implicits and documentation of MatrixGenField; also corrects changes in #262 to allow for a compatible fix in `odd-order`.
2018-12-14Correct and improve implicits and documentation of MatrixGenFieldGeorges Gonthier
Refactored and completed implicit and scope signatures of constants of MatrixGenField, the module that contains the construction of an extension field for an irreducible representation, and for decidability definitions. Completed and corrected some errors in the corresponding header documentation.
2018-12-13Merge pull request #262 from math-comp/cancel-lemmas-implicitCyril Cohen
Cancel lemmas implicit
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-12Gitter BadgeCyril Cohen
2018-12-11Merge pull request #260 from CohenCyril/fix_TFAELaurence
fix TFAE
2018-12-11Merge pull request #252 from anton-trunov/implicit-core-hint-dbCyril Cohen
Fix some new warnings emitted by Coq 8.10
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-11Merge pull request #257 from CohenCyril/eqmsPGeorges Gonthier
Adding lemma `eqmxMunitP`
2018-12-11fix TFAECyril Cohen
2018-12-10Adding lemma `eqmxMunitP`Cyril Cohen
2018-12-10Merge pull request #248 from anton-trunov/remove-Type-from-packed-classesCyril Cohen
Remove `_ : Type` from packed classes
2018-12-06Update ChangeLogAnton Trunov
2018-12-04Remove pack constructorsAnton Trunov
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-24Merge pull request #249 from anton-trunov/prenex-implicitsCyril Cohen
Merge Arguments and Prenex Implicits
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-19Improve documentation of phant_id usageGeorges Gonthier
Point out the use of id/idfun to control printing of notation. (as suggested by @anton-trunov - see #247)
2018-11-19Merge pull request #242 from anton-trunov/remove-canonical-for-mixinsGeorges Gonthier
Document and review the usage of canonical Equality mixins
2018-11-15Merge pull request #246 from anton-trunov/doc-commentsCyril Cohen
Add a section on documenting code
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-11-15Add a section on documenting codeAnton Trunov
Based on the discussion here: https://github.com/math-comp/math-comp/pull/242
2018-11-13Documentation complements for combinatorial class factoriesGeorges Gonthier
Adding missing documentation for mixin and class constructors for Equality, Choice, Countable, and Finite. Renaming Equality mixin constructor comparableClass to the more consistent comparableMixin.
2018-11-13Ignore generated Makefile.coq.confGeorges Gonthier
2018-11-06Merge pull request #241 from ybertot/fix240Cyril Cohen
fix issue #240
2018-11-05fix issue #240Yves Bertot
2018-10-31Merge pull request #239 from CohenCyril/Make_bugEnrico
fixing local Makefiles
2018-10-31fixing local MakefileCyril Cohen
should fix #238
2018-10-30Merge pull request #236 from CohenCyril/allsigsCyril Cohen
Revert "Adding allsigs, the dependent version of allpairs"
2018-10-29Revert "Adding allsigs, the dependent version of allpairs"Cyril Cohen
This reverts commit 044634dcc2f645e3afbdad6cb8dcc66f3eb4a87e. See issue https://github.com/math-comp/odd-order/pull/5
2018-10-29Merge pull request #219 from CohenCyril/MakefileEnrico
fix some bugs in Makefile