aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-04-08Merge pull request #324 from math-comp/seq-permutations-allpairsCyril Cohen
Seq refactoring; adding `permutations`, extending `allpairs`
2019-04-08New test cases generation: corrent implementation of least common childrenKazuhiko Sakaguchi
Add a new option `-raw-inheritances` to `hierarchy-diagram` to generate an intermediate file for `hierarchy_test.py`. So the typical usage is: $ python3.5 etc/utils/hierarchy_test.py \ <(etc/utils/hierarchy-diagram -raw-inheritances -R mathcomp mathcomp) \ > mathcomp/test_suite/hierarchy_test.v
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-06Fix inheritance bugs in finalg and extremalKazuhiko Sakaguchi
2019-04-05least common childenCyril Cohen
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