| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
Still to do:
- Decide between using SeveralInstancesFound or raising an error when
multiple instances exist.
- Use a proper printer for evars instead of the debugging
pr_evar_map_filter printer in pr_constraints.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This particular instance is probably never called though.
|
|
|
|
| |
The core is a "detyping" function for [closed_glob_constr]. Which interpretes the variable names according to the Ltac context, and apply the standard detyping procedure to typed terms in the closure.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
They should be rather sensible, but de gustibus & coloribus...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reference" and "simpl pattern" in the code (maybe we should have
merged them instead, but I finally decided to enforce their
difference, even if some compatibility is to be preversed - the idea
is that at some time "simpl reference" would only call a weak-head
simpl (or eventually cbn), leading e.g. to reduce 2+n into S(1+n)
rather than S(S(n)) which could be useful for better using induction
hypotheses.
In the process we also implement the following:
- 'simpl "+"' is accepted to reduce all applicative subterms whose
head symbol is written "+" (in the toplevel scope); idem for
vm_compute and native_compute
- 'simpl reference' works even if reference has maximally inserted
implicit arguments (this solves the "simpl fst" incompatibility)
- compatibility of ltac expressions referring to vm_compute and
native_compute with functor application should now work (i.e.
vm_compute and native_compute are now taken into account in
tacsubst.ml)
- for compatibility, "simpl eq" (assuming no maximal implicit args in
eq) or "simpl @eq" to mean "simpl (eq _ _)" are still allowed.
By the way, is "mul" on nat defined optimally? "3*n" simplifies to
"n+(n+(n+0))". Are there some advantages of this compared to have it
simplified to "n+n+n" (i.e. to "(n+n)+n").
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
printing/RichPrinter: Rename into Richprinter.
printing/{ppvernac, ppconstr, pptactic}: Rename RichPp into Richpp.
printing/Richprinter: Cosmetics.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
printing/Pptactic: Tag tactics pretty-printing.
printing/Ppvernac: Use the relevent Pptactic pretty-printer.
printing/RichPrinter: Publish two new services.
|
|
|
|
|
|
| |
- Functorize with respect to the pretty-printer for constr.
- Include the application of Make to Ppconstr at toplevel in order to preserve
previous behavior.
|
|
|
|
| |
printing/Pptactic: Use it.
|
| |
|
| |
|
|
|
|
|
| |
A combinator to introduce tags.
printing/{Ppconstr, Ppvernac}: Use it.
|
|
|
|
| |
printing/{Ppconstr, Ppvernac}: Use it.
|
| |
|
|
|
|
|
| |
printing/Ppannotation: Define the projection of annotations into XML attributes.
lib/richPp: Implements valid entities escaping.
|
|
|
|
| |
Ppconstr: Fix a typo in comments.
|
|
|
|
| |
Ppvernac.RichPp: New rich pretty-printer.
|
|
|
|
|
|
| |
- Define the signature for a pretty-printer of vernacular commands.
Ppvernac: Use it.
|
|
|
|
|
|
|
|
| |
- Ppvernac is now functorized with respect to
a Ppconstr printer.
- Preserve previous behavior by instantiating this functor
with Ppconstr.
|
| |
|
|
|
|
|
|
|
|
|
| |
Define the annotations stored in semi-structured pretty-prints.
Ppconstrsig: New.
Contains the signature of a pretty-printer for ppconstr.
Ppconstr: Export a new rich pretty-printer for constr_expr and co.
|
|
|
|
|
|
|
|
|
|
| |
- Functorize Ppconstr with respect to a set of tagging functions.
- These functions are meant to introduce tags to produce semistructured
pretty printings.
printing/Ppconstr:
Preserve the previous behaviour of this module by instantiating Make
with tagging functions that do nothing.
|
|
|
|
|
| |
Make evaluation order explicit.
(Do not rely anymore on ocaml evaluation order, which is unspecified.)
|
| |
|
| |
|