aboutsummaryrefslogtreecommitdiff
path: root/kernel/environ.mli
blob: 686e8717956a794cd351917ac570f52c4fabaed8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
(* $Id$ *)

open Names
open Term
open Constant
open Inductive
open Evd
open Univ
open Sign

type 'a unsafe_env

val evar_map : 'a unsafe_env -> 'a evar_map
val universes : 'a unsafe_env -> universes
val metamap : 'a unsafe_env -> (int * constr) list
val context : 'a unsafe_env -> environment

val push_var : identifier * typed_type -> 'a unsafe_env -> 'a unsafe_env
val push_rel : name * typed_type -> 'a unsafe_env -> 'a unsafe_env
val set_universes : universes -> 'a unsafe_env -> 'a unsafe_env
val add_constant : constant_entry -> 'a unsafe_env -> 'a unsafe_env
val add_mind : mutual_inductive_entry -> 'a unsafe_env -> 'a unsafe_env

val new_meta : unit -> int

val lookup_var : identifier -> 'a unsafe_env -> name * typed_type
val lookup_rel : int -> 'a unsafe_env -> name * typed_type
val lookup_constant : section_path -> 'a unsafe_env -> constant_body
val lookup_mind : section_path -> 'a unsafe_env -> mutual_inductive_body
val lookup_mind_specif : constr -> 'a unsafe_env -> mind_specif
val lookup_meta : int -> 'a unsafe_env -> constr

val id_of_global : 'a unsafe_env -> sorts oper -> identifier
val id_of_name_using_hdchar : 'a unsafe_env -> constr -> name -> identifier
val named_hd : 'a unsafe_env -> constr -> name -> name
val prod_name : 'a unsafe_env -> name * constr * constr -> constr

val translucent_abst : 'a unsafe_env -> constr -> bool
val evaluable_abst : 'a unsafe_env -> constr -> bool
val abst_value : 'a unsafe_env -> constr -> constr

val defined_const : 'a unsafe_env -> constr -> bool
val translucent_const : 'a unsafe_env -> constr -> bool
val evaluable_const : 'a unsafe_env -> constr -> bool

val is_existential : constr -> bool

val mind_nparams : 'a unsafe_env -> constr -> int

type unsafe_judgment = { 
  uj_val : constr;
  uj_type : constr;
  uj_kind : constr }