]> matita.cs.unibo.it Git - helm.git/commitdiff
Let-ins with types can now be produced.
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Mon, 7 Nov 2005 18:46:56 +0000 (18:46 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Mon, 7 Nov 2005 18:46:56 +0000 (18:46 +0000)
helm/ocaml/tactics/primitiveTactics.ml
helm/ocaml/tactics/proofEngineHelpers.ml

index 96ff130c5c8b5499d37220135dbd5a171f51badd..ca6b0e58234d59737de1c71660887231e51ee9d6 100644 (file)
@@ -152,7 +152,12 @@ let classify_metas newmeta in_subst_domain subst_in metasenv =
             | Some (n,Cic.Def (s,None)) ->
                Some (n,Cic.Def ((subst_in canonical_context' s),None))
             | None -> None
-            | Some (_,Cic.Def (_,Some _)) -> assert false
+            | Some (n,Cic.Def (bo,Some ty)) ->
+               Some
+                (n,
+                  Cic.Def
+                   (subst_in canonical_context' bo,
+                    Some (subst_in canonical_context' ty)))
           in
            entry'::canonical_context'
         ) canonical_context []
index 9f7fb42f4945a547d839878f158a3b8d3e8f8ca8..fd336910ea4a899e3d5fcdc15870bffd929afb12 100644 (file)
@@ -46,9 +46,10 @@ let subst_meta_in_proof proof meta term newmetasenv =
          List.map
           (function
               Some (n,Cic.Decl s) -> Some (n,Cic.Decl (subst_in s))
-            | Some (n,Cic.Def (s,None)) -> Some (n,Cic.Def ((subst_in s),None))
+            | Some (n,Cic.Def (s,None)) -> Some (n,Cic.Def (subst_in s,None))
             | None -> None
-            | Some (_,Cic.Def (_,Some _)) -> assert false
+            | Some (n,Cic.Def (bo,Some ty)) ->
+               Some (n,Cic.Def (subst_in bo,Some (subst_in ty)))
           ) canonical_context
         in
          i,canonical_context',(subst_in ty)
@@ -92,8 +93,9 @@ let subst_meta_and_metasenv_in_proof proof meta subst_in newmetasenv =
                  None -> None
                | Some (i,Cic.Decl t) -> Some (i,Cic.Decl (subst_in t))
                | Some (i,Cic.Def (t,None))  ->
-                  Some (i,Cic.Def ((subst_in t),None))
-               | Some (_,Cic.Def (_,Some _))  -> assert false
+                  Some (i,Cic.Def (subst_in t,None))
+               | Some (i,Cic.Def (bo,Some ty)) ->
+                  Some (i,Cic.Def (subst_in bo,Some (subst_in ty)))
              ) canonical_context
            in
             (m,canonical_context',subst_in ty)::i