aboutsummaryrefslogtreecommitdiffhomepage
path: root/proofs
Commit message (Collapse)AuthorAge
...
* Specializing tclBREAK so that it can choose the return exception in caseGravatar Pierre-Marie Pédrot2014-10-22
| | | | of a break.
* Oversight in ce260a0db279ce09dda70e079ae3c35b49f05ec4 (Proper scoping of ↵Gravatar Arnaud Spiwack2014-10-22
| | | | | future goals). Fixes #3757. Thanks to Hugo for helping pinpoint the issue.
* Proofview: documentation and re-ordering.Gravatar Arnaud Spiwack2014-10-22
|
* Split [Proofview] into a file where the basic operations on the state are ↵Gravatar Arnaud Spiwack2014-10-22
| | | | | | defined and the file providing the primitives. The datatypes are defined in [Proofview_monad], previous [Proofview_monad] is now called [Logic_monad] since it is more generic since the refactoring.
* Make names in [Proofview_monad] more uniform.Gravatar Arnaud Spiwack2014-10-22
| | | | ret -> return, bind -> (>>=), etc… So that monads expose a [Monad.S] signature. Also Proofview now exposes the [Monad.S] signature directly rather than in a [Monad.S] subdirectory.
* Proofview: remove and inline [on_advance] function.Gravatar Arnaud Spiwack2014-10-22
| | | | [on_advance] gave almost no gain in readability, while costing a closure.
* Proofview: add a lens for the evar_map and factor some code.Gravatar Arnaud Spiwack2014-10-22
|
* Proofview: use an iter-like combinator rather than a fold_left-like one for ↵Gravatar Arnaud Spiwack2014-10-22
| | | | | | dispatch. Leads to clearer an more efficient code.
* Add more primitives to the [Monad.Make] arguments.Gravatar Arnaud Spiwack2014-10-22
| | | | For optimisation purposes.
* Improve readability the "lenses" in Proofview, using interfaces.Gravatar Arnaud Spiwack2014-10-22
|
* Proofview: clean up code a little.Gravatar Arnaud Spiwack2014-10-22
|
* Proofview: move [list_goto] to the [CList] module.Gravatar Arnaud Spiwack2014-10-22
| | | | It is, after all, a generic function about lists.
* Proofview: replace the functions iter_list and iter_list2 by generic monadic ↵Gravatar Arnaud Spiwack2014-10-22
| | | | combinators.
* Proofview: clean up commented out code.Gravatar Arnaud Spiwack2014-10-22
|
* Proofview: remove a redundant primitive.Gravatar Arnaud Spiwack2014-10-22
|
* Proofview: move more functions to the Unsafe module.Gravatar Arnaud Spiwack2014-10-22
|
* Proofview: split [V82] module into [Unsafe] and [V82].Gravatar Arnaud Spiwack2014-10-22
| | | | The Unsafe module is for unsafe tactics which cannot be done without anytime soon. Whereas V82 indicates a function which we want to get rid of and that shouldn't be used in a new function.
* Proofview.mli: no more reference to Goal.goal.Gravatar Arnaud Spiwack2014-10-22
|
* Proofview: factor init and dependent_init.Gravatar Arnaud Spiwack2014-10-22
|
* Remove unused functions for side effects.Gravatar Arnaud Spiwack2014-10-22
|
* Lemmas/Pfedit: use full evar_map instead of universe contexts to start proofs.Gravatar Arnaud Spiwack2014-10-22
| | | As simple as this looks, there's been some quite subtle issues in doing this modification, there may be bugs left.
* Lazily check that an argument is dependent when constructing evar clauses.Gravatar Pierre-Marie Pédrot2014-10-21
|
* Adding an evar version of the make_clenv function.Gravatar Pierre-Marie Pédrot2014-10-21
|
* Revert "Naming main goal "Main""Gravatar Hugo Herbelin2014-10-16
| | | | (More thinking needed)
* Refactoring proofview: make the definition of the logic monad polymorphic.Gravatar Arnaud Spiwack2014-10-16
| | | | | | Makes the monad more flexible as it will be easier to add new components to the concrete state of the tactic monad. The Proofview module is also organised in a more abstract way with dedicated submodules to access various parts of the state or writer.
* Grab Existential Variables: restore the goal order from v8.4.Gravatar Arnaud Spiwack2014-10-16
| | | | Changes in the implementation details had unwittingly changed the order in which Grab Existential Variables displayed the goals.
* Proofview: cleanup: no more reference to Goal.goal.Gravatar Arnaud Spiwack2014-10-16
|
* Put evars remaining after a tactic on the shelf.Gravatar Arnaud Spiwack2014-10-16
| | | | Uses the new architecture which allows to keep track of all new evars. The [future_goals] are flushed at the end of the tactics, the [principal_future_goal] is ignored.
* Refine: proper scoping of the future goals.Gravatar Arnaud Spiwack2014-10-16
| | | | In my first attempt I just dropped all future goals before starting a refinement. This was done for simplicity but is incorrect in general. In this version the future goals which are not introduced by the particular instance of refine are kept for future use.
* Goal: remove [advance] from the API.Gravatar Arnaud Spiwack2014-10-16
| | | | Now [Goal] only contains a few helpers.
* Proofview: remove unused [refresh_sigma] compatibility primitive.Gravatar Arnaud Spiwack2014-10-16
|
* Goal: remove some functions from the compatibility layer.Gravatar Arnaud Spiwack2014-10-16
| | | | The rest will take more work.
* Goal: remove most of the API (make [Goal.goal] concrete).Gravatar Arnaud Spiwack2014-10-16
| | | | We are left with the compatibility layer and a handful of primitives which require some thought to move.
* Make [Goal.goal] be exactly [Evar.t].Gravatar Arnaud Spiwack2014-10-16
| | | | | First step in removing the [Goal] module whose code is now essentially legacy. Removes the cache attached to a goal, which was used to avoid unnecessary [nf_evar]. May have a performance cost, which is to be fixed later.
* Goal: remove dead code.Gravatar Arnaud Spiwack2014-10-16
|
* Expose Proofview.Refine.with_type in the API.Gravatar Arnaud Spiwack2014-10-16
|
* Proofview.Refine: remove the handle type, and simplify the API.Gravatar Arnaud Spiwack2014-10-16
| | | | | | Now, usual function from Evarutil are used to define evars instead of the variants from Proofview.Refine. The [update] primitive which tried to patch the difference between pretyping functions and the refine primitive is now replaced by the identity function.
* Move the handling of the principal evar from refine to evd.Gravatar Arnaud Spiwack2014-10-16
| | | | | | See previous commit for more discussion. Changed the name from "main" to "principal" because I find "main" overused, and because the name was only introduced yesterday anyway.
* Move the handling a new evars from the [Proofview.Refine] module to [Evd].Gravatar Arnaud Spiwack2014-10-16
| | | | | | | | That way, everything in the code of pretying is made "refine"-aware. Making the abstraction stonger and integration of pretyping with interactive proof more direct. It might create goals in a slightly different goal order in the (user level) refine tactic. Because now, the [update] primitive which used to infer an order from an [evar_map] now has the order fixed by the successive declaration with [Evarutil.new_evar] (and similar). It probably coincides, though. Following a suggestion by Hugo.
* Proofview.Refine: delay the marking of new evars as goals from [new_evar] to ↵Gravatar Arnaud Spiwack2014-10-16
| | | | | | [refine]. This makes [new_evar] closer to be a mere wrapper around [Evarutil.new_evars]. Will allow restructuring of the refinement interface.
* Proofview: small optimisation/simplification.Gravatar Arnaud Spiwack2014-10-16
|
* Add support for deactivating type class inference from induction/destruct.Gravatar Hugo Herbelin2014-10-13
|
* Adding a tactic which fails if one of the goals under focus is dependent in ↵Gravatar Hugo Herbelin2014-10-13
| | | | another one.
* Naming main goal "Main"Gravatar Hugo Herbelin2014-10-13
|
* Added support for having one subgoal inheriting the name of its father in ↵Gravatar Hugo Herbelin2014-10-09
| | | | Refine.
* Removing Convert_concl and Convert_hyp from Logic.Gravatar Hugo Herbelin2014-10-09
|
* A version of convert_concl and convert_hyp in new proof engine.Gravatar Hugo Herbelin2014-10-09
| | | | | Not very optimized though (if we apply convert_hyp on any hyp, a new evar will be generated for every different hyp...).
* Make tclEFFECTS also update the env in the proof monadGravatar Enrico Tassi2014-10-06
|
* A few Global.env removed.Gravatar Hugo Herbelin2014-10-04
|
* Factored out IDE goal structure.Gravatar Carst Tankink2014-10-01
| | | | | | | | | | | | The more structured goal record type of CoqIDE is also useful for other interfaces (in particular, for PIDE). To support this, the datatype was factored out to the Proof module. In addition, the record gains a type parameter, to allow interfaces to adapt the output to their needs. To accommodate this type, the Proof module also gains the map_structured_proof that takes a Proof.proof and a function on the individual goals (in the context of an evar map) and produces a structured goal based on the goal transformer.