aboutsummaryrefslogtreecommitdiffhomepage
path: root/plugins/cc
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <mattam@mattam.org>2016-05-09 17:43:59 +0200
committerGravatar Matthieu Sozeau <mattam@mattam.org>2016-07-04 15:48:15 +0200
commitee8009e05d3e782ee6333d0054ee2fce5cda89a4 (patch)
tree036354fdce7a9ab08e98dbddfc5eebad65b03106 /plugins/cc
parenta5b631f7260e7d29defd8bd5c67db543742c9ecd (diff)
congruence: remove casts of indexed terms
This fixes the end of bug #4069, provoked by a use of unshelve refine which introduces a cast.
Diffstat (limited to 'plugins/cc')
-rw-r--r--plugins/cc/cctac.ml6
1 files changed, 4 insertions, 2 deletions
diff --git a/plugins/cc/cctac.ml b/plugins/cc/cctac.ml
index de555f0a7..ba34d49bb 100644
--- a/plugins/cc/cctac.ml
+++ b/plugins/cc/cctac.ml
@@ -80,8 +80,10 @@ let rec decompose_term env sigma t=
| Proj (p, c) ->
let canon_const kn = constant_of_kn (canonical_con kn) in
let p' = Projection.map canon_const p in
- (Appli (Symb (mkConst (Projection.constant p')), decompose_term env sigma c))
- | _ ->if closed0 t then (Symb t) else raise Not_found
+ (Appli (Symb (mkConst (Projection.constant p')), decompose_term env sigma c))
+ | _ ->
+ let t = strip_outer_cast t in
+ if closed0 t then Symb t else raise Not_found
(* decompose equality in members and type *)
open Globnames