]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/tactics/proofEngineStructuralRules.ml
first moogle template checkin
[helm.git] / helm / ocaml / tactics / proofEngineStructuralRules.ml
index d89420f58cde8526c4d578341db8633db23c7f10..20b0f21c9f307f0c8f9f05042f3f6aa4147f3f8d 100644 (file)
 
 open ProofEngineTypes
 
-let clearbody ~hyp ~status:(proof, goal) =
+let clearbody ~hyp (proof, goal) =
  let module C = Cic in
   match hyp with
      None -> assert false
+   | Some (_, C.Def (_, Some _)) -> assert false
    | Some (_, C.Decl _) -> raise (Fail "No Body To Clear")
-   | Some (n_to_clear_body, C.Def term) as hyp_to_clear_body ->
+   | Some (n_to_clear_body, C.Def (term,None)) as hyp_to_clear_body ->
       let curi,metasenv,pbo,pty = proof in
-       let metano,_,_ = List.find (function (m,_,_) -> m=goal) metasenv in
+       let metano,_,_ = CicUtil.lookup_meta goal metasenv in
         let string_of_name =
          function
             C.Name n -> n
@@ -56,7 +57,7 @@ let clearbody ~hyp ~status:(proof, goal) =
                          cleared_entry::context
                      | None -> None::context
                      | Some (n,C.Decl t)
-                     | Some (n,C.Def t) ->
+                     | Some (n,C.Def (t,None)) ->
                         let _ =
                          try
                           CicTypeChecker.type_of_aux' metasenv context t
@@ -71,6 +72,7 @@ let clearbody ~hyp ~status:(proof, goal) =
                              )
                         in
                          entry::context
+                     | Some (_,Cic.Def (_,Some _)) -> assert false
                   ) canonical_context []
                 in
                  let _ =
@@ -89,14 +91,14 @@ let clearbody ~hyp ~status:(proof, goal) =
         in
          (curi,metasenv',pbo,pty), [goal]
 
-let clear ~hyp:hyp_to_clear ~status:(proof, goal) =
+let clear ~hyp:hyp_to_clear (proof, goal) =
  let module C = Cic in
   match hyp_to_clear with
      None -> assert false
    | Some (n_to_clear, _) ->
       let curi,metasenv,pbo,pty = proof in
        let metano,context,ty =
-        List.find (function (m,_,_) -> m=goal) metasenv
+        CicUtil.lookup_meta goal metasenv
        in
         let string_of_name =
          function
@@ -113,8 +115,9 @@ let clear ~hyp:hyp_to_clear ~status:(proof, goal) =
                     match entry with
                        t when t == hyp_to_clear -> None::context
                      | None -> None::context
+                     | Some (_,Cic.Def (_,Some _)) -> assert false
                      | Some (n,C.Decl t)
-                     | Some (n,C.Def t) ->
+                     | Some (n,C.Def (t,None)) ->
                         let _ =
                          try
                           CicTypeChecker.type_of_aux' metasenv context t