aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-04-06Permutations and other extensions to seq; fintype documentationGeorges Gonthier
- Added `permutations` and some `perm_eq` lemmas suggested by @MrSet in #299 (except the link to the coq lib `Permutation` predicate). Use insertions to construct permutations. This definition is closer to the one proposed by @MrSet, than one using rotations (it adds one line to the definition of `permutations` but the proofs become a little simpler.) - Added support for casts on `map` comprehension general terms. - Added `allpairs_map[lr]` suggested by @pi8027 in #314, but with equational proofs; changed `allpairs_comp` to its converse `map_allpairs` for consistency. - Add three `allpairs` extensionality lemmas: for the non-localised, dependent localised and non-dependent localised cases; as per `eq_in_map`, the latter two are equivalences. - Documented the `all2` predicate added in #224, and the view combinators added in #202. - Renamed `seq2_ind` to `seq_ind2`, and weakened the induction hypothesis, adding a `size` equality assumption. - Corrected the header to use `<=>` for `bool` predicate documentation, and `<->` for `Prop` predicates, following the library’s general convention. - Replaced the `nosimpl` in `rev` with a `Arguments simpl never` directive, making it possible to merge the `Rev` section into the main `Sequences` section. - Miscellaneous improvements to proof scripts and file organisation. - Correct maximal implicits of `constant`. - Fixes omitted `Prenex Implicit` declaration. - Other implicits fixes. - Fix apparent `done` regression It appears `done` now does a weaker form of intros, and this broke the `dtuple_onP` proof. Updated the proof to eliminate the issue. (Commit log edited by @CohenCyril during the squash.)
2019-04-04no output on success in test_suite/hierarchy_test.v (#323)Cyril Cohen
2019-04-04porting ChangeLog to Markdown format (#322)Enrico
2019-04-04Merge pull request #321 from math-comp/remove-8.6Cyril Cohen
remove support for Coq 8.6
2019-04-04remove support for Coq 8.6Enrico Tassi
2019-04-04Merge pull request #320 from math-comp/fix-test-suiteEnrico
rename test-suite -> test_suite to make coq happy
2019-04-03rename test-suite -> test_suite to make coq happyEnrico Tassi
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-04-02speedup in hierarchy_test.pyCyril Cohen
2019-04-02identifying missing joinsCyril Cohen
2019-04-01Merge pull request #294 from math-comp/dependent-positive-finfunCyril Cohen
Dependent positive finfun
2019-04-01ChangeLog updateGeorges Gonthier
Describe extension and warn about incompatibilities.
2019-04-01locking definitions to address `integral.v` divergenceGeorges Gonthier
Line 426 in `integral.v` diverged to over 40 minutes with the new `finfun.v`, because matching `mod_Iirr` to `quo_Iirr` goes into exponential backtracking. This is currently averted by limiting the repetition of `mod_IirrE` in this `rewrite` line. Making `finfun` mixing opaque brings this down to 40 seconds, and locking `cfIirr` to a tractable 0.15 seconds, hopefully improving the instances. This line also takes 47 seconds to execute in the master branch, so this is likely an undetected Coq performance regression.
2019-04-01Compatibility fix for Coq issue coq/#9663Georges Gonthier
Coq currently fails to resolve Miller patterns against open evars (issue coq/#9663), in particular it fails to unify `T -> ?R` with `forall x : T, ?dR x` even when `?dR` does not have `x` in its context. As a result canonical structures and constructor notations for the new generalised dependent `finfun`s fail for the non-dependent use cases, which is an unacceptable regression. This commit mitigates the problem by specialising the canonical instances and most of the constructor notation to the non-dependent case, and introducing an alias of the `finfun_of` type that has canonical instances for the dependent case, to allow experimentation with that feature. With this fix the whole `MathComp` library compiles, with a few minor changes. The change in `integral_char` fixes a performance issue that appears to be the consequence of insufficient locking of both `finfun_eqType` and `cfIirr`; this will be explored in a further commit.
2019-04-01Expand sample use as container in InductiveGeorges Gonthier
Clarified that the sample use provided is an example rather than a misplaced unit test. Added the definition of generic recursors to the examples, for both non-dependent and dependent use cases.
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-19Fix countalg to finalg inheritancesKazuhiko Sakaguchi
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