diff options
author | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2016-09-07 17:43:39 +0200 |
---|---|---|
committer | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2016-09-07 17:43:39 +0200 |
commit | a18fb93587ccbe32a2edfad38d2e9095f6c8e901 (patch) | |
tree | 4df4d74a05885a75e58de2873bc1895e42ebc2be /stm/lemmas.ml | |
parent | 1f4a8889f4bc4c2201080004db6371950b4ea36d (diff) | |
parent | 53b2acb9befe13c0383b923d09a0d5a6c416449e (diff) |
Merge branch 'v8.5' into v8.6
Diffstat (limited to 'stm/lemmas.ml')
-rw-r--r-- | stm/lemmas.ml | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/stm/lemmas.ml b/stm/lemmas.ml index b676f4f51..50f2b82c3 100644 --- a/stm/lemmas.ml +++ b/stm/lemmas.ml @@ -252,10 +252,14 @@ let save_remaining_recthms (locality,p,kind) norm ctx body opaq i ((id,pl),(t_i, | Some body -> let body = norm body in let k = Kindops.logical_kind_of_goal_kind kind in - let body_i = match kind_of_term body with + let rec body_i t = match kind_of_term t with | Fix ((nv,0),decls) -> mkFix ((nv,i),decls) | CoFix (0,decls) -> mkCoFix (i,decls) + | LetIn(na,t1,ty,t2) -> mkLetIn (na,t1,ty, body_i t2) + | Lambda(na,ty,t) -> mkLambda(na,ty,body_i t) + | App (t, args) -> mkApp (body_i t, args) | _ -> anomaly Pp.(str "Not a proof by induction: " ++ Printer.pr_constr body) in + let body_i = body_i body in match locality with | Discharge -> let const = definition_entry ~types:t_i ~opaque:opaq ~poly:p |