aboutsummaryrefslogtreecommitdiff
path: root/library
diff options
context:
space:
mode:
authorherbelin2000-01-20 23:19:37 +0000
committerherbelin2000-01-20 23:19:37 +0000
commit6f5043cf05c8c4e7ae9acc878dbb63d76bc805a7 (patch)
tree43b3bc8324c5dfc8bef10bc0764128ce2b998fdf /library
parent4689ba338247d4753a4cd873eb16ff3f1bd201d8 (diff)
Broutilles
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@278 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library')
-rw-r--r--library/redinfo.ml14
-rw-r--r--library/redinfo.mli3
2 files changed, 8 insertions, 9 deletions
diff --git a/library/redinfo.ml b/library/redinfo.ml
index f289273ece..0ea9cdd92b 100644
--- a/library/redinfo.ml
+++ b/library/redinfo.ml
@@ -9,7 +9,8 @@ open Constant
open Reduction
type constant_evaluation =
- | Elimination of (int * constr) list * int * bool
+ | EliminationFix of (int * constr) list * int
+ | EliminationCases of int
| NotAnElimination
let eval_table = ref Spmap.empty
@@ -45,20 +46,17 @@ let compute_consteval c =
raise Elimconst) l
in
if list_distinct (List.map fst li) then
- (li,n,true)
+ EliminationFix (li,n)
else
raise Elimconst
| (DOPN(MutCase _,_) as mc,lapp) ->
(match destCase mc with
- | (_,_,Rel _,_) -> ([],n,false)
+ | (_,_,Rel _,_) -> EliminationCases n
| _ -> raise Elimconst)
| _ -> raise Elimconst
in
- try
- let (lv,n,b) = srec 0 [] c in
- Elimination (lv,n,b)
- with Elimconst ->
- NotAnElimination
+ try srec 0 [] c
+ with Elimconst -> NotAnElimination
let constant_eval sp =
try
diff --git a/library/redinfo.mli b/library/redinfo.mli
index 3f71baa982..1b600e57b3 100644
--- a/library/redinfo.mli
+++ b/library/redinfo.mli
@@ -12,7 +12,8 @@ open Term
(section~\refsec{tacred}). *)
type constant_evaluation =
- | Elimination of (int * constr) list * int * bool
+ | EliminationFix of (int * constr) list * int
+ | EliminationCases of int
| NotAnElimination
val constant_eval : section_path -> constant_evaluation