From: Enrico Tassi <enrico.tassi@inria.fr>
Date: Wed, 13 Jun 2007 13:09:20 +0000 (+0000)
Subject: cut is now implemented building a letin and not a beta redex
X-Git-Tag: 0.4.95@7852~398
X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=commitdiff_plain;h=41c84b305a3e46a972f7fe955c300757a4cfb3ca;p=helm.git

cut is now implemented building a letin and not a beta redex
---

diff --git a/components/tactics/primitiveTactics.ml b/components/tactics/primitiveTactics.ml
index e17d6cb7b..70502d1b2 100644
--- a/components/tactics/primitiveTactics.ml
+++ b/components/tactics/primitiveTactics.ml
@@ -409,11 +409,16 @@ let cut_tac ?(mk_fresh_name_callback = FreshNamesGenerator.mk_fresh_name ~subst:
       CicMkImplicit.identity_relocation_list_for_metavariable context
     in
      let newmeta1ty = CicSubstitution.lift 1 ty in
+(* This is the pre-letin implementation
      let bo' =
       C.Appl
        [C.Lambda (fresh_name,term,C.Meta (newmeta1,irl1)) ;
         C.Meta (newmeta2,irl2)]
      in
+*)
+      let bo' = 
+        Cic.LetIn (fresh_name, C.Meta (newmeta2,irl2), C.Meta (newmeta1,irl1))
+      in
       let (newproof, _) =
        ProofEngineHelpers.subst_meta_in_proof proof metano bo'
         [newmeta2,context,term; newmeta1,context_for_newmeta1,newmeta1ty];