let prunable menv subst ty todo =
let rec aux = function
| (S(_,k,_,_))::tl ->
- (match Equality.meta_convertibility_subst k ty menv with
+ (match Equality.meta_convertibility_subst k ty menv with
| None -> aux tl
- | Some variant -> no_progress variant tl (* || aux tl)*) )
+ | Some variant ->
+ no_progress variant tl (* || aux tl*))
| (D (_,_,T))::tl -> aux tl
| _ -> false
and no_progress variant = function
| [] -> prerr_endline "++++++++++++++++++++++++ no_progress"; true
| D ((n,_,P) as g)::tl ->
(match calculate_goal_ty g subst menv with
- | None -> no_progress subst tl
+ | None -> no_progress variant tl
| Some (_, gty) ->
(match calculate_goal_ty g variant menv with
| None -> assert false
- | Some (_, gty') ->
+ | Some (_, gty') ->
if gty = gty' then
- no_progress variant tl
+ no_progress variant tl
else false))
- | _::tl -> no_progress subst tl
+ | _::tl -> no_progress variant tl
in
aux todo
let (_,c,t) = CicUtil.lookup_meta x menv in
let irl =
CicMkImplicit.identity_relocation_list_for_metavariable c in
- (x,(c,Cic.Meta(y,irl),t))
+ (y,(c,Cic.Meta(x,irl),t))
with CicUtil.Meta_not_found _ ->
try
let (_,c,t) = CicUtil.lookup_meta y menv in
let irl =
CicMkImplicit.identity_relocation_list_for_metavariable c in
- (y,(c,Cic.Meta(x,irl),t))
+ (x,(c,Cic.Meta(y,irl),t))
with CicUtil.Meta_not_found _ -> assert false) l in
Some subst
with NotMetaConvertible ->