aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping
Commit message (Collapse)AuthorAge
* Feedback cleanupGravatar Emilio Jesus Gallego Arias2016-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | This patch splits pretty printing representation from IO operations. - `Pp` is kept in charge of the abstract pretty printing representation. - The `Feedback` module provides interface for doing printing IO. The patch continues work initiated for 8.5 and has the following effects: - The following functions in `Pp`: `pp`, `ppnl`, `pperr`, `pperrnl`, `pperr_flush`, `pp_flush`, `flush_all`, `msg`, `msgnl`, `msgerr`, `msgerrnl`, `message` are removed. `Feedback.msg_*` functions must be used instead. - Feedback provides different backends to handle output, currently, `stdout`, `emacs` and CoqIDE backends are provided. - Clients cannot specify flush policy anymore, thus `pp_flush` et al are gone. - `Feedback.feedback` takes an `edit_or_state_id` instead of the old mix. Lightly tested: Test-suite passes, Proof General and CoqIDE seem to work.
* Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-05-20
|\
* | More informative error message when interpreting ltac variables in terms.Gravatar Pierre-Marie Pédrot2016-05-13
| |
| * Small optimization in evar resolution.Gravatar Pierre-Marie Pédrot2016-05-12
| | | | | | | | | | Instead of rebuilding a whole set of evars just to make a typeclass filter, we use the source evarmap.
* | Removing dead code and unused opens.Gravatar Pierre-Marie Pédrot2016-05-08
| |
* | Moving the Val module to Geninterp.Gravatar Pierre-Marie Pédrot2016-05-04
| |
* | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-05-04
|\|
| * Use the canonical name when looking for an eliminator (bug #4670).Gravatar Guillaume Melquiond2016-05-03
| | | | | | | | Disclaimer: I have no idea what I am doing.
| * Avoid infinite loop/stack overflow when using "simpl nomatch" (bug #4576).Gravatar Guillaume Melquiond2016-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When encountering a "simpl nomatch" constant, the reduction machinery tries to unfold it. If the subsequent partial reduction does not produce any match construct, it keeps going from the reduced term. Unfortunately, the reduced term has been refolded in the meantime, which means that some of the previous reduction steps have been canceled, thus causing an infinite loop. This patch delays the refolding till the very end, so that reduction always progresses. Disclaimer: I have no idea what I am doing here. The patch compiles the standard library and the test suite properly, so hopefully they contain enough tests to exercise the reduction machinery.
* | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-05-02
|\|
| * Fix incorrect cbv reduction of primitive projections. (Bug #4634)Gravatar Guillaume Melquiond2016-04-29
| | | | | | | | | | | | | | | | | | | | | | As noticed by Cyprien Mangin, projected terms cannot directly be used as head values. Indeed, they might be applications (e.g. constructors as in the bug report) whose arguments would thus be missing from the evaluation stack when doing any iota-reduction step. The only case where it would make sense is when the evaluation stack is empty, as an optimization. Indeed, in that case, the arguments are put on the stack, and then immediately put back inside the term.
* | Revert "When interpreting "match goal with ... end" in ltac, expand evars by"Gravatar Hugo Herbelin2016-04-27
| | | | | | | | This reverts commit 7e613daf7c71a4180725bddb40151c2b5a6348f4.
* | Revert "More abstraction in cases.mli."Gravatar Hugo Herbelin2016-04-27
| | | | | | | | This reverts commit 975e2a05050c704161aca3fbac96376eeda6fb4a.
* | Revert "Add support for generalization also on named variables in ↵Gravatar Hugo Herbelin2016-04-27
| | | | | | | | | | | | pattern-matching" This reverts commit be80899499094fc8a15362931e3cec650f2fb14e.
* | Revert "Add support for deep dependencies in variables within the recursive ↵Gravatar Hugo Herbelin2016-04-27
| | | | | | | | | | | | structure." This reverts commit eaca8dadf7dd8152a86f4fc75631754344268dbf.
* | Revert "Fixing a De Bruijn bug in computing return predicate by inversion."Gravatar Hugo Herbelin2016-04-27
| | | | | | | | This reverts commit 94e9e28ebaa33e11164ca07f225d998ca7f8e52c.
* | Revert "Using existing names as a basis for the inner names of the ↵Gravatar Hugo Herbelin2016-04-27
| | | | | | | | | | | | pattern-matching produced by an implicit "in" clause" This reverts commit ba9f53314ff6132d0013e53879395e0dc9d8038c.
* | Revert "Vers un filtrage profond ..."Gravatar Hugo Herbelin2016-04-27
| | | | | | | | This reverts commit d9f0daefb437955df8102de2b3c4c31749b6946e.
* | Vers un filtrage profond ...Gravatar Hugo Herbelin2016-04-27
| |
* | Using existing names as a basis for the inner names of the pattern-matching ↵Gravatar Hugo Herbelin2016-04-27
| | | | | | | | produced by an implicit "in" clause
* | Fixing a De Bruijn bug in computing return predicate by inversion.Gravatar Hugo Herbelin2016-04-27
| |
* | Add support for deep dependencies in variables within the recursive structure.Gravatar Hugo Herbelin2016-04-27
| |
* | Add support for generalization also on named variables in pattern-matchingGravatar Hugo Herbelin2016-04-27
| | | | | | | | algorithm.
* | More abstraction in cases.mli.Gravatar Hugo Herbelin2016-04-27
| |
* | When interpreting "match goal with ... end" in ltac, expand evars byGravatar Hugo Herbelin2016-04-27
| | | | | | | | | | | | | | need at matching time rather than eagerly at the beginning of the call to "match". To be done for other constructs too, e.g. "match term with ... endp".
* | Fixing a "This clause is redundant" error when interpreting the "in"Gravatar Hugo Herbelin2016-04-27
| | | | | | | | clause of a "match" over an irrefutable pattern.
| * Optimization in building a return clause by pattern-matching: do notGravatar Hugo Herbelin2016-04-27
| | | | | | | | | | build a default case if the pattern is irrefutable. It did not matter in practice because we did not check for unused clauses in this case.
* | Merging the ML tactic notation and plain Tactic Notation mechanisms.Gravatar Pierre-Marie Pédrot2016-04-25
| |
* | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-04-24
|\|
| * Fixing #4677 (collision of a global variable and of a local variableGravatar Hugo Herbelin2016-04-19
| | | | | | | | | | while eta-expanding a notation) + a more serious variant of it (alpha-conversion incorrect wrt eta-expansion).
* | Merge branch 'trunk-function_scope' of https://github.com/JasonGross/coq ↵Gravatar Matthieu Sozeau2016-04-04
|\ \ | | | | | | | | | into JasonGross-trunk-function_scope
* \ \ Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-03-30
|\ \ \ | | |/ | |/|
* | | Moving type_uconstr to Pretyping.Gravatar Pierre-Marie Pédrot2016-03-25
| | |
| * | Fix a bug in Program coercion codeGravatar Matthieu Sozeau2016-03-25
| | | | | | | | | | | | | | | It was not accounting for the universe constraints generated by applications of the coercion.
* | | Moving Evarutil and Proofview to engine/Gravatar Pierre-Marie Pédrot2016-03-20
| | |
* | | Making Evarutil independent from Reductionops.Gravatar Pierre-Marie Pédrot2016-03-20
| | |
* | | Splitting Evarutil in two distinct files.Gravatar Pierre-Marie Pédrot2016-03-20
| | | | | | | | | | | | | | | Some parts of Evarutils were related to the management of evars under constraints. We put them in the Evardefine file.
* | | Pushing Proofview further down the dependency alley.Gravatar Pierre-Marie Pédrot2016-03-20
| | |
* | | Moving Proofview to pretyping/.Gravatar Pierre-Marie Pédrot2016-03-20
| | |
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-03-20
|\| |
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-03-18
|\ \ \
| | * | Fix #4623: set tactic too weak with universes (regression)Gravatar Maxime Dénès2016-03-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The regression was introduced by efa1c32a4d178, which replaced unification by conversion when looking for more occurrences of a subterm. The conversion function called was not the right one, as it was not inferring constraints.
| | * | Fix incorrect behavior of CS resolutionGravatar Matthieu Sozeau2016-03-16
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to a change in pretyping, using cast annotations as typing constraints, the canonical structure problems given to the unification could contain non-evar-normalized terms, hence we force evar normalization where necessary to ensure the same CS solutions can be found. Here the dependency test is fooled by an erasable dependency, and the following resolution needs a independent codomain for pop b to be well-scoped.
| * | Try eta-expansion of records only on non-recursive onesGravatar Matthieu Sozeau2016-03-15
| | |
* | | Try eta-expansion of records only on non-recursive onesGravatar Matthieu Sozeau2016-03-14
| | |
| * | Primitive projections: protect kernel from erroneous definitions.Gravatar Matthieu Sozeau2016-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | E.g., Inductive foo := mkFoo { bla : foo } allowed to define recursive records with eta for which conversion is incomplete. - Eta-conversion only applies to BiFinite inductives - Finiteness information is now checked by the kernel (the constructor types must be strictly non recursive for BiFinite declarations).
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-03-09
|\| |
| * | Fix strategy of Keyed UnificationGravatar Matthieu Sozeau2016-03-09
| | | | | | | | | | | | | | | | | | | | | Try first to find a keyed subterm without conversion/betaiota on open terms (that is the usual strategy of rewrite), if this fails, try with full conversion, incuding betaiota. This makes the test-suite pass again, retaining efficiency in the most common cases.
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-03-05
|\| |
* | | Slightly contracting code of evarconv.ml.Gravatar Hugo Herbelin2016-02-28
| | |