aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-04-01Making {fun ...} structural and extending it to dependent functionsGeorges Gonthier
Construct `finfun_of` directly from a bespoke indexed inductive type, which both makes it structurally positive (and therefore usable as a container in an `Inductive` definition), and accommodates naturally dependent functions. This is still WIP, because this PR exposed a serious shortcoming of the Coq unification algorithm’s implantation of Miller patterns. This bug defeats the inference of `Canonical` structures for `{ffun S -> T}` when the instances are defined in the dependent case! This causes unmanageable regressions starting in `matrix.v`, so I have not been able to check for any impact past that. I’m pushing this commit so that the Coq issue may be addressed. Made `fun_of_fin` structurally decreasing: Changed the primitive accessor of `finfun_of` from `tfgraph` to the `Funclass` coercion `fun_of_fin`. This will make it possible to define recursive functions on inductive types built using finite functions. While`tfgraph` is still useful to transport the tuple canonical structures to `finfun_of`, it is no longer central to the theory so its role has been reduced.
2019-04-01Improve CI head trackingGeorges Gonthier
As per @ejgallego ’s suggestion.
2019-03-29Merge pull request #292 from erikmd/under-supportCyril Cohen
Add extra eta lemmas for the under tactic
2019-03-26Merge pull request #304 from CohenCyril/allsigsCyril Cohen
Refactoring allpairs to handle the dependent version as well
2019-03-26Refactoring allpairs to handle the dependent version as wellCyril Cohen
2019-03-26Merge pull request #305 from CohenCyril/sumnCyril Cohen
compat sumn with bigop
2019-03-26Merge pull request #301 from CohenCyril/mem_remFEnrico
missing lemma in seq.v
2019-03-24Compat of sumn with bigop and renaming dep to cond when appropriateCyril Cohen
2019-03-22missing lemma in seq.vCyril Cohen
2019-03-22Merge pull request #303 from CohenCyril/ffun0Assia Mahboubi
adding ffun0
2019-03-21adding ffun0Cyril Cohen
2019-03-20Add extra eta lemmas for the under tacticErik Martin-Dorel
Related: coq/coq#9651
2019-03-20Merge pull request #300 from erikmd/doc-detailCyril Cohen
[doc] Mention that "connect" computes the reflexive transitive closure
2019-03-20[doc] Mention that fingraph's connect computes the reflexive transitive closureErik Martin-Dorel
while some refs (see e.g. [1]) don't assume that the "transitive closure" is reflexive; so one won't need to look at lemma "connect0" to figure this out. [1] https://en.wikipedia.org/wiki/Transitive_closure [ci skip]
2019-03-19Merge pull request #290 from pi8027/hierarchy-diagramCyril Cohen
A tool to draw the hierarchy diagram
2019-03-18Merge pull request #298 from math-comp/fix-hidden-branch-typesGeorges Gonthier
remove dependency on hidden case branch types
2019-03-18remove dependency on hidden case branch typesGeorges Gonthier
Anticipating coq/coq#9170, remove numeric occurrence selector affected by the (invisible) presence of explicit types for variables bound in `match` branch patterns. The proof could be further simplified if this change is implemented.
2019-03-14Merge pull request #295 from pi8027/export-addrKA-subrKACyril Cohen
Export addrKA and subrKA from GRing.Theory
2019-03-07Put documentation and some command line options for hierarchy-diagramKazuhiko Sakaguchi
2019-03-07Use both coercions and canonical projections to generate the diagramKazuhiko Sakaguchi
2019-03-05Export addrKA and subrKA from GRing.TheoryKazuhiko Sakaguchi
2019-02-22Reimplement hierarchy-diagram by using coercions between "<module>.type" typesKazuhiko Sakaguchi
2019-02-22Add a tool to draw the hierarchy diagramKazuhiko Sakaguchi
2019-02-07pmap_cat, pmap_perm and perm_map_inj added (#277)Søren Eller Thomsen
pmap_cat, pmap_perm and perm_map_inj added
2019-02-07add a link to the website (#274)Enrico
* Update README.md
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-02-05we silence warnings that just pollute our logs (#275)Enrico
Namely: -projection-no-head-constant -redundant-canonical-projection -notation-overridden
2019-02-05fix etc/utils/packager (#273)Cyril Cohen
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