aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-12-06Fix the refine related test-suite files to account for the new refine.Arnaud Spiwack
2013-12-06Missing file in commit 1fb883.Arnaud Spiwack
It would seem that I forgot to include the actual documentation in 1fb883. As a result, the reference manual didn't compile due to missing dependencies.
2013-12-04Fix g_derive.ml4.Arnaud Spiwack
My bad, I forgot to fix the classification before comitting.
2013-12-04Documentation of the Derive plugin.Arnaud Spiwack
I put it in a new chapter of the Addendum of the manual. Which is meant to be dedicated to plugins with short documentation.
2013-12-04Stm: remove an assertion.Arnaud Spiwack
In the code which indents proof scripts, you cannot assume that a single goal is closed at a time (because of dependent subgoals). This change had been lost in the rebase over the paral-itp commits in october.
2013-12-04Derive plugin.Arnaud Spiwack
A small plugin to support program deriving (à la Richard Bird) in Coq. It's fairly simple: Require Coq.Derive.Derive. Derive f From g Upto eq As h. Produces a goal (actually two, but the first one is automatically shelved): |- eq g ?42 And closing the proof produces two definitions: f is instantiated with the value of ?42 (it's always transparent). And h is instantiated with the content of the proof (it is transparent or opaque depending on whether the proof was closed with Defined or Qed).
2013-12-04Fix Admitted.Arnaud Spiwack
Commit "The commands that initiate proofs…" was a bit hasty in its treatment of Admitted (in an attempt of making things simple, I actually required the proof to be completed for Admitted to go through…).
2013-12-04Proof_global: fix start_proof comment after the preceding commits.Arnaud Spiwack
2013-12-04Factoring(continued).Arnaud Spiwack
This commit removes the hook.
2013-12-04Refactoring: storing more information in the terminator closure.Arnaud Spiwack
We used to keep a lot of information in the global proof environment, for the end-of-proof commands to use. Now that the end commands are dumb, they are better stored in the proof-termination closure allocated by the starting command. In this commit, we remove the compute_guard parameter.
2013-12-04The commands that initiate proofs are now in charge of what happens when ↵Arnaud Spiwack
proofs end. The proof ending commands like Qed and Defined had all the control on what happened to the proof when they are closed. In constrast, proof starting commands were dumb: start a proof, give it a name, that's it. In such a situation if we want to come up with new reasons to open proofs, we would need new proof-closing commands. In this commit we decide at proof-starting time how to dispatch the various Qed/Defined, etc… By registering a function in the interactive proof environment. This way, proofs are always closed the same but we can invent new ways to start them.
2013-12-04Vernac classification: allow for commands which start proofs but must be ↵Arnaud Spiwack
synchrone. The previous heuristic is to check whether the proof ends with Qed or not. This modification allows for commands which start proof but may produce transparent term even when the function ends with Qed.
2013-12-04Allow proofs to start with dependent goals.Arnaud Spiwack
I use a telescope to represent to goals, and let proofview.ml generate the appropriate existential variables.
2013-12-04Improved the presentation of the proof of UIP_refl_nat.Hugo Herbelin
2013-12-04Add lemma derivable_pt_lim_atan.Guillaume Melquiond
Note: the choice of the derivative comes from derivable_pt_lim_ps_atan rather than derivable_pt_atan.
2013-12-03Removing useless meta-related functions.Pierre-Marie Pédrot
2013-12-03Fix statement of Rplus_lt_reg_r and add Rplus_lt_reg_l.Guillaume Melquiond
2013-12-03Silence some warning about references in documentation.Guillaume Melquiond
2013-12-03Remove a useless hypothesis from Rle_Rinv.Guillaume Melquiond
2013-12-03Ensure locality modifiers are properly highlighted in CoqIDE.Guillaume Melquiond
2013-12-03Silence compilation warning by avoiding some deprecated constructs.Guillaume Melquiond
2013-12-02Test case for bug#2848.xclerc
2013-12-02Porting type interpretation in Tacinterp to the new tactics.Pierre-Marie Pédrot
2013-12-02Writing [cut] tactic using the new monad.Pierre-Marie Pédrot
2013-12-02Test suite: update output reference.xclerc
2013-12-02Merge branch 'trunk' of git+ssh://scm.gforge.inria.fr//gitroot/coq/coq into ↵xclerc
trunk
2013-12-02Print logical name rather than path (thus allowing reproducible tests).xclerc
2013-12-01Removing RefArgType generic argument.Pierre-Marie Pédrot
2013-12-01Ensuring the right parsing of glob arguments, used by refinePierre-Marie Pédrot
and instantiate. Each of these tactics uses it at a different parsing level, thus actually triggering a parsing error after merging them. This fix implies some code duplication, which is a pity. The separation between genargs and parsing entries should be made one day.
2013-11-30Fixing ltac constr variable handling in refine.Pierre-Marie Pédrot
2013-11-30Adding printing of ltac envs to debugger.Pierre-Marie Pédrot
2013-11-30Getting rid of casted_open_constr. It was only used by thePierre-Marie Pédrot
refine tactic, which now uses plain glob_constr's. Now there is no real need to depend on goal when interpreting genargs. Possible minor incompatibilities: 1. The interpretation of glob_constr to constr is now done by Goal.constr_of_raw, which may be slightly dumbier than the dedicated Tacinterp.interp_open_constr which tries harder. Stdlib and test-suite do go through, though. 2. I had to change the parsing level of wit_glob in Extraargs from lconstr to constr. It may break ML notations using glob, but as they are only used inside Coq code and all well-parenthezised, it should be OK.
2013-11-30Better heuristic for name generation backward compatibility. We fallbackPierre-Marie Pédrot
to old behaviour whenever we were in Program mode.
2013-11-30Useless instantiation function exported in Evd.Pierre-Marie Pédrot
2013-11-30Tentative fix to recover fresh name generation as it was beforePierre-Marie Pédrot
new-tacticals merge. This is essentially a revert of 6fea2f which broke the sacrosanct backward compatibility of name generation, thus breaking quite a lot of contribs.
2013-11-29First stab at documenting Canonical StructuresEnrico Tassi
2013-11-29Fixing bug #3169 and avoiding anomaly in bug #2885 (vm_compute notHugo Herbelin
supporting metas/evars). Fix of #3169 is by calling pretyping retyper rather than the non evar-aware kernel type-checker (since argument of vm_compute is supposed to be already typable). Support of metas/evars in vm is still to be done...
2013-11-29Testsuite: flatten the 'bugs/opened' directory.xclerc
2013-11-28Testsuite: remove the logic for 'bugs/opened/shouldnotsucceed' (unused)xclerc
2013-11-27Getting rid of goal-dependency in declarative mode argument evaluation.Pierre-Marie Pédrot
2013-11-27Fixing abstract tactic by using a dummy name out of a declared proof.Pierre-Marie Pédrot
2013-11-27Actually adding the grammar entry to handle tactics in terms.Pierre-Marie Pédrot
2013-11-27Adding the necessary hooks to handle tactics in terms.Pierre-Marie Pédrot
2013-11-27Adding generic solvers to term holes. For now, no resolution mechanism norPierre-Marie Pédrot
parsing is plugged.
2013-11-27Old message Interp returns the state id so that one can BackTo itEnrico Tassi
2013-11-27New option --help-XML-protocol to document the XML procol used by -ideslaveEnrico Tassi
Serialize.ml spits out its own documentation. Not everything is statically checked, so it risks to get outdated. Ideas on how to statically/dynamically check that the doc is in sync are welcome.
2013-11-27First stab at retrocompatible INTERP messageEnrico Tassi
2013-11-27Use my real email address in .mailmapEnrico Tassi
2013-11-27Reduction: every n iterations a slaves process checks for interruptionEnrico Tassi
I chose n to be 10000 iterations. It might be big, but a slave, to check for a termination request, has to pass the ball to the thread that sends "regularly" Ticks to the master process. Thread.yield is a system call, so we have to do it very rarely.
2013-11-27STM: restart slave after every proofEnrico Tassi
The code now passes a cleanup function that, if slave is not killed, could be used to do some cleanup between two jobs. ATM I don't know how to reuse the worker without having it grow in space indefinitely. Running Gc.compact is too expensive.