aboutsummaryrefslogtreecommitdiffhomepage
path: root/plugins
Commit message (Collapse)AuthorAge
* Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-07-27
|\
| * Extraction: fix primitive projection extraction.Gravatar Matthieu Sozeau2015-07-22
| | | | | | | | Use expand projection to come back to the projection-as-constant encoding, dealing with parameters correctly.
* | Merge branch 'v8.5' into trunkGravatar Pierre Letouzey2015-06-22
|\|
| * Add efficient extraction of [nat], [Z], and [string] to HaskellGravatar Nickolai Zeldovich2015-06-22
| | | | | | | | | | | | | | | | | | | | | | | | This mirrors the existing extraction libraries for OCaml. One wart: the extraction for [string] requires that the Haskell code imports Data.Bits and Data.Char. Coq has no way to add extra import statements to the extracted code. So we have to rely on the user to somehow import these libraries (e.g., using the -pgmF ghc option). See also https://coq.inria.fr/bugs/show_bug.cgi?id=4189 Message to github robot: this commit closes #65
* | micromega : fix silly timeoutGravatar Frédéric Besson2015-06-06
| |
* | micromega : options to limit proof searchGravatar Frédéric Besson2015-05-26
| |
* | Merge v8.5 into trunkGravatar Hugo Herbelin2015-05-15
|\| | | | | | | | | | | | | Conflicts: tactics/eauto.ml4 (merging eauto.ml4 and adapting coq_micromega.ml to new typing.ml API)
| * Safer typing primitives.Gravatar Pierre-Marie Pédrot2015-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some functions from pretyping/typing.ml and their derivatives were potential source of evarmap leaks, as they dropped their resulting evarmap. This commit clarifies the situation by renaming them according to a unsafe_* scheme. Their sound variant is likewise renamed to their old name. The following renamings were made. - Typing.type_of -> unsafe_type_of - Typing.e_type_of -> type_of - A new e_type_of function that matches the e_ prefix policy - Tacmach.pf_type_of -> pf_unsafe_type_of - A new safe pf_type_of function. All uses of unsafe_* functions should be eventually eliminated.
| * Rationalizing a bit the interface of Hints.Gravatar Pierre-Marie Pédrot2015-05-11
| |
| * Fix bug #4212, congruence forgetting about some universe constraints.Gravatar Matthieu Sozeau2015-05-05
| |
* | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-05-05
|\|
* | maintenance micromega pluginGravatar Frédéric Besson2015-04-28
| | | | | | | | | | | | - add a nra tactic (similar to nia) for non-linear real arithmetic tactic - fix a long-standing bug in the reification code - port to the new proof-engine
| * Remove almost all the uses of string concatenation when building error messages.Gravatar Guillaume Melquiond2015-04-23
| | | | | | | | | | | | Since error messages are ultimately passed to Format, which has its own buffers for concatenating strings, using concatenation for preparing error messages just doubles the workload and increases memory pressure.
| * Using tclZEROMSG instead of tclZERO in several places.Gravatar Pierre-Marie Pédrot2015-04-23
| |
| * Declarative mode: remaining goals are "given up" when closing blocks.Gravatar Arnaud Spiwack2015-04-22
| | | | | | Restores the intended behaviour from v8.3 and earlier.
| * Remove dirty debug printing from funind.Gravatar Maxime Dénès2015-04-15
| |
* | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-04-15
|\|
| * Function now supports puniveresGravatar jforest2015-04-14
| |
| * better debug in recdefGravatar jforest2015-04-14
| |
| * Opaque implementation of auto tactics.Gravatar Pierre-Marie Pédrot2015-04-14
| | | | | | | | | | | | 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.
| * correction of a bug reported by Tristan CrolardGravatar jforest2015-04-13
| |
| * Fixing bug #4186.Gravatar Pierre-Marie Pédrot2015-04-13
| |
| * Fix #3590 for good this time, by changing the API, change's argument nowGravatar Matthieu Sozeau2015-04-10
| | | | | | | | | | | | 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.
* | Merge branch 'v8.5' into trunkGravatar Pierre Letouzey2015-04-09
|\|
| * JSON extraction: make explicit each group of mutually-recursive fixpointsGravatar Nickolai Zeldovich2015-04-09
| |
| * JSON extraction: construct full names (dot-separated) in pp_globalGravatar Nickolai Zeldovich2015-04-09
| | | | | | | | This is important to disambiguate identical names from different modules.
| * Add extraction to JSON.Gravatar Nickolai Zeldovich2015-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * add ExtrHaskellBasic.v to mirror ExtrOcamlBasic.vGravatar Nickolai Zeldovich2015-04-08
| |
| * Fix specialized extraction of ascii characters into Haskell. (Fix bug #4181)Gravatar Nickolai Zeldovich2015-04-08
| | | | | | | | | | | | | | | | | | | | | | 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".
| * Puts all the "import" statements first so as to accommodate the latest GHC.Gravatar Nickolai Zeldovich2015-04-02
| |
| * Fix some typos.Gravatar Guillaume Melquiond2015-04-02
| |
| * Define Any in Haskell extraction when Tunknown is used.Gravatar Nickolai Zeldovich2015-04-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Accomodating #4166 (providing "Require Import OmegaTactic" as aGravatar Hugo Herbelin2015-04-01
| | | | | | | | replacement for 8.4's "Require Omega").
| * Declarative mode: fix proof modes.Gravatar Arnaud Spiwack2015-03-31
| | | | | | | | `end proof` changes the proof mode to `"Classic"`.
| * Declarative mode: fix vernac classification.Gravatar Arnaud Spiwack2015-03-31
| | | | | | | | So that the commands are assigned the appropriate status of syntax-changing or not, as well as the proof mode they are setting.
| * Declarative mode: plug the specialised printers back.Gravatar Arnaud Spiwack2015-03-31
| | | | | | | | It will not work in CoqIDE though, which handles printing its own way. It's a general remark that we have many ways of printing things in Coq and we should look for a unified structured framework to be shared between interfaces.
* | Merge branch 'v8.5' into trunkGravatar Enrico Tassi2015-03-30
|\|
| * Correcting a bug introduced by universes polymorphismGravatar jforest2015-03-25
| |
| * correcting a bug with aliased when using Functional SchemeGravatar forest2015-03-25
| |
* | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-03-23
|\|
| * Avoid segfault from code extracted to ghc. (Fix for bug #1257)Gravatar Guillaume Melquiond2015-03-21
| |
| * Properly capitalize filenames when extracting to Haskell. (Fix for bug #3221)Gravatar Guillaume Melquiond2015-03-21
| |
| * Do not revert parameter lists when extracting singleton types to Haskell. ↵Gravatar Guillaume Melquiond2015-03-21
| | | | | | | | (Fix for bugs #3470 and #3694)
* | Merge branch 'v8.5' into trunkGravatar Arnaud Spiwack2015-03-13
|\|
| * Declarative mode: make it so that unfocussing can only be done for closed ↵Gravatar Arnaud Spiwack2015-03-13
| | | | | | | | | | | | subproofs. The front-end is supposed to take care of that, but it may help to catch bugs.
| * Declarative mode: remove dead code.Gravatar Arnaud Spiwack2015-03-13
| |
| * Declarative mode: remove a superfluous [set_proof_mode].Gravatar Arnaud Spiwack2015-03-13
| | | | | | | | It was probably creating bugs when trying to use [escape].
| * Declarative mode: fix the focus behaviour.Gravatar Arnaud Spiwack2015-03-13
| | | | | | | | | | | | | | | | I had previously mistakenly enforced the property that after solving every goal in a block, unfocusing was performed automatically until one goal is in focus. This is not how the declarative mode is supposed to behave. Rather every focus must be explicitely unfocused by a closing command. This hit a few bad interaction with the pure representation of proof introduced for the asynchronous processing. Some of the invariants seem fragile, so this minimally disruptive solution is probably not long-term. In particular since each block uses the same focus kind, an `end <block>` may close another block than intended if the number of unfocussing command executed is not the right one.
| * rewiring Czar printers that were disabledGravatar Pierre Corbineau2015-03-13
| | | | | | | | Backported from trunk.
| * Fix double print in decl_mode.Gravatar Enrico Tassi2015-03-11
| | | | | | | | | | After executing a command classified as VtProofStep the stm prints the goals (if used via the tty API).