blob: a9fc47348b433c06b490774f2d65af5e4f2fa54e (
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
|
(************************************************************************)
(* v * The Coq Proof Assistant / The Coq Development Team *)
(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2012 *)
(* \VV/ **************************************************************)
(* // * This file is distributed under the terms of the *)
(* * GNU Lesser General Public License Version 2.1 *)
(************************************************************************)
(** Reduction expressions *)
(** The parsing produces initially a list of [red_atom] *)
type 'a red_atom =
| FBeta
| FIota
| 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;
rIota : 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 (Loc.t * Names.Id.t) * 'a
| ConstrTypeOf of 'a
|