diff options
author | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2014-08-28 19:49:16 +0200 |
---|---|---|
committer | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2014-08-28 19:55:01 +0200 |
commit | 32c83676c96ae4a218de0bec75d2f3353381dfb3 (patch) | |
tree | 0fef7e62e0e7271406da9733fd14c33cb711eb70 /pretyping/inductiveops.mli | |
parent | 469c5bfc849e06d5a32d7aaabdf9b2fa3f451f4a (diff) |
Change the way primitive projections are declared to the kernel.
Now kernel/indtypes builds the corresponding terms (has to be trusted)
while translate_constant just binds a constant name to the
already entered projection body, avoiding the dubious "check"
of user given terms. "case" Pattern-matching on primitive records is
now disallowed, and the default scheme is implemented using
projections and eta (all elimination tactics now use projections
as well). Elaborate "let (x, y) := p in t" using let bindings
for the projections of p too.
Diffstat (limited to 'pretyping/inductiveops.mli')
-rw-r--r-- | pretyping/inductiveops.mli | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/pretyping/inductiveops.mli b/pretyping/inductiveops.mli index 03d41015b..124f3a34e 100644 --- a/pretyping/inductiveops.mli +++ b/pretyping/inductiveops.mli @@ -140,6 +140,8 @@ val get_constructor : int -> constructor_summary val get_arity : env -> inductive_family -> rel_context * sorts_family val get_constructors : env -> inductive_family -> constructor_summary array +val get_projections : env -> inductive_family -> constant array option + val build_dependent_constructor : constructor_summary -> constr val build_dependent_inductive : env -> inductive_family -> constr val make_arity_signature : env -> bool -> inductive_family -> rel_context |