aux [] l (CicSubstitution.subst_vars exp_named_subst' body)
in
(**** Step 3 ****)
- let term_to_fold =
+ let term_to_fold, delta_expanded_term_to_fold =
let body' = CicSubstitution.subst_vars exp_named_subst' body in
match constant_args with
- [] -> body'
- | _ -> C.Appl (body'::constant_args)
+ [] -> C.Const (uri,exp_named_subst'), body'
+ | _ ->
+ C.Appl ((C.Const (uri,exp_named_subst'))::constant_args),
+ C.Appl (body'::constant_args)
in
let simplified_term_to_fold =
- reduceaux context [] term_to_fold
+ reduceaux context [] delta_expanded_term_to_fold
in
replace (=) simplified_term_to_fold term_to_fold res
with