aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics
Commit message (Collapse)AuthorAge
...
| | | * | Fixing a subtle bug in tclWITHHOLES.Gravatar Hugo Herbelin2017-05-28
| | | |/ | | | | | | | | | | | | This fixes Théo's bug on eset.
| * | | [cleanup] Unify all calls to the error function.Gravatar Emilio Jesus Gallego Arias2017-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the continuation of #244, we now deprecate `CErrors.error`, the single entry point in Coq is `user_err`. The rationale is to allow for easier grepping, and to ease a future cleanup of error messages. In particular, we would like to systematically classify all error messages raised by Coq and be sure they are properly documented. We restore the two functions removed in #244 to improve compatibility, but mark them deprecated.
* | | | [coqlib] Move `Coqlib` to `library/`.Gravatar Emilio Jesus Gallego Arias2017-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We move Coqlib to library in preparation for the late binding of Gallina-level references. Placing `Coqlib` in `library/` is convenient as some components such as pretyping need to depend on it. By moving we lose the ability to locate references by syntactic abbreviations, but IMHO it makes to require ML code to refer to a true constant instead of an abbreviation/notation. Unfortunately this change means that we break the `Coqlib` API (providing a compatibility function is not possible), however we do so for a good reason. The main changes are: - move `Coqlib` to `library/`. - remove reference -> term from `Coqlib`. In particular, clients will have different needs with regards to universes/evar_maps, so we force them to call the (not very safe) `Universes.constr_of_global` explicitly so the users are marked. - move late binding of impossible case from `Termops` to `pretying/Evarconv`. Remove hook. - `Coqlib.find_reference` doesn't support syntactic abbreviations anymore. - remove duplication of `Coqlib` code in `Program`. - remove duplication of `Coqlib` code in `Ltac.Rewrite`. - A special note about bug 5066 and commit 6e87877 . This case illustrates the danger of duplication in the code base; the solution chosen there was to transform the not-found anomaly into an error message, however the general policy was far from clear. The long term solution is indeed make `find_reference` emit `Not_found` and let the client handle the error maybe non-fatally. (so they can test for constants.
* | | | [coqlib] Deprecate redundant Coqlib functions.Gravatar Emilio Jesus Gallego Arias2017-05-27
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We remove redundant functions `coq_constant`, `gen_reference`, and `gen_constant`. This is a first step towards a lazy binding of libraries references. We have also chosen to untangle `constr` from `Coqlib`, as how to instantiate the reference (in particular wrt universes) is a client-side issue. (The client may want to provide an `evar_map` ?) c.f. #186
* | | Merge PR#637: Short cleaning of the interpretation path for constr_with_bindingsGravatar Maxime Dénès2017-05-25
|\ \ \
* \ \ \ Merge PR#608: Allow Ltac2 as a pluginGravatar Maxime Dénès2017-05-25
|\ \ \ \
* \ \ \ \ Merge PR#481: [option] Remove support for non-synchronous options.Gravatar Maxime Dénès2017-05-25
|\ \ \ \ \
* \ \ \ \ \ Merge branch 'trunk' into located_switchGravatar Emilio Jesus Gallego Arias2017-05-24
|\ \ \ \ \ \
| | * | | | | [option] Remove support for non-synchronous options.Gravatar Emilio Jesus Gallego Arias2017-05-24
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Inspired by https://coq.inria.fr/bugs/show_bug.cgi?id=5229 , which this PR solves, I propose to remove support for non-synchronous options. It seems the few uses of `optsync = false` we legacy and shouldn't have any impact. Moreover, non synchronous options may create particularly tricky situations as for instance, they won't be propagated to workers.
| | | * | | Compatibility fix while waiting for integration of Pierre Courtieu's PR #449.Gravatar Hugo Herbelin2017-05-22
| | | | | |
| | | * | | Using type classes in the interpretation of "specialize" and "contradiction".Gravatar Hugo Herbelin2017-05-22
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do that by using constr_with_bindings rather than open_constr_with_bindings (+ extra call to typeclasses in "specialize"). If my understanding is right, the only effect would be to succeed more in cases where it was failing (in inh_conv_coerce_to_gen). In particular, "specialize" and "contradiction" already have a WITHHOLES test for rejecting pending holes. Incidentally, this answers enhancement #5153.
| * | | | Merge PR#276: Stopping injection not to work on discriminable atoms (see #4890).Gravatar Maxime Dénès2017-05-20
| |\ \ \ \
| | | * \ \ Merge branch 'master' into ltac2-hooksGravatar Pierre-Marie Pédrot2017-05-19
| | | |\ \ \
| * | | | | | A fix for #5390 (a useful error on used introduction names was masked).Gravatar Hugo Herbelin2017-05-17
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the "apply in" introduction pattern, and the backtrack possibly done in "apply" over the components of conjunctions (descend_in_conjunctions), the reasons for failing might have different sources. We give priority to the detection of used names over other (unification) errors so that an error there is not masked in the backtracking made by descend_in_conjunctions. Of course, the question of what best unification error to give in the presence of backtracking is still open.
| | * | | | Stopping injection not to work on discriminable atoms (see #4890).Gravatar Hugo Herbelin2017-05-17
| |/ / / /
| * | | | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2017-05-17
| |\ \ \ \ | | | |_|/ | | |/| |
| | | | * Fix bug #5360: anomalies in typeclass resolution outputGravatar Matthieu Sozeau2017-05-16
| | | | | | | | | | | | | | | | | | | | | | | | | Now we properly report NoApplicableEx/ReachedLimit and CannotUnify exceptions that can be raised during resolution.
| * | | | Uniformity of style for selecting plural or not; spacing for comma.Gravatar Hugo Herbelin2017-05-13
| | |_|/ | |/| |
| * | | Remove an unused open introduced by the previous commit.Gravatar Maxime Dénès2017-05-11
| | | |
| * | | Merge PR#201: Transparent abstractGravatar Maxime Dénès2017-05-11
| |\ \ \
| * | | | Remove two unused opens.Gravatar Maxime Dénès2017-05-05
| | | | |
| * | | | Merge PR#598: Removing dead code in Autorewrite.Gravatar Maxime Dénès2017-05-05
| |\ \ \ \
| * | | | | Remove unused open.Gravatar Maxime Dénès2017-05-05
| | | | | |
| | | | | * Allowing to pass arbitrary data in internalization environments.Gravatar Pierre-Marie Pédrot2017-05-03
| | |_|_|/ | |/| | |
| * | | | Merge PR#541: Fixing "decide equality" bug #5449Gravatar Maxime Dénès2017-05-03
| |\ \ \ \
| * | | | | Remove unused module definition after merging PR#592.Gravatar Maxime Dénès2017-05-02
| | | | | |
| * | | | | Merge PR#592: Fix bug #5501: Universe polymorphism breaks proof involving auto.Gravatar Maxime Dénès2017-05-02
| |\ \ \ \ \
| * \ \ \ \ \ Merge PR#582: Fix warningsGravatar Maxime Dénès2017-05-02
| |\ \ \ \ \ \
| | | | | | | * Fixing Set Rewriting Schemes bugs introduced in v8.5.Gravatar Hugo Herbelin2017-05-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Fixing a typo introduced in 31dbba5f. - Adapting to computation of universe constraints in pretyping. - Adding a regression test.
| * | | | | | | More consistent writing of de Bruijn.Gravatar Théo Zimmermann2017-05-01
| | | | | | | |
| | | | | * | | Removing dead code in Autorewrite.Gravatar Pierre-Marie Pédrot2017-05-01
| | |_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since 260965d, an imperative code was semantically the identity because the closure allocation was not performed at the right moment. Because of it intricacy, I cannot really tell the original motivations of this piece of code, although it looks like it was for there for pretty-printing of errors. Anyway, both because the code was dubious and its effect not observed, it cannot hurt to remove it.
| | | * | | | Fix bug #5501: Universe polymorphism breaks proof involving auto.Gravatar Pierre-Marie Pédrot2017-04-30
| | |/ / / / | |/| | | | | | | | | | | | | | | | A universe substitution was lacking as the normalized evar map was dropped.
| | | * | | Fixing "decide equality"'s bug #5449.Gravatar Hugo Herbelin2017-04-30
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code was assuming that the terms t and u for which {t=u}+{t<>u} is proved were distinct. We refine an internal "generalize" of "u" so that it works on the two precise occurrences to abstract, even if other occurrences of u occur as subterm of t too. We also reuse the global constants found in the statement rather than reconstructing them (this seems better in case the global constants eventually get polymorphic universes?).
| * | | | Revert "Using a more explicit algebraic type for evars of kind "MatchingVar"."Gravatar Maxime Dénès2017-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm sure this was pushed by accident, since testing shows immediately that it breaks the compilation of the ssreflect plugin, hence all developments relying on it in Travis.
| * | | | Using a more explicit algebraic type for evars of kind "MatchingVar".Gravatar Hugo Herbelin2017-04-28
| | | | | | | | | | | | | | | | | | | | A priori considered to be a good programming style.
| * | | | Merge PR#531: Fixing bug #5420 and many similar bugs due to the presence of ↵Gravatar Maxime Dénès2017-04-28
| |\ \ \ \ | | | | | | | | | | | | | | | | | | let-ins
| | | * | | Post-rebase warnings (unused opens and 2 unused values)Gravatar Gaetan Gilbert2017-04-27
| | | | | |
| | | * | | Remove unused [open] statementsGravatar Gaetan Gilbert2017-04-27
| | | | | |
| | | * | | Add [_] prefix to unused values which maybe should be keptGravatar Gaetan Gilbert2017-04-27
| | | | | |
| | | * | | Remove some unused values and typesGravatar Gaetan Gilbert2017-04-27
| | | | | |
| | | * | | Fix omitted labels in function callsGravatar Gaetan Gilbert2017-04-27
| | |/ / / | |/| | |
| | | * | transparent abstract: Respond to review commentGravatar Jason Gross2017-04-25
| | | | | | | | | | | | | | | | | | | | https://github.com/coq/coq/pull/201#discussion_r110957570
| | | * | transparent abstract: Respond to review commentGravatar Jason Gross2017-04-25
| | | | | | | | | | | | | | | | | | | | https://github.com/coq/coq/pull/201#discussion_r110952601
| | | * | Make opaque optional only for tclABSTRACTGravatar Jason Gross2017-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | Also move named arguments to the beginning of the functions. As per https://github.com/coq/coq/pull/201#discussion_r110928302
| | | * | Generalize cache_term_by_tactic_thenGravatar Jason Gross2017-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | This will allow a cache_term tactic that doesn't suffer from the Not_found anomalies of abstract in typeclass resolution.
| | | * | Add support for transparent abstract (no syntax)Gravatar Jason Gross2017-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a small change that allows a transparent version of tclABSTRACT. Additionally, it factors the machinery of [abstract] through a plugin-accessible function which allows alternate continuations (other than exact_no_check. It might be nice to factor it further, into a cache_term function that caches a term, and a separate bit that calls cache_term with the result of running the tactic.
* | | | | [location] [ast] Port module AST to CAstGravatar Emilio Jesus Gallego Arias2017-04-25
| | | | |
* | | | | [location] Make location optional in Loc.locatedGravatar Emilio Jesus Gallego Arias2017-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This completes the Loc.ghost removal, the idea is to gear the API towards optional, but uniform, location handling. We don't print <unknown> anymore in the case there is no location. This is what the test suite expects. The old printing logic for located items was a bit inconsistent as it sometimes printed <unknown> and other times it printed nothing as the caller checked for `is_ghost` upstream.
* | | | | [location] Remove Loc.ghost.Gravatar Emilio Jesus Gallego Arias2017-04-25
| | | | | | | | | | | | | | | | | | | | Now it is a private field, locations are optional.
* | | | | [location] Switch glob_constr to Loc.locatedGravatar Emilio Jesus Gallego Arias2017-04-24
| |_|/ / |/| | |