aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-03-03Completing basic lemmas about <= and < in BinInt.Z.Pos2Z.Hugo Herbelin
2017-03-03Relying on BinInt.Z.Pos2Z for proofs of a few lemmas in Zorder.Hugo Herbelin
2017-03-03Completing "few lemmas about Zneg" with lemmas also about Zpos.Hugo Herbelin
2017-03-03A couple of other useful properties about compare_cont.Hugo Herbelin
Don't know if compare_cont is very useful to use, but, at least, these extensions make sense.
2017-03-03Compatibility of iff wrt not and imp.Hugo Herbelin
This completes the series and cannot hurt.
2017-03-03Formatting references with surrounding brackets in Diaconescu.v.Hugo Herbelin
2017-03-03[ltac] Move dummy plugin to plugins folder.Emilio Jesus Gallego Arias
This is needed to fix `Declare ML Module "ltac_plugin".
2017-03-02[travis] Backport trunk's travis support.Emilio Jesus Gallego Arias
2017-03-01Add η principles for sigma typesJason Gross
2017-03-01Remove some trailing whitespace in Init/Specif.vJason Gross
2017-02-27Merge PR#399: Debug by defaultMaxime Dénès
2017-02-27Merge PR#395: Allow hintdb to be parameters in a Ltac definition orMaxime Dénès
Tactic Notation
2017-02-27Do not recompute twice the whnf of terms in conversion.Pierre-Marie Pédrot
This performance bug was introduced 9 years ago in a8b0345, where the responsibility of normalizing the term went from ccnv to eqappr in Reduction. As a result, all recursive calls to eqappr that were preemptively reducing the term ended up calling whd_stack twice, once by themselves, and once in the subsequent call to eqappr. This caused an important slowdown for conversion-intensive proofs, as the whd_stack calls CClosure.zip to perfom in-place term sharing, leading to useless huge re-allocations and repetitive write barriers. Now that eqappr always head-normalizes the term beforehand, we simply don't call whd_stack anymore when jumping to eqappr.
2017-02-24[travis] [External CI] fiat-parsersEmilio Jesus Gallego Arias
2017-02-24TACTIC EXTEND now takes an optional level as argument.Maxime Dénès
The syntax is: TACTIC EXTEND foo AT LEVEL i This commit makes it possible to define tacticals like the ssreflect arrow without having to resort to GEXTEND statements and intepretation hacks. Note that it simply makes accessible through the ML interface what Tactic Notation already supports: Tactic Notation (at level 1) tactic1(t) "=>" ipats(l) := ...
2017-02-24Revert "Add empty ltac_plugin file for forward compatibility."Maxime Dénès
This reverts commit e8137ae63b3b19436755f372b595e7343e942894, was meant for 8.6 branch only.
2017-02-24Simplifying the proof of NoRetractToModalProposition.paradox inHugo Herbelin
Hurkens.v by dropping the artificial need for monad laws. Tactic eauto decided to be dependent on the laws but there is a shorter proof without them. [Interestingly, eauto is not able to find the short proof. This is a situation of the form subgoal 1: H : ?A |- P x subgoal 2: H : M ?A |- M (forall x, P x) where addressing the second subgoal would find the right instance of ?A, but this instance is too hard to find by addressing first the first subgoal.]
2017-02-24Fixing anomaly on unsupported key in interactive ltac debug.Hugo Herbelin
2017-02-23Fixing a little bug in printing ex2 (type was printed "_" by default).Hugo Herbelin
2017-02-23Fixing a little bug in using the "where" clause for inductive types.Hugo Herbelin
This was not working when the inductive type had implicit parameters. This could still be improved. E.g. the following still does not work: Reserved Notation "#". Inductive I {A:Type} := C : # where "#" := I. But it should be made working by taking care of adding the mandatory implicit argument A at the time # is interpreted as [@I _] (i.e., technically speaking, using expl_impls in interp_notation).
2017-02-23Fixing #use"include" after vernac is added and ltac is moved to a plugin.Hugo Herbelin
2017-02-22Merge branch 'v8.6'Pierre-Marie Pédrot
2017-02-22Merge branch 'v8.5' into v8.6Pierre-Marie Pédrot
2017-02-21Allow interactive editing of Coq.Init.LogicJason Gross
Without this change, coqtop complains that I need to require Coq.Init.Logic to use [replace ... with ... by ...].
2017-02-21[travis] track an 8.7 specific branch of HoTT.Maxime Dénès
This is required since we merged PR#309: Ltac as a plugin.
2017-02-21Merge PR#309: Ltac as a pluginMaxime Dénès
2017-02-21Add empty ltac_plugin file for forward compatibility.Maxime Dénès
This is in preparation for landing of PR#309: Ltac as a plugin
2017-02-20Fix V7 syntax in refman.Théo Zimmermann
2017-02-20Deprecate -debug flag.Maxime Dénès
2017-02-20Merge PR#189: Remove tabulation support from pretty-printing.Maxime Dénès
2017-02-20Merge pull request #4 from Zimmi48/patch-1Emilio Jesús Gallego Arias
[ocamlbuild] fix small mistakes in descriptions
2017-02-20[ocamlbuild] fix small mistakes in descriptionsThéo Zimmermann
2017-02-20[ocamlbuild] Update meta for the vernac split.Emilio Jesus Gallego Arias
2017-02-19Fixing debugger after the split of toplevel into vernac.Pierre-Marie Pédrot
2017-02-19Optimizing array mapping in the kernel.Pierre-Marie Pédrot
We unroll the map operation by hand in two performance-critical cases so as not to call the generic array allocation function in OCaml, and allocate directly on the minor heap instead. The generic array function is slow because it needs to discriminate between float and non-float arrays. The unrolling replaces this by a simple increment to the minor heap pointer and moves from the stack. The quantity of unrolling was determined by experimental measures on various Coq developments. It looks like most of the maps are for small arrays of size lesser or equal to 4, so this is what is implemented here. We could probably extend it to an even bigger number, but that would result in ugly code. From what I've seen, virtually all maps are of size less than 16, so that we could probably be almost optimal by going up to 16 unrollings, but the code tradeoffs are not obvious. Maybe when we have PPX?
2017-02-17remove obsolete file dev/Makefile.ougPierre Letouzey
2017-02-17Removing spurious folder includes in coq_makefile.Pierre-Marie Pédrot
2017-02-17Documenting the pluginification of Ltac.Pierre-Marie Pédrot
2017-02-17Fix .gitignore.Pierre-Marie Pédrot
2017-02-17Moving the Ltac plugin to a pack-based one.Pierre-Marie Pédrot
This is cumbersome, because now code may fail at link time if it's not referring to the correct module name. Therefore, one has to add corresponding open statements a the top of every file depending on a Ltac module. This includes seemingly unrelated files that use EXTEND statements.
2017-02-17Ltac as a plugin.Pierre-Marie Pédrot
This commit is essentially moving files around. In particular, the corresponding plugin still relies on a mllib file rather than a mlpack one. Otherwise, this causes link-time issues for third-party plugins depending on modules defined in the Ltac plugin.
2017-02-16Fixing #5339 (anomaly with 'pat in record parameters).Hugo Herbelin
2017-02-16[cleanup] Change Id.t option to Name.t in TacFunTej Chajed
2017-02-16reject notations that are both 'only printing' and 'only parsing'Ralf Jung
2017-02-16don't require printing-only notation to be productiveRalf Jung
2017-02-16Merge PR#403: Split Vernacular Processing from ToplevelMaxime Dénès
2017-02-16Merge PR#431Maxime Dénès
[travis] Add math-comp overlays, update CompCert to official version, add UniMath
2017-02-15[travis] [External CI] CompCert official 8.6 support + UniMathEmilio Jesus Gallego Arias
2017-02-15[travis] [External CI] Factor out math-comp installs.Emilio Jesus Gallego Arias
We make math-comp overlays easier, we also start structuring the scripts a bit more.
2017-02-15Make Obligations see fix_exnEnrico Tassi