diff options
author | Matthieu Sozeau <mattam@mattam.org> | 2016-05-09 17:43:59 +0200 |
---|---|---|
committer | Matthieu Sozeau <mattam@mattam.org> | 2016-07-04 15:48:15 +0200 |
commit | ee8009e05d3e782ee6333d0054ee2fce5cda89a4 (patch) | |
tree | 036354fdce7a9ab08e98dbddfc5eebad65b03106 /plugins/cc | |
parent | a5b631f7260e7d29defd8bd5c67db543742c9ecd (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.ml | 6 |
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 |