]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/matitaScript.ml
metavariable context has a separator now
[helm.git] / helm / software / matita / matitaScript.ml
index 828002a8bca0a522c484a0b38fd63d2328179e59..4fa7d9e5f5389fb0c148de50a5672b2c86c4e5f1 100644 (file)
@@ -140,7 +140,11 @@ let wrap_with_make include_paths (f : GrafiteParser.statement) x =
             HLog.error ("Unexpected " ^ snd(MatitaExcPp.to_string exn));
             assert false
       in
-      if b then f ~include_paths x 
+      if b then 
+        try f ~include_paths x with LexiconEngine.IncludedFileNotCompiled _ ->
+         raise 
+           (Failure ("Including: "^tgt^
+             "\nNothing to do... did you run matitadep?"))
       else raise (Failure ("Compiling: " ^ tgt))
 ;;
 
@@ -237,13 +241,13 @@ let cic2grafite context menv t =
       | Cic.Prod (Cic.Name n, s, t) ->
           PT.Binder (`Forall, (PT.Ident (n,None), Some (aux c s)),
             aux (Some (Cic.Name n, Cic.Decl s)::c) t)
-      | Cic.LetIn (Cic.Name n, s, t) ->
+      | Cic.LetIn (Cic.Name n, s, ty, t) ->
           PT.Binder (`Lambda, (PT.Ident (n,None), Some (aux c s)),
-            aux (Some (Cic.Name n, Cic.Def (s,None))::c) t)
+            aux (Some (Cic.Name n, Cic.Def (s,ty))::c) t)
       | Cic.Meta _ -> PT.Implicit
       | Cic.Sort (Cic.Type u) -> PT.Sort (`Type u)
       | Cic.Sort Cic.Set -> PT.Sort `Set
-      | Cic.Sort Cic.CProp -> PT.Sort `CProp
+      | Cic.Sort (Cic.CProp u) -> PT.Sort (`CProp u)
       | Cic.Sort Cic.Prop -> PT.Sort `Prop
       | _ as t -> PT.Ident ("ERROR: "^CicPp.ppterm t, None)
     in
@@ -530,7 +534,7 @@ let rec eval_macro include_paths (buffer : GText.buffer) guistuff lexicon_status
             Auto.revision time size depth
         in
         let proof_script = 
-          if List.exists (fun (s,_) -> s = "paramodulation") params then
+          if List.exists (fun (s,_) -> s = "paramodulation") (snd params) then
               let proof_term, how_many_lambdas = 
                 Auto.lambda_close ~prefix_name:"orrible_hack_" 
                   proof_term menv cc 
@@ -557,25 +561,11 @@ let rec eval_macro include_paths (buffer : GText.buffer) guistuff lexicon_status
               cic2grafite cc menv proof_term 
             else
               (* alternative using FG stuff *)
-              let proof_term, how_many_lambdas = 
-                Auto.lambda_close ~prefix_name:"orrible_hack_" 
-                  proof_term menv cc 
-              in
-              let ty,_ = 
-                CicTypeChecker.type_of_aux'
-                  menv [] proof_term CicUniv.empty_ugraph
-              in
-              let obj = 
-                Cic.Constant ("",Some proof_term, ty, [], [`Flavour `Lemma])
-              in
-                Pcre.qreplace ~templ:"?" ~pat:"orrible_hack_[0-9]+"
-                 (strip_comments
-                  (ApplyTransformation.txt_of_cic_object
-                    ~map_unicode_to_tex:(Helm_registry.get_bool
-                      "matita.paste_unicode_as_tex")
-                    ~skip_thm_and_qed:true
-                    ~skip_initial_lambdas:how_many_lambdas
-                    80 (GrafiteAst.Procedural None) "" obj)) 
+              let map_unicode_to_tex =
+                Helm_registry.get_bool "matita.paste_unicode_as_tex"
+             in
+             ApplyTransformation.procedural_txt_of_cic_term
+                 ~map_unicode_to_tex 78 cc proof_term
         in
         let text = comment parsed_text ^ "\n" ^ proof_script ^ trailer in
         [],text,parsed_text_length
@@ -1111,7 +1101,6 @@ object (self)
           let _,parsed_text_length = MatitaGtkMisc.utf8_parsed_text s loc in
           (* CSC: why +1 in the following lines ???? *)
           let parsed_text_length = parsed_text_length + 1 in
-prerr_endline ("## " ^ string_of_int parsed_text_length);
           let remain_len = String.length s - parsed_text_length in
           let next = String.sub s parsed_text_length remain_len in
           is_there_only_comments lexicon_status next