aboutsummaryrefslogtreecommitdiffhomepage
path: root/plugins
Commit message (Collapse)AuthorAge
* Fix bug #5019 (looping zify on dependent types)Gravatar Jason Gross2017-06-01
| | | | | | | | | | | | | | This fixes [bug #5019](https://coq.inria.fr/bugs/show_bug.cgi?id=5019), "[zify] loops on dependent types"; before, we would see a `Z.of_nat (S ?k)` which could not be turned into `Z.succ (Z.of_nat k)`, add a hypothesis of the shape `0 <= Z.of_nat (S k)`, turn that into a hypothesis of the shape `0 <= Z.succ (Z.of_nat k)`, and loop forever on this. This may not be the "right" fix (there may be cases where `zify` should succeed where it still fails with this change), but this is a pure bugfix in the sense that the only places where it changes the behavior of `zify` are the places where, previously, `zify` looped forever.
* Omega: use "simpl" only on coefficents, not on atoms (fix #4132)Gravatar Pierre Letouzey2017-05-29
| | | | | | | | | | | Two issues in one: - some focused_simpl were called on the wrong locations - some focused_simpl were done on whole equations In the two cases, this could be bad if "simpl" goes too far with respect to what omega expects: later calls to "occurrence" might fail. This may happen for instance if an atom isn't a variable, but a let-in (b:=5:Z in the example).
* end of correction of bug 4306Gravatar Julien Forest2017-04-04
|
* Bad correction in previous commitGravatar Julien Forest2017-04-04
|
* Solving first problem in bug #4306. TO DO : solve the let in problemGravatar Julien Forest2017-04-04
|
* Merge PR#495: funind: Ignore missing info for current functionGravatar Maxime Dénès2017-03-23
|\
* | Add empty Extraction.v and FunInd.v to prepare landing of PR#220.Gravatar Maxime Dénès2017-03-23
| | | | | | | | | | This way, after we merge PR#220, scripts can be fixed in a way that is compatible with the 8.6 and trunk branches.
| * funind: Ignore missing info for current functionGravatar Tej Chajed2017-03-22
|/ | | | | | Fixes [Coq bug #5372](https://coq.inria.fr/bugs/show_bug.cgi?id=5372) "Anomaly: Not a valid information when defining mutual fixpoints that are not mutual with Function".
* [ltac] Move dummy plugin to plugins folder.Gravatar Emilio Jesus Gallego Arias2017-03-03
| | | | This is needed to fix `Declare ML Module "ltac_plugin".
* Extraction: fix complexity issue #5310Gravatar Pierre Letouzey2017-02-07
| | | | | | | | | | | | | | | | | | | | | | | | A double call to pp_module_type inside Ocaml.pp_specif was causing an complexity blowup when pretty-printing heavily modular extracted code. I wasn't able to figure out why this double call is there. It could be the leftover of some intermediate work in 2007 before commit 350398eae (which introduced global printing phases Pre/Impl/Intf). Anyway I'm reasonably sure that today these two pp_module_type calls produce the exact same pretty-printed signature (even if there's a large bunch of imperative states around). Moreover, this duplicated signature is actually slightly wrong: when we alias a module M with a unambiguous name like Coq__123, the type of Coq__123 should not be an exact copy of the type of M, but rather a "strengthened" version of it (with equality between inductive types). So the best solution is now to use this funny feature of OCaml introduced in 3.12 : module Coq__123 : module type of struct include M end This "module type of struct include" is slightly awkward, but short, correct, and trivial to produce :-). And I doubt anybody will object to the (rare) use of some 3.12 features in extracted code of 2017...
* ssrmatching: fix iter_constr_LR iterator wrt ProjGravatar Enrico Tassi2016-12-07
|
* ssrmatching: handle primite projections (fix: #5247)Gravatar Enrico Tassi2016-12-05
|
* Fixing printers for pr_auto_using and pr_firstorder_using.Gravatar Hugo Herbelin2016-12-02
|
* Lazily load constants in micromega (bug #5134).Gravatar Guillaume Melquiond2016-11-24
|
* Merge commit 'e6edb33' into v8.6Gravatar Maxime Dénès2016-11-07
|\ | | | | | | Was PR#331: Solve_constraints and Set Use Unification Heuristics
* \ Merge remote-tracking branch 'github/pr/319' into v8.6Gravatar Maxime Dénès2016-10-28
|\ \ | | | | | | | | | Was PR#319: More error tagging, try to fix bug 5135
* \ \ Merge commit 'a799600' into v8.6Gravatar Maxime Dénès2016-10-25
|\ \ \ | | | | | | | | | | | | Was PR#334: Fix bug 5031 : should not be an anomaly
| * | | That Function is unable to create a Fixpoint equation is a user problem,Gravatar Yves Bertot2016-10-25
| | | | | | | | | | | | | | | | not an anomaly
* | | | ssrmatching: fix interpretation of rpatternGravatar Enrico Tassi2016-10-24
|/ / /
| | * Renamings to avoid confusion deprecating old namesGravatar Matthieu Sozeau2016-10-22
| |/ |/| | | | | | | reconsider_conv_pbs -> reconsider_unif_constraints consider_remaining_unif_problems -> solve_unif_constraints_with_heuristics
| * [pp] Use more convenient pp API in ssrmatchingGravatar Emilio Jesus Gallego Arias2016-10-18
| |
| * [pp] Add tagging function to all low-level printing calls.Gravatar Emilio Jesus Gallego Arias2016-10-18
|/ | | | | | | | The current tag system in `Pp` is generic, which implies we must choose a tagging function when calling a printer. For console printing there is a single choice, thus this commits adds it a few missing cases.
* Fix bug #5023: JSON extraction doesn't generate "for xxx".Gravatar Pierre-Marie Pédrot2016-10-17
|
* Ncring_initial: avoid a notation overridingGravatar Pierre Letouzey2016-09-29
|
* Extraction: ignore some useless stuff about universesGravatar Pierre Letouzey2016-09-29
|
* Ring_theory: avoid overriding a few notationsGravatar Pierre Letouzey2016-09-28
|
* Adding interface files to Nsatz ML files.Gravatar Pierre-Marie Pédrot2016-09-28
|
* Fast russian peasant exponentiation in Nsatz.Gravatar Pierre-Marie Pédrot2016-09-26
|
* Monomorphizing various uses of arrays in Nsatz.Gravatar Pierre-Marie Pédrot2016-09-26
|
* Partial fix for bug #5085: nsatz_compute stack overflows.Gravatar Pierre-Marie Pédrot2016-09-26
| | | | | This fixes the stack overflow part of the bug, even if the tactic is still quite slow. The offending functions have been written in a tail-recursive way.
* Addressing OCaml compilation warnings.Gravatar Hugo Herbelin2016-09-16
| | | | One of them revealed a true bug.
* Fix Bug #5073 : regression of micromega pluginGravatar Frédéric Besson2016-09-08
| | | | esprit d'escalier : is now also fixed for R
* Fix Bug #5073 : regression of micromega pluginGravatar Frédéric Besson2016-09-08
| | | | | The computed proof term is now more explicit exact (__arith P1 ... Pn X1 ... Xm) instead of apply (__arith P1 ... Pn) which unification could fail.
* Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2016-09-07
|\
* | micromega : more robust generation of proof termsGravatar Frédéric Besson2016-09-07
| | | | | | | | | | | | | | - Assert a purely arihtmetic sub-goal that is proved independently by reflexion. (This reduces the stress on the conversion test) - Does not use 'abstract' anymore (more natural proof-term) - Fix a parsing bug (certain terms in Prop where not recognized)
| * Fixing what is probably a typo in Strict Proofs mode (#5062).Gravatar Hugo Herbelin2016-09-03
| |
* | Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2016-09-02
|\|
* | Fixed Bug #5003 : more careful generalisation of dependent terms.Gravatar Frédéric Besson2016-09-01
| |
* | Fix Bug #5005 : micromega tactics is now robust to failure of 'abstract'.Gravatar Frédéric Besson2016-08-31
| | | | | | | | If 'abstract' fails e.g. if there are existentials. The tactic runs an abstract-free alternative.
* | plugin micromega : nra also handles non-linear rational arithmetic over Q ↵Gravatar Frédéric Besson2016-08-30
| | | | | | | | | | | | | | (Fixed #4985) Lqa.v defines the tactics lra and nra working over Q. Lra.v defines the tactics lra and nra working over R.
| * micromega cache files are now hidden files (cf #4156)Gravatar Frédéric Besson2016-08-30
| | | | | | | | | | | | csdp.cache -> .csdp.cache lia.cache -> .lia.cache nlia.cache -> .nia.cache
* | Make it a bit more obvious when variables are of type unit.Gravatar Guillaume Melquiond2016-08-10
| |
* | Reduce warning noise when compiling the standard library.Gravatar Guillaume Melquiond2016-08-09
| |
* | Fix bug #4923: Warning: appcontext is deprecated.Gravatar Pierre-Marie Pédrot2016-07-18
| |
* | Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2016-07-13
|\|
* | Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2016-07-07
|\ \
| | * improved complexity in nsatzGravatar thery2016-07-06
| | | | | | | | | | | | | | | we use a hashtable to reduce the complexity of creating a duplicate-free list.
| | * Bug Fixes : 4851 4858 4880 for nsatzGravatar thery2016-07-06
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the function in_ideal of ideal.ml supposes the list of polynomials does not contain zero and is duplicate free. I force this invariant in the call of in_ideal in nsatz.ml4 the function clean_pol returns the reduced list plus a list of booleans that indicates which polynomials have been deleted the function expand_pol translates back the certificate of the reduced to list to the complete list thanks to the list of booleans. The fix is quadratic with respect to the input list which should be ok for reasonable usage of nsatz. If there is some performance issue we could improve the in_pol function.
* | Revert "Merge remote-tracking branch 'github/pr/229' into trunk"Gravatar Maxime Dénès2016-07-05
| | | | | | | | | | | | | | | | | | This reverts commit b2f8f9edd5c1bb0a9c8c4f4b049381b979d3e385, reversing changes made to da99355b4d6de31aec5a660f7afe100190a8e683. Hugo asked for more discussion on this topic, and it was not in the roadmap. I merged it prematurely because I thought there was a consensus. Also, I missed that it was changing coq_makefile. Sorry about that.
| * Bug fix : variable capture in ltac code of NsatzGravatar thery2016-07-05
| | | | | | | | | | | | | | | | changing set (x := val) into let x := fresh "x" in set (x := val)