aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-04-14Cleaning up the implementation of search entries in Hints.Pierre-Marie Pédrot
2015-04-14Opaque implementation of auto tactics.Pierre-Marie Pédrot
We provide an eliminator ensuring that the AST will be used to build a tactic, so that we can stuff arbitrary things inside. An escape function is also provided for backward compatibility.
2015-04-13correction of a bug reported by Tristan Crolardjforest
2015-04-13Program: Do not reduce obligation types preemptively, only atMatthieu Sozeau
definition time. The obligation tactic or user can still choose to do so.
2015-04-13Remove declarations of matched variables in change as an extension ofMatthieu Sozeau
the context... overlooked by my last commit. Fixes relation-algebra.
2015-04-13More documented representation of hint objects.Pierre-Marie Pédrot
2015-04-13Fixing bug #4186.Pierre-Marie Pédrot
2015-04-12Making the hint entry type opaque.Pierre-Marie Pédrot
2015-04-10Fix compilation broken by Matthieu's last commit.Pierre Letouzey
Btw, also unset the READABLE_ML4 option, which probably caused this issue. No, we normally do *not* want to see the internals of .ml generated out of a .ml4 (except during some specific debug sessions). It is *so* easy otherwise to edit the wrong .ml by mistake and forget to edit the original .ml4.
2015-04-10Fix #3590 for good this time, by changing the API, change's argument nowMatthieu Sozeau
takes a variable substitution for matched variables in the (lhs) pattern, and uses the existing ist structure to pretype the rhs correcly, without having to deal with the volatile evars.
2015-04-10Test for bug #3199.Pierre-Marie Pédrot
2015-04-10Eauto hints respect their priority. Fixes bug #3199.Pierre-Marie Pédrot
This patch changes the semantics of eauto w.r.t. to extern hints, so it may break some code out there. There is no compatibility flag because this is a real bug, and we do not really want the users to depend on this. Moreover, there are still some fishy parts in the current implementation that should be rewritten for the next release.
2015-04-10Making the hints for the auto tactics private.Pierre-Marie Pédrot
They are all generated by the Hints module, and making them purely opaque is not worthwhile because we project them a lot. This ensures that they all get generated following a uniform process.
2015-04-09Better test-suite files, removing reliance on admit.Matthieu Sozeau
2015-04-09Fix declarations of instances to perform restriction of universeMatthieu Sozeau
instances as definitions and lemmas do (fixes bug# 4121).
2015-04-09Add test-suite file for bug #4120.Matthieu Sozeau
2015-04-09Really fix constr_of_pattern and bugs #3590 and #4120 byMatthieu Sozeau
removing all evars appearing in the constr (or their types, recursively) from the evar_map.
2015-04-09Strengthen minimization: it shouldn't set a universe u to a max if itMatthieu Sozeau
has a strict upper bound.
2015-04-09Remove evars in the type of _unnammed_ metas in pattern_of_constr (fixes ↵Matthieu Sozeau
QuicksortComplexity).
2015-04-09Merge branch 'v8.5' into trunkPierre Letouzey
2015-04-09Prove [map_ext] using [map_ext_in].Nickolai Zeldovich
Since [map_ext_in] is more general, no need to have the same proof twice.
2015-04-09Add a [map_ext_in] lemma to List.v.Nickolai Zeldovich
Slightly broader version of the existing [map_ext]: two [map] expressions are equal if their respective functions agree on all arguments that are in the list being mapped.
2015-04-09JSON extraction: make explicit each group of mutually-recursive fixpointsNickolai Zeldovich
2015-04-09JSON extraction: construct full names (dot-separated) in pp_globalNickolai Zeldovich
This is important to disambiguate identical names from different modules.
2015-04-09Add extraction to JSON.Nickolai Zeldovich
This patch allows Coq terms to be extracted into the widely used JSON format. This is useful in at least two cases: - One might want to manipulate Coq values outside of Coq, but without being forced to use one of the three existing extraction languages (OCaml, Haskell, or Scheme), and without having to compile Coq's extracted result. This is especially useful when a Coq evaluation produces some data structure that needs to be moved out of Coq. Having to invoke an OCaml/Haskell/Scheme compiler just to get a data structure out of Coq is somewhat awkward. - One might want to experiment with extracting Coq code into other languages (Go, Javascript, etc), without having to write the whole extraction logic in OCaml and recompile Coq's extraction plugin each time. This makes it easy to quickly prototype extraction in any language, without having to build Coq from source. Extraction to JSON is implemented by adding the JSON "pseudo-language" to the extraction facility. Thus, one can extract the JSON encoding of a single term using: Extraction Language JSON. Extraction qualid. and extract an entire Coq library "ident" into "ident.json" using: Extraction Language JSON. Extraction Library ident. Nota (Pierre Letouzey) : this is an updated version of the original PullRequest, updated to match recent changes in trunk
2015-04-09Fix instances of universe-polymorphic generalized rewriting to avoidMatthieu Sozeau
spurious quantification on unused universes.
2015-04-09Fix caching of local hintdb in typeclasses eauto.Matthieu Sozeau
2015-04-08add ExtrHaskellBasic.v to mirror ExtrOcamlBasic.vNickolai Zeldovich
2015-04-08Fix specialized extraction of ascii characters into Haskell. (Fix bug #4181)Nickolai Zeldovich
The extraction machinery has specialized support for extracting [ascii] characters into native characters in the target language, as opposed to using an explicit constructor from 8 boolean bits. This works by hard-coding the name of the character type in the target language. Unfortunately, the hard-coded type for Haskell was "Char", not the fully-qualified "Prelude.Char". As a result, it was impossible to extract characters into Haskell without getting type errors about "Char". This patch changes this hard-coded name to "Prelude.Char".
2015-04-07Removing references to -I -as from CHANGES.Pierre-Marie Pédrot
2015-04-06Test for bug #3815.Pierre-Marie Pédrot
2015-04-06refresh metas in rewrite hints loaded from .vo files (fix bug #3815)Nickolai Zeldovich
Meta variables in rewrite rules are named by integers that are allocated sequentially at runtime (fresh_meta in tactics/term_dnet.ml). This causes a problem when some rewrite rules (with meta variables) are generated by coqc, saved in a .vo file, and then imported into another coqc/coqtop process. The new process will allocate its own meta variable numbers starting from 0, colliding with existing imported meta variable numbers. One manifestation of this issue was various failures of [rewrite_strat]; see bug #3815 for examples. This change fixes the problem, by replacing all meta variable numbers in imported rewrite rules at import time. This seems to fix the various failures reported in bug #3815. Thanks to Jason Gross for tracking down the commit that introduced this bug in the first place (71a9b7f2).
2015-04-03Use the directory of the current session for selecting files to open.Guillaume Melquiond
The old behavior was extremely annoying, especially when using coqide from the command line, since the "open" box would then point to a seemingly random point of the filesystem rather than to the directory of the files currently being edited (since they were passed on the command line rather than by point-and-click). The new behavior matches the one of mainstream editors, e.g. emacs, gedit.
2015-04-02Puts all the "import" statements first so as to accommodate the latest GHC.Nickolai Zeldovich
2015-04-02Fix some typos.Guillaume Melquiond
2015-04-02Avoid outputting stray "Local" keywords in HTML documentation.Guillaume Melquiond
2015-04-02Define Any in Haskell extraction when Tunknown is used.Nickolai Zeldovich
Commit 84c2433a introduced the Any type alias as the Haskell extracted version of MiniML's Tunknown. However, the code to define the Any type alias was generated conditional on usf.magic. As it turns out, sometimes Tunknown appears even if usf.magic is false (i.e., even if MLmagic does not appear anywhere in the AST). This produced Haskell code that would not compile; e.g.: % coqtop Coq < Extraction Language Haskell. Coq < Extraction Library Datatypes. The file Datatypes.hs has been created by extraction. % ghc Datatypes.hs [1 of 1] Compiling Datatypes ( Datatypes.hs, Datatypes.o ) Datatypes.hs:261:17: Not in scope: type constructor or class `Any' Datatypes.hs:261:24: Not in scope: type constructor or class `Any' The fix is straightforward: produce the code that defines the Any type alias if usf.tunknown is true.
2015-04-02Fix compilation of documentation broken by the addition of MMapAVL.Guillaume Melquiond
2015-04-02CoqIDE: simpler way of reopening/reclosing a proof (Close: 4168)Enrico Tassi
No "read-only" terminator. If no terminator is present the UI complains. If the terminator is different, STM warns but continues. The STM warns that the "check the document" button will not honor the terminator change, and what to do to avoid that. Technically, one cannot turn (a posteriori) an axiom into a theorem and vice versa. Could be done, but not with a small patch.
2015-04-02Make sure that hyperref creates the proper links to the documentation indexes.Guillaume Melquiond
2015-04-02Remove Mltop.add_path as it is no longer possible to import files from ↵Guillaume Melquiond
subdirectories. Using Mltop.add_path instead of Mltop.add_rec_path causes the following kind of behavior: $ coqtop -nois Coq < Require Import Coq.Init.Datatypes. Error: Cannot find a physical path bound to logical path Coq.Init. The only case where its use is still warranted is the implicit "." path. It shall not be recursive because Coq might be called from about anywhere. This patch also removes -I-as since its behavior is no longer the one from 8.4 so it is not worth keeping it around.
2015-04-02Make "Add LoadPath" behave accordingly to its documentation.Guillaume Melquiond
"Add LoadPath" is documented as acting as -Q, not as -I-as. Note that "Add Rec LoadPath" should be used when compatibility with 8.4 matters.
2015-04-02Fix documentation of -R and -Q.Guillaume Melquiond
2015-04-02Make it possible for -R to override the existing implicit setting of a path.Guillaume Melquiond
Without this commit, passing "-R theories Coq" to "coqtop -nois" has no effect since "-Q theories Coq" has already been done implicitly.
2015-04-02Display the proper error message when Require fails to find a library.Guillaume Melquiond
2015-04-02MMapAVL: some improved proofs + fix a forgotten AdmittedPierre Letouzey
2015-04-02MMapAVL: implementing MMapInterface via AVL treesPierre Letouzey
2015-04-02ZArith/Int.v: some modernizationsPierre Letouzey
2015-04-02MMapPositive: some improvementsPierre Letouzey
Most of them are backports of improvements already there in FSetPositive when compared with the original FMapPositive file.
2015-04-01Accomodating #4166 (providing "Require Import OmegaTactic" as aHugo Herbelin
replacement for 8.4's "Require Omega").