diff options
Diffstat (limited to 'proofs/logic.ml')
-rw-r--r-- | proofs/logic.ml | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/proofs/logic.ml b/proofs/logic.ml index aebc76539..d7b67ba39 100644 --- a/proofs/logic.ml +++ b/proofs/logic.ml @@ -472,6 +472,10 @@ let prim_extractor subfun vl pft = | IsProd (_,ty,_) -> let cty = subst_vars vl ty in mkLambda (Name id, cty, subfun (id::vl) spf) + | IsLetIn (_,b,ty,_) -> + let cb = subst_vars vl b in + let cty = subst_vars vl ty in + mkLetIn (Name id, cb, cty, subfun (id::vl) spf) | _ -> error "incomplete proof!") | { ref = Some (Prim { name = Intro_after; newids = [id]}, [spf]) } -> @@ -479,6 +483,10 @@ let prim_extractor subfun vl pft = | IsProd (_,ty,_) -> let cty = subst_vars vl ty in mkLambda (Name id, cty, subfun (id::vl) spf) + | IsLetIn (_,b,ty,_) -> + let cb = subst_vars vl b in + let cty = subst_vars vl ty in + mkLetIn (Name id, cb, cty, subfun (id::vl) spf) | _ -> error "incomplete proof!") | {ref=Some(Prim{name=Intro_replacing;hypspecs=[id]},[spf]) } -> @@ -486,6 +494,10 @@ let prim_extractor subfun vl pft = | IsProd (_,ty,_) -> let cty = subst_vars vl ty in mkLambda (Name id, cty, subfun (id::vl) spf) + | IsLetIn (_,b,ty,_) -> + let cb = subst_vars vl b in + let cty = subst_vars vl ty in + mkLetIn (Name id, cb, cty, subfun (id::vl) spf) | _ -> error "incomplete proof!") | {ref=Some(Prim{name=Fix;newids=[f];params=[Num(_,n)]},[spf]) } -> |