aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-01-30Merge pull request #453 from pi8027/experiment/order-nondistr-latticePierre-Yves Strub
Non-distributive lattice structures
2020-01-29Documentation work for (non-distributive) latticeTypeKazuhiko Sakaguchi
2020-01-28Added lemmas about foldl, scanl, foldr and rcons and consCyril Cohen
2020-01-28Theorems about find and indexCyril Cohen
2020-01-21Merge pull request #452 from SimonBoulier/non_maximal_implicitEnrico Tassi
Adapt to coq/coq#11368 (Turn trailing implicit warning into an error)
2020-01-17Revert "Don't run "opam clean -c" to workaround ocaml/opam#3828"Erik Martin-Dorel
This reverts commit a03e0cb0ff40afabcaccba7f764076355ca82962.
2020-01-15Non-distributive latticeKazuhiko Sakaguchi
2020-01-14Merge pull request #454 from CohenCyril/dualCyril Cohen
Renaming converse to dual in order.v
2020-01-10Missing canonical structures for dualCyril Cohen
2020-01-10Exporting T^d notationCyril Cohen
2020-01-09Renaming converse to dual in order.vCyril Cohen
Indeed, the name converse and notation ^c were already taken in https://github.com/math-comp/math-comp/blob/master/mathcomp/algebra/ssralg.v#L989-L990 We are renaming to dual.
2020-01-09Merge pull request #435 from anton-trunov/add-fcsl-pcm-to-ciEnrico Tassi
Add FCSL-PCM library to CI
2020-01-08Adapt to coq/coq#11368 (Turn trailing implicit warning into an error)SimonBoulier
2020-01-07Add FCSL-PCM library to CIAnton Trunov
FCSL-PCM is in Coq's CI, so this will prevent breaking Coq's CI, see https://github.com/imdea-software/fcsl-pcm/issues/17
2020-01-03Merge pull request #443 from pi8027/eqVneqCyril Cohen
Refactoring and linting proofs especially in polydiv.v
2019-12-28Refactoring and linting especially polydivKazuhiko Sakaguchi
- Replace `altP eqP` and `altP (_ =P _)` with `eqVneq`: The improved `eqVneq` lemma (#351) is redesigned as a comparison predicate and introduces a hypothesis in the form of `x != y` in the second case. Thus, `case: (altP eqP)`, `case: (altP (x =P _))` and `case: (altP (x =P y))` idioms can be replaced with `case: eqVneq`, `case: (eqVneq x)` and `case: (eqVneq x y)` respectively. This replacement slightly simplifies and reduces proof scripts. - use `have [] :=` rather than `case` if it is better. - `by apply:` -> `exact:`. - `apply/lem1; apply/lem2` or `apply: lem1; apply: lem2` -> `apply/lem1/lem2`. - `move/lem1; move/lem2` -> `move/lem1/lem2`. - Remove `GRing.` prefix if applicable. - `negbTE` -> `negPf`, `eq_refl` -> `eqxx` and `sym_equal` -> `esym`.
2019-12-26Merge pull request #450 from pi8027/remove-ci-overlay-270Cyril Cohen
Remove CI overlay for PR #270
2019-12-18Remove CI overlay for PR #270Kazuhiko Sakaguchi
2019-12-17Merge pull request #451 from erikmd/fix-scheduled-ciCyril Cohen
[ci] add missing "except:" rules to fix the nightly build on GitLab CI
2019-12-15fix: Add missing "except: schedules"Erik Martin-Dorel
It seems adding an "except:" rule in a job that "extends:" another one *overwrites* the except rule, so we were getting too many jobs in the mathcomp-dev scheduled pipeline. Once merged, this patch should fix this.
2019-12-11Merge pull request #445 from ybertot/opam-packagesEnrico Tassi
take advantage of opam variables and their default values
2019-12-11Merge pull request #270 from math-comp/experiment/orderAssia Mahboubi
Dispatching order and norm, and anticipating normed modules.
2019-12-11The compatibility module in ssrnum should now be for version 1.10Kazuhiko Sakaguchi
2019-12-11Rephrasing the docCyril Cohen
2019-12-11remove ProdNormedZmodule (#419)affeldt-aist
* remove ProdNormedZmodule from ssrnum.v, it made its way to mathcomp-analysis in a generalized form (branch analysis_270) at the time of this writing * update gitlab-ci
2019-12-11renaming NormedZmoduleType and NormedZmoduleMixin (#416)affeldt-aist
* renaming NormedZmoduleType -> NormedZmodType NormedZmoduleMixin -> NormedZmodMixin that looks more homogeneous with regard to naming conventions used so far * update .gitlab-ci.yml * typo
2019-12-11Fix notation modifiers and scopesKazuhiko Sakaguchi
2019-12-11Doc, comments, changelog and better proofsCyril Cohen
- adding a doc paragraph on displays - Changelog - better proofs for new logn, gcdn, lcmn, partn facts - Putting comments in the example of nat
2019-12-11Comparability in a numDomainTypeCyril Cohen
amounts to the difference being real, and consequences
2019-12-11Rename: (l|L)attice -> (d|D)istrLatticeKazuhiko Sakaguchi
2019-12-11Adding nat lattice under the name natdvdCyril Cohen
2019-12-11editing documentation in order.v and ssrnum.vReynald Affeldt
2019-12-11order.v: remove Order.Def, export Order.Syntax by default, and put missing ↵Kazuhiko Sakaguchi
scopes
2019-12-11Redefine `normedDomainType` (now `normedZmodType`) (#392)Kazuhiko Sakaguchi
* Redefine `normedDomainType` (now `normedZmodType`) - Redefine `normedDomainType` to drop ring and integral domain axioms. - Add canonical instance of `normedZmodType` for `prod`.
2019-12-11Rename `totalLatticeMixin` to `totalPOrderMixin` and several refactorKazuhiko Sakaguchi
- Rename `totalLatticeMixin` to `totalPOrderMixin`. - Refactor num mixins. - Use `Num.min` and `Num.max` rather than lattice notations if applicable.
2019-12-11Add (meet|join)_(l|r), some renamings, and small cleanupsKazuhiko Sakaguchi
New lemmas: - meet_l, meet_r, join_l, join_r. Renamings: - Order.BLatticeTheory.lexUl -> disjoint_lexUl, - Order.BLatticeTheory.lexUr -> disjoint_lexUr, - Order.TBLatticeTheory.lexIl -> cover_leIxl, - Order.TBLatticeTheory.lexIr -> cover_leIxr. Use `Order.TTheory` instead of `Order.Theory` if applicable
2019-12-11Reorder the arguments of the comparison predicates in order.vKazuhiko Sakaguchi
The comparison predicates (for nat, ordered types, ordered integral domains) must have the following order of arguments: - leP x y : le_xor_gt x y ... (x <= y) (y < x) ... . - ltP x y : lt_xor_ge x y ... (y <= x) (x < y) ... . - ltgtP x y : compare x y ... (y == x) (x == y) (x >= y) (x <= y) (x > y) (x < y) ... .
2019-12-11Fixes in naming, mixins, doc and canonical orderingCyril Cohen
- comparer -> compare (in order.v) - eq constructor of compare goes last - "x < y" is matched before "x > y" - "x <= y" is matched before "x >= y" - adding prod and lexi ordering on tuple - adding missing CS - edit CHANGELOG
2019-12-11Use `deprecate` notation in ssrnumKazuhiko Sakaguchi
2019-12-11Changing licenseCyril Cohen
2019-12-11Make an appropriate use of the order library everywhere (#278, #280, #282, ↵Kazuhiko Sakaguchi
#283, #285, #286, #288, #296, #330, #334, and #341) ssrnum related changes: - Redefine the intermediate structure between `idomainType` and `numDomainType`, which is `normedDomainType` (normed integral domain without an order). - Generalize (by using `normedDomainType` or the order structures), relocate (to order.v), and rename ssrnum related definitions and lemmas. - Add a compatibility module `Num.mc_1_9` and export it to check compilation. - Remove the use of the deprecated definitions and lemmas from entire theories. - Implement factories mechanism to construct several ordered and num structures from fewer axioms. order related changes: - Reorganize the hierarchy of finite lattice structures. Finite lattices have top and bottom elements except for empty set. Therefore we removed finite lattice structures without top and bottom. - Reorganize the theory modules in order.v: + `LTheory` (lattice and partial order, without complement and totality) + `CTheory` (`LTheory` + complement) + `Theory` (all) - Give a unique head symbol for `Total.mixin_of`. - Replace reverse and `^r` with converse and `^c` respectively. - Fix packing and cloning functions and notations. - Provide more ordered type instances: Products and lists can be ordered in two different ways: the lexicographical ordering and the pointwise ordering. Now their canonical instances are not exported to make the users choose them. - Export `Order.*.Exports` modules by default. - Specify the core hint database explicitly in order.v. (see #252) - Apply 80 chars per line restriction. General changes: - Give consistency to shape of formulae and namings of `lt_def` and `lt_neqAle` like lemmas: lt_def x y : (x < y) = (y != x) && (x <= y), lt_neqAle x y : (x < y) = (x != y) && (x <= y). - Enable notation overloading by using scopes and displays: + Define `min` and `max` notations (`minr` and `maxr` for `ring_display`) as aliases of `meet` and `join` specialized for `total_display`. + Provide the `ring_display` version of `le`, `lt`, `ge`, `gt`, `leif`, and `comparable` notations and their explicit variants in `Num.Def`. + Define 3 variants of `[arg min_(i < n | P) F]` and `[arg max_(i < n | P) F]` notations in `nat_scope` (specialized for nat), `order_scope` (general version), and `ring_scope` (specialized for `ring_display`). - Update documents and put CHANGELOG entries.
2019-12-11Initial import of order.v into mathcompCohen Cyril
2019-12-02take advantage of opam variables and their default valuesYves Bertot
2019-11-29update changelogs for the 1.10.0 releaseYves Bertot
2019-11-29Return of PR #226: adds relevant theorems when fcycle f (orbit f x) and the ↵Cyril Cohen
needed lemmas (#261) * adds relevant theorems when fcycle f (orbit f x) and the needed lemmas * Generalize f_step lemmas * Generalizations, shorter proofs, bugfixes, CHANGELOG - changelog, renamings and comments - renaming `homo_cycle` to `mem_fcycle` and other small renamings - name swap `mem_orbit` and `in_orbit` - simplifications - generalization following @pi8027's comment - Getting rid of many uniquness condition in `fingraph.v` - added cases to the equivalence `orbitPcycle` - added `cycle_catC`
2019-11-29Merge pull request #444 from pi8027/fix-makefileCyril Cohen
Fix the doc-clean target of Makefile
2019-11-29Fix MakefileKazuhiko Sakaguchi
2019-11-28Merge pull request #439 from math-comp/CohenCyril-patch-1Cyril Cohen
remove duplicated sentence in CHANGELOG_UNRELEASED
2019-11-27Merge pull request #441 from ggonthier/big_enumCyril Cohen
Big enum
2019-11-27Explicit `bigop` enumeration handlingGeorges Gonthier
Added lemmas `big_enum_cond`, `big_enum` and `big_enumP` to handle more explicitly big ops iterating over explicit enumerations in a `finType`. The previous practice was to rely on the convertibility between `enum A` and `filter A (index_enum T)`, sometimes explicitly via the `filter_index_enum` equality, more often than not implicitly. Both are likely to fail after the integration of `finmap`, as the `choiceType` theory can’t guarantee that the order in selected enumerations is consistent. For this reason `big_enum` and the related (but currently unused) `big_image` lemmas are restricted to the abelian case. The `big_enumP` lemma can be used to handle enumerations in the non-abelian case, as explained in the `bigop.v` internal documentation. The Changelog entry enjoins clients to stop relying on either `filter_index_enum` and convertibility (though this PR still provides both), and warns about the restriction of the `big_image` lemma set to the abelian case, as it it a possible source of incompatibility.