aboutsummaryrefslogtreecommitdiff
path: root/vernac/declareDef.mli
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2019-06-06 06:09:24 +0200
committerEmilio Jesus Gallego Arias2019-06-24 20:55:09 +0200
commit8b903319eae4d645f9385e8280d04d18a4f3a2bc (patch)
tree97f39249d6eef4c4fda252ca74d0a35ade40caef /vernac/declareDef.mli
parent70a11c78e790d7f2f4175d1002e08f79d3ed8486 (diff)
[lemmas] [proof] Split proof kinds into per-layer components.
We split `{goal,declaration,assumption}_kind` into their components. This makes sense as each part of this triple is handled by a different layer, namely: - `polymorphic` status: necessary for the lower engine layers; - `locality`: only used in `vernac` top-level constants - `kind`: merely used for cosmetic purposes [could indeed be removed / pushed upwards] We also profit from this refactoring to add some named parameters to the top-level definition API which is quite parameter-hungry. More refactoring is possible and will come in further commits, in particular this is a step towards unifying the definition / lemma save path.
Diffstat (limited to 'vernac/declareDef.mli')
-rw-r--r--vernac/declareDef.mli14
1 files changed, 8 insertions, 6 deletions
diff --git a/vernac/declareDef.mli b/vernac/declareDef.mli
index ac4f44608b..708158814e 100644
--- a/vernac/declareDef.mli
+++ b/vernac/declareDef.mli
@@ -40,21 +40,23 @@ module Hook : sig
end
val declare_definition
- : Id.t
- -> definition_kind
+ : name:Id.t
+ -> scope:locality
+ -> kind:definition_object_kind
-> ?hook_data:(Hook.t * UState.t * (Id.t * Constr.t) list)
- -> Evd.side_effects Proof_global.proof_entry
-> UnivNames.universe_binders
+ -> Evd.side_effects Proof_global.proof_entry
-> Impargs.manual_implicits
-> GlobRef.t
val declare_fix
- : ?opaque:bool
+ : ?opaque:bool
-> ?hook_data:(Hook.t * UState.t * (Id.t * Constr.t) list)
- -> definition_kind
+ -> name:Id.t
+ -> scope:locality
+ -> kind:definition_object_kind
-> UnivNames.universe_binders
-> Entries.universes_entry
- -> Id.t
-> Evd.side_effects Entries.proof_output
-> Constr.types
-> Impargs.manual_implicits