]> matita.cs.unibo.it Git - helm.git/commitdiff
The parser accepts terms with metavariables as statements of theorems ==>
authorStefano Zacchiroli <zack@upsilon.cc>
Tue, 6 Apr 2004 12:08:23 +0000 (12:08 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Tue, 6 Apr 2004 12:08:23 +0000 (12:08 +0000)
metavariable instantiation must be propagated also on the theorem statement.

helm/ocaml/tactics/proofEngineHelpers.ml

index aec43abc373750a42f8edbe26c807950e68d516b..2d576c3d8badf7c3f760041e3aa40d2a808e563b 100644 (file)
@@ -48,7 +48,11 @@ let subst_meta_in_proof proof meta term newmetasenv =
       ) metasenv'
     in
      let bo' = subst_in bo in
-      let newproof = uri,metasenv'',bo',ty in
+     (* Metavariables can appear also in the *statement* of the theorem
+      * since the parser does not reject as statements terms with
+      * metavariable therein *)
+     let ty' = subst_in ty in
+      let newproof = uri,metasenv'',bo',ty' in
        (newproof, metasenv'')
 
 (*CSC: commento vecchio *)
@@ -66,6 +70,10 @@ let subst_meta_in_proof proof meta term newmetasenv =
 let subst_meta_and_metasenv_in_proof proof meta subst_in newmetasenv =
  let (uri,_,bo,ty) = proof in
   let bo' = subst_in bo in
+  (* Metavariables can appear also in the *statement* of the theorem
+   * since the parser does not reject as statements terms with
+   * metavariable therein *)
+  let ty' = subst_in ty in
   let metasenv' =
    List.fold_right
     (fun metasenv_entry i ->
@@ -85,6 +93,6 @@ let subst_meta_and_metasenv_in_proof proof meta subst_in newmetasenv =
        | _ -> i
     ) newmetasenv []
   in
-   let newproof = uri,metasenv',bo',ty in
+   let newproof = uri,metasenv',bo',ty' in
     (newproof, metasenv')