]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/matita.ml
added an exception
[helm.git] / helm / software / matita / matita.ml
index 62e425bf38b13dcb28fc0c7f7e7e553d97d113bb..aecf026aa6609a50d8359597e0638f449048ed0e 100644 (file)
@@ -67,6 +67,8 @@ let script =
             ~parent:gui#main#toplevel ())
       ()
   in
+  Predefined_virtuals.load_predefined_virtuals ();
+  Predefined_virtuals.load_predefined_classes ();
   gui#sourceView#source_buffer#begin_not_undoable_action ();
   s#reset (); 
   s#template (); 
@@ -97,7 +99,21 @@ let _ =
            sequents_viewer#goto_sequent goal
         with Failure _ -> script#setGoal None);
     | Proof proof -> sequents_viewer#load_logo_with_qed
-    | No_proof -> sequents_viewer#load_logo
+    | No_proof ->
+       (match grafite_status.ng_status with
+           ProofMode nstatus ->
+            sequents_viewer#nload_sequents nstatus;
+            (try
+              script#setGoal (Some (Continuationals.Stack.find_goal nstatus.NTacStatus.gstatus));
+              let goal =
+               match script#goal with
+                  None -> assert false
+                | Some n -> n
+              in
+               sequents_viewer#goto_sequent goal
+            with Failure _ -> script#setGoal None);
+         | CommandMode _ -> sequents_viewer#load_logo
+       )
     | Intermediate _ -> assert false (* only the engine may be in this state *)
   in
   script#addObserver sequents_observer;
@@ -116,6 +132,12 @@ let _ =
     let addDebugSeparator () =
       ignore (GMenu.separator_item ~packing:gui#main#debugMenu_menu#append ())
     in
+    addDebugItem "dump aliases" (fun _ ->
+      let status = script#lexicon_status in
+      HLog.debug (String.concat "\n"
+       (DisambiguateTypes.Environment.fold
+         (fun _ x l -> (LexiconAstPp.pp_alias x)::l)
+         status.LexiconEngine.aliases [])));
     addDebugItem "dump environment to \"env.dump\"" (fun _ ->
       let oc = open_out "env.dump" in
       CicEnvironment.dump_to_channel oc;
@@ -149,7 +171,7 @@ let _ =
         (fun cmd ->
           prerr_endline
            (GrafiteAstPp.pp_command
-             ~term_pp:(fun _ -> assert false)
+             ~term_pp:(fun t -> CicPp.ppterm t)
              ~obj_pp:(fun _ -> assert false)
              cmd))
         (List.rev moo));
@@ -168,8 +190,10 @@ let _ =
             (MatitaScript.current ())#grafite_status.GrafiteTypes.proof_status
             with
             | GrafiteTypes.No_proof -> (Cic.Implicit None)
-            | Incomplete_proof i -> let _,_,_subst,p,_, _ = i.GrafiteTypes.proof in p
-            | Proof p -> let _,_,_subst,p,_, _ = p in p
+            | Incomplete_proof i -> 
+                 let _,_,_subst,p,_, _ = i.GrafiteTypes.proof in 
+                 Lazy.force p
+            | Proof p -> let _,_,_subst,p,_, _ = p in Lazy.force p
             | Intermediate _ -> assert false)));
      addDebugItem "Print current proof (natural language) to stderr" 
        (fun _ -> 
@@ -183,9 +207,9 @@ let _ =
             | GrafiteTypes.No_proof -> assert false
             | Incomplete_proof i -> 
                 let _,m,_subst,p,ty, attrs = i.GrafiteTypes.proof in 
-                Cic.CurrentProof ("current (incomplete) proof",m,p,ty,[],attrs)
+                Cic.CurrentProof ("current (incomplete) proof",m,Lazy.force p,ty,[],attrs)
             | Proof (_,m,_subst,p,ty, attrs) -> 
-                Cic.CurrentProof ("current proof",m,p,ty,[],attrs)
+                Cic.CurrentProof ("current proof",m,Lazy.force p,ty,[],attrs)
             | Intermediate _ -> assert false)));
 (*     addDebugItem "ask record choice"
       (fun _ ->
@@ -231,9 +255,9 @@ let _ =
 *)
     addDebugSeparator ();
     addDebugItem "enable multiple disambiguation passes (default)"
-      (fun _ -> GrafiteDisambiguator.only_one_pass := false);
+      (fun _ -> MultiPassDisambiguator.only_one_pass := false);
     addDebugItem "enable only one disambiguation pass"
-      (fun _ -> GrafiteDisambiguator.only_one_pass := true);
+      (fun _ -> MultiPassDisambiguator.only_one_pass := true);
     addDebugItem "always show all disambiguation errors"
       (fun _ -> MatitaGui.all_disambiguation_passes := true);
     addDebugItem "prune disambiguation errors"
@@ -270,8 +294,9 @@ let _ =
         ~doc:(HExtlib.unopt (mview ())#get_document) ~name:"matita.xml" ())); *)
     addDebugItem "load (sequent) MathML from matita.xml"
       (fun _ -> (mview ())#load_uri ~filename:"matita.xml");
-    addDebugItem "autoWin"
-    (fun _ -> MatitaAutoGui.auto_dialog Auto.get_auto_status);
+    addDebugSeparator ();
+    addDebugItem "Expand virtuals"
+    (fun _ -> (MatitaScript.current ())#expandAllVirtuals);
   end
   (** Debugging }}} *)