aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-10-16Structure/OrderTac.v : highlight the "order" tactic by isolating it from ↵letouzey
FSets, and improve it As soon as you have a eq, a lt and a le (that may be lt\/eq, or (complement (flip (lt))) and a few basic properties over them, you can instantiate functor MakeOrderTac and gain an "order" tactic. See comments in the file for the scope of this tactic. NB: order doesn't call auto anymore. It only searches for a contradiction in the current set of (in)equalities (after the goal was optionally turned into hyp by double negation). Thanks to S. Lescuyer for his suggestions about this tactic. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12397 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-16note for later : when the tag table is shared, never, ever create twovgross
tags with the same name. This fixes file opening. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12396 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-15typo in doc of Extraction Blacklistletouzey
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12394 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-15MSetInterface: (W)Raw2Sets splitted in 2 (helps a future commit by Elie)letouzey
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12393 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-15OrderedType2.order is slightly weaker since last commit, adapt accordinglyletouzey
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12392 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-15OrderedType2.order : fix the last fix (a fail at the wrong place)letouzey
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12391 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-15Fix bug in typeclass resolution discoverd by Eeelis van der Weegen:msozeau
the wrong evar_defs was used when checking if an evar was to be resolved or not. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12390 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-14Typo in last commitletouzey
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12389 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-14Improved tactic "order" in OrderedTypeletouzey
I forgot to mention in last commit message about MSets that the corresponding OrderedType2 comes with a redesigned "order" tactic. It should now be complete for its purpose (that is solve systems of (in)equations of variables over == < <= <>). Non-linear matching is cool, I love Ltac :-). Unlike the old "order", this new version is meant to completely solve the goal or fail. Speed might be an issue for big systems, but in pratice it is quite efficient on the examples encountered in FSets. This commit: - propagages this new "order" to the original OrderedType.v file used for the old FSet. - fixes a bug : the ltac loop shouldn't fail otherwise strange backtrack occurs. I hate Ltac :-( git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12388 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-13Made implicit arguments of Operators_Properties.v localherbelin
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12387 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-13Typos.gmelquio
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12386 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-13Better handling of emphasis.msozeau
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12385 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-13MSets: a new generation of FSetsletouzey
Same global ideas (in particular the use of modules/functors), but: - frequent use of Type Classes inside interfaces/implementation. For instance, no more eq_refl/eq_sym/eq_trans, but Equivalence. A class StrictOrder for lt in OrderedType. Extensive use of Proper and rewrite. - now that rewrite is mature, we write specifications of set operators via iff instead of many separate requirements based on ->. For instance add_spec : In y (add x s) <-> E.eq y x \/ In x s. Old-style specs are available in the functor Facts. - compare is now a pure function (t -> t -> comparison) instead of returning a dependent type Compare. - The "Raw" functors (the ones dealing with e.g. list with no sortedness proofs yet, but morally sorted when operating on them) are given proper interfaces and a generic functor allows to obtain a regular set implementation out of a "raw" one. The last two points allow to manipulate set objects that are completely free of proof-parts if one wants to. Later proofs will rely on type-classes instance search mechanism. No need to emphasis the fact that this new version is severely incompatible with the earlier one. I've no precise ideas yet on how allowing an easy transition (functors ?). For the moment, these new Sets are placed alongside the old ones, in directory MSets (M for Modular, to constrast with forthcoming CSets, see below). A few files exist currently in version foo.v and foo2.v, I'll try to merge them without breaking things. Old FSets will probably move to a contrib later. Still to be done: - adapt FMap in the same way - integrate misc stuff like multisets or the map function - CSets, i.e. Sets based on Type Classes : Integration of code contributed by S. Lescuyer is on the way. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12384 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-09Fix bug #2162 and a name clashing bug in generalized binders.msozeau
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12383 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-09Fix a typo(?) in previous commitletouzey
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12382 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-08Fixed clash names in Relations (see bug report #2152) and make namesherbelin
in Relation_Operators.v and Operators_Properties.v more uniform in general. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12381 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-08Init/Tactics.v: tactic with nicer name 'exfalso' for 'elimtype False'letouzey
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12380 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-08Implicit argument of Logic.eq become maximally insertedletouzey
This allow in particular to write eq instead of (@eq _) in signatures of morphisms. I dont really see how this could break existing code, no change in the stdlib was mandatory. We'll check the contribs tomorrow... git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12379 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-08Fixed a bug introduced in revision 12265.herbelin
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12378 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-07Fix for missing hypotesae in XML proof tree export.cek
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12377 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-06Fixed installation of Coqide interface/library files (bug #2147).gmelquio
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12376 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-06Relaxed error severity when encountering unknown library objects or tacticgmelquio
extensions. This makes it possible to load .vo compiled with a nonstandard toplevel, e.g. ssreflect, which defines new tactics and new hint databases. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12375 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-05Correctly do backtracking during type class resolution even if only newmsozeau
existentials are generated (at last!). The code simply keeps failure continuations and apply them if needed. Fix bottomup and topdown rewrite strategies that looped. Use auto introduction flag for typeclass instances as well. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12374 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-05Revert "kills the old backtracking framework and replaces it with"vgross
This reverts commit 33545cc88bf4b4e19b222afd2d1d264bcba97838. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12373 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-04Changed the way to support compatibility with previous versions.herbelin
Compatibility version is now a global parameter that every feature can individually browse. This avoids having to keep the names of options synchronous in their respective files and in now-removed file coqcompat.ml. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12372 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-04Removal of trailing spaces.serpyc
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12371 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-04Some new lemmas on max and min and a fix for a wrongly stated lemma in r12358.herbelin
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12370 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-03Fixed small name freshness bug in Functional Scheme ("Heq" name washerbelin
not refreshed late enough). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12369 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-03A few additions in Min.v.herbelin
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12368 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-10-03Added option "Unset Dependent Propositions Elimination" to protectherbelin
against the incompatibilities introduced by making "destruct" working on dependent propositions (incompatibilities come from uses of destruct in Ltac definitions such as "destruct_conjs"). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12367 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-29Add support for Local Declare ML Moduleglondu
Instead of failing with some obscure error message *after* loading the module, accept Local Declare ML Module with the usual semantics. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12366 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-29Remove legacy export_* functionsglondu
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12365 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-29kills the old backtracking framework and replaces it withvgross
ProofGeneral-like "Backtrack". git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12364 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-28Fix the stdlib doc compilation + switch all .v file to utf8letouzey
1) compilation of Library.tex was failing on a "Ext_" in Diaconescu.v In fact coqdoc was trying to recognize the end of a _emphasis_ and hence inserted a bogus }. For the moment I've enclosed the phrase with [ ], but this emphasis "feature" of coqdoc seems _really_ easy to broke. Matthieu ? 2) By the way, this Library document was made from latin1 and utf8 source file, hence bogus characters. All .v containing special characters are converted to utf8, and their first line is now mentionning this. (+ killed some old french comments and some other avoidable special characters). PLEASE: let's stick to this convention and avoid latin1, at least in .v files. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12363 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-28Applied patches from BSD/pkgsrc maintainer, so that Coq compiles out-of-the-box.gmelquio
- Removed unneeded bashisms. (sh and dash are fine with the current build system.) - Removed workaround for camlp4.opt on BSD. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12362 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-27Apply "Declare Implicit Tactic" also to terms interpreted as "openherbelin
terms". Let's hope the different instantiation mechanisms (implicit tactic, type classes, information coming from the with clause, ...) will combine not to badly. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12361 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-27Fixed a bug in the interaction between dEqThen and inject_at_positionsherbelin
which was disturbing inversion and sometimes making it failing in presence of dependent equalities (injection still doesn't know how to split dependent equalities, resulting in a smaller number of equalities than expected for dEqThen). [also restored inv.ml as it was before 12356 which uselessly and inadvertently modified it] git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12360 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-27Fixed two tests that was incorrectly typed in former revisions 12348 and 12356.herbelin
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12359 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-27Add a few properties about Rmin/Rmax with replication in Zmin/Zmax.herbelin
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12358 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-27Fixed error message "cannot infer the type of id" in presence ofherbelin
notations for binders (the name of the notation was mistakenly taken). This happened e.g. when using Utf8.v. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12357 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-27Delay the choice of eliminator in destruct/induction until we know ifherbelin
a dependent scheme is needed or not (this allows for instance "destruct H" when H is propositional and dependent in the context to work). Modest attempt to clarify the basic components used and invariants preserved when sharing the code for functional induction and for destruct/induction. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12356 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-27Complement to 12347 and 12348 on the extended syntax of case/elim.herbelin
Don't change the semantics of "case 1" and forbid the use of numbers to refer to non-dependent quantified hypotheses in the more general forms that are synonymous of "destruct" (don't want to commit to a syntax for non-dependent quantified hypotheses which is ambiguous and after all not so appealing: for instance, something like destruct @1, destruct #1, or destruct at 1, or destruct :(ind_pattern), meaning in the latter case the first hypothesis whose type matches ind_pattern, would have probably been better). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12355 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-26Fixed a hole in glob_tactic that allowed some Ltac code to refer toherbelin
statically unbound variables (revealed by an assert failure in Tacinterp.subst_rawconstr_and_expr). In particular, tauto's use of name "id" was bypassing the globalization phase (apparently in an safe way though). Added a new kind of anomaly usable in case an anomaly results of an unexpected exception. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12354 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-24Micromega doc : psatz Z -> psatz Z 2fbesson
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12353 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-23Ltac doc: only variables are accepted as message_tokenglondu
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12352 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-22Add the option to automatically introduce variables declared before themsozeau
colon in (mutual) proofs with [Set Automatic Introduction]. Fix a minor test-suite issue in ProgramWf due to new handling of the default obligation tactic. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12351 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-22Better use of transparency information for local hypotheses: msozeau
- make hyps rigid in the dnet if they're not let-ins - use existing typeclass-related transparency information for the new hints. Make the dnet better by indexing products, lambdas and sorts too. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12350 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-21Update link to "Recursive Make Considered Harmful"glondu
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12349 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-20Only one "in" clause in "destruct" even for a multiple "destruct".herbelin
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12348 85f007b7-540e-0410-9357-904b9bb8a0f7
2009-09-20Add "case as/in/using" and temporary "destruct" with n args.herbelin
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12347 85f007b7-540e-0410-9357-904b9bb8a0f7