applyTransformation.cmx: applyTransformation.cmi
dump_moo.cmo: buildTimeConf.cmo
dump_moo.cmx: buildTimeConf.cmx
-matita.cmo: matitaTypes.cmi matitaScript.cmi matitaMathView.cmi \
- matitaInit.cmi matitaGui.cmi matitaGtkMisc.cmi matitaEngine.cmi \
- buildTimeConf.cmo
-matita.cmx: matitaTypes.cmx matitaScript.cmx matitaMathView.cmx \
- matitaInit.cmx matitaGui.cmx matitaGtkMisc.cmx matitaEngine.cmx \
- buildTimeConf.cmx
+matitaclean.cmo: matitaInit.cmi matitaclean.cmi
+matitaclean.cmx: matitaInit.cmx matitaclean.cmi
+matitacLib.cmo: matitaInit.cmi matitaExcPp.cmi matitaEngine.cmi \
+ buildTimeConf.cmo matitacLib.cmi
+matitacLib.cmx: matitaInit.cmx matitaExcPp.cmx matitaEngine.cmx \
+ buildTimeConf.cmx matitacLib.cmi
+matitac.cmo: matitamake.cmo matitadep.cmi matitaclean.cmi matitacLib.cmi
+matitac.cmx: matitamake.cmx matitadep.cmx matitaclean.cmx matitacLib.cmx
+matitadep.cmo: matitaInit.cmi matitadep.cmi
+matitadep.cmx: matitaInit.cmx matitadep.cmi
matitaEngine.cmo: matitaEngine.cmi
matitaEngine.cmx: matitaEngine.cmi
matitaExcPp.cmo: matitaExcPp.cmi
matitaGeneratedGui.cmx matitaExcPp.cmx buildTimeConf.cmx matitaGui.cmi
matitaInit.cmo: matitamakeLib.cmi buildTimeConf.cmo matitaInit.cmi
matitaInit.cmx: matitamakeLib.cmx buildTimeConf.cmx matitaInit.cmi
+matitamakeLib.cmo: buildTimeConf.cmo matitamakeLib.cmi
+matitamakeLib.cmx: buildTimeConf.cmx matitamakeLib.cmi
+matitamake.cmo: matitamakeLib.cmi matitaInit.cmi
+matitamake.cmx: matitamakeLib.cmx matitaInit.cmx
matitaMathView.cmo: matitaTypes.cmi matitaScript.cmi matitaMisc.cmi \
matitaGuiTypes.cmi matitaGtkMisc.cmi matitaExcPp.cmi buildTimeConf.cmo \
applyTransformation.cmi matitaMathView.cmi
matitaMathView.cmx: matitaTypes.cmx matitaScript.cmx matitaMisc.cmx \
matitaGuiTypes.cmi matitaGtkMisc.cmx matitaExcPp.cmx buildTimeConf.cmx \
applyTransformation.cmx matitaMathView.cmi
-matitaMisc.cmo: matitaTypes.cmi buildTimeConf.cmo matitaMisc.cmi
-matitaMisc.cmx: matitaTypes.cmx buildTimeConf.cmx matitaMisc.cmi
+matitaMisc.cmo: buildTimeConf.cmo matitaMisc.cmi
+matitaMisc.cmx: buildTimeConf.cmx matitaMisc.cmi
+matita.cmo: matitaTypes.cmi matitaScript.cmi matitaMathView.cmi \
+ matitaInit.cmi matitaGui.cmi matitaGtkMisc.cmi matitaEngine.cmi \
+ buildTimeConf.cmo
+matita.cmx: matitaTypes.cmx matitaScript.cmx matitaMathView.cmx \
+ matitaInit.cmx matitaGui.cmx matitaGtkMisc.cmx matitaEngine.cmx \
+ buildTimeConf.cmx
matitaScript.cmo: matitamakeLib.cmi matitaTypes.cmi matitaMisc.cmi \
- matitaEngine.cmi buildTimeConf.cmo matitaScript.cmi
+ buildTimeConf.cmo matitaScript.cmi
matitaScript.cmx: matitamakeLib.cmx matitaTypes.cmx matitaMisc.cmx \
- matitaEngine.cmx buildTimeConf.cmx matitaScript.cmi
+ buildTimeConf.cmx matitaScript.cmi
matitaTypes.cmo: matitaTypes.cmi
matitaTypes.cmx: matitaTypes.cmi
-matitac.cmo: matitamake.cmo matitadep.cmi matitaclean.cmi matitacLib.cmi
-matitac.cmx: matitamake.cmx matitadep.cmx matitaclean.cmx matitacLib.cmx
-matitacLib.cmo: matitaInit.cmi matitaExcPp.cmi matitaEngine.cmi \
- buildTimeConf.cmo matitacLib.cmi
-matitacLib.cmx: matitaInit.cmx matitaExcPp.cmx matitaEngine.cmx \
- buildTimeConf.cmx matitacLib.cmi
-matitaclean.cmo: matitaInit.cmi matitaclean.cmi
-matitaclean.cmx: matitaInit.cmx matitaclean.cmi
-matitadep.cmo: matitaInit.cmi matitadep.cmi
-matitadep.cmx: matitaInit.cmx matitadep.cmi
-matitamake.cmo: matitamakeLib.cmi matitaInit.cmi
-matitamake.cmx: matitamakeLib.cmx matitaInit.cmx
-matitamakeLib.cmo: buildTimeConf.cmo matitamakeLib.cmi
-matitamakeLib.cmx: buildTimeConf.cmx matitamakeLib.cmi
matitaGtkMisc.cmi: matitaGeneratedGui.cmi
matitaGui.cmi: matitaGuiTypes.cmi
matitaGuiTypes.cmi: matitaTypes.cmi matitaGeneratedGui.cmi
*)
record COA: Type \def {
- coa: Class; (* carrier *)
+ coa:> Class; (* carrier *)
le: coa \to coa \to Prop; (* inclusion *)
ov: coa \to coa \to Prop; (* overlap *)
- sup: \forall (D:Domain). (D \to coa) \to coa; (* suprimum *)
+ sup: \forall (D:Domain). (D \to coa) \to coa; (* supremum *)
inf: \forall (D:Domain). (D \to coa) \to coa; (* infimum *)
le_refl: \forall p. le p p;
le_trans: \forall p,r. le p r \to \forall q. le r q \to le p q;
density: \forall p,q. (\forall r. ov p r \to ov q r) \to le p q
}.
-coercion coa.
-
definition zero: \forall (P:COA). P \def
\lambda (P:COA). inf P ? (dvoid_ixfam P).
include "coa_defs.ma".
-theorem zero_le: \forall (P:COA). \forall (p:P). le ? (zero P) p.
+theorem zero_le: \forall (P:COA). \forall (p:Type_of_COA P). le ? (zero P) p.
+
+
+
+
let s =
MatitaScript.script
~source_view:gui#sourceView
- ~init:(Lazy.force MatitaEngine.initial_status)
~mathviewer:(MatitaMathView.mathViewer ())
~urichooser:(fun uris ->
try
(Ulexing.from_utf8_string str) (fun _ _ -> ())
with End_of_file -> ()
-let default_options () = no_options
-
-let initial_status =
- lazy {
- aliases = DisambiguateTypes.Environment.empty;
- multi_aliases = DisambiguateTypes.Environment.empty;
- moo_content_rev = [];
- metadata = [];
- proof_status = No_proof;
- options = default_options ();
- objects = [];
- coercions = [];
- notation_ids = [];
- }
-
(GrafiteTypes.status -> GrafiteParser.statement -> unit) ->
unit
-val initial_status: GrafiteTypes.status lazy_t
None, "Type checking error: " ^ Lazy.force msg
| CicTypeChecker.AssertFailure msg ->
None, "Type checking assertion failed: " ^ Lazy.force msg
+ | LibrarySync.AlreadyDefined s ->
+ None, "Already defined: " ^ UriManager.string_of_uri s
| MatitaDisambiguator.DisambiguationError (offset,errorll) ->
let rec aux n =
function
| `CANCEL -> raise MatitaTypes.Cancel
in
if b then
- save ()
+ save ()
else
clean_current_baseuri status
end
fun () -> incr i; !i
class script ~(source_view: GSourceView.source_view)
- ~(init: GrafiteTypes.status)
~(mathviewer: MatitaTypes.mathViewer)
~set_star
~ask_confirmation
(fun _ -> set_star (Filename.basename self#ppFilename) buffer#modified))
val mutable statements = []; (** executed statements *)
- val mutable history = [ init ];
+ val mutable history = [ MatitaSync.init () ];
(** list of states before having executed statements. Head element of this
* list is the current state, last element is the state at the beginning of
* the script.
end
method private goto_top =
+ let init =
+ let rec last x = function
+ | [] -> x
+ | hd::tl -> last hd tl
+ in
+ last self#status history
+ in
+ (* FIXME: this is not correct since there is no undo for
+ * library_objects.set_default... *)
MatitaSync.time_travel ~present:self#status ~past:init
method private reset_buffer =
statements <- [];
- history <- [ init ];
+ history <- [ MatitaSync.init () ];
userGoal <- ~-1;
self#notify;
buffer#remove_tag locked_tag ~start:buffer#start_iter ~stop:buffer#end_iter;
source_buffer#begin_not_undoable_action ();
buffer#delete ~start:buffer#start_iter ~stop:buffer#end_iter;
source_buffer#end_not_undoable_action ();
- buffer#set_modified false
+ buffer#set_modified false;
method template () =
let template = HExtlib.input_file BuildTimeConf.script_template in
let _script = ref None
-let script ~source_view ~init ~mathviewer ~urichooser ~develcreator ~ask_confirmation ~set_star ()
+let script ~source_view ~mathviewer ~urichooser ~develcreator ~ask_confirmation ~set_star ()
=
let s = new script
- ~source_view ~init ~mathviewer ~ask_confirmation ~urichooser ~develcreator ~set_star ()
+ ~source_view ~mathviewer ~ask_confirmation ~urichooser ~develcreator ~set_star ()
in
_script := Some s;
s
* "*") on the side of a script name *)
val script:
source_view:GSourceView.source_view ->
- init:GrafiteTypes.status ->
mathviewer: MatitaTypes.mathViewer->
urichooser: (UriManager.uri list -> UriManager.uri list) ->
develcreator: (containing:string option -> unit) ->
CicEnvironment.set_trust (* environment trust *)
(let trust = Helm_registry.get_bool "matita.environment_trust" in
fun _ -> trust);
- status := Some (ref (Lazy.force MatitaEngine.initial_status));
+ status := Some (ref (MatitaSync.init ()));
Sys.catch_break true;
interactive_loop ()
MatitaInit.initialize_all ();
(* must be called after init since args are set by cmdline parsing *)
let fname = fname () in
- status := Some (ref (Lazy.force MatitaEngine.initial_status));
+ status := Some (ref (MatitaSync.init ()));
Sys.catch_break true;
let origcb = HLog.get_log_callback () in
let newcb tag s =
let resolve alias current_buri =
let buri = buri alias in
if buri <> current_buri then Some buri else None in
- let include_paths =
- Helm_registry.get_list Helm_registry.string "matita.includes" in
MatitaInit.load_configuration_file ();
MatitaInit.parse_cmdline ();
+ let include_paths =
+ Helm_registry.get_list Helm_registry.string "matita.includes" in
let basedir = Helm_registry.get "matita.basedir" in
List.iter
(fun ma_file ->
($(MATITAC) $(MATITA_FLAGS) -q -I @ROOT@ $< | (grep -v "^make" || true))
@DEPFILE@ : $(SRC)
- $(MATITADEP) $(MATITA_FLAGS) -I '@ROOT@' $^ 1> @DEPFILE@ 2>/dev/null
+ $(MATITADEP) $(MATITA_FLAGS) -I '@ROOT@' $^ 1> @DEPFILE@
# this is the depend for full targets like:
# dir/dir/name.moo: dir/dir/name.ma dir/dep.moo
theorem a: fst O one = fst (positive O) (next one).
reflexivity.
qed.
+
+definition double:
+ \forall f:int \to int. pos \to int
+\def
+ \lambda f:int \to int. \lambda x : pos .f (nat2int x).
+
+definition double1:
+ \forall f:int \to int. pos \to int
+\def
+ \lambda f:int \to int. \lambda x : pos .f (pos2nat x).
+
+definition double2:
+ \forall f:int \to int. pos \to int
+\def
+ \lambda f:int \to int. \lambda x : pos .f (nat2int (pos2nat x)).
+
+
\ No newline at end of file