aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-06-04coqpp: add new ![] specifiers for structured proof interactionGaëtan Gilbert
![proof_stack] is equivalent to the old meaning of ![proof]: the body has type `pstate:Proof_global.t option -> Proof_global.t option` The other specifiers are for the following body types: ~~~ ![open_proof] `is_ontop:bool -> pstate` ![maybe_open_proof] `is_ontop:bool -> pstate option` ![proof] `pstate:pstate -> pstate` ![proof_opt_query] `pstate:pstate option -> unit` ![proof_query] `pstate:pstate -> unit` ~~~ The `is_ontop` is only used for the warning message when declaring a section variable inside a proof, we could also just stop warning. The specifiers look closely related to stm classifiers, but currently they're unconnected. Notably this means that a ![proof_query] doesn't have to be classified QUERY. ![proof_stack] is only used by g_rewrite/rewrite whose behaviour I don't fully understand, maybe we can drop it in the future. For compat we may want to consider keeping ![proof] with its old meaning and using some new name for the new meaning. OTOH fixing plugins to be stricter is easier if we change it as the errors tell us where it's used.
2019-06-04Proof_global: pass only 1 pstate when we don't want the proof stackGaëtan Gilbert
Typically instead of [start_proof : ontop:Proof_global.t option -> bla -> Proof_global.t] we have [start_proof : bla -> Proof_global.pstate] and the pstate is pushed on the stack by a caller around the vernacentries/mlg level. Naming can be a bit awkward, hopefully it can be improved (maybe in a followup PR). We can see some patterns appear waiting for nicer combinators, eg in mlg we often only want to work with the current proof, not the stack. Behaviour should be similar modulo bugs, let's see what CI says.
2019-06-04rewrite.ml: remove outdated commentGaëtan Gilbert
2019-06-04instance_name grammar entry isn't globalGaëtan Gilbert
Not needed since we don't allow anonymous Declare Instance anymore (was needed for factorization or some such before that I think)
2019-06-04rewrite.ml: drop the id returned by new_instance earlierGaëtan Gilbert
We never use this id in rewrite.ml so don't bother threading it around.
2019-06-03Merge PR #10287: Update tutorial plugin to use sigma instad of evd, in ↵Enrico Tassi
keeping with doc recommendations Reviewed-by: gares
2019-06-03Merge PR #10280: Fixed typo in CONTRIBUTING.mdThéo Zimmermann
Reviewed-by: Zimmi48
2019-06-03Merge PR #10277: Remove Show Script (deprecated in 8.10)Théo Zimmermann
Reviewed-by: Zimmi48 Reviewed-by: gares
2019-06-03Merge PR #10261: Update doc to reflect that PG now supports Coq-generated ↵Théo Zimmermann
proof diffs Reviewed-by: Zimmi48 Reviewed-by: cpitclaudel Ack-by: erikmd
2019-06-03Fix affiliation and ordering in CREDITSTalia Ringer
2019-06-03Update tutorial plugin to use sigma, in keeping with doc recommendationsTalia Ringer
2019-06-03Update doc to reflect that PG now supports Coq-generated proof diffsJim Fehrle
2019-05-31Fixed typo in CONTRIBUTING.mdJose Fernando Lopez Fernandez
2019-05-31Remove Show Script (deprecated in 8.10)Gaëtan Gilbert
2019-05-30Merge PR #10269: Checker: don't use monomorphic universes attached to a constantPierre-Marie Pédrot
Reviewed-by: ppedrot
2019-05-29Merge PR #10252: Various dynamic assertions and cleanups in opaque typingMaxime Dénès
Reviewed-by: SkySkimmer Reviewed-by: maximedenes Ack-by: ppedrot
2019-05-29Merge PR #10248: Move the Discharge module in the kernel and merge it with ↵Maxime Dénès
Cooking Reviewed-by: SkySkimmer Ack-by: herbelin Reviewed-by: maximedenes Ack-by: ppedrot
2019-05-29Merge PR #10270: Fix debug printersEnrico Tassi
Reviewed-by: gares
2019-05-29Merge PR #10049: [elaboration] Bidirectionality hintsEnrico Tassi
Ack-by: RalfJung Reviewed-by: SkySkimmer Reviewed-by: gares Ack-by: maximedenes
2019-05-28Merge PR #10228: gitlab: run less jobs unless FULL_CI=trueEmilio Jesus Gallego Arias
Ack-by: SkySkimmer Reviewed-by: Zimmi48 Reviewed-by: ejgallego
2019-05-28Fix printers.sh test when missing coqtop.byte, print more infoGaëtan Gilbert
2019-05-28Merge PR #10258: Remove the delayed universe table from object files.Enrico Tassi
Reviewed-by: SkySkimmer Reviewed-by: gares
2019-05-28Fix [Drop. #use "include";;] for indirect_accessorGaëtan Gilbert
2019-05-28[elaboration] Bidirectionality hintsMaxime Dénès
This feature makes it possible to tell type inference to type applications of a global `foo` using typing information from the context once the `n` first arguments are known. The syntax is: `Arguments foo x y | z`. Closes #7910
2019-05-28Same universe constraint fix for the checker.Pierre-Marie Pédrot
2019-05-28Checker: don't use monomorphic universes attached to a constantGaëtan Gilbert
They are supposed to be included in the module's constraints. The old behaviour would allow a crafted vo, using ~~~coq Definition a := Type. Definition b := Type. Definition b_in_a : a := b. Definition a_in_b : b := a. ~~~ with the constraints for b_in_a and a_in_b not included in the module constraints, then a proof of false may be derived in the usual way.
2019-05-28Merge PR #10133: mind_kelim is the highest allowed sort instead of a listPierre-Marie Pédrot
Ack-by: maximedenes Reviewed-by: ppedrot
2019-05-27Remove the delayed universe table from object files.Pierre-Marie Pédrot
This was virtually dead code. The only place really accessing this data was the user pretty-printer, but actually the tables were not installed for vanilla vo files. In practice, that meant that the only case where an access to this table could have been triggered would have been to print a term coming from a vio file, or a vo file generated via vio2vo. In all other cases, the printer would not have displayed the internal universes. While the latter might be considered a bug, I am instead convinced that this notion of user-facing internal universes needs to be handled by another mechanism, the current one making little sense. The fact it was broken all along without anybody noticing proves my point.
2019-05-27Merge PR #10249: More precise type for export and inlining of private constantsMaxime Dénès
Reviewed-by: gares Ack-by: maximedenes
2019-05-27Fix #10251: Type-checking of polymorphic opaque constr entry types is broken.Pierre-Marie Pédrot
We use the right environment.
2019-05-27Specific code path for opaque polymorphic constants.Pierre-Marie Pédrot
For now this is just a specialized version of the previous generic code. This simplifies tracking of the changes.
2019-05-27Ensure dynamically that non-opaque definitions are always side-effect free.Pierre-Marie Pédrot
It is guaranteed by Declare, but a little dynamic check does not hurt.
2019-05-27Ensure dynamically that opaque definitions come with their type.Pierre-Marie Pédrot
The only lawbreaker was the Add Ring command. We generate a type for the declaration to fix the code.
2019-05-27gitlab: run less jobs unless FULL_CI=trueGaëtan Gilbert
The idea is that it's unlikely for only 1 of the test suite copies to fail for a real reason, so we don't need to run all of them. I would prefer to have only 1 build stage job but later stages depend on build:base, build:edge+flambda and build:edge+flambda:dune:dev for non-copy-pasted jobs. I kept corresponding test suite and validate job copies but they could also be filtered.
2019-05-27Overlay for mind_kelim change (#10133)Gaëtan Gilbert
2019-05-27mind_kelim is the highest allowed sort instead of a listGaëtan Gilbert
2019-05-27Merge PR #10241: Update README.md / add SUPPORT.md file.Maxime Dénès
Reviewed-by: maximedenes
2019-05-27Merge PR #10198: Centralize the hashconsing of constant declarations.Maxime Dénès
Reviewed-by: maximedenes
2019-05-27Merge PR #10235: [debug] Print restriction metadata in evar map debug printerPierre-Marie Pédrot
Reviewed-by: ppedrot
2019-05-27Merge PR #10237: Fix some incorrect uses of proof-local environmentPierre-Marie Pédrot
Reviewed-by: gares Reviewed-by: ppedrot
2019-05-27[debug] Print restriction metadata in evar map debug printerMaxime Dénès
2019-05-26Merge PR #10220: Use new coqrst syntax for alternatives in SSReflect chapter.Enrico Tassi
Reviewed-by: gares
2019-05-26More precise type for Safe_typing export and inlining of private constants.Pierre-Marie Pédrot
We get rid of the future wrappers, as all callers are immediately forcing the result.
2019-05-26Code sharing inside Cooking.Pierre-Marie Pédrot
2019-05-26Actually merge Discharge into Cooking.Pierre-Marie Pédrot
This is the intended module for the feature provided by the inductive discharge. This allows for a bit of code sharing and cleanup.
2019-05-26Share API between Discharge and Cooking.Pierre-Marie Pédrot
2019-05-26Move the Discharge module into the kernel.Pierre-Marie Pédrot
2019-05-25Merge PR #10244: Coqc: Treat unknown arguments starting with dash as unknown ↵Emilio Jesus Gallego Arias
options rather than files Reviewed-by: ejgallego
2019-05-25Merge PR #9288: Giving preference to syntax "injection ... as [= pat1 ... ↵Théo Zimmermann
patn]". Reviewed-by: Zimmi48
2019-05-25Coqc: Treat unknown arguments starting with dash as unknown options rather ↵Hugo Herbelin
than files.