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
56
57
58
59
60
61
62
63
64
65
66
|
(************************************************************************)
(* v * The Coq Proof Assistant / The Coq Development Team *)
(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2017 *)
(* \VV/ **************************************************************)
(* // * This file is distributed under the terms of the *)
(* * GNU Lesser General Public License Version 2.1 *)
(************************************************************************)
(** Reduction expressions *)
open Names
(** The parsing produces initially a list of [red_atom] *)
type 'a red_atom =
| FBeta
| FMatch
| FFix
| FCofix
| FZeta
| FConst of 'a list
| FDeltaBut of 'a list
(** This list of atoms is immediately converted to a [glob_red_flag] *)
type 'a glob_red_flag = {
rBeta : bool;
rMatch : bool;
rFix : bool;
rCofix : bool;
rZeta : bool;
rDelta : bool; (** true = delta all but rConst; false = delta only on rConst*)
rConst : 'a list
}
(** Generic kinds of reductions *)
type ('a,'b,'c) red_expr_gen =
| Red of bool
| Hnf
| Simpl of 'b glob_red_flag*('b,'c) Util.union Locus.with_occurrences option
| Cbv of 'b glob_red_flag
| Cbn of 'b glob_red_flag
| Lazy of 'b glob_red_flag
| Unfold of 'b Locus.with_occurrences list
| Fold of 'a list
| Pattern of 'a Locus.with_occurrences list
| ExtraRedExpr of string
| CbvVm of ('b,'c) Util.union Locus.with_occurrences option
| CbvNative of ('b,'c) Util.union Locus.with_occurrences option
type ('a,'b,'c) may_eval =
| ConstrTerm of 'a
| ConstrEval of ('a,'b,'c) red_expr_gen * 'a
| ConstrContext of Id.t Loc.located * 'a
| ConstrTypeOf of 'a
open Libnames
open Constrexpr
open Misctypes
type r_trm = constr_expr
type r_pat = constr_pattern_expr
type r_cst = reference or_by_notation
type raw_red_expr = (r_trm, r_cst, r_pat) red_expr_gen
|