matita/TPTP/ \
matita/dama/ \
matita/contribs/ \
+ matita/library/assembly/ \
matita/library_auto/ \
$(NULL)
EXTRA_DIST = \
debug_print (lazy ("ast_of_acic -> " ^ CicNotationPp.pp_term ast));
ast, term_info.uri
+let counter = ref ~-1
+let reset () = counter := ~-1;;
let fresh_id =
- let counter = ref ~-1 in
fun () ->
incr counter;
!counter
(string * Cic.term) list -> CicNotationPt.cic_appl_pattern ->
Cic.term
+(* hack. seee cicNotation for explanation *)
+val reset: unit -> unit
true_URIs_ref := default_true_URIs;
false_URIs_ref := default_false_URIs;
absurd_URIs_ref := default_absurd_URIs
+;;
+
+let stack = ref [];;
+let push () =
+ stack := (!eq_URIs_ref, !true_URIs_ref, !false_URIs_ref, !absurd_URIs_ref)::!stack;
+ reset_defaults ()
+;;
+
+let pop () =
+ match !stack with
+ | [] -> raise (Failure "Unable to POP in libraryObjects.ml")
+ | (eq,t,f,a)::tl ->
+ stack := tl;
+ eq_URIs_ref := eq;
+ true_URIs_ref := t;
+ false_URIs_ref := f;
+ absurd_URIs_ref := a
+;;
(**** LOOKUP FUNCTIONS ****)
let eq_URI () =
*)
val set_default : string -> UriManager.uri list -> unit
-val reset_defaults : unit -> unit
+val reset_defaults : unit -> unit
+val push: unit -> unit
+val pop: unit -> unit
val eq_URI : unit -> UriManager.uri option
disambiguate.cmi
disambiguate.cmx: disambiguateTypes.cmx disambiguateChoices.cmx \
disambiguate.cmi
-number_notation.cmo: disambiguateTypes.cmi disambiguateChoices.cmi
-number_notation.cmx: disambiguateTypes.cmx disambiguateChoices.cmx
+number_notation.cmo: disambiguateChoices.cmi
+number_notation.cmx: disambiguateChoices.cmx
disambiguate.cmi
disambiguate.cmx: disambiguateTypes.cmx disambiguateChoices.cmx \
disambiguate.cmi
-number_notation.cmo: disambiguateTypes.cmi disambiguateChoices.cmi
-number_notation.cmx: disambiguateTypes.cmx disambiguateChoices.cmx
+number_notation.cmo: disambiguateChoices.cmi
+number_notation.cmx: disambiguateChoices.cmx
DisambiguateChoices.add_num_choice
("natural number",
(fun _ num _ -> LibraryObjects.build_nat (int_of_string num)));
- DisambiguateChoices.add_num_choice
+(* DisambiguateChoices.add_num_choice
("Coq natural number",
(fun _ num _ -> HelmLibraryObjects.build_nat (int_of_string num)));
DisambiguateChoices.add_num_choice
HelmLibraryObjects.build_bin_pos num ]
else
assert false))
-
+*)
in
aux true l1_pattern *)
+let counter = ref ~-1
+let reset () = counter := ~-1;;
let fresh_id =
- let counter = ref ~-1 in
fun () ->
incr counter;
!counter
let _ = load_patterns21 []
+
+
CicNotationEnv.t -> CicNotationPt.term ->
CicNotationPt.term
+(* hack. seee cicNotation for explanation *)
+val reset: unit -> unit
let estimate_size x =
4 * (String.length (Marshal.to_string x [])) / 1024
+let normalize_path s =
+ let s = Str.global_replace (Str.regexp "//") "/" s in
+ let l = Str.split (Str.regexp "/") s in
+ let rec aux acc = function
+ | [] -> acc
+ | he::"."::tl -> aux acc (he::tl)
+ | he::".."::tl when he <> ".." -> aux [] (acc @ tl)
+ | he::tl -> aux (acc@[he]) tl
+ in
+ (if Str.string_match (Str.regexp "^/") s 0 then "/" else "") ^
+ String.concat "/" (aux [] l)
+ ^ (if Str.string_match (Str.regexp "/$") s 0 then "/" else "")
+;;
+
+let find_in paths path =
+ let rec aux = function
+ | [] -> raise (Failure "find_in")
+ | p :: tl ->
+ let path = normalize_path (p ^ "/" ^ path) in
+ try
+ if (Unix.stat path).Unix.st_kind = Unix.S_REG then path
+ else aux tl
+ with Unix.Unix_error _ as exn ->
+ aux tl
+ in
+ try
+ aux paths
+ with Unix.Unix_error _ | Failure _ ->
+ raise
+ (Failure "find_in")
+;;
+
+let is_prefix_of_aux d1 d2 =
+ let len1 = String.length d1 in
+ let len2 = String.length d2 in
+ if len2 < len1 then
+ false, len1, len2
+ else
+ let pref = String.sub d2 0 len1 in
+ pref = d1 && (len1 = len2 || d1.[len1-1] = '/' || d2.[len1] = '/'), len1, len2
+
+let is_prefix_of d1 d2 =
+ let b,_,_ = is_prefix_of_aux d1 d2 in b
+;;
+
+let chop_prefix prefix s =
+ let b,lp,ls = is_prefix_of_aux prefix s in
+ if b then
+ String.sub s lp (ls - lp)
+ else
+ s
+;;
+
+let touch s =
+ try close_out(open_out s) with Sys_error _ -> ()
+;;
val is_dir_empty: string -> bool (** checks if the dir is empty *)
val rmdir_descend: string -> unit (** rmdir -p *)
val chmod: int -> string -> unit (** chmod *)
+val normalize_path: string -> string (** /foo/./bar/..//baz -> /foo/baz *)
(** find all _files_ whose name matches test under a filesystem root.
* Test is passed the filename path relative to the given filesystem root *)
val find: ?test:(string -> bool) -> string -> string list
+ (** find_in paths name returns the first path^"/"^name such that
+ * is a regular file and the current user can 'stat' it.
+ * May raise (Failure "find_in") *)
+val find_in: string list -> string -> string
+
(** {2 File I/O} *)
val input_file: string -> string (** read all the contents of file to string *)
(* size in KB (SLOW) *)
val estimate_size: 'a -> int
+(* is_prefix_of [prefix] [string], in terms of dirs:
+ * foo/bar/ is prefix of foo/bar/baz
+ * foo/bar is prefix of foo/bar/baz
+ * foo/b isn't of foo/bar/baz
+ * foo/bar is prefix of foo/bar
+ *)
+val is_prefix_of: string -> string -> bool
+val chop_prefix: string -> string -> string
+val touch: string -> unit
exception Macro of
GrafiteAst.loc *
(Cic.context -> GrafiteTypes.status * Cic.term GrafiteAst.macro)
-exception ReadOnlyUri of string
type 'a disambiguator_input = string * int * 'a
type options = {
do_heavy_checks: bool ;
- clean_baseuri: bool
}
(** create a ProofEngineTypes.mk_fresh_name_type function which uses given
Cic.context -> GrafiteTypes.status * Cic.term GrafiteAst.macro) ->
?do_heavy_checks:bool ->
- ?clean_baseuri:bool ->
GrafiteTypes.status ->
(('term, 'lazy_term, 'reduction, 'obj, 'ident) GrafiteAst.statement)
disambiguator_input ->
RefinementTool.pack_coercion_obj = CicRefine.pack_coercion_obj;
}
-let eval_coercion status ~add_composites uri arity saturations baseuri =
+let eval_coercion status ~add_composites uri arity saturations =
let status,compounds =
GrafiteSync.add_coercion ~add_composites refinement_toolkit status uri arity
- saturations baseuri
+ saturations (GrafiteTypes.get_baseuri status)
in
let moo_content =
List.map coercion_moo_statement_of ((uri,arity,saturations)::compounds)
with Not_found -> false,0
with Not_found -> assert false
in
+ let buri = GrafiteTypes.get_baseuri status in
(* looking at the fields we can know the 'wanted' coercions, but not the
* actually generated ones. So, only the intersection between the wanted
* and the actual should be in the moo as coercion, while everithing in
(function
| (name,true,arity) ->
Some
- (arity, UriManager.uri_of_string
- (GrafiteTypes.qualify status name ^ ".con"))
+ (arity, UriManager.uri_of_string (buri ^ "/" ^ name ^ ".con" ))
| _ -> None)
fields
in
let status = GrafiteTypes.add_moo_content [cmd] status in
status,[]
| GrafiteAst.Coercion (loc, uri, add_composites, arity, saturations) ->
- eval_coercion status ~add_composites uri arity saturations
- (GrafiteTypes.get_string_option status "baseuri")
+ eval_coercion status ~add_composites uri arity saturations
| GrafiteAst.Default (loc, what, uris) as cmd ->
LibraryObjects.set_default what uris;
GrafiteTypes.add_moo_content [cmd] status,[]
status,[]
| GrafiteAst.Print (_,"proofterm") ->
let _,_,_,p,_, _ = GrafiteTypes.get_current_proof status in
- print_endline (Auto.pp_proofterm p);
+ prerr_endline (Auto.pp_proofterm p);
status,[]
| GrafiteAst.Print (_,_) -> status,[]
| GrafiteAst.Qed loc ->
| GrafiteAst.Relation (loc, id, a, aeq, refl, sym, trans) ->
Setoids.add_relation id a aeq refl sym trans;
status, [] (*CSC: TO BE FIXED *)
- | GrafiteAst.Set (loc, name, value) ->
- if name = "baseuri" then begin
- let value =
- let v = Http_getter_misc.strip_trailing_slash value in
- try
- ignore (String.index v ' ');
- GrafiteTypes.command_error "baseuri can't contain spaces"
- with Not_found -> v
- in
- if Http_getter_storage.is_read_only value then begin
- HLog.error (Printf.sprintf "uri %s belongs to a read-only repository" value);
- raise (ReadOnlyUri value)
- end;
- if (not (Http_getter_storage.is_empty ~local:true value) ||
- LibraryClean.db_uris_of_baseuri value <> [])
- && opts.clean_baseuri
- then begin
- HLog.message ("baseuri " ^ value ^ " is not empty");
- HLog.message ("cleaning baseuri " ^ value);
- LibraryClean.clean_baseuris [value];
- assert (Http_getter_storage.is_empty ~local:true value);
- end;
- if not (Helm_registry.get_opt_default Helm_registry.bool "matita.nodisk"
- ~default:false)
- then
- HExtlib.mkdir
- (Filename.dirname
- (Http_getter.filename ~local:true ~writable:true (value ^
- "/foo.con")));
- end;
- GrafiteTypes.set_option status name value,[]
+ | GrafiteAst.Set (loc, name, value) -> status, []
+(* GrafiteTypes.set_option status name value,[] *)
| GrafiteAst.Obj (loc,obj) ->
let ext,name =
match obj with
".ind",
(match types with (name,_,_,_)::_ -> name | _ -> assert false)
| _ -> assert false in
- let uri =
- UriManager.uri_of_string (GrafiteTypes.qualify status name ^ ext) in
+ let buri = GrafiteTypes.get_baseuri status in
+ let uri = UriManager.uri_of_string (buri ^ "/" ^ name ^ ext) in
let obj = CicRefine.pack_coercion_obj obj in
let metasenv = GrafiteTypes.get_proof_metasenv status in
match obj with
status)
status moo
} and eval_ast = {ea_go = fun ~disambiguate_tactic ~disambiguate_command
-~disambiguate_macro ?(do_heavy_checks=false) ?(clean_baseuri=true) status
+~disambiguate_macro ?(do_heavy_checks=false) status
(text,prefix_len,st)
->
- let opts = {
- do_heavy_checks = do_heavy_checks ;
- clean_baseuri = clean_baseuri }
- in
+ let opts = { do_heavy_checks = do_heavy_checks ; } in
match st with
| GrafiteAst.Executable (_,ex) ->
eval_executable.ee_go ~disambiguate_tactic ~disambiguate_command
Cic.context -> GrafiteTypes.status * Cic.term GrafiteAst.macro) ->
?do_heavy_checks:bool ->
- ?clean_baseuri:bool ->
GrafiteTypes.status ->
(('term, 'lazy_term, 'reduction, 'obj, 'ident) GrafiteAst.statement)
disambiguator_input ->
List.iter (fun uri -> LibrarySync.remove_coercion uri) coercions_to_remove;
List.iter LibrarySync.remove_obj objs_to_remove
-let init () =
- LibrarySync.remove_all_coercions ();
- LibraryObjects.reset_defaults ();
- {
+let initial_status baseuri = {
GrafiteTypes.moo_content_rev = [];
proof_status = GrafiteTypes.No_proof;
- options = GrafiteTypes.no_options;
+(* options = GrafiteTypes.no_options; *)
objects = [];
coercions = [];
universe = Universe.empty;
+ baseuri = baseuri;
}
+
+
+let init baseuri =
+ LibrarySync.remove_all_coercions ();
+ LibraryObjects.reset_defaults ();
+ initial_status baseuri
+ ;;
+let pop () =
+ LibrarySync.pop ();
+ LibraryObjects.pop ()
+;;
+
+let push () =
+ LibrarySync.push ();
+ LibraryObjects.push ()
+;;
+
present:GrafiteTypes.status -> past:GrafiteTypes.status -> unit
(* also resets the imperative part of the status *)
-val init: unit -> GrafiteTypes.status
+val init: string -> GrafiteTypes.status
+
+(*
+ (* just an empty status, does not reset imperative
+ * part, use push/pop for that *)
+val initial_status: string -> GrafiteTypes.status
+*)
+
+ (* preserve _only_ imperative parts of the status *)
+val push: unit -> unit
+val pop: unit -> unit
(* Status in which the proof could be while it is being processed by the
* engine. No status entering/exiting the engine could be in it. *)
+(* REMOVE
module StringMap = Map.Make (String)
type option_value =
| String of string
| Int of int
-type options = option_value StringMap.t
-let no_options = StringMap.empty
+*)
+(* type options = option_value StringMap.t *)
+(* let no_options = StringMap.empty *)
type status = {
moo_content_rev: GrafiteMarshal.moo;
proof_status: proof_status;
- options: options;
+(* options: options; *)
objects: UriManager.uri list;
coercions: UriManager.uri list;
universe:Universe.universe;
+ baseuri: string;
}
let get_current_proof status =
GrafiteAstPp.pp_command content')); *)
{ status with moo_content_rev = content' }
+let get_baseuri status = status.baseuri;;
+
+(*
let get_option status name =
try
StringMap.find name status.options
with Not_found -> raise (Option_error (name, "not found"))
-
+
let set_option status name value =
- let mangle_dir s =
- let s = Str.global_replace (Str.regexp "//+") "/" s in
- let s = Str.global_replace (Str.regexp "/$") "" s in
- s
- in
- let types = [ "baseuri", (`String, mangle_dir); ] in
+ let types = [ (* no set options defined! *) ] in
let ty_and_mangler =
- try
- List.assoc name types
+ try List.assoc name types
with Not_found ->
command_error (Printf.sprintf "Unknown option \"%s\"" name)
in
with Failure _ ->
command_error (Printf.sprintf "Not an integer value \"%s\"" value))
in
- if StringMap.mem name status.options && name = "baseuri" then
- command_error "Redefinition of 'baseuri' is forbidden."
- else
{ status with options = StringMap.add name value status.options }
match get_option status name with
| String s -> s
| _ -> raise (Option_error (name, "not a string value"))
-
-let qualify status name = get_string_option status "baseuri" ^ "/" ^ name
+*)
let dump_status status =
HLog.message "status.aliases:\n";
| Proof _ -> "proof\n"
| Intermediate _ -> "Intermediate\n");
HLog.message "status.options\n";
+(* REMOVEME
StringMap.iter (fun k v ->
let v =
match v with
| Int i -> string_of_int i
in
HLog.message (k ^ "::=" ^ v)) status.options;
+*)
HLog.message "status.coercions\n";
HLog.message "status.objects:\n";
List.iter
(fun u -> HLog.message (UriManager.string_of_uri u)) status.objects
+
| Proof of ProofEngineTypes.proof
| Intermediate of Cic.metasenv
+(*
type option_value =
| String of string
| Int of int
type options
val no_options: options
+*)
type status = {
moo_content_rev: GrafiteMarshal.moo;
proof_status: proof_status; (** logical status *)
- options: options;
+(* options: options; *)
objects: UriManager.uri list; (** in-scope objects *)
coercions: UriManager.uri list; (** defined coercions *)
universe:Universe.universe; (** universe of terms used by auto *)
+ baseuri: string;
}
val dump_status : status -> unit
(** list is not reversed, head command will be the first emitted *)
val add_moo_content: GrafiteMarshal.ast_command list -> status -> status
+(* REOMVE ME
val get_option : status -> string -> option_value
val get_string_option : status -> string -> string
val set_option : status -> string -> string -> status
-
-val qualify: status -> string -> string
+*)
+val get_baseuri: status -> string
val get_current_proof: status -> ProofEngineTypes.proof
val get_proof_metasenv: status -> Cic.metasenv
val set_stack: Continuationals.Stack.t -> status -> status
val set_metasenv: Cic.metasenv -> status -> status
+
grafiteWalker.cmi: grafiteParser.cmi
dependenciesParser.cmo: dependenciesParser.cmi
dependenciesParser.cmx: dependenciesParser.cmi
-grafiteParser.cmo: dependenciesParser.cmi grafiteParser.cmi
-grafiteParser.cmx: dependenciesParser.cmx grafiteParser.cmi
+grafiteParser.cmo: grafiteParser.cmi
+grafiteParser.cmx: grafiteParser.cmi
cicNotation2.cmo: grafiteParser.cmi cicNotation2.cmi
cicNotation2.cmx: grafiteParser.cmx cicNotation2.cmi
grafiteDisambiguator.cmo: grafiteDisambiguator.cmi
grafiteWalker.cmi: grafiteParser.cmi
dependenciesParser.cmo: dependenciesParser.cmi
dependenciesParser.cmx: dependenciesParser.cmi
-grafiteParser.cmo: dependenciesParser.cmi grafiteParser.cmi
-grafiteParser.cmx: dependenciesParser.cmx grafiteParser.cmi
+grafiteParser.cmo: grafiteParser.cmi
+grafiteParser.cmx: grafiteParser.cmi
cicNotation2.cmo: grafiteParser.cmi cicNotation2.cmi
cicNotation2.cmx: grafiteParser.cmx cicNotation2.cmi
grafiteDisambiguator.cmo: grafiteDisambiguator.cmi
(* $Id$ *)
-(* FG
- * From Cambridge dictionary
- * Dependency:
- * a country which is supported and governed by another country
- * Dependence:
- * when you need something or someone all the time, especially in order to
- * continue existing or operating
- *
- * Fate vobis ...
- *)
-
exception UnableToInclude of string
(* statements meaningful for matitadep *)
type dependency =
| IncludeDep of string
- | BaseuriDep of string
| UriDep of UriManager.uri
let pp_dependency = function
| IncludeDep str -> "include \"" ^ str ^ "\""
- | BaseuriDep str -> "set \"baseuri\" \"" ^ str ^ "\""
| UriDep uri -> "uri \"" ^ UriManager.string_of_uri uri ^ "\""
let parse_dependencies lexbuf =
CicNotationLexer.level2_ast_lexer.Token.tok_func (Obj.magic lexbuf)
in
let rec parse acc =
- try
- (parser
- | [< '("QSTRING", s) >] ->
- (* because of alias id qstring = qstring :-( *)
- (try
- parse (UriDep (UriManager.uri_of_string s) :: acc)
- with
- UriManager.IllFormedUri _ -> parse acc)
- | [< '("URI", u) >] ->
- parse (UriDep (UriManager.uri_of_string u) :: acc)
- | [< '("IDENT", "include"); '("QSTRING", fname) >] ->
- parse (IncludeDep fname :: acc)
- | [< '("IDENT", "set"); '("QSTRING", "baseuri"); '("QSTRING", baseuri) >] ->
- parse (BaseuriDep baseuri :: acc)
- | [< '("EOI", _) >] -> acc
- | [< 'tok >] -> parse acc
- | [< >] -> acc) tok_stream
- with
- Stream.Error _ -> parse acc
- | CicNotationLexer.Error _ -> parse acc
+ let continue, acc =
+ try
+ (parser
+ | [< '("QSTRING", s) >] ->
+ (* because of alias id qstring = qstring :-( *)
+ (try
+ true, (UriDep (UriManager.uri_of_string s) :: acc)
+ with
+ UriManager.IllFormedUri _ -> true, acc)
+ | [< '("URI", u) >] ->
+ true, (UriDep (UriManager.uri_of_string u) :: acc)
+ | [< '("IDENT", "include"); '("QSTRING", fname) >] ->
+ true, (IncludeDep fname :: acc)
+ | [< '("IDENT", "include'"); '("QSTRING", fname) >] ->
+ true, (IncludeDep fname :: acc)
+ | [< '("EOI", _) >] -> false, acc
+ | [< 'tok >] -> true, acc
+ | [< >] -> false, acc) tok_stream
+ with
+ Stream.Error _ -> false, acc
+ | CicNotationLexer.Error _ -> true, acc
+ in
+ if continue then parse acc else acc
in
List.rev (parse [])
-let make_absolute paths path =
- let rec aux = function
- | [] -> ignore (Unix.stat path); path
- | p :: tl ->
- let path = p ^ "/" ^ path in
- try
- ignore (Unix.stat path);
- HLog.debug ("Including "^path^" with path: " ^ p);
- path
- with Unix.Unix_error _ -> aux tl
- in
- try
- aux paths
- with Unix.Unix_error _ -> raise (UnableToInclude path)
+let deps_of_file ma_file =
+ try
+ let ic = open_in ma_file in
+ let istream = Ulexing.from_utf8_channel ic in
+ let dependencies = parse_dependencies istream in
+ close_in ic;
+ dependencies
+ with End_of_file -> []
;;
-
-let baseuri_of_script ~include_paths file =
- let file = make_absolute include_paths file in
- let ic = open_in file in
- let istream = Ulexing.from_utf8_channel ic in
- let rec find_baseuri =
- function
- [] -> failwith ("No baseuri defined in " ^ file)
- | BaseuriDep s::_ -> s
- | _::tl -> find_baseuri tl in
- let buri = find_baseuri (parse_dependencies istream) in
- let uri = Http_getter_misc.strip_trailing_slash buri in
- if String.length uri < 5 || String.sub uri 0 5 <> "cic:/" then
- HLog.error (file ^ " sets an incorrect baseuri: " ^ buri);
- uri,file
(* statements meaningful for matitadep *)
type dependency =
| IncludeDep of string
- | BaseuriDep of string
| UriDep of UriManager.uri
val pp_dependency: dependency -> string
- (** @raise End_of_file *)
-val parse_dependencies: Ulexing.lexbuf -> dependency list
-
-(* returns baseuri and the full path of the script *)
-val baseuri_of_script : include_paths:string list -> string -> string * string
+val deps_of_file: string -> dependency list
metasenv,GrafiteAst.RewritingStep (loc, cic, cic', cic'', cont)
-let disambiguate_obj lexicon_status ~baseuri metasenv (text,prefix_len,obj) =
+let disambiguate_obj lexicon_status ?baseuri metasenv (text,prefix_len,obj) =
let uri =
match obj with
| CicNotationPt.Inductive (_,(name,_,_,_)::_)
let lexicon_status = LexiconEngine.set_proof_aliases lexicon_status diff in
lexicon_status, metasenv, cic
-let disambiguate_command lexicon_status ~baseuri metasenv (text,prefix_len,cmd)=
+let disambiguate_command lexicon_status ?baseuri metasenv (text,prefix_len,cmd)=
match cmd with
| GrafiteAst.Index(loc,key,uri) ->
let lexicon_status_ref = ref lexicon_status in
lexicon_status,metasenv,cmd
| GrafiteAst.Obj (loc,obj) ->
let lexicon_status,metasenv,obj =
- disambiguate_obj lexicon_status ~baseuri metasenv (text,prefix_len,obj)in
+ disambiguate_obj lexicon_status ?baseuri metasenv (text,prefix_len,obj)in
lexicon_status, metasenv, GrafiteAst.Obj (loc,obj)
| GrafiteAst.Relation (loc,id,a,aeq,refl,sym,trans) ->
let lexicon_status_ref = ref lexicon_status in
val disambiguate_command:
LexiconEngine.status ->
- baseuri:string option ->
+ ?baseuri:string ->
Cic.metasenv ->
((CicNotationPt.term,CicNotationPt.term CicNotationPt.obj) GrafiteAst.command) Disambiguate.disambiguator_input ->
LexiconEngine.status * Cic.metasenv * (Cic.term,Cic.obj) GrafiteAst.command
module Ast = CicNotationPt
+exception NoInclusionPerformed of string (* full path *)
+
type 'a localized_option =
LSome of 'a
| LNone of GrafiteAst.loc
GrafiteAst.statement
type statement =
+ ?never_include:bool ->
include_paths:string list ->
LexiconEngine.status ->
LexiconEngine.status * ast_statement localized_option
];
statement: [
[ ex = executable ->
- fun ~include_paths status -> status,LSome(GrafiteAst.Executable (loc,ex))
+ fun ?(never_include=false) ~include_paths status -> status,LSome(GrafiteAst.Executable (loc,ex))
| com = comment ->
- fun ~include_paths status -> status,LSome (GrafiteAst.Comment (loc, com))
+ fun ?(never_include=false) ~include_paths status -> status,LSome (GrafiteAst.Comment (loc, com))
| (iloc,fname,mode) = include_command ; SYMBOL "." ->
- fun ~include_paths status ->
- let buri, fullpath =
- DependenciesParser.baseuri_of_script ~include_paths fname
+ fun ?(never_include=false) ~include_paths status ->
+ let _root, buri, fullpath, _rrelpath =
+ Librarian.baseuri_of_script ~include_paths fname
in
let status =
- LexiconEngine.eval_command status
- (LexiconAst.Include (iloc,buri,mode,fullpath))
+ if never_include then raise (NoInclusionPerformed fullpath)
+ else LexiconEngine.eval_command status
+ (LexiconAst.Include (iloc,buri,mode,fullpath))
in
!out fname;
status,
(loc,GrafiteAst.Command
(loc,GrafiteAst.Include (iloc,buri))))
| scom = lexicon_command ; SYMBOL "." ->
- fun ~include_paths status ->
+ fun ?(never_include=false) ~include_paths status ->
let status = LexiconEngine.eval_command status scom in
status,LNone loc
| EOI -> raise End_of_file
let parse_statement lexbuf =
exc_located_wrapper
(fun () -> (Grammar.Entry.parse statement (Obj.magic lexbuf)))
+
CicNotationPt.term CicNotationPt.obj, string)
GrafiteAst.statement
+exception NoInclusionPerformed of string (* full path *)
+
type statement =
+ ?never_include:bool ->
+ (* do not call LexiconEngine to do includes, always raise NoInclusionPerformed *)
include_paths:string list ->
LexiconEngine.status ->
LexiconEngine.status * ast_statement localized_option
loc
let grep_statement ?(status = LexiconEngine.initial_status) ?(callback = ignore)
- ~fname test
+ ~fname ~include_paths test
=
- let include_paths =
- Helm_registry.get_list Helm_registry.string "matita.includes" in
let content = HExtlib.input_file fname in
let lexbuf = Ulexing.from_utf8_string content in
let parse_fun status =
let ma_extension_test fname = Filename.check_suffix fname ".ma"
let rgrep_statement ?status ?callback ?(fname_test = ma_extension_test)
- ~dirname test
+ ~dirname ~include_paths test
=
let files = HExtlib.find ~test:fname_test dirname in
List.flatten
| None -> None
| Some f -> Some (fun s -> f (fname, s)) in
List.map (fun raw -> fname, raw)
- (grep_statement ?status ?callback ~fname test))
+ (grep_statement ?status ?callback ~fname ~include_paths test))
files)
val grep_statement:
?status: LexiconEngine.status ->
?callback: (string -> unit) ->
- fname:string -> statement_test ->
+ fname:string ->
+ include_paths: string list ->
+ statement_test ->
string list
(** As above, but act on all file (recursively) located under directory
val rgrep_statement:
?status: LexiconEngine.status ->
?callback: (string * string -> unit) ->
- ?fname_test:(string -> bool) -> dirname:string -> statement_test ->
+ ?fname_test:(string -> bool) -> dirname:string ->
+ include_paths: string list ->
+ statement_test ->
(string * string) list
(* $Id$ *)
let _ =
- let ic = ref stdin in
+ let ic = ref "/dev/fd/0" in
let usage = "test_coarse_parser [ file ]" in
- let open_file fname =
- if !ic <> stdin then close_in !ic;
- ic := open_in fname
- in
+ let open_file fname = ic := fname in
Arg.parse [] open_file usage;
- let deps =
- DependenciesParser.parse_dependencies (Ulexing.from_utf8_channel !ic)
- in
+ let deps = DependenciesParser.deps_of_file !ic in
List.iter (fun dep -> print_endline (DependenciesParser.pp_dependency dep)) deps
in
TermAcicContent.set_active_interpretations interp_ids
+let reset () =
+ TermContentPres.reset ();
+ TermAcicContent.reset ()
+;;
val remove_notation: notation_id -> unit
(** {2 Notation enabling/disabling}
- * Right now, only disabling of notation during pretty printing is supporting.
+ * Right now, only disabling of notation during pretty printing is supported.
* If it is useful to disable it also for the input phase is still to be
* understood ... *)
val get_active_notations: unit -> notation_id list
val set_active_notations: notation_id list -> unit
+(* resets internal couenters. this is an hack used in matitaScript.
+ * if you are in the middle of a script (with an history you may use to undo
+ * with some notations id inside) and you want to compile an external file
+ * in an empty environment you need, after its compilation, to restore
+ * the previous environment (re-executing all notations commands) and this must
+ * produce the same ids as before, otherwise history is wrong. *)
+ val reset: unit -> unit
cicCoercion.cmi: coercDb.cmi
librarySync.cmi: refinementTool.cmo
+librarian.cmo: librarian.cmi
+librarian.cmx: librarian.cmi
cicElim.cmo: cicElim.cmi
cicElim.cmx: cicElim.cmi
cicRecord.cmo: cicRecord.cmi
cicCoercion.cmi: coercDb.cmi
librarySync.cmi: refinementTool.cmx
+librarian.cmo: librarian.cmi
+librarian.cmx: librarian.cmi
cicElim.cmo: cicElim.cmi
cicElim.cmx: cicElim.cmi
cicRecord.cmo: cicRecord.cmi
PREDICATES =
INTERFACE_FILES = \
+ librarian.mli \
cicElim.mli \
cicRecord.mli \
libraryMisc.mli \
db := (src,tgt,(u,1,saturations)::l)::tl @ rest
;;
+
+type coerc_db = (coerc_carr * coerc_carr * (UriManager.uri * int * int) list) list
+let dump () = !db
+let restore coerc_db = db := coerc_db
unit ->
(coerc_carr * coerc_carr * (UriManager.uri * int) list) list
+type coerc_db
+val dump: unit -> coerc_db
+val restore: coerc_db -> unit
+
val add_coercion:
coerc_carr * coerc_carr * UriManager.uri * int -> unit
--- /dev/null
+let debug = false;;
+
+exception NoRootFor of string
+
+let absolutize path =
+ let path =
+ if String.length path > 0 && path.[0] <> '/' then
+ Sys.getcwd () ^ "/" ^ path
+ else
+ path
+ in
+ HExtlib.normalize_path path
+;;
+
+
+let find_root path =
+ let path = absolutize path in
+ let paths = List.rev (Str.split (Str.regexp "/") path) in
+ let rec build = function
+ | he::tl as l -> ("/" ^ String.concat "/" (List.rev l) ^ "/") :: build tl
+ | [] -> ["/"]
+ in
+ let paths = List.map HExtlib.normalize_path (build paths) in
+ try HExtlib.find_in paths "root"
+ with Failure "find_in" ->
+ raise (NoRootFor (path ^ " (" ^ String.concat ", " paths ^ ")"))
+;;
+
+let ensure_trailing_slash s =
+ if s = "" then "/" else
+ if s.[String.length s-1] <> '/' then s^"/" else s
+;;
+
+let remove_trailing_slash s =
+ if s = "" then "" else
+ let len = String.length s in
+ if s.[len-1] = '/' then String.sub s 0 (len-1) else s
+;;
+
+let load_root_file rootpath =
+ let data = HExtlib.input_file rootpath in
+ let lines = Str.split (Str.regexp "\n") data in
+ let clean s = Pcre.replace ~pat:"^ *" (Pcre.replace ~pat:" *$" s) in
+ List.map
+ (fun l ->
+ match Str.split (Str.regexp "=") l with
+ | [k;v] -> clean k, Http_getter_misc.strip_trailing_slash (clean v)
+ | _ -> raise (Failure ("Malformed root file: " ^ rootpath)))
+ lines
+;;
+
+let find_root_for ~include_paths file =
+ let include_paths = "" :: Sys.getcwd () :: include_paths in
+ try
+ let path = HExtlib.find_in include_paths file in
+ let path = absolutize path in
+(* HLog.debug ("file "^file^" resolved as "^path); *)
+ let rootpath, root, buri =
+ try
+ let mburi = Helm_registry.get "matita.baseuri" in
+ match Str.split (Str.regexp " ") mburi with
+ | [root; buri] when HExtlib.is_prefix_of root path ->
+ ":registry:", root, buri
+ | _ -> raise (Helm_registry.Key_not_found "matita.baseuri")
+ with Helm_registry.Key_not_found "matita.baseuri" ->
+ let rootpath = find_root path in
+ let buri = List.assoc "baseuri" (load_root_file rootpath) in
+ rootpath, Filename.dirname rootpath, buri
+ in
+(* HLog.debug ("file "^file^" rooted by "^rootpath^""); *)
+ let uri = Http_getter_misc.strip_trailing_slash buri in
+ if String.length uri < 5 || String.sub uri 0 5 <> "cic:/" then
+ HLog.error (rootpath ^ " sets an incorrect baseuri: " ^ buri);
+ ensure_trailing_slash root, remove_trailing_slash uri, path
+ with Failure "find_in" ->
+ HLog.error ("We are in: " ^ Sys.getcwd ());
+ HLog.error ("Unable to find: "^file^"\nPaths explored:");
+ List.iter (fun x -> HLog.error (" - "^x)) include_paths;
+ raise (NoRootFor file)
+;;
+
+let baseuri_of_script ~include_paths file =
+ let root, buri, path = find_root_for ~include_paths file in
+ let path = HExtlib.normalize_path path in
+ let root = HExtlib.normalize_path root in
+ let lpath = Str.split (Str.regexp "/") path in
+ let lroot = Str.split (Str.regexp "/") root in
+ let rec substract l1 l2 =
+ match l1, l2 with
+ | h1::tl1,h2::tl2 when h1 = h2 -> substract tl1 tl2
+ | l,[] -> l
+ | _ -> raise (NoRootFor (file ^" "^path^" "^root))
+ in
+ let extra_buri = substract lpath lroot in
+ let chop name =
+ assert(Filename.check_suffix name ".ma" ||
+ Filename.check_suffix name ".mma");
+ try Filename.chop_extension name
+ with Invalid_argument "Filename.chop_extension" -> name
+ in
+ let extra = String.concat "/" extra_buri in
+ root,
+ remove_trailing_slash (HExtlib.normalize_path
+ (buri ^ "/" ^ chop extra)),
+ path,
+ extra
+;;
+
+let find_roots_in_dir dir =
+ HExtlib.find ~test:(fun f ->
+ Filename.basename f = "root" &&
+ try (Unix.stat f).Unix.st_kind = Unix.S_REG
+ with Unix.Unix_error _ -> false)
+ dir
+;;
+
+(* make *)
+let load_deps_file f =
+ let deps = ref [] in
+ let ic = open_in f in
+ try
+ while true do
+ begin
+ let l = input_line ic in
+ match Str.split (Str.regexp " ") l with
+ | [] ->
+ HLog.error ("Malformed deps file: " ^ f);
+ raise (Failure ("Malformed deps file: " ^ f))
+ | he::tl -> deps := (he,tl) :: !deps
+ end
+ done; !deps
+ with End_of_file -> !deps
+;;
+
+type options = (string * string) list
+
+module type Format =
+ sig
+ type source_object
+ type target_object
+ val load_deps_file: string -> (source_object * source_object list) list
+ val string_of_source_object: source_object -> string
+ val string_of_target_object: target_object -> string
+ val build: options -> source_object -> bool
+ val root_and_target_of:
+ options -> source_object -> string option * target_object
+ val mtime_of_source_object: source_object -> float option
+ val mtime_of_target_object: target_object -> float option
+ end
+
+module Make = functor (F:Format) -> struct
+
+ let prerr_endline s = if debug then prerr_endline ("make: "^s);;
+
+ let unopt_or_call x f y = match x with Some _ -> x | None -> f y;;
+
+ let younger_s_t a fa b fb =
+ let a = unopt_or_call a F.mtime_of_source_object fa in
+ let b = unopt_or_call b F.mtime_of_target_object fb in
+ match a,b with
+ | Some a, Some b -> a < b
+ | _ -> false
+ ;;
+
+ let younger_t_t a fa b fb =
+ let a = unopt_or_call a F.mtime_of_target_object fa in
+ let b = unopt_or_call b F.mtime_of_target_object fb in
+ match a, b with
+ | Some a, Some b -> a < b
+ | _ -> false
+ ;;
+
+ let is_built opts mt t mtgt tgt =
+ younger_s_t mt t mtgt tgt
+ ;;
+
+ let assoc6 l k = List.find (fun (k1,_,_,_,_,_) -> k1 = k) l;;
+
+ let fst6 = function (x,_,_,_,_,_) -> x;;
+
+ let rec needs_build opts deps compiled (t,dependencies,root,tgt,mt,mtgt) =
+ prerr_endline ("Checking if "^F.string_of_source_object t^
+ " needs to be built");
+ if List.mem t compiled then
+ (prerr_endline "already compiled";
+ false)
+ else
+ if not (is_built opts mt t mtgt tgt) then
+ (prerr_endline (F.string_of_source_object t^
+ " is not built, thus needs to be built");
+ true)
+ else
+ try
+ let unsat =
+ List.find
+ (needs_build opts deps compiled)
+ (List.map (assoc6 deps) dependencies)
+ in
+ prerr_endline
+ (F.string_of_source_object t^" depends on "^
+ F.string_of_source_object (fst6 unsat)^
+ " that needs to be built, thus needs to be built");
+ true
+ with Not_found ->
+ try
+ let _,_,_,unsat,_,_ =
+ List.find
+ (fun (_,_,_,tgt1,_,mtgt1) -> younger_t_t mtgt tgt mtgt1 tgt1)
+ (List.map (assoc6 deps) dependencies)
+ in
+ prerr_endline
+ (F.string_of_source_object t^" depends on "^F.string_of_target_object
+ unsat^" and "^F.string_of_source_object t^".o is younger than "^
+ F.string_of_target_object unsat^", thus needs to be built");
+ true
+ with Not_found -> false
+ ;;
+
+ let is_buildable opts compiled deps (t,dependencies,root,tgt,_,_ as what) =
+ prerr_endline ("Checking if "^F.string_of_source_object t^" is buildable");
+ let b = needs_build opts deps compiled what in
+ if not b then
+ (prerr_endline (F.string_of_source_object t^
+ " does not need to be built, thus it not buildable");
+ false)
+ else
+ try
+ let unsat,_,_,_,_,_ =
+ List.find (needs_build opts deps compiled)
+ (List.map (assoc6 deps) dependencies)
+ in
+ prerr_endline
+ (F.string_of_source_object t^" depends on "^
+ F.string_of_source_object unsat^
+ " that needs build, thus is not buildable");
+ false
+ with Not_found ->
+ prerr_endline
+ ("None of "^F.string_of_source_object t^
+ " dependencies needs to be built, thus it is buildable");
+ true
+ ;;
+
+ let rec purge_unwanted_roots wanted deps =
+ let roots, rest =
+ List.partition
+ (fun (t,d,_,_,_,_) ->
+ not (List.exists (fun (_,d1,_,_,_,_) -> List.mem t d1) deps))
+ deps
+ in
+ let newroots = List.filter (fun (t,_,_,_,_,_) -> List.mem t wanted) roots in
+ if newroots = roots then
+ deps
+ else
+ purge_unwanted_roots wanted (newroots @ rest)
+ ;;
+
+
+ let rec make_aux root local_options compiled failed deps =
+ let todo = List.filter (is_buildable local_options compiled deps) deps in
+ let todo = List.filter (fun (f,_,_,_,_,_)->not (List.mem f failed)) todo in
+ if todo <> [] then
+ let compiled, failed =
+ let todo =
+ let local, remote =
+ List.partition (fun (_,_,froot,_,_,_) -> froot = Some root) todo
+ in
+ remote @ local
+ in
+ List.fold_left
+ (fun (c,f) (file,_,froot,_,_,_) ->
+ let rc =
+ match froot with
+ | Some froot when froot = root ->
+ F.build local_options file
+ | Some froot ->
+ make froot [file]
+ | None ->
+ HLog.error ("No root for: "^F.string_of_source_object file);
+ false
+ in
+ if rc then (file::c,f)
+ else (c,file::f))
+ (compiled,failed) todo
+ in
+ make_aux root local_options compiled failed deps
+ else
+ compiled, failed
+
+ and make root targets =
+ HLog.debug ("Entering directory '"^root^"'");
+ let old_root = Sys.getcwd () in
+ Sys.chdir root;
+ let deps = F.load_deps_file (root^"/depends") in
+ let local_options = load_root_file (root^"/root") in
+ let deps =
+ List.map
+ (fun (file,d) ->
+ HLog.debug (F.string_of_source_object file);
+ let r,tgt = F.root_and_target_of local_options file in
+ file, d, r, tgt, F.mtime_of_source_object file,
+ F.mtime_of_target_object tgt)
+ deps
+ in
+ let _compiled, failed =
+ if targets = [] then
+ make_aux root local_options [] [] deps
+ else
+ make_aux root local_options [] [] (purge_unwanted_roots targets deps)
+ in
+ HLog.debug ("Leaving directory '"^root^"'");
+ Sys.chdir old_root;
+ failed = []
+ ;;
+
+end
+
+let write_deps_file root deps =
+ let oc = open_out (root ^ "/depends") in
+ List.iter
+ (fun (t,d) -> output_string oc (t^" "^String.concat " " d^"\n"))
+ deps;
+ close_out oc;
+ HLog.message ("Generated: " ^ root ^ "/depends")
+;;
+
--- /dev/null
+exception NoRootFor of string
+
+val absolutize: string -> string
+
+val find_root: string -> string
+val load_root_file: string -> (string*string) list
+
+(* baseuri_of_script ?(inc:REG[matita.includes]) fname
+ * ->
+ * root, buri, fullpath, rootrelativepath
+ * sample: baseuri_of_script a.ma -> /home/pippo/devel/, cic:/matita/a,
+ * /home/pippo/devel/a.ma, a.ma *)
+val baseuri_of_script:
+ include_paths:string list -> string -> string * string * string * string
+
+(* finds all the roots files in the specified dir *)
+val find_roots_in_dir: string -> string list
+
+(* make *)
+type options = (string * string) list
+
+module type Format =
+ sig
+ type source_object
+ type target_object
+ val load_deps_file: string -> (source_object * source_object list) list
+ val string_of_source_object: source_object -> string
+ val string_of_target_object: target_object -> string
+ val build: options -> source_object -> bool
+ val root_and_target_of:
+ options -> source_object -> string option * target_object
+ val mtime_of_source_object: source_object -> float option
+ val mtime_of_target_object: target_object -> float option
+ end
+
+module Make :
+ functor (F : Format) ->
+ sig
+ (* make [root dir] [targets], targets = [] means make all *)
+ val make : string -> F.source_object list -> bool
+ end
+
+val load_deps_file: string -> (string * string list) list
+val write_deps_file: string -> (string * string list) list -> unit
module HG = Http_getter;;
module UM = UriManager;;
-let cache_of_processed_baseuri = Hashtbl.create 1024
-let one_step_depend suri dbtype dbd =
- let buri =
- try
- UM.buri_of_uri (UM.uri_of_string suri)
- with UM.IllFormedUri _ -> suri
- in
+let strip_xpointer s = Pcre.replace ~pat:"#.*$" s ;;
+
+let safe_buri_of_suri suri =
+ try
+ UM.buri_of_uri (UM.uri_of_string suri)
+ with
+ UM.IllFormedUri _ -> suri
+
+let one_step_depend cache_of_processed_baseuri suri dbtype dbd =
+ let buri = safe_buri_of_suri suri in
if Hashtbl.mem cache_of_processed_baseuri buri then
[]
else
let obj_tbl = MetadataTypes.obj_tbl () in
if HSql.isMysql dbtype dbd then
sprintf ("SELECT source, h_occurrence FROM %s WHERE "
- ^^ "h_occurrence REGEXP '^%s[^/]*$'") obj_tbl buri
+ ^^ "h_occurrence REGEXP '"^^
+ "^%s\\([^/]+\\|[^/]+#xpointer.*\\)$"^^"'")
+ obj_tbl buri
else
- begin
+ begin
sprintf ("SELECT source, h_occurrence FROM %s WHERE "
- ^^ "REGEXP(h_occurrence, '^%s[^/]*$')") obj_tbl buri
- (* implementation with vanilla ocaml-sqlite3
- HLog.debug "Warning SELECT without REGEXP";
- sprintf
- ("SELECT source, h_occurrence FROM %s WHERE " ^^
- "h_occurrence LIKE '%s%%' " ^^ HSql.escape_string_for_like)
- obj_tbl buri*)
- end
+ ^^ "REGEXP(h_occurrence, '"^^
+ "^%s\\([^/]+\\|[^/]+#xpointer.*\\)$"^^"')")
+ obj_tbl buri
+ (* implementation with vanilla ocaml-sqlite3
+ HLog.debug "Warning SELECT without REGEXP";
+ sprintf
+ ("SELECT source, h_occurrence FROM %s WHERE " ^^
+ "h_occurrence LIKE '%s%%' " ^^ HSql.escape_string_for_like)
+ obj_tbl buri*)
+ end
in
try
let rc = HSql.exec dbtype dbd query in
HSql.iter rc (
fun row ->
match row.(0), row.(1) with
- | Some uri, Some occ when Filename.dirname occ = buri ->
- l := uri :: !l
+ | Some uri, Some occ when
+ Filename.dirname (strip_xpointer occ) = buri ->
+ l := uri :: !l
| _ -> ());
let l = List.sort Pervasives.compare !l in
HExtlib.list_uniq l
exn -> raise exn (* no errors should be accepted *)
end
-let safe_buri_of_suri suri =
- try
- UM.buri_of_uri (UM.uri_of_string suri)
- with
- UM.IllFormedUri _ -> suri
-
let db_uris_of_baseuri buri =
let dbd = LibraryDb.instance () in
let dbtype =
in
try
let rc = HSql.exec dbtype dbd query in
- let strip_xpointer s = Pcre.replace ~pat:"#.*$" s in
let l = ref [] in
HSql.iter rc (
fun row ->
match row.(0) with
| Some uri when Filename.dirname (strip_xpointer uri) = buri ->
l := uri :: !l
- | _ ->
- ());
+ | _ -> ());
let l = List.sort Pervasives.compare !l in
HExtlib.list_uniq l
with
exn -> raise exn (* no errors should be accepted *)
;;
-let close_uri_list uri_to_remove =
+let close_uri_list cache_of_processed_baseuri uri_to_remove =
let dbd = LibraryDb.instance () in
let dbtype =
if Helm_registry.get_bool "matita.system" then HSql.Library else HSql.User
(* now we want the list of all uri that depend on them *)
let depend =
List.fold_left
- (fun acc u -> one_step_depend u dbtype dbd @ acc) [] uri_to_remove
+ (fun acc u -> one_step_depend cache_of_processed_baseuri u dbtype dbd @ acc)
+ [] uri_to_remove
in
let depend =
HExtlib.list_uniq (List.fast_sort Pervasives.compare depend)
in
uri_to_remove, depend
+;;
-let rec close_db uris next =
+let rec close_db cache_of_processed_baseuri uris next =
match next with
| [] -> uris
- | l -> let uris, next = close_uri_list l in close_db uris next @ uris
+ | l ->
+ let uris, next = close_uri_list cache_of_processed_baseuri l in
+ close_db cache_of_processed_baseuri uris next @ uris
+;;
let cleaned_no = ref 0;;
| _ -> assert false)
(Helm_registry.get_list Helm_registry.string "getter.prefix"))
in
- String.sub url 7 (String.length url - 7) (* remove heading "file:///" *)
-)
+ String.sub url 7 (String.length url - 7))
+;;
let clean_baseuris ?(verbose=true) buris =
+ let cache_of_processed_baseuri = Hashtbl.create 1024 in
let dbd = LibraryDb.instance () in
let dbtype =
if Helm_registry.get_bool "matita.system" then HSql.Library else HSql.User
debug_prerr "clean_baseuris called on:";
if debug then
List.iter debug_prerr buris;
- let l = close_db [] buris in
+ let l = close_db cache_of_processed_baseuri [] buris in
let l = HExtlib.list_uniq (List.fast_sort Pervasives.compare l) in
let l = List.map UriManager.uri_of_string l in
debug_prerr "clean_baseuri will remove:";
let buri = UriManager.buri_of_uri uri in
if buri <> !last_baseuri then
begin
- if Helm_registry.get_bool "matita.bench" then
+ if not (Helm_registry.get_bool "matita.verbose") then
(print_endline ("matitaclean " ^ buri ^ "/");flush stdout)
else
HLog.message ("Removing: " ^ buri ^ "/*");
UriManager.UriHashtbl.clear coercion_hashtbl;
CoercDb.remove_coercion (fun (_,_,_,_) -> true)
+let stack = ref [];;
+
+let h2l h =
+ UriManager.UriHashtbl.fold
+ (fun k v acc -> (k,v) :: acc) h []
+;;
+
+let push () =
+ stack := (CoercDb.dump (), h2l coercion_hashtbl) :: !stack;
+ remove_all_coercions ()
+;;
+
+let pop () =
+ match !stack with
+ | [] -> raise (Failure "Unable to POP from librarySync.ml")
+ | (db,h) :: tl ->
+ stack := tl;
+ remove_all_coercions ();
+ CoercDb.restore db;
+ List.iter (fun (k,v) -> UriManager.UriHashtbl.add coercion_hashtbl k v)
+ h
+;;
+
let add_coercion ~add_composites refinement_toolkit uri arity saturations
baseuri
=
(* coercions and the information that [uri] and the composites are coercion *)
val remove_coercion: UriManager.uri -> unit
-(* mh... *)
+(* this is used when resetting, but the more gracefull push/pop can be used to
+ * suspend/resume an execution *)
val remove_all_coercions: unit -> unit
-
+val push: unit -> unit
+val pop: unit -> unit
String.sub q (pos + 1) (String.length q - pos - 1))
in
debug_print (lazy (Printf.sprintf "QUOTATION = %s; ARG = %s" quotation arg));
- if quotation = "unicode" then
- let text = TXtok (loc, x, expand_unicode_macro arg) in
- {used = []; text = text; styp = STlid (loc, "string")}
+ if quotation = "unicode" then
+ AStok (loc, x, Some (ATexpr (loc, expand_unicode_macro arg)))
else
assert false
]
-(* GENERATED FILE, DO NOT EDIT. STAMP:Wed Nov 14 12:07:32 CET 2007 *)
+(* GENERATED FILE, DO NOT EDIT. STAMP:Fri Jan 4 11:45:29 CET 2008 *)
val absurd : term:Cic.term -> ProofEngineTypes.tactic
val apply : term:Cic.term -> ProofEngineTypes.tactic
val applyS :
DEBUG_DEFAULT="true"
DEFAULT_DBHOST="mysql://mowgli.cs.unibo.it"
RT_BASE_DIR_DEFAULT="`pwd`/matita"
-MATITA_VERSION="0.4.97"
+MATITA_VERSION="0.4.99"
DISTRIBUTED="no" # "yes" for distributed tarballs
# End of distribution settings
gdome2 \
http \
lablgtk2 \
+lablgtksourceview.gtksourceview \
lablgtkmathview \
-lablgtksourceview \
mysql \
netstring \
ulex08 \
$FINDLIB_CREQUIRES \
lablgtk2.glade \
lablgtkmathview \
-lablgtksourceview \
+lablgtksourceview.gtksourceview \
helm-xmldiff \
"
for r in $FINDLIB_LIBSREQUIRES $FINDLIB_REQUIRES
+++ /dev/null
-
-module F = struct
- type source_object = string
- type target_object = string
- let string_of_source_object s = s
- let string_of_target_object s = s
- let target_of s = s ^ ".o"
- let build t =
- print_string ("build "^t^"\n"); flush stdout;
- ignore(Unix.system ("touch "^target_of t))
- ;;
- let mtime_of_source_object s =
- try Some (Unix.stat s).Unix.st_mtime
- with Unix.Unix_error (Unix.ENOENT, "stat", f) when f = s ->
- prerr_endline ("Source file not found: "^s);assert false
- ;;
- let mtime_of_target_object t =
- try Some (Unix.stat t).Unix.st_mtime
- with Unix.Unix_error (Unix.ENOENT, "stat", f) when f = t -> None
- ;;
-end
-
-module M = Make.Make(F)
-
-let deps = [
- "a.c", [ "b.c"; "d.c" ];
- "b.c", [ "c.c"; "d.c" ];
- "c.c", [];
- "d.c", ["e.c"];
- "e.c", [];
- ]
-;;
-
-M.make deps;;
+++ /dev/null
-
-module type Format = sig
-
- type source_object
- type target_object
-
- val target_of : source_object -> target_object
- val string_of_source_object : source_object -> string
- val string_of_target_object : target_object -> string
-
- val build : source_object -> unit
-
- val mtime_of_source_object : source_object -> float option
- val mtime_of_target_object : target_object -> float option
-end
-
-module Make = functor (F:Format) -> struct
-
- let prerr_endline _ = ();;
-
- let younger_s_t a b =
- match F.mtime_of_source_object a, F.mtime_of_target_object b with
- | Some a, Some b -> a < b
- | _ -> false (* XXX check if correct *)
- ;;
- let younger_t_t a b =
- match F.mtime_of_target_object a, F.mtime_of_target_object b with
- | Some a, Some b -> a < b
- | _ -> false (* XXX check if correct *)
- ;;
-
- let is_built t = younger_s_t t (F.target_of t);;
-
- let rec needs_build deps compiled (t,dependencies) =
- prerr_endline ("Checking if "^F.string_of_source_object t^" needs to be built");
- if List.mem t compiled then
- (prerr_endline "already compiled";
- false)
- else
- if not (is_built t) then
- (prerr_endline (F.string_of_source_object t^
- " is not built, thus needs to be built");
- true)
- else
- try
- let unsat =
- List.find
- (needs_build deps compiled)
- (List.map (fun x -> x, List.assoc x deps) dependencies)
- in
- prerr_endline
- (F.string_of_source_object t^" depends on "^F.string_of_source_object (fst unsat)^
- " that needs to be built, thus needs to be built");
- true
- with Not_found ->
- try
- let unsat =
- List.find (younger_t_t (F.target_of t)) (List.map F.target_of dependencies)
- in
- prerr_endline
- (F.string_of_source_object t^" depends on "^F.string_of_target_object
- unsat^" and "^F.string_of_source_object t^".o is younger than "^
- F.string_of_target_object unsat^", thus needs to be built");
- true
- with Not_found -> false
- ;;
-
- let is_buildable compiled deps (t,dependencies) =
- prerr_endline ("Checking if "^F.string_of_source_object t^" is buildable");
- let b = needs_build deps compiled (t,dependencies) in
- if not b then
- (prerr_endline (F.string_of_source_object t^
- " does not need to be built, thus it not buildable");
- false)
- else
- try
- let unsat =
- List.find (needs_build deps compiled)
- (List.map (fun x -> x, List.assoc x deps) dependencies)
- in
- prerr_endline
- (F.string_of_source_object t^" depends on "^
- F.string_of_source_object (fst unsat)^
- " that needs build, thus is not buildable");
- false
- with Not_found ->
- prerr_endline
- ("None of "^F.string_of_source_object t^
- " dependencies needs to be built, thus it is buildable");
- true
- ;;
-
- let rec make compiled deps =
- let todo = List.filter (is_buildable compiled deps) deps in
- if todo <> [] then
- (List.iter F.build (List.map fst todo);
- make (compiled@List.map fst todo) deps)
- ;;
-
- let make deps = make [] deps
-
-end
-
+++ /dev/null
-
-module type Format =
- sig
- type source_object
- type target_object
- val target_of : source_object -> target_object
- val string_of_source_object : source_object -> string
- val string_of_target_object : target_object -> string
- val build : source_object -> unit
- val mtime_of_source_object : source_object -> float option
- val mtime_of_target_object : target_object -> float option
- end
-
-module Make :
- functor (F : Format) ->
- sig
- val make : (F.source_object * F.source_object list) list -> unit
- end
applyTransformation.cmx: applyTransformation.cmi
dump_moo.cmo: buildTimeConf.cmo
dump_moo.cmx: buildTimeConf.cmx
-gragrep.cmo: matitaInit.cmi buildTimeConf.cmo gragrep.cmi
-gragrep.cmx: matitaInit.cmx buildTimeConf.cmx gragrep.cmi
lablGraphviz.cmo: lablGraphviz.cmi
lablGraphviz.cmx: lablGraphviz.cmi
matitaAutoGui.cmo: matitaGeneratedGui.cmo applyTransformation.cmi \
matitaAutoGui.cmi
matitaclean.cmo: matitaMisc.cmi matitaInit.cmi matitaclean.cmi
matitaclean.cmx: matitaMisc.cmx matitaInit.cmx matitaclean.cmi
-matitacLib.cmo: matitamakeLib.cmi matitaMisc.cmi matitaInit.cmi \
- matitaExcPp.cmi matitaEngine.cmi buildTimeConf.cmo \
+matitacLib.cmo: matitaExcPp.cmi matitaEngine.cmi buildTimeConf.cmo \
applyTransformation.cmi matitacLib.cmi
-matitacLib.cmx: matitamakeLib.cmx matitaMisc.cmx matitaInit.cmx \
- matitaExcPp.cmx matitaEngine.cmx buildTimeConf.cmx \
+matitacLib.cmx: matitaExcPp.cmx matitaEngine.cmx buildTimeConf.cmx \
applyTransformation.cmx matitacLib.cmi
-matitac.cmo: matitaprover.cmi matitamake.cmi matitadep.cmi matitaclean.cmi \
- matitacLib.cmi matitaWiki.cmo matitaInit.cmi matitaEngine.cmi gragrep.cmi
-matitac.cmx: matitaprover.cmx matitamake.cmx matitadep.cmx matitaclean.cmx \
- matitacLib.cmx matitaWiki.cmx matitaInit.cmx matitaEngine.cmx gragrep.cmx
+matitac.cmo: matitadep.cmi matitaclean.cmi matitacLib.cmi matitaWiki.cmo \
+ matitaMisc.cmi matitaInit.cmi
+matitac.cmx: matitadep.cmx matitaclean.cmx matitacLib.cmx matitaWiki.cmx \
+ matitaMisc.cmx matitaInit.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
-matitaExcPp.cmx: matitaExcPp.cmi
+matitaExcPp.cmo: matitaEngine.cmi matitaExcPp.cmi
+matitaExcPp.cmx: matitaEngine.cmx matitaExcPp.cmi
matitaGtkMisc.cmo: matitaTypes.cmi matitaGeneratedGui.cmo buildTimeConf.cmo \
matitaGtkMisc.cmi
matitaGtkMisc.cmx: matitaTypes.cmx matitaGeneratedGui.cmx buildTimeConf.cmx \
matitaGtkMisc.cmi
-matitaGui.cmo: matitaprover.cmi matitamakeLib.cmi matitaTypes.cmi \
- matitaScript.cmi matitaMisc.cmi matitaMathView.cmi matitaGtkMisc.cmi \
- matitaGeneratedGui.cmo matitaExcPp.cmi matitaAutoGui.cmi \
- buildTimeConf.cmo matitaGui.cmi
-matitaGui.cmx: matitaprover.cmx matitamakeLib.cmx matitaTypes.cmx \
- matitaScript.cmx matitaMisc.cmx matitaMathView.cmx matitaGtkMisc.cmx \
- matitaGeneratedGui.cmx matitaExcPp.cmx matitaAutoGui.cmx \
- buildTimeConf.cmx matitaGui.cmi
-matitaInit.cmo: matitamakeLib.cmi matitaExcPp.cmi buildTimeConf.cmo \
- matitaInit.cmi
-matitaInit.cmx: matitamakeLib.cmx matitaExcPp.cmx buildTimeConf.cmx \
- matitaInit.cmi
-matitamakeLib.cmo: buildTimeConf.cmo matitamakeLib.cmi
-matitamakeLib.cmx: buildTimeConf.cmx matitamakeLib.cmi
-matitamake.cmo: matitamakeLib.cmi matitaInit.cmi matitamake.cmi
-matitamake.cmx: matitamakeLib.cmx matitaInit.cmx matitamake.cmi
-matitaMathView.cmo: matitamakeLib.cmi matitaTypes.cmi matitaScript.cmi \
- matitaMisc.cmi matitaGuiTypes.cmi matitaGtkMisc.cmi matitaExcPp.cmi \
- lablGraphviz.cmi buildTimeConf.cmo applyTransformation.cmi \
- matitaMathView.cmi
-matitaMathView.cmx: matitamakeLib.cmx matitaTypes.cmx matitaScript.cmx \
- matitaMisc.cmx matitaGuiTypes.cmi matitaGtkMisc.cmx matitaExcPp.cmx \
- lablGraphviz.cmx buildTimeConf.cmx applyTransformation.cmx \
- matitaMathView.cmi
+matitaGui.cmo: matitaTypes.cmi matitaScript.cmi matitaMisc.cmi \
+ matitaMathView.cmi matitaGtkMisc.cmi matitaGeneratedGui.cmo \
+ matitaExcPp.cmi matitaAutoGui.cmi buildTimeConf.cmo matitaGui.cmi
+matitaGui.cmx: matitaTypes.cmx matitaScript.cmx matitaMisc.cmx \
+ matitaMathView.cmx matitaGtkMisc.cmx matitaGeneratedGui.cmx \
+ matitaExcPp.cmx matitaAutoGui.cmx buildTimeConf.cmx matitaGui.cmi
+matitaInit.cmo: matitacLib.cmi matitaExcPp.cmi matitaEngine.cmi \
+ buildTimeConf.cmo matitaInit.cmi
+matitaInit.cmx: matitacLib.cmx matitaExcPp.cmx matitaEngine.cmx \
+ buildTimeConf.cmx matitaInit.cmi
+matitaMathView.cmo: matitaTypes.cmi matitaScript.cmi matitaMisc.cmi \
+ matitaGuiTypes.cmi matitaGtkMisc.cmi matitaExcPp.cmi lablGraphviz.cmi \
+ buildTimeConf.cmo applyTransformation.cmi matitaMathView.cmi
+matitaMathView.cmx: matitaTypes.cmx matitaScript.cmx matitaMisc.cmx \
+ matitaGuiTypes.cmi matitaGtkMisc.cmx matitaExcPp.cmx lablGraphviz.cmx \
+ buildTimeConf.cmx applyTransformation.cmx matitaMathView.cmi
matitaMisc.cmo: buildTimeConf.cmo matitaMisc.cmi
matitaMisc.cmx: buildTimeConf.cmx matitaMisc.cmi
matita.cmo: matitaTypes.cmi matitaScript.cmi matitaMathView.cmi \
matita.cmx: matitaTypes.cmx matitaScript.cmx matitaMathView.cmx \
matitaInit.cmx matitaGui.cmx matitaGtkMisc.cmx matitaAutoGui.cmx \
buildTimeConf.cmx applyTransformation.cmx
-matitaprover.cmo: matitaInit.cmi matitaExcPp.cmi matitaEngine.cmi \
- buildTimeConf.cmo matitaprover.cmi
-matitaprover.cmx: matitaInit.cmx matitaExcPp.cmx matitaEngine.cmx \
- buildTimeConf.cmx matitaprover.cmi
-matitaScript.cmo: matitamakeLib.cmi matitaTypes.cmi matitaMisc.cmi \
- matitaGtkMisc.cmi matitaEngine.cmi buildTimeConf.cmo \
+matitaScript.cmo: matitacLib.cmi matitaTypes.cmi matitaMisc.cmi \
+ matitaGtkMisc.cmi matitaExcPp.cmi matitaEngine.cmi buildTimeConf.cmo \
applyTransformation.cmi matitaScript.cmi
-matitaScript.cmx: matitamakeLib.cmx matitaTypes.cmx matitaMisc.cmx \
- matitaGtkMisc.cmx matitaEngine.cmx buildTimeConf.cmx \
+matitaScript.cmx: matitacLib.cmx matitaTypes.cmx matitaMisc.cmx \
+ matitaGtkMisc.cmx matitaExcPp.cmx matitaEngine.cmx buildTimeConf.cmx \
applyTransformation.cmx matitaScript.cmi
matitaTypes.cmo: matitaTypes.cmi
matitaTypes.cmx: matitaTypes.cmi
applyTransformation.cmx: applyTransformation.cmi
dump_moo.cmo: buildTimeConf.cmx
dump_moo.cmx: buildTimeConf.cmx
-gragrep.cmo: matitaInit.cmi buildTimeConf.cmx gragrep.cmi
-gragrep.cmx: matitaInit.cmx buildTimeConf.cmx gragrep.cmi
lablGraphviz.cmo: lablGraphviz.cmi
lablGraphviz.cmx: lablGraphviz.cmi
-matitaAutoGui.cmo: matitaGeneratedGui.cmx matitaAutoGui.cmi
-matitaAutoGui.cmx: matitaGeneratedGui.cmx matitaAutoGui.cmi
+matitaAutoGui.cmo: matitaGeneratedGui.cmx applyTransformation.cmi \
+ matitaAutoGui.cmi
+matitaAutoGui.cmx: matitaGeneratedGui.cmx applyTransformation.cmx \
+ matitaAutoGui.cmi
matitaclean.cmo: matitaMisc.cmi matitaInit.cmi matitaclean.cmi
matitaclean.cmx: matitaMisc.cmx matitaInit.cmx matitaclean.cmi
-matitacLib.cmo: matitamakeLib.cmi matitaMisc.cmi matitaInit.cmi \
- matitaExcPp.cmi matitaEngine.cmi buildTimeConf.cmx \
+matitacLib.cmo: matitaExcPp.cmi matitaEngine.cmi buildTimeConf.cmx \
applyTransformation.cmi matitacLib.cmi
-matitacLib.cmx: matitamakeLib.cmx matitaMisc.cmx matitaInit.cmx \
- matitaExcPp.cmx matitaEngine.cmx buildTimeConf.cmx \
+matitacLib.cmx: matitaExcPp.cmx matitaEngine.cmx buildTimeConf.cmx \
applyTransformation.cmx matitacLib.cmi
-matitac.cmo: matitaprover.cmi matitamake.cmi matitadep.cmi matitaclean.cmi \
- matitacLib.cmi matitaWiki.cmx matitaInit.cmi matitaEngine.cmi gragrep.cmi
-matitac.cmx: matitaprover.cmx matitamake.cmx matitadep.cmx matitaclean.cmx \
- matitacLib.cmx matitaWiki.cmx matitaInit.cmx matitaEngine.cmx gragrep.cmx
+matitac.cmo: matitadep.cmi matitaclean.cmi matitacLib.cmi matitaWiki.cmx \
+ matitaMisc.cmi matitaInit.cmi
+matitac.cmx: matitadep.cmx matitaclean.cmx matitacLib.cmx matitaWiki.cmx \
+ matitaMisc.cmx matitaInit.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
-matitaExcPp.cmx: matitaExcPp.cmi
+matitaExcPp.cmo: matitaEngine.cmi matitaExcPp.cmi
+matitaExcPp.cmx: matitaEngine.cmx matitaExcPp.cmi
matitaGtkMisc.cmo: matitaTypes.cmi matitaGeneratedGui.cmx buildTimeConf.cmx \
matitaGtkMisc.cmi
matitaGtkMisc.cmx: matitaTypes.cmx matitaGeneratedGui.cmx buildTimeConf.cmx \
matitaGtkMisc.cmi
-matitaGui.cmo: matitaprover.cmi matitamakeLib.cmi matitaTypes.cmi \
- matitaScript.cmi matitaMisc.cmi matitaMathView.cmi matitaGtkMisc.cmi \
- matitaGeneratedGui.cmx matitaExcPp.cmi matitaAutoGui.cmi \
- buildTimeConf.cmx matitaGui.cmi
-matitaGui.cmx: matitaprover.cmx matitamakeLib.cmx matitaTypes.cmx \
- matitaScript.cmx matitaMisc.cmx matitaMathView.cmx matitaGtkMisc.cmx \
- matitaGeneratedGui.cmx matitaExcPp.cmx matitaAutoGui.cmx \
- buildTimeConf.cmx matitaGui.cmi
-matitaInit.cmo: matitamakeLib.cmi matitaExcPp.cmi buildTimeConf.cmx \
- matitaInit.cmi
-matitaInit.cmx: matitamakeLib.cmx matitaExcPp.cmx buildTimeConf.cmx \
- matitaInit.cmi
-matitamakeLib.cmo: buildTimeConf.cmx matitamakeLib.cmi
-matitamakeLib.cmx: buildTimeConf.cmx matitamakeLib.cmi
-matitamake.cmo: matitamakeLib.cmi matitaInit.cmi matitamake.cmi
-matitamake.cmx: matitamakeLib.cmx matitaInit.cmx matitamake.cmi
-matitaMathView.cmo: matitamakeLib.cmi matitaTypes.cmi matitaScript.cmi \
- matitaMisc.cmi matitaGuiTypes.cmi matitaGtkMisc.cmi matitaExcPp.cmi \
- lablGraphviz.cmi buildTimeConf.cmx applyTransformation.cmi \
- matitaMathView.cmi
-matitaMathView.cmx: matitamakeLib.cmx matitaTypes.cmx matitaScript.cmx \
- matitaMisc.cmx matitaGuiTypes.cmi matitaGtkMisc.cmx matitaExcPp.cmx \
- lablGraphviz.cmx buildTimeConf.cmx applyTransformation.cmx \
- matitaMathView.cmi
+matitaGui.cmo: matitaTypes.cmi matitaScript.cmi matitaMisc.cmi \
+ matitaMathView.cmi matitaGtkMisc.cmi matitaGeneratedGui.cmx \
+ matitaExcPp.cmi matitaAutoGui.cmi buildTimeConf.cmx matitaGui.cmi
+matitaGui.cmx: matitaTypes.cmx matitaScript.cmx matitaMisc.cmx \
+ matitaMathView.cmx matitaGtkMisc.cmx matitaGeneratedGui.cmx \
+ matitaExcPp.cmx matitaAutoGui.cmx buildTimeConf.cmx matitaGui.cmi
+matitaInit.cmo: matitacLib.cmi matitaExcPp.cmi matitaEngine.cmi \
+ buildTimeConf.cmx matitaInit.cmi
+matitaInit.cmx: matitacLib.cmx matitaExcPp.cmx matitaEngine.cmx \
+ buildTimeConf.cmx matitaInit.cmi
+matitaMathView.cmo: matitaTypes.cmi matitaScript.cmi matitaMisc.cmi \
+ matitaGuiTypes.cmi matitaGtkMisc.cmi matitaExcPp.cmi lablGraphviz.cmi \
+ buildTimeConf.cmx applyTransformation.cmi matitaMathView.cmi
+matitaMathView.cmx: matitaTypes.cmx matitaScript.cmx matitaMisc.cmx \
+ matitaGuiTypes.cmi matitaGtkMisc.cmx matitaExcPp.cmx lablGraphviz.cmx \
+ buildTimeConf.cmx applyTransformation.cmx matitaMathView.cmi
matitaMisc.cmo: buildTimeConf.cmx matitaMisc.cmi
matitaMisc.cmx: buildTimeConf.cmx matitaMisc.cmi
matita.cmo: matitaTypes.cmi matitaScript.cmi matitaMathView.cmi \
matita.cmx: matitaTypes.cmx matitaScript.cmx matitaMathView.cmx \
matitaInit.cmx matitaGui.cmx matitaGtkMisc.cmx matitaAutoGui.cmx \
buildTimeConf.cmx applyTransformation.cmx
-matitaprover.cmo: matitaInit.cmi matitaExcPp.cmi matitaEngine.cmi \
- buildTimeConf.cmx matitaprover.cmi
-matitaprover.cmx: matitaInit.cmx matitaExcPp.cmx matitaEngine.cmx \
- buildTimeConf.cmx matitaprover.cmi
-matitaScript.cmo: matitamakeLib.cmi matitaTypes.cmi matitaMisc.cmi \
- matitaGtkMisc.cmi matitaEngine.cmi buildTimeConf.cmx \
+matitaScript.cmo: matitacLib.cmi matitaTypes.cmi matitaMisc.cmi \
+ matitaGtkMisc.cmi matitaExcPp.cmi matitaEngine.cmi buildTimeConf.cmx \
applyTransformation.cmi matitaScript.cmi
-matitaScript.cmx: matitamakeLib.cmx matitaTypes.cmx matitaMisc.cmx \
- matitaGtkMisc.cmx matitaEngine.cmx buildTimeConf.cmx \
+matitaScript.cmx: matitacLib.cmx matitaTypes.cmx matitaMisc.cmx \
+ matitaGtkMisc.cmx matitaExcPp.cmx matitaEngine.cmx buildTimeConf.cmx \
applyTransformation.cmx matitaScript.cmi
matitaTypes.cmo: matitaTypes.cmi
matitaTypes.cmx: matitaTypes.cmi
OCAMLOPT = $(OCAMLFIND) opt $(OCAMLC_FLAGS) $(OCAMLOPT_DEBUG_FLAGS)
OCAMLDEP = $(OCAMLFIND) ocamldep $(OCAMLDEP_FLAGS)
INSTALL_PROGRAMS= matita matitac
-INSTALL_PROGRAMS_LINKS_MATITA= cicbrowser
-INSTALL_PROGRAMS_LINKS_MATITAC= matitadep matitamake matitaclean matitaprover matitawiki
+INSTALL_PROGRAMS_LINKS_MATITA=
+INSTALL_PROGRAMS_LINKS_MATITAC= matitadep matitaclean matitawiki
MATITA_FLAGS = -noprofile
NODB=false
lablGraphviz.mli \
matitaTypes.mli \
matitaMisc.mli \
- matitamakeLib.mli \
- matitaExcPp.mli \
- matitaInit.mli \
matitaEngine.mli \
+ matitaExcPp.mli \
applyTransformation.mli \
- matitaAutoGui.mli \
matitacLib.mli \
- matitaprover.mli \
+ matitaInit.mli \
+ matitaAutoGui.mli \
matitaGtkMisc.mli \
matitaScript.mli \
matitaMathView.mli \
CMLI = \
matitaTypes.mli \
matitaMisc.mli \
- matitamakeLib.mli \
- matitaExcPp.mli \
- matitaInit.mli \
matitaEngine.mli \
+ matitaExcPp.mli \
applyTransformation.mli \
matitacLib.mli \
+ matitaInit.mli \
matitaWiki.mli \
- matitaprover.mli \
$(NULL)
MAINCMLI = \
matitadep.mli \
matitaclean.mli \
- matitamake.mli \
- gragrep.mli \
$(NULL)
# objects for matita (GTK GUI)
ML = buildTimeConf.ml matitaGeneratedGui.ml $(MLI:%.mli=%.ml)
MAINCML = $(MAINCMLI:%.mli=%.ml)
PROGRAMS_BYTE = \
- matita matitac cicbrowser matitadep matitaclean \
- matitamake matitaprover matitawiki
-PROGRAMS = $(PROGRAMS_BYTE) matitatop
+ matita matitac matitadep matitaclean \
+ matitawiki
+PROGRAMS = $(PROGRAMS_BYTE)
PROGRAMS_OPT = $(patsubst %,%.opt,$(PROGRAMS_BYTE))
-NOINST_PROGRAMS = dump_moo gragrep
+NOINST_PROGRAMS = dump_moo
NOINST_PROGRAMS_OPT = $(patsubst %,%.opt,$(EXTRA_PROGRAMS))
.PHONY: all
linkonly:
$(H)echo " OCAMLC matita.ml"
- $(H)$(OCAMLC) $(PKGS) -linkpkg -o matita $(CMOS) matita.ml
+ $(H)$(OCAMLC) $(PKGS) -linkpkg -o matita $(CMOS) $(OCAML_DEBUG_FLAGS) matita.ml
$(H)echo " OCAMLC matitac.ml"
- $(H)$(OCAMLC) $(CPKGS) -linkpkg -o matitac $(CCMOS) $(MAINCMOS) matitac.ml
+ $(H)$(OCAMLC) $(CPKGS) -linkpkg -o matitac $(CCMOS) $(MAINCMOS) $(OCAML_DEBUG_FLAGS) matitac.ml
.PHONY: linkonly
matita: matita.ml $(LIB_DEPS) $(CMOS)
$(H)echo " OCAMLC $<"
clean-rottened:
find . -type f -name "*.ma.*.rottened" -exec rm {} \;
-matitatop: matitatop.ml $(CLIB_DEPS) $(CCMOS)
- $(H)echo " OCAMLC $<"
- $(H)$(OCAMLC) $(CPKGS) -linkpkg -o $@ toplevellib.cma $(CCMOS) $<
-
-matitaprover: matitac
- $(H)test -f $@ || ln -s $< $@
-matitaprover.opt: matitac.opt
- $(H)test -f $@ || ln -s $< $@
-
matitadep: matitac
$(H)test -f $@ || ln -s $< $@
matitadep.opt: matitac.opt
matitaclean.opt: matitac.opt
$(H)test -f $@ || ln -s $< $@
-matitamake: matitac
- $(H)test -f $@ || ln -s $< $@
-matitamake.opt: matitac.opt
- $(H)test -f $@ || ln -s $< $@
-
-gragrep: matitac
- $(H)test -f $@ || ln -s $< $@
-gragrep.opt: matitac.opt
- $(H)test -f $@ || ln -s $< $@
-
-cicbrowser: matita
- $(H)test -f $@ || ln -s $< $@
-cicbrowser.opt: matita.opt
- $(H)test -f $@ || ln -s $< $@
-
matitaGeneratedGui.ml: matita.glade
$(H)$(LABLGLADECC) -embed $< > matitaGeneratedGui.ml
ifeq ($(DISTRIBUTED),yes)
-dist_library: install_preliminaries dist_library@standard-library
+dist_library: install_preliminaries dist_library@library
dist_library@%:
- $(H)echo "MATITAMAKE init $*"
- $(H)(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitamake init $* $(WHERE)/ma/$*)
- $(H)echo "MATITAMAKE publish $*"
- $(H)(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitamake publish $*)
- $(H)echo "MATITAMAKE destroy $*"
- $(H)(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitamake destroy $*)
+ $(H)echo "depend $*"
+ $(H)cd $*;(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitadep)
+ $(H)echo "publish $*"
+ $(H)cd $*;(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitac -system -noinnertypes)
+ $(H)echo "destroy $*"
+ $(H)cd $*;(HOME=$(WHERE) USER=builder MATITA_RT_BASE_DIR=$(WHERE) MATITA_FLAGS='$(MATITA_CFLAGS)' $(WHERE)/matitaclean)
# sqlite3 only
$(H)cp $(WHERE)/.matita/matita.db $(WHERE)/metadata.db || true
#$(H)rm -rf $(WHERE)/.matita/
matita.conf.xml \
closed.xml \
gtkmathview.matita.conf.xml \
- template_makefile.in \
AUTHORS \
LICENSE \
$(NULL)
$(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) $(MAINCMXS) matitac.ml \
$(STATIC_EXTRA_CLIBS)
strip $@
-matitaprover.opt.static: $(STATIC_LINK) $(CLIBX_DEPS) $(CCMXS) $(MAINCMXS) matitac.ml
- $(STATIC_LINK) $(STATIC_CLIBS_PROVER) -- \
- $(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) $(MAINCMXS) matitac.ml \
- $(STATIC_EXTRA_CLIBS);
- strip $@
matitadep.opt.static: matitac.opt.static
$(H)test -f $@ || ln -s $< $@
matitaclean.opt.static: matitac.opt.static
$(H)test -f $@ || ln -s $< $@
matitawiki.opt.static: matitac.opt.static
$(H)test -f $@ || ln -s $< $@
-matitamake.opt.static: matitac.opt.static
- $(H)test -f $@ || ln -s $< $@
-cicbrowser.opt.static: matita.opt.static
- $(H)test -f $@ || ln -s $< $@
-cicbrowser.opt.static.upx: matita.opt.static.upx
- $(H)test -f $@ || ln -s $< $@
%.upx: %
cp $< $@
+++ /dev/null
-#!/bin/bash
-#set -x
-TEMP=`getopt -o c:d:m: -- "$@"`
-libdir="`pwd`/library"
-matitac="`pwd`/matitac.opt"
-devel="library"
-matitadep="./matitadep.opt"
-eval set -- "$TEMP"
-while true ; do
- case "$1" in
- -d) libdir="$2"; shift 2 ;;
- -c) matitac="$2"; shift 2 ;;
- -m) devel="$2"; shift 2 ;;
- --) shift; break ;;
- *) echo "Usage: errors_bench [-c MATITAC_PATH] [-d LIBRARY_DIR] [-m MATITAMAKE_DEVEL]"; exit 1 ;;
- esac
-done
-if ! [ -d "$libdir" ] ; then
- echo "Can't find library directory '$libdir'"
- exit 2
-fi
-if ! [ -x "$matitac" ] ; then
- echo "Can't find executable Matita compiler '$matitac'"
- exit 2
-fi
-
-ma_s=$(find $libdir -name "*.ma" -type f)
-sorted_ma_s=$($matitadep -order $ma_s)
-
-log="bench_disamberrors.txt"
-rm -f "$log"
-echo -e "# FILENAME\tOUTCOME\tEXPECTED_ERROR\tERRORS\tSPURIOUS_ERRORS" > $log
-# format: tab-separated fields:
-# FILENAME OUTCOME EXPECTED_ERROR ERRORS SPURIOUS_ERRORS
-# field descriptions:
-# OUTCOME is one of {"OK","KO","UNKNOWN(n)"}, n is an exit code
-# EXPECTED_ERROR is FROM-TO, where FROM and TO are character counts
-# ERRORS, same format as above (FROM-TO)
-# SPURIOUS_ERRORS, same format as above (FROM-TO)
-log_outcome ()
-{
- echo -e "$1|$2|$3|$4|$5" >> "$log"
-}
-
-for ma in $sorted_ma_s ; do
- mo=`echo $ma | sed 's/\.ma$/.mo/'`
- make -C $libdir $mo # ensure deps for $mo have been built
- rotten_mas=$(ls $libdir/$ma.*.rottened)
- for rotten_ma in $rotten_mas ; do
- rotten_ma=$(echo $rotten_ma | sed s@^$(pwd)/@@) # prettier names
- echo "$rotten_ma ..."
- tmp="bench_disamberrors.tmp"
- $matitac $rotten_ma &> $tmp
- outcome=$?
- if [ "$outcome" = 3 ] ; then
- outcome="KO"
- elif [ "$outcome" = 0 ] ; then
- outcome="OK"
- else
- outcome="UNKNOWN($outcome)"
- fi
- supposed_error=$(grep ^error-at: $rotten_ma | cut -f 2 -d' ')
- errors=""
- spurious_errors=""
- error_pass=""
- error_loc=""
- while read e ; do
- if echo "$e" | grep -q "Error at" && [ -n "$error_pass" ] ; then
- # this is an error location line
- if echo "$e" | grep -q "Spurious" ; then
- loc=$(echo "$e" | sed 's/:.*$//' | cut -f 4 -d ' ')
- if ! echo "$spurious_errors" | grep -q "$loc"; then
- if ! [ -z "$spurious_errors" ] ; then spurious_errors="$spurious_errors," ; fi
- spurious_errors="$spurious_errors$loc"
- fi
- else
- loc=$(echo "$e" | sed 's/:.*$//' | cut -f 3 -d ' ')
- if ! echo "$errors" | grep -q "$loc"; then
- if ! [ -z "$errors" ] ; then errors="$errors," ; fi
- errors="$errors$loc"
- fi
- fi
- fi
- error_pass=$(echo "$e" | grep "during phases " | sed 's/:.*$//' | cut -f 6 -d' ' | grep "4\|6")
- done < $tmp
- log_outcome $rotten_ma $outcome $supposed_error $errors $spurious_errors
- done
-done
-
-echo "See $log for benchmark results"
+++ /dev/null
-#!/usr/bin/python
-import sys
-
-stats = {}
-stats['total'] = []
-stats['precise'] = []
-stats['imprecise'] = []
-stats['false-positives'] = []
-stats['undetected'] = []
-
-for line in open(sys.argv[1]):
- line = line.rstrip()
- if line[0] == '#':
- continue
- cols = line.split('|')
- name = cols[0]
- if cols[1] != 'KO':
- print "Warning: outcome of %s is %s, skipping it" % (name, cols[1])
- continue
- expected_error = cols[2]
- real_errors = cols[3].split(',')
- spurious_errors = cols[4].split(',')
-
- stats['total'].append((name,real_errors))
- if set([expected_error]) == set(real_errors):
- if expected_error in spurious_errors:
- stats['false-positives'].append((name,real_errors))
- else:
- stats['precise'].append((name,real_errors))
- elif expected_error in real_errors:
- if expected_error in spurious_errors:
- stats['false-positives'].append((name,real_errors))
- else:
- stats['imprecise'].append((name,real_errors))
- else:
- if expected_error in spurious_errors:
- stats['false-positives'].append((name,real_errors))
- else:
- stats['undetected'].append((name,real_errors))
-
-for field in ['undetected', 'imprecise', 'false-positives']:
- print "===================="
- print "%s:" % field
- for name,_ in stats[field]:
- print " %s" % name
-
-def average(l):
- if not(len(l)):
- return "N/A"
- else:
- return "%6.1f" % (reduce(lambda acc,x: acc+x,l,0)/float(len(l)))
-
-def mymax(l):
- if not(len(l)):
- return 0
- else:
- return max(l)
-
-def format_stat(field):
- global stats
- lista = stats[field]
- errors = map(lambda x: len(x[1]),lista)
- locations = map(lambda x: len(set(x[1])),lista)
- return r'%-15s & %6d & %6s & %6d & %6s & %6d & %6.1f\%% \\' % \
- (field, len(lista), average(locations),mymax(locations),
- average(errors),mymax(errors),float(len(lista)) /
- len(stats['total']) * 100)
-
-print "\n"
-print format_stat('precise')
-print format_stat('imprecise')
-print format_stat('false-positives')
-print format_stat('undetected')
-print r'\hline'
-print format_stat('total')
let matita_conf = runtime_base_dir ^ "/matita.conf.xml"
let closed_xml = runtime_base_dir ^ "/closed.xml"
let gtkmathview_conf = runtime_base_dir ^ "/gtkmathview.matita.conf.xml"
-let matitamake_makefile_template = runtime_base_dir ^ "/template_makefile.in"
-let matitamake_makefile_template_devel =
- runtime_base_dir ^ "/template_makefile_devel.in"
let stdlib_dir_devel = runtime_base_dir ^ "/library"
let stdlib_dir_installed = runtime_base_dir ^ "/ma/standard-library"
let help_dir = runtime_base_dir ^ "/help"
--- /dev/null
+DIR=$(shell basename $$PWD)
+
+$(DIR) all:
+ ../../../matitac
+$(DIR).opt opt all.opt:
+ ../../../matitac.opt
+clean:
+ ../../../matitaclean
+clean.opt:
+ ../../../matitaclean.opt
+depend:
+ ../matitadep
+depend.opt:
+ ../matitadep.opt
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/blt/defs".
+
include "preamble.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/blt/props".
+
include "blt/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/definitions".
+
include "types/defs.ma".
--- /dev/null
+definitions.ma blt/defs.ma plist/defs.ma types/defs.ma
+preamble.ma coq.ma
+theory.ma blt/props.ma ext/arith.ma ext/tactics.ma plist/props.ma types/props.ma
+spare.ma theory.ma
+plist/props.ma plist/defs.ma
+plist/defs.ma preamble.ma
+ext/tactics.ma preamble.ma
+ext/arith.ma preamble.ma
+types/props.ma types/defs.ma
+types/defs.ma preamble.ma
+blt/props.ma blt/defs.ma
+blt/defs.ma preamble.ma
+coq.ma
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith".
+
include "preamble.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/ext/tactics".
+
include "preamble.ma".
+++ /dev/null
-H= @
-
-RT_BASEDIR=../../../
-OPTIONS=-bench -onepass -system
-MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS)
-CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS)
-MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS)
-CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS)
-
-devel:=$(shell basename `pwd`)
-
-ifneq "$(SRC)" ""
- XXX="SRC=$(SRC)"
-endif
-
-all: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel)
-clean: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel)
-cleanall: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all
-
-all.opt opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel)
-clean.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel)
-cleanall.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all
-
-%.mo: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@
-%.mo.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $(@:.opt=)
-
-preall:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel)
-
-preall.opt:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) init $(devel)
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/plist/defs".
+
include "preamble.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/plist/props".
+
include "plist/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/preamble".
-include' "../../../legacy/coq.ma".
+
+include "coq.ma".
alias symbol "eq" = "Coq's leibnitz's equality".
alias symbol "leq" = "Coq's natural 'less or equal to'".
--- /dev/null
+baseuri=cic:/matita/LAMBDA-TYPES/Base-1
+include_paths= ../../../legacy
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/spare".
+
include "theory.ma".
(*
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/theory".
+
include "ext/tactics.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/types/defs".
+
include "preamble.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-1/types/props".
+
include "types/defs.ma".
--- /dev/null
+DIR=$(shell basename $$PWD)
+
+MMAS = $(shell find -name "*.mma")
+MAS = $(MMAS:%.mma=%.ma)
+
+%.ma: %.mma
+ echo -e "$< preamble.ma \npreamble.ma" > depends
+ ../../../matitac.opt -dump $@ $< 2>/dev/null
+ ../../../matitadep.opt
+ ../../../matitac.opt $@
+
+$(DIR) all: $(MAS)
+ ../../../matitac
+$(DIR).opt opt all.opt: $(MAS)
+ ../../../matitac.opt
+clean:
+ ../../../matitaclean
+ rm -f $(MAS)
+clean.opt:
+ ../../../matitaclean.opt
+ rm -f $(MAS)
+
+theory2.ma: theory2.mma ext/tactics2.ma ext/arith2.ma types/props2.ma blt/props2.ma plist/props2.ma
+types/props2.ma: types/props2.mma types/defs2.ma
+blt/props2.ma: blt/props2.mma blt/defs2.ma
+plist/props2.ma: plist/props2.mma plist/defs2.ma
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-2/blt/defs".
-
-include "preamble.ma".
-
-
-(* object blt not inlined *)
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "preamble.ma".
+
+(* object blt not inlined *)
+
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-2/blt/props".
-
-include "blt/defs.ma".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/blt/props/lt_blt.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/blt/props/le_bge.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/blt/props/blt_lt.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/blt/props/bge_le.con".
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "blt/defs2.ma".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/blt/props/lt_blt.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/blt/props/le_bge.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/blt/props/blt_lt.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/blt/props/bge_le.con".
+
+++ /dev/null
-theory.ma: theory.mma ext/tactics.ma ext/arith.ma types/props.ma blt/props.ma plist/props.ma | ext/tactics.mo.opt ext/arith.mo.opt types/props.mo.opt blt/props.mo.opt plist/props.mo.opt
-ext/tactics.ma: ext/tactics.mma preamble.ma | preamble.mo.opt
-ext/arith.ma: ext/arith.mma preamble.ma | preamble.mo.opt
-types/defs.ma: types/defs.mma preamble.ma | preamble.mo.opt
-types/props.ma: types/props.mma types/defs.ma | types/defs.mo.opt
-blt/defs.ma: blt/defs.mma preamble.ma | preamble.mo.opt
-blt/props.ma: blt/props.mma blt/defs.ma | blt/defs.mo.opt
-plist/defs.ma: plist/defs.mma preamble.ma | preamble.mo.opt
-plist/props.ma: plist/props.mma plist/defs.ma | plist/defs.mo.opt
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-2/ext/arith".
-
-include "preamble.ma".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/nat_dec.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/simpl_plus_r.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_plus_r.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/plus_permute_2_in_3.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/plus_permute_2_in_3_assoc.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/plus_O.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_Sx_SO.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/eq_nat_dec.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/neq_eq_e.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_false.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_Sx_x.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_n_pred.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_le.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_plus_minus_sym.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_minus_minus.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_minus_plus.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_minus.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_trans_plus_r.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_x_O.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_gen_S.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_x_plus_x_Sy.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/simpl_lt_plus_r.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_x_Sy.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_plus_minus.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_plus_minus_r.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_x_SO.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_x_pred_y.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_le_minus.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_le_e.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_eq_e.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_eq_gt_e.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_gen_xS.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_lt_false.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_neq.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/arith0.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/O_minus.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_minus.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/plus_plus.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_S_minus.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_x_pred_y.con".
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "preamble.ma".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/nat_dec.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/simpl_plus_r.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_plus_r.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/plus_permute_2_in_3.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/plus_permute_2_in_3_assoc.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/plus_O.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_Sx_SO.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/eq_nat_dec.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/neq_eq_e.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_false.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_Sx_x.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_n_pred.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_le.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_plus_minus_sym.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_minus_minus.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_minus_plus.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_minus.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_trans_plus_r.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_x_O.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_gen_S.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_x_plus_x_Sy.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/simpl_lt_plus_r.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_x_Sy.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_plus_minus.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_plus_minus_r.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_x_SO.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_x_pred_y.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_le_minus.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_le_e.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_eq_e.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_eq_gt_e.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_gen_xS.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_lt_false.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_neq.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/arith0.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/O_minus.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/minus_minus.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/plus_plus.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/le_S_minus.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/arith/lt_x_pred_y.con".
+
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-2/ext/tactics".
-
-include "preamble.ma".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/tactics/insert_eq.con".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/tactics/unintro.con".
-
-inline procedural
-"cic:/matita/LAMBDA-TYPES/Base-1/ext/tactics/xinduction.con".
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "preamble.ma".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/tactics/insert_eq.con".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/ext/tactics/unintro.con".
+
+inline procedural
+"cic:/matita/LAMBDA-TYPES/Base-1/ext/tactics/xinduction.con".
+
+++ /dev/null
-H=@
-
-RT_BASEDIR=../../../
-OPTIONS=-bench
-MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS)
-CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS)
-MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS)
-CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS)
-
-devel:=$(shell basename `pwd`)
-
-ifneq "$(SRC)" ""
- XXX="SRC=$(SRC)"
-endif
-
-all: build_mas preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel)
-clean: clean_mas preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel)
-cleanall: clean_mas preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all
-
-all.opt opt: build_mas preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel)
-clean.opt: clean_mas preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel)
-cleanall.opt: clean_mas preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all
-
-%.mo: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@
-%.mo.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $(@:.opt=)
-
-preall:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel)
-
-preall.opt:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) init $(devel)
-
-# FG: added part ############################################################
-
-MATITAC = $(RT_BASEDIR)/matitac.opt
-
-MMAS = $(shell find -name "*.mma")
-MAS = $(MMAS:%.mma=%.ma)
-
-build_mas: preall.opt $(MAS)
-
-clean_mas:
- $(H)rm -f $(MAS)
-
-%.ma: %.mma
- $(H)$(MATITAC) -dump $@ $< $(OPTIONS)
-
-include depend
-
-.DELETE_ON_ERROR:
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-2/plist/defs".
-
-include "preamble.ma".
-
-
-(* object PList not inlined *)
-
-
-(* object PConsTail not inlined *)
-
-
-(* object Ss not inlined *)
-
-
-(* object papp not inlined *)
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "preamble.ma".
+
+
+(* object PList not inlined *)
+
+
+(* object PConsTail not inlined *)
+
+
+(* object Ss not inlined *)
+
+
+(* object papp not inlined *)
+
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-2/plist/props".
-
-include "plist/defs.ma".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/plist/props/papp_ss.con".
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "plist/defs2.ma".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/plist/props/papp_ss.con".
+
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-2/preamble".
-
-include "../Base-1/definitions.ma".
-
-default "equality"
- cic:/Coq/Init/Logic/eq.ind
- cic:/matita/LAMBDA-TYPES/Base-1/preamble/sym_eq.con
- cic:/matita/LAMBDA-TYPES/Base-1/preamble/trans_eq.con
- cic:/Coq/Init/Logic/eq_ind.con
- cic:/Coq/Init/Logic/eq_ind_r.con
- cic:/Coq/Init/Logic/eq_rec.con
- cic:/Coq/Init/Logic/eq_rec_r.con
- cic:/Coq/Init/Logic/eq_rect.con
- cic:/Coq/Init/Logic/eq_rect_r.con
- cic:/matita/LAMBDA-TYPES/Base-1/preamble/f_equal.con
- cic:/matita/legacy/coq/f_equal1.con.
--- /dev/null
+baseuri=cic:/matita/LAMBDA-TYPES/Base-2
+include_paths= ../Base-1 ../../../legacy
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-2/theory".
-
-include "ext/tactics.ma".
-
-include "ext/arith.ma".
-
-include "types/props.ma".
-
-include "blt/props.ma".
-
-include "plist/props.ma".
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "ext/tactics2.ma".
+
+include "ext/arith2.ma".
+
+include "types/props2.ma".
+
+include "blt/props2.ma".
+
+include "plist/props2.ma".
+
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-2/types/defs".
-
-include "preamble.ma".
-
-
-(* object and3 not inlined *)
-
-
-(* object and4 not inlined *)
-
-
-(* object or3 not inlined *)
-
-
-(* object or4 not inlined *)
-
-
-(* object ex3 not inlined *)
-
-
-(* object ex4 not inlined *)
-
-
-(* object ex_2 not inlined *)
-
-
-(* object ex2_2 not inlined *)
-
-
-(* object ex3_2 not inlined *)
-
-
-(* object ex4_2 not inlined *)
-
-
-(* object ex_3 not inlined *)
-
-
-(* object ex2_3 not inlined *)
-
-
-(* object ex3_3 not inlined *)
-
-
-(* object ex4_3 not inlined *)
-
-
-(* object ex3_4 not inlined *)
-
-
-(* object ex4_4 not inlined *)
-
-
-(* object ex4_5 not inlined *)
-
-
-(* object ex5_5 not inlined *)
-
-
-(* object ex6_6 not inlined *)
-
-
-(* object ex6_7 not inlined *)
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "preamble.ma".
+
+
+(* object and3 not inlined *)
+
+
+(* object and4 not inlined *)
+
+
+(* object or3 not inlined *)
+
+
+(* object or4 not inlined *)
+
+
+(* object ex3 not inlined *)
+
+
+(* object ex4 not inlined *)
+
+
+(* object ex_2 not inlined *)
+
+
+(* object ex2_2 not inlined *)
+
+
+(* object ex3_2 not inlined *)
+
+
+(* object ex4_2 not inlined *)
+
+
+(* object ex_3 not inlined *)
+
+
+(* object ex2_3 not inlined *)
+
+
+(* object ex3_3 not inlined *)
+
+
+(* object ex4_3 not inlined *)
+
+
+(* object ex3_4 not inlined *)
+
+
+(* object ex4_4 not inlined *)
+
+
+(* object ex4_5 not inlined *)
+
+
+(* object ex5_5 not inlined *)
+
+
+(* object ex6_6 not inlined *)
+
+
+(* object ex6_7 not inlined *)
+
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Base-2/types/props".
-
-include "types/defs.ma".
-
-inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/types/props/ex2_sym.con".
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "types/defs2.ma".
+
+inline procedural "cic:/matita/LAMBDA-TYPES/Base-1/types/props/ex2_sym.con".
+
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/A/defs".
-include "preamble.ma".
+
+include "preamble3.ma".
inductive A: Set \def
| ASort: nat \to (nat \to A)
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/C/defs".
+
include "T/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/C/props".
+
include "C/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/G/defs".
-include "preamble.ma".
+
+include "preamble3.ma".
record G : Set \def {
next: (nat \to nat);
--- /dev/null
+DIR=$(shell basename $$PWD)
+
+$(DIR) all:
+ ../../../matitac
+$(DIR).opt opt all.opt:
+ ../../../matitac.opt
+clean:
+ ../../../matitaclean
+clean.opt:
+ ../../../matitaclean.opt
+depend:
+ ../matitadep
+depend.opt:
+ ../matitadep.opt
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/dec".
+
include "T/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/defs".
-include "preamble.ma".
+
+include "preamble3.ma".
inductive B: Set \def
| Abbr: B
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/props".
+
include "T/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/aplus/defs".
+
include "asucc/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/aplus/props".
+
include "aplus/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/aprem/defs".
+
include "A/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/aprem/props".
+
include "aprem/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/arity/aprem".
+
include "arity/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/arity/cimp".
+
include "arity/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/arity/defs".
+
include "leq/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/arity/fwd".
+
include "arity/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/arity/lift1".
+
include "arity/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/arity/pr3".
+
include "csuba/arity.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/arity/props".
+
include "arity/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/arity/subst0".
+
include "arity/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/asucc/defs".
+
include "A/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/asucc/fwd".
+
include "asucc/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/cimp/defs".
+
include "getl/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/cimp/props".
+
include "cimp/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/clear/defs".
+
include "C/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/clear/drop".
+
include "clear/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/clear/fwd".
+
include "clear/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/clear/props".
+
include "clear/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/clen/defs".
+
include "C/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/clen/getl".
+
include "clen/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/cnt/defs".
+
include "T/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/cnt/props".
+
include "cnt/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csuba/arity".
+
include "csuba/getl.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csuba/clear".
+
include "csuba/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csuba/defs".
+
include "arity/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csuba/drop".
+
include "csuba/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csuba/fwd".
+
include "csuba/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csuba/getl".
+
include "csuba/drop.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csuba/props".
+
include "csuba/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubc/arity".
+
include "csubc/csuba.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubc/clear".
+
include "csubc/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubc/csuba".
+
include "csubc/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubc/defs".
+
include "sc3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubc/drop".
+
include "csubc/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubc/drop1".
+
include "csubc/drop.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubc/getl".
+
include "csubc/drop.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubc/props".
+
include "csubc/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubst0/clear".
+
include "csubst0/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubst0/defs".
+
include "subst0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubst0/drop".
+
include "csubst0/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubst0/fwd".
+
include "csubst0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubst0/getl".
+
include "csubst0/clear.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubst0/props".
+
include "csubst0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubst1/defs".
+
include "csubst0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubst1/fwd".
+
include "csubst1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubst1/getl".
+
include "csubst1/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubst1/props".
+
include "csubst1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubt/clear".
+
include "csubt/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubt/defs".
+
include "ty3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubt/drop".
+
include "csubt/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubt/fwd".
+
include "csubt/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubt/getl".
+
include "csubt/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubt/pc3".
+
include "csubt/getl.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubt/props".
+
include "csubt/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/csubt/ty3".
+
include "csubt/pc3.ma".
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/definitions".
-
-include "tlt/defs.ma".
-
-include "iso/defs.ma".
-
-include "clen/defs.ma".
-
-include "flt/defs.ma".
-
-include "cnt/defs.ma".
-
-include "cimp/defs.ma".
-
-include "subst1/defs.ma".
-
-include "csubst1/defs.ma".
-
-include "fsubst0/defs.ma".
-
-include "next_plus/defs.ma".
-
-include "tau1/defs.ma".
-
-include "llt/defs.ma".
-
-include "aprem/defs.ma".
-
-include "ex0/defs.ma".
-
-include "wcpr0/defs.ma".
-
-include "csuba/defs.ma".
-
-include "nf2/defs.ma".
-
-include "ex2/defs.ma".
-
-include "csubc/defs.ma".
-
-include "pc1/defs.ma".
-
-include "ex1/defs.ma".
-
-include "csubt/defs.ma".
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+
+
+include "tlt/defs.ma".
+
+include "iso/defs.ma".
+
+include "clen/defs.ma".
+
+include "flt/defs.ma".
+
+include "cnt/defs.ma".
+
+include "cimp/defs.ma".
+
+include "subst1/defs.ma".
+
+include "csubst1/defs.ma".
+
+include "fsubst0/defs.ma".
+
+include "next_plus/defs.ma".
+
+include "tau1/defs.ma".
+
+include "llt/defs.ma".
+
+include "aprem/defs.ma".
+
+include "ex0/defs.ma".
+
+include "wcpr0/defs.ma".
+
+include "csuba/defs.ma".
+
+include "nf2/defs.ma".
+
+include "ex2/defs.ma".
+
+include "csubc/defs.ma".
+
+include "pc1/defs.ma".
+
+include "ex1/defs.ma".
+
+include "csubt/defs.ma".
+
--- /dev/null
+definitions3.ma aprem/defs.ma cimp/defs.ma clen/defs.ma cnt/defs.ma csuba/defs.ma csubc/defs.ma csubst1/defs.ma csubt/defs.ma ex0/defs.ma ex1/defs.ma ex2/defs.ma flt/defs.ma fsubst0/defs.ma iso/defs.ma llt/defs.ma next_plus/defs.ma nf2/defs.ma pc1/defs.ma subst1/defs.ma tau1/defs.ma tlt/defs.ma wcpr0/defs.ma
+preamble3.ma theory.ma
+spare.ma theory.ma
+theory3.ma ex0/props.ma ex1/props.ma ex2/props.ma pr3/wcpr0.ma subst0/tlt.ma tau1/cnt.ma ty3/dec.ma ty3/nf2.ma ty3/tau0.ma wcpr0/fwd.ma
+tlist/props.ma tlist/defs.ma
+tlist/defs.ma T/defs.ma
+clen/defs.ma C/defs.ma s/defs.ma
+clen/getl.ma clen/defs.ma getl/props.ma
+leq/props.ma aplus/props.ma leq/defs.ma
+leq/asucc.ma aplus/props.ma leq/props.ma
+leq/defs.ma aplus/defs.ma
+leq/fwd.ma leq/defs.ma
+pr3/props.ma pr1/props.ma pr2/props.ma pr3/pr1.ma
+pr3/pr3.ma pr2/pr2.ma pr3/props.ma
+pr3/defs.ma pr2/defs.ma
+pr3/fwd.ma pr2/fwd.ma pr3/props.ma
+pr3/subst1.ma pr2/subst1.ma pr3/defs.ma
+pr3/iso.ma iso/props.ma pr3/fwd.ma tlist/props.ma
+pr3/wcpr0.ma pr3/props.ma wcpr0/getl.ma
+pr3/pr1.ma pr1/defs.ma pr3/defs.ma
+ty3/fsubst0.ma csubst0/props.ma getl/getl.ma pc3/fsubst0.ma ty3/props.ma
+ty3/nf2.ma nf2/arity.ma pc3/nf2.ma ty3/arity.ma
+ty3/props.ma pc3/fwd.ma ty3/fwd.ma
+ty3/arity_props.ma sc3/arity.ma ty3/arity.ma ty3/fwd.ma
+ty3/arity.ma arity/pr3.ma asucc/fwd.ma ty3/pr3_props.ma
+ty3/pr3_props.ma ty3/pr3.ma
+ty3/tau0.ma tau0/defs.ma ty3/pr3_props.ma
+ty3/pr3.ma csubt/ty3.ma pc1/props.ma pc3/pc1.ma pc3/wcpr0.ma ty3/fsubst0.ma ty3/subst1.ma
+ty3/defs.ma G/defs.ma pc3/defs.ma
+ty3/fwd.ma pc3/props.ma ty3/defs.ma
+ty3/dec.ma getl/dec.ma getl/flt.ma pc3/dec.ma ty3/pr3_props.ma
+ty3/subst1.ma csubst1/fwd.ma csubst1/getl.ma getl/getl.ma pc3/fwd.ma pc3/subst1.ma ty3/props.ma
+cnt/props.ma cnt/defs.ma lift/fwd.ma
+cnt/defs.ma T/defs.ma
+fsubst0/defs.ma csubst0/defs.ma subst0/defs.ma
+fsubst0/fwd.ma fsubst0/defs.ma
+iso/props.ma iso/fwd.ma
+iso/defs.ma T/defs.ma
+iso/fwd.ma iso/defs.ma tlist/defs.ma
+lift/props.ma lift/fwd.ma s/props.ma tlist/defs.ma
+lift/defs.ma T/defs.ma s/defs.ma tlist/defs.ma
+lift/tlt.ma lift/fwd.ma tlt/props.ma
+lift/fwd.ma lift/defs.ma
+flt/props.ma C/props.ma flt/defs.ma
+flt/defs.ma C/defs.ma
+A/defs.ma preamble3.ma
+subst0/props.ma lift/props.ma subst0/fwd.ma
+subst0/defs.ma lift/defs.ma
+subst0/tlt.ma lift/props.ma lift/tlt.ma subst0/defs.ma
+subst0/fwd.ma lift/props.ma subst0/defs.ma
+subst0/subst0.ma subst0/props.ma
+subst0/dec.ma lift/props.ma subst0/defs.ma
+pr1/props.ma T/props.ma pr0/subst1.ma pr1/defs.ma subst1/props.ma
+pr1/defs.ma pr0/defs.ma
+pr1/pr1.ma pr0/pr0.ma pr1/props.ma
+T/props.ma T/defs.ma
+T/defs.ma preamble3.ma
+T/dec.ma T/defs.ma
+sc3/props.ma arity/aprem.ma arity/lift1.ma csuba/arity.ma drop1/getl.ma drop1/props.ma lift1/props.ma llt/props.ma nf2/lift1.ma sc3/defs.ma sn3/lift1.ma
+sc3/arity.ma csubc/arity.ma csubc/drop1.ma csubc/getl.ma csubc/props.ma
+sc3/defs.ma arity/defs.ma drop1/defs.ma sn3/defs.ma
+tau1/props.ma tau0/props.ma tau1/defs.ma
+tau1/defs.ma tau0/defs.ma
+tau1/cnt.ma cnt/props.ma tau1/props.ma
+aplus/props.ma aplus/defs.ma next_plus/props.ma
+aplus/defs.ma asucc/defs.ma
+asucc/defs.ma A/defs.ma G/defs.ma
+asucc/fwd.ma asucc/defs.ma
+aprem/props.ma aprem/defs.ma leq/defs.ma
+aprem/defs.ma A/defs.ma
+nf2/props.ma nf2/defs.ma pr2/fwd.ma
+nf2/arity.ma arity/subst0.ma nf2/fwd.ma
+nf2/pr3.ma nf2/defs.ma pr3/pr3.ma
+nf2/defs.ma pr2/defs.ma
+nf2/fwd.ma T/props.ma nf2/defs.ma pr2/clen.ma subst0/dec.ma
+nf2/dec.ma C/props.ma nf2/defs.ma pr0/dec.ma pr2/clen.ma pr2/fwd.ma
+nf2/lift1.ma drop1/defs.ma nf2/props.ma
+nf2/iso.ma iso/props.ma nf2/pr3.ma pr3/fwd.ma
+drop/props.ma drop/fwd.ma lift/props.ma r/props.ma
+drop/defs.ma C/defs.ma lift/defs.ma r/defs.ma
+drop/fwd.ma drop/defs.ma
+csuba/drop.ma csuba/fwd.ma drop/fwd.ma
+csuba/clear.ma clear/fwd.ma csuba/defs.ma
+csuba/props.ma csuba/defs.ma
+csuba/arity.ma T/props.ma arity/props.ma csuba/getl.ma csuba/props.ma
+csuba/defs.ma arity/defs.ma
+csuba/fwd.ma csuba/defs.ma
+csuba/getl.ma csuba/clear.ma csuba/drop.ma getl/clear.ma
+C/props.ma C/defs.ma T/props.ma
+C/defs.ma T/defs.ma
+csubt/drop.ma csubt/defs.ma drop/fwd.ma
+csubt/clear.ma clear/fwd.ma csubt/defs.ma
+csubt/props.ma csubt/defs.ma
+csubt/pc3.ma csubt/getl.ma pc3/left.ma
+csubt/defs.ma ty3/defs.ma
+csubt/fwd.ma csubt/defs.ma
+csubt/ty3.ma csubt/pc3.ma csubt/props.ma
+csubt/getl.ma csubt/clear.ma csubt/drop.ma csubt/fwd.ma getl/clear.ma
+cimp/props.ma cimp/defs.ma getl/getl.ma
+cimp/defs.ma getl/defs.ma
+drop1/props.ma drop/props.ma drop1/defs.ma getl/defs.ma
+drop1/defs.ma drop/defs.ma lift1/defs.ma
+drop1/getl.ma drop1/defs.ma getl/drop.ma
+lift1/props.ma drop1/defs.ma lift/props.ma lift1/defs.ma
+lift1/defs.ma lift/defs.ma
+lift1/fwd.ma lift/fwd.ma lift1/defs.ma
+pr2/pr2.ma getl/props.ma pr0/pr0.ma pr2/defs.ma
+pr2/props.ma getl/clear.ma getl/drop.ma pr0/props.ma pr2/defs.ma
+pr2/defs.ma getl/defs.ma pr0/defs.ma
+pr2/fwd.ma getl/clear.ma getl/drop.ma pr0/fwd.ma pr2/defs.ma
+pr2/subst1.ma csubst1/fwd.ma csubst1/getl.ma getl/drop.ma pr0/fwd.ma pr0/subst1.ma pr2/defs.ma subst1/subst1.ma
+pr2/clen.ma clen/getl.ma pr2/props.ma
+pc3/fsubst0.ma csubst0/getl.ma fsubst0/defs.ma pc3/left.ma
+pc3/nf2.ma nf2/pr3.ma pc3/defs.ma
+pc3/pc1.ma pc1/defs.ma pc3/defs.ma pr3/pr1.ma
+pc3/props.ma pc3/defs.ma pr3/pr3.ma
+pc3/left.ma pc3/props.ma
+pc3/defs.ma pr3/defs.ma
+pc3/fwd.ma pc3/props.ma pr3/fwd.ma
+pc3/dec.ma nf2/fwd.ma ty3/arity_props.ma ty3/pr3.ma
+pc3/subst1.ma pc3/props.ma pr3/subst1.ma
+pc3/wcpr0.ma pc3/props.ma wcpr0/getl.ma
+pr0/props.ma pr0/defs.ma subst0/subst0.ma
+pr0/pr0.ma lift/tlt.ma pr0/fwd.ma
+pr0/defs.ma subst0/defs.ma
+pr0/fwd.ma pr0/props.ma
+pr0/dec.ma T/dec.ma T/props.ma pr0/fwd.ma subst0/dec.ma
+pr0/subst1.ma pr0/props.ma subst1/defs.ma
+subst1/props.ma subst0/props.ma subst1/defs.ma
+subst1/defs.ma subst0/defs.ma
+subst1/fwd.ma subst0/props.ma subst1/defs.ma
+subst1/subst1.ma subst0/subst0.ma subst1/fwd.ma
+tlt/props.ma tlt/defs.ma
+tlt/defs.ma T/defs.ma
+r/props.ma r/defs.ma s/defs.ma
+r/defs.ma T/defs.ma
+wcpr0/defs.ma C/defs.ma pr0/defs.ma
+wcpr0/fwd.ma wcpr0/defs.ma
+wcpr0/getl.ma getl/props.ma wcpr0/defs.ma
+G/defs.ma preamble3.ma
+csubst0/drop.ma csubst0/fwd.ma drop/fwd.ma s/props.ma
+csubst0/clear.ma clear/fwd.ma csubst0/fwd.ma
+csubst0/props.ma csubst0/defs.ma
+csubst0/defs.ma C/defs.ma subst0/defs.ma
+csubst0/fwd.ma csubst0/defs.ma
+csubst0/getl.ma csubst0/clear.ma csubst0/drop.ma getl/fwd.ma
+next_plus/props.ma next_plus/defs.ma
+next_plus/defs.ma G/defs.ma
+tau0/props.ma getl/drop.ma tau0/defs.ma
+tau0/defs.ma G/defs.ma getl/defs.ma
+csubc/drop.ma csubc/defs.ma sc3/props.ma
+csubc/clear.ma csubc/defs.ma
+csubc/props.ma csubc/defs.ma sc3/props.ma
+csubc/arity.ma arity/defs.ma csubc/csuba.ma
+csubc/drop1.ma csubc/drop.ma
+csubc/defs.ma sc3/defs.ma
+csubc/csuba.ma csuba/defs.ma csubc/defs.ma sc3/props.ma
+csubc/getl.ma csubc/clear.ma csubc/drop.ma
+arity/props.ma arity/fwd.ma
+arity/aprem.ma aprem/props.ma arity/cimp.ma arity/props.ma
+arity/pr3.ma arity/subst0.ma csuba/arity.ma pr0/fwd.ma pr1/defs.ma pr3/defs.ma wcpr0/getl.ma
+arity/defs.ma getl/defs.ma leq/defs.ma
+arity/fwd.ma arity/defs.ma getl/drop.ma leq/asucc.ma leq/fwd.ma
+arity/subst0.ma arity/props.ma csubst0/getl.ma csubst0/props.ma fsubst0/fwd.ma getl/getl.ma subst0/dec.ma subst0/fwd.ma
+arity/lift1.ma arity/props.ma drop1/defs.ma
+arity/cimp.ma arity/defs.ma cimp/props.ma
+ex2/props.ma arity/fwd.ma ex2/defs.ma nf2/defs.ma pr2/fwd.ma
+ex2/defs.ma C/defs.ma
+getl/drop.ma clear/drop.ma getl/props.ma r/props.ma
+getl/clear.ma clear/drop.ma getl/props.ma
+getl/props.ma clear/props.ma drop/props.ma getl/fwd.ma
+getl/defs.ma clear/defs.ma drop/defs.ma
+getl/fwd.ma clear/fwd.ma drop/fwd.ma getl/defs.ma
+getl/dec.ma getl/props.ma
+getl/flt.ma clear/props.ma flt/props.ma getl/fwd.ma
+getl/getl.ma getl/clear.ma getl/drop.ma
+clear/drop.ma clear/fwd.ma drop/fwd.ma
+clear/props.ma clear/fwd.ma
+clear/defs.ma C/defs.ma
+clear/fwd.ma clear/defs.ma
+s/props.ma s/defs.ma
+s/defs.ma T/defs.ma
+pc1/props.ma pc1/defs.ma pr1/pr1.ma
+pc1/defs.ma pr1/defs.ma
+sn3/nf2.ma nf2/dec.ma nf2/pr3.ma sn3/defs.ma
+sn3/props.ma iso/props.ma nf2/iso.ma pr3/iso.ma sn3/fwd.ma sn3/nf2.ma
+sn3/defs.ma pr3/defs.ma
+sn3/fwd.ma pr3/props.ma sn3/defs.ma
+sn3/lift1.ma drop1/defs.ma lift1/fwd.ma sn3/props.ma
+llt/props.ma leq/defs.ma llt/defs.ma
+llt/defs.ma A/defs.ma
+ex1/props.ma arity/defs.ma ex1/defs.ma leq/props.ma nf2/pr3.ma nf2/props.ma pc3/fwd.ma ty3/fwd.ma
+ex1/defs.ma C/defs.ma
+ex0/props.ma aplus/props.ma ex0/defs.ma leq/defs.ma
+ex0/defs.ma A/defs.ma G/defs.ma
+csubst1/props.ma csubst1/defs.ma subst1/defs.ma
+csubst1/defs.ma csubst0/defs.ma
+csubst1/fwd.ma csubst0/fwd.ma csubst1/defs.ma subst1/props.ma
+csubst1/getl.ma csubst0/getl.ma csubst0/props.ma csubst1/props.ma drop/props.ma subst1/props.ma
+theory.ma
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/drop/defs".
+
include "C/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/drop/fwd".
+
include "drop/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/drop/props".
+
include "drop/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/drop1/defs".
+
include "drop/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/drop1/getl".
+
include "drop1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/drop1/props".
+
include "drop1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ex0/defs".
+
include "A/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ex0/props".
+
include "ex0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ex1/defs".
+
include "C/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ex1/props".
+
include "ex1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ex2/defs".
+
include "C/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ex2/props".
+
include "ex2/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/flt/defs".
+
include "C/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/flt/props".
+
include "flt/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/fsubst0/defs".
+
include "csubst0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/fsubst0/fwd".
+
include "fsubst0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/getl/clear".
+
include "getl/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/getl/dec".
+
include "getl/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/getl/defs".
+
include "drop/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/getl/drop".
+
include "getl/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/getl/flt".
+
include "getl/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/getl/fwd".
+
include "getl/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/getl/getl".
+
include "getl/drop.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/getl/props".
+
include "getl/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/iso/defs".
+
include "T/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/iso/fwd".
+
include "iso/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/iso/props".
+
include "iso/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/leq/asucc".
+
include "leq/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/leq/defs".
+
include "aplus/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/leq/fwd".
+
include "leq/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/leq/props".
+
include "leq/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/lift/defs".
+
include "T/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/lift/fwd".
+
include "lift/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/lift/props".
+
include "tlist/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/lift/tlt".
+
include "lift/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/lift1/defs".
+
include "lift/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/lift1/fwd".
+
include "lift1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/lift1/props".
+
include "lift1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/llt/defs".
+
include "A/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/llt/props".
+
include "llt/defs.ma".
+++ /dev/null
-H=@
-
-RT_BASEDIR=../../../
-OPTIONS=-bench -onepass -system
-MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS)
-CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS)
-MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS)
-CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS)
-
-devel:=$(shell basename `pwd`)
-
-ifneq "$(SRC)" ""
- XXX="SRC=$(SRC)"
-endif
-
-all: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel)
-clean: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel)
-cleanall: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all
-
-all.opt opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel)
-clean.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel)
-cleanall.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all
-
-%.mo: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@
-%.mo.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $(@:.opt=)
-
-preall:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel)
-
-preall.opt:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) init $(devel)
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/next_plus/defs".
+
include "G/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/next_plus/props".
+
include "next_plus/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/nf2/arity".
+
include "nf2/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/nf2/dec".
+
include "nf2/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/nf2/defs".
+
include "pr2/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/nf2/fwd".
+
include "nf2/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/nf2/iso".
+
include "nf2/pr3.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/nf2/lift1".
+
include "nf2/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/nf2/pr3".
+
include "nf2/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/nf2/props".
+
include "nf2/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc1/defs".
+
include "pr1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc1/props".
+
include "pc1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/dec".
+
include "ty3/arity_props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/defs".
+
include "pr3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/fsubst0".
+
include "pc3/left.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/fwd".
+
include "pc3/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/left".
+
include "pc3/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/nf2".
+
include "pc3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/pc1".
+
include "pc3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/props".
+
include "pc3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/subst1".
+
include "pc3/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/wcpr0".
+
include "pc3/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr0/dec".
+
include "pr0/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr0/defs".
+
include "subst0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr0/fwd".
+
include "pr0/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr0/pr0".
+
include "pr0/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr0/props".
+
include "pr0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr0/subst1".
+
include "pr0/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr1/defs".
+
include "pr0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr1/pr1".
+
include "pr1/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr1/props".
+
include "pr1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr2/clen".
+
include "pr2/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr2/defs".
+
include "pr0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr2/fwd".
+
include "pr2/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr2/pr2".
+
include "pr2/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr2/props".
+
include "pr2/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr2/subst1".
+
include "pr2/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr3/defs".
+
include "pr2/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr3/fwd".
+
include "pr3/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr3/iso".
+
include "pr3/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr3/pr1".
+
include "pr3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr3/pr3".
+
include "pr3/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr3/props".
+
include "pr3/pr1.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr3/subst1".
+
include "pr3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pr3/wcpr0".
+
include "pr3/props.ma".
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/preamble".
-
-include "../Base-1/theory.ma".
-
-alias id "and_ind" = "cic:/Coq/Init/Logic/and_ind.con".
-alias id "bool_ind" = "cic:/Coq/Init/Datatypes/bool_ind.con".
-alias id "ex" = "cic:/Coq/Init/Logic/ex.ind#xpointer(1/1)".
-alias id "ex_ind" = "cic:/Coq/Init/Logic/ex_ind.con".
-alias id "ex_intro" = "cic:/Coq/Init/Logic/ex.ind#xpointer(1/1/1)".
-alias id "f_equal2" = "cic:/Coq/Init/Logic/f_equal2.con".
-alias id "f_equal3" = "cic:/Coq/Init/Logic/f_equal3.con".
-alias id "le_antisym" = "cic:/Coq/Arith/Le/le_antisym.con".
-alias id "le_lt_trans" = "cic:/Coq/Arith/Lt/le_lt_trans.con".
-alias id "le_plus_trans" = "cic:/Coq/Arith/Plus/le_plus_trans.con".
-alias id "lt_le_trans" = "cic:/Coq/Arith/Lt/lt_le_trans.con".
-alias id "lt_n_Sn" = "cic:/Coq/Arith/Lt/lt_n_Sn.con".
-alias id "lt_S_n" = "cic:/Coq/Arith/Lt/lt_S_n.con".
-alias id "lt_trans" = "cic:/Coq/Arith/Lt/lt_trans.con".
-alias id "lt_wf_ind" = "cic:/Coq/Arith/Wf_nat/lt_wf_ind.con".
-alias id "minus_n_n" = "cic:/Coq/Arith/Minus/minus_n_n.con".
-alias id "minus_Sn_m" = "cic:/Coq/Arith/Minus/minus_Sn_m.con".
-alias id "plus_le_lt_compat" = "cic:/Coq/Arith/Plus/plus_le_lt_compat.con".
-alias id "plus_lt_compat" = "cic:/Coq/Arith/Plus/plus_lt_compat.con".
-alias id "plus_lt_compat_r" = "cic:/Coq/Arith/Plus/plus_lt_compat_r.con".
-alias id "plus_lt_le_compat" = "cic:/Coq/Arith/Plus/plus_lt_le_compat.con".
-alias id "plus_n_O" = "cic:/Coq/Init/Peano/plus_n_O.con".
-alias id "plus_Snm_nSm" = "cic:/Coq/Arith/Plus/plus_Snm_nSm.con".
-alias id "S_pred" = "cic:/Coq/Arith/Lt/S_pred.con".
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+
+
+include "theory.ma".
+
+alias id "and_ind" = "cic:/Coq/Init/Logic/and_ind.con".
+alias id "bool_ind" = "cic:/Coq/Init/Datatypes/bool_ind.con".
+alias id "ex" = "cic:/Coq/Init/Logic/ex.ind#xpointer(1/1)".
+alias id "ex_ind" = "cic:/Coq/Init/Logic/ex_ind.con".
+alias id "ex_intro" = "cic:/Coq/Init/Logic/ex.ind#xpointer(1/1/1)".
+alias id "f_equal2" = "cic:/Coq/Init/Logic/f_equal2.con".
+alias id "f_equal3" = "cic:/Coq/Init/Logic/f_equal3.con".
+alias id "le_antisym" = "cic:/Coq/Arith/Le/le_antisym.con".
+alias id "le_lt_trans" = "cic:/Coq/Arith/Lt/le_lt_trans.con".
+alias id "le_plus_trans" = "cic:/Coq/Arith/Plus/le_plus_trans.con".
+alias id "lt_le_trans" = "cic:/Coq/Arith/Lt/lt_le_trans.con".
+alias id "lt_n_Sn" = "cic:/Coq/Arith/Lt/lt_n_Sn.con".
+alias id "lt_S_n" = "cic:/Coq/Arith/Lt/lt_S_n.con".
+alias id "lt_trans" = "cic:/Coq/Arith/Lt/lt_trans.con".
+alias id "lt_wf_ind" = "cic:/Coq/Arith/Wf_nat/lt_wf_ind.con".
+alias id "minus_n_n" = "cic:/Coq/Arith/Minus/minus_n_n.con".
+alias id "minus_Sn_m" = "cic:/Coq/Arith/Minus/minus_Sn_m.con".
+alias id "plus_le_lt_compat" = "cic:/Coq/Arith/Plus/plus_le_lt_compat.con".
+alias id "plus_lt_compat" = "cic:/Coq/Arith/Plus/plus_lt_compat.con".
+alias id "plus_lt_compat_r" = "cic:/Coq/Arith/Plus/plus_lt_compat_r.con".
+alias id "plus_lt_le_compat" = "cic:/Coq/Arith/Plus/plus_lt_le_compat.con".
+alias id "plus_n_O" = "cic:/Coq/Init/Peano/plus_n_O.con".
+alias id "plus_Snm_nSm" = "cic:/Coq/Arith/Plus/plus_Snm_nSm.con".
+alias id "S_pred" = "cic:/Coq/Arith/Lt/S_pred.con".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/r/defs".
+
include "T/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/r/props".
+
include "r/defs.ma".
--- /dev/null
+baseuri=cic:/matita/LAMBDA-TYPES/LambdaDelta-1
+include_paths= ../Base-1
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/s/defs".
+
include "T/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/s/props".
+
include "s/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/sc3/arity".
+
include "csubc/arity.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/sc3/defs".
+
include "sn3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/sc3/props".
+
include "sc3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/sn3/defs".
+
include "pr3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/sn3/fwd".
+
include "sn3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/sn3/lift1".
+
include "sn3/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/sn3/nf2".
+
include "sn3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/sn3/props".
+
include "sn3/nf2.ma".
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/spare".
-
-include "theory.ma".
-
-inductive sort: T \to Prop \def
-| sort_sort: \forall (n: nat).(sort (TSort n))
-| sort_abst: \forall (u: T).((sort u) \to (\forall (t: T).((sort t) \to (sort
-(THead (Bind Abst) u t))))).
-
-theorem sort_nf2:
- \forall (t: T).((sort t) \to (\forall (c: C).(nf2 c t)))
-\def
- \lambda (t: T).(\lambda (H: (sort t)).(sort_ind (\lambda (t0: T).(\forall
-(c: C).(nf2 c t0))) (\lambda (n: nat).(\lambda (c: C).(nf2_sort c n)))
-(\lambda (u: T).(\lambda (_: (sort u)).(\lambda (H1: ((\forall (c: C).(nf2 c
-u)))).(\lambda (t0: T).(\lambda (_: (sort t0)).(\lambda (H3: ((\forall (c:
-C).(nf2 c t0)))).(\lambda (c: C).(let H_y \def (H3 (CHead c (Bind Abst) u))
-in (nf2_abst_shift c u (H1 c) t0 H_y))))))))) t H)).
-
-theorem sort_pc3:
- \forall (t1: T).((sort t1) \to (\forall (t2: T).((sort t2) \to (\forall (c:
-C).((pc3 c t1 t2) \to (eq T t1 t2))))))
-\def
- \lambda (t1: T).(\lambda (H: (sort t1)).(sort_ind (\lambda (t: T).(\forall
-(t2: T).((sort t2) \to (\forall (c: C).((pc3 c t t2) \to (eq T t t2))))))
-(\lambda (n: nat).(\lambda (t2: T).(\lambda (H0: (sort t2)).(sort_ind
-(\lambda (t: T).(\forall (c: C).((pc3 c (TSort n) t) \to (eq T (TSort n)
-t)))) (\lambda (n0: nat).(\lambda (c: C).(\lambda (H1: (pc3 c (TSort n)
-(TSort n0))).(eq_ind nat n (\lambda (n1: nat).(eq T (TSort n) (TSort n1)))
-(refl_equal T (TSort n)) n0 (pc3_gen_sort c n n0 H1))))) (\lambda (u:
-T).(\lambda (_: (sort u)).(\lambda (_: ((\forall (c: C).((pc3 c (TSort n) u)
-\to (eq T (TSort n) u))))).(\lambda (t: T).(\lambda (_: (sort t)).(\lambda
-(_: ((\forall (c: C).((pc3 c (TSort n) t) \to (eq T (TSort n) t))))).(\lambda
-(c: C).(\lambda (H5: (pc3 c (TSort n) (THead (Bind Abst) u
-t))).(pc3_gen_sort_abst c u t n H5 (eq T (TSort n) (THead (Bind Abst) u
-t))))))))))) t2 H0)))) (\lambda (u: T).(\lambda (_: (sort u)).(\lambda (H1:
-((\forall (t2: T).((sort t2) \to (\forall (c: C).((pc3 c u t2) \to (eq T u
-t2))))))).(\lambda (t: T).(\lambda (_: (sort t)).(\lambda (H3: ((\forall (t2:
-T).((sort t2) \to (\forall (c: C).((pc3 c t t2) \to (eq T t
-t2))))))).(\lambda (t2: T).(\lambda (H4: (sort t2)).(sort_ind (\lambda (t0:
-T).(\forall (c: C).((pc3 c (THead (Bind Abst) u t) t0) \to (eq T (THead (Bind
-Abst) u t) t0)))) (\lambda (n: nat).(\lambda (c: C).(\lambda (H5: (pc3 c
-(THead (Bind Abst) u t) (TSort n))).(pc3_gen_sort_abst c u t n (pc3_s c
-(TSort n) (THead (Bind Abst) u t) H5) (eq T (THead (Bind Abst) u t) (TSort
-n)))))) (\lambda (u0: T).(\lambda (H5: (sort u0)).(\lambda (_: ((\forall (c:
-C).((pc3 c (THead (Bind Abst) u t) u0) \to (eq T (THead (Bind Abst) u t)
-u0))))).(\lambda (t0: T).(\lambda (H7: (sort t0)).(\lambda (_: ((\forall (c:
-C).((pc3 c (THead (Bind Abst) u t) t0) \to (eq T (THead (Bind Abst) u t)
-t0))))).(\lambda (c: C).(\lambda (H9: (pc3 c (THead (Bind Abst) u t) (THead
-(Bind Abst) u0 t0))).(and_ind (pc3 c u u0) (\forall (b: B).(\forall (u1:
-T).(pc3 (CHead c (Bind b) u1) t t0))) (eq T (THead (Bind Abst) u t) (THead
-(Bind Abst) u0 t0)) (\lambda (H10: (pc3 c u u0)).(\lambda (H11: ((\forall (b:
-B).(\forall (u1: T).(pc3 (CHead c (Bind b) u1) t t0))))).(let H_y \def (H11
-Abbr u) in (let H_y0 \def (H1 u0 H5 c H10) in (let H_y1 \def (H3 t0 H7 (CHead
-c (Bind Abbr) u) H_y) in (let H12 \def (eq_ind_r T t0 (\lambda (t3: T).(pc3
-(CHead c (Bind Abbr) u) t t3)) H_y t H_y1) in (let H13 \def (eq_ind_r T t0
-(\lambda (t3: T).(sort t3)) H7 t H_y1) in (eq_ind T t (\lambda (t3: T).(eq T
-(THead (Bind Abst) u t) (THead (Bind Abst) u0 t3))) (let H14 \def (eq_ind_r T
-u0 (\lambda (t3: T).(pc3 c u t3)) H10 u H_y0) in (let H15 \def (eq_ind_r T u0
-(\lambda (t3: T).(sort t3)) H5 u H_y0) in (eq_ind T u (\lambda (t3: T).(eq T
-(THead (Bind Abst) u t) (THead (Bind Abst) t3 t))) (refl_equal T (THead (Bind
-Abst) u t)) u0 H_y0))) t0 H_y1)))))))) (pc3_gen_abst c u u0 t t0 H9))))))))))
-t2 H4))))))))) t1 H)).
-
-theorem sort_correct:
- \forall (g: G).(\forall (t1: T).((sort t1) \to (\forall (c: C).(ex3 T
-(\lambda (t2: T).(tau0 g c t1 t2)) (\lambda (t2: T).(ty3 g c t1 t2)) (\lambda
-(t2: T).(sort t2))))))
-\def
- \lambda (g: G).(\lambda (t1: T).(\lambda (H: (sort t1)).(sort_ind (\lambda
-(t: T).(\forall (c: C).(ex3 T (\lambda (t2: T).(tau0 g c t t2)) (\lambda (t2:
-T).(ty3 g c t t2)) (\lambda (t2: T).(sort t2))))) (\lambda (n: nat).(\lambda
-(c: C).(ex3_intro T (\lambda (t2: T).(tau0 g c (TSort n) t2)) (\lambda (t2:
-T).(ty3 g c (TSort n) t2)) (\lambda (t2: T).(sort t2)) (TSort (next g n))
-(tau0_sort g c n) (ty3_sort g c n) (sort_sort (next g n))))) (\lambda (u:
-T).(\lambda (H0: (sort u)).(\lambda (H1: ((\forall (c: C).(ex3 T (\lambda
-(t2: T).(tau0 g c u t2)) (\lambda (t2: T).(ty3 g c u t2)) (\lambda (t2:
-T).(sort t2)))))).(\lambda (t: T).(\lambda (_: (sort t)).(\lambda (H3:
-((\forall (c: C).(ex3 T (\lambda (t2: T).(tau0 g c t t2)) (\lambda (t2:
-T).(ty3 g c t t2)) (\lambda (t2: T).(sort t2)))))).(\lambda (c: C).(let H_x
-\def (H1 c) in (let H4 \def H_x in (ex3_ind T (\lambda (t2: T).(tau0 g c u
-t2)) (\lambda (t2: T).(ty3 g c u t2)) (\lambda (t2: T).(sort t2)) (ex3 T
-(\lambda (t2: T).(tau0 g c (THead (Bind Abst) u t) t2)) (\lambda (t2: T).(ty3
-g c (THead (Bind Abst) u t) t2)) (\lambda (t2: T).(sort t2))) (\lambda (x0:
-T).(\lambda (_: (tau0 g c u x0)).(\lambda (H6: (ty3 g c u x0)).(\lambda (_:
-(sort x0)).(let H_x0 \def (H3 (CHead c (Bind Abst) u)) in (let H8 \def H_x0
-in (ex3_ind T (\lambda (t2: T).(tau0 g (CHead c (Bind Abst) u) t t2))
-(\lambda (t2: T).(ty3 g (CHead c (Bind Abst) u) t t2)) (\lambda (t2: T).(sort
-t2)) (ex3 T (\lambda (t2: T).(tau0 g c (THead (Bind Abst) u t) t2)) (\lambda
-(t2: T).(ty3 g c (THead (Bind Abst) u t) t2)) (\lambda (t2: T).(sort t2)))
-(\lambda (x1: T).(\lambda (H9: (tau0 g (CHead c (Bind Abst) u) t
-x1)).(\lambda (H10: (ty3 g (CHead c (Bind Abst) u) t x1)).(\lambda (H11:
-(sort x1)).(ex_ind T (\lambda (t0: T).(ty3 g (CHead c (Bind Abst) u) x1 t0))
-(ex3 T (\lambda (t2: T).(tau0 g c (THead (Bind Abst) u t) t2)) (\lambda (t2:
-T).(ty3 g c (THead (Bind Abst) u t) t2)) (\lambda (t2: T).(sort t2)))
-(\lambda (x: T).(\lambda (H12: (ty3 g (CHead c (Bind Abst) u) x1
-x)).(ex3_intro T (\lambda (t2: T).(tau0 g c (THead (Bind Abst) u t) t2))
-(\lambda (t2: T).(ty3 g c (THead (Bind Abst) u t) t2)) (\lambda (t2: T).(sort
-t2)) (THead (Bind Abst) u x1) (tau0_bind g Abst c u t x1 H9) (ty3_bind g c u
-x0 H6 Abst t x1 H10 x H12) (sort_abst u H0 x1 H11)))) (ty3_correct g (CHead c
-(Bind Abst) u) t x1 H10)))))) H8))))))) H4)))))))))) t1 H))).
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+
+
+include "theory.ma".
+
+inductive sort: T \to Prop \def
+| sort_sort: \forall (n: nat).(sort (TSort n))
+| sort_abst: \forall (u: T).((sort u) \to (\forall (t: T).((sort t) \to (sort
+(THead (Bind Abst) u t))))).
+
+theorem sort_nf2:
+ \forall (t: T).((sort t) \to (\forall (c: C).(nf2 c t)))
+\def
+ \lambda (t: T).(\lambda (H: (sort t)).(sort_ind (\lambda (t0: T).(\forall
+(c: C).(nf2 c t0))) (\lambda (n: nat).(\lambda (c: C).(nf2_sort c n)))
+(\lambda (u: T).(\lambda (_: (sort u)).(\lambda (H1: ((\forall (c: C).(nf2 c
+u)))).(\lambda (t0: T).(\lambda (_: (sort t0)).(\lambda (H3: ((\forall (c:
+C).(nf2 c t0)))).(\lambda (c: C).(let H_y \def (H3 (CHead c (Bind Abst) u))
+in (nf2_abst_shift c u (H1 c) t0 H_y))))))))) t H)).
+
+theorem sort_pc3:
+ \forall (t1: T).((sort t1) \to (\forall (t2: T).((sort t2) \to (\forall (c:
+C).((pc3 c t1 t2) \to (eq T t1 t2))))))
+\def
+ \lambda (t1: T).(\lambda (H: (sort t1)).(sort_ind (\lambda (t: T).(\forall
+(t2: T).((sort t2) \to (\forall (c: C).((pc3 c t t2) \to (eq T t t2))))))
+(\lambda (n: nat).(\lambda (t2: T).(\lambda (H0: (sort t2)).(sort_ind
+(\lambda (t: T).(\forall (c: C).((pc3 c (TSort n) t) \to (eq T (TSort n)
+t)))) (\lambda (n0: nat).(\lambda (c: C).(\lambda (H1: (pc3 c (TSort n)
+(TSort n0))).(eq_ind nat n (\lambda (n1: nat).(eq T (TSort n) (TSort n1)))
+(refl_equal T (TSort n)) n0 (pc3_gen_sort c n n0 H1))))) (\lambda (u:
+T).(\lambda (_: (sort u)).(\lambda (_: ((\forall (c: C).((pc3 c (TSort n) u)
+\to (eq T (TSort n) u))))).(\lambda (t: T).(\lambda (_: (sort t)).(\lambda
+(_: ((\forall (c: C).((pc3 c (TSort n) t) \to (eq T (TSort n) t))))).(\lambda
+(c: C).(\lambda (H5: (pc3 c (TSort n) (THead (Bind Abst) u
+t))).(pc3_gen_sort_abst c u t n H5 (eq T (TSort n) (THead (Bind Abst) u
+t))))))))))) t2 H0)))) (\lambda (u: T).(\lambda (_: (sort u)).(\lambda (H1:
+((\forall (t2: T).((sort t2) \to (\forall (c: C).((pc3 c u t2) \to (eq T u
+t2))))))).(\lambda (t: T).(\lambda (_: (sort t)).(\lambda (H3: ((\forall (t2:
+T).((sort t2) \to (\forall (c: C).((pc3 c t t2) \to (eq T t
+t2))))))).(\lambda (t2: T).(\lambda (H4: (sort t2)).(sort_ind (\lambda (t0:
+T).(\forall (c: C).((pc3 c (THead (Bind Abst) u t) t0) \to (eq T (THead (Bind
+Abst) u t) t0)))) (\lambda (n: nat).(\lambda (c: C).(\lambda (H5: (pc3 c
+(THead (Bind Abst) u t) (TSort n))).(pc3_gen_sort_abst c u t n (pc3_s c
+(TSort n) (THead (Bind Abst) u t) H5) (eq T (THead (Bind Abst) u t) (TSort
+n)))))) (\lambda (u0: T).(\lambda (H5: (sort u0)).(\lambda (_: ((\forall (c:
+C).((pc3 c (THead (Bind Abst) u t) u0) \to (eq T (THead (Bind Abst) u t)
+u0))))).(\lambda (t0: T).(\lambda (H7: (sort t0)).(\lambda (_: ((\forall (c:
+C).((pc3 c (THead (Bind Abst) u t) t0) \to (eq T (THead (Bind Abst) u t)
+t0))))).(\lambda (c: C).(\lambda (H9: (pc3 c (THead (Bind Abst) u t) (THead
+(Bind Abst) u0 t0))).(and_ind (pc3 c u u0) (\forall (b: B).(\forall (u1:
+T).(pc3 (CHead c (Bind b) u1) t t0))) (eq T (THead (Bind Abst) u t) (THead
+(Bind Abst) u0 t0)) (\lambda (H10: (pc3 c u u0)).(\lambda (H11: ((\forall (b:
+B).(\forall (u1: T).(pc3 (CHead c (Bind b) u1) t t0))))).(let H_y \def (H11
+Abbr u) in (let H_y0 \def (H1 u0 H5 c H10) in (let H_y1 \def (H3 t0 H7 (CHead
+c (Bind Abbr) u) H_y) in (let H12 \def (eq_ind_r T t0 (\lambda (t3: T).(pc3
+(CHead c (Bind Abbr) u) t t3)) H_y t H_y1) in (let H13 \def (eq_ind_r T t0
+(\lambda (t3: T).(sort t3)) H7 t H_y1) in (eq_ind T t (\lambda (t3: T).(eq T
+(THead (Bind Abst) u t) (THead (Bind Abst) u0 t3))) (let H14 \def (eq_ind_r T
+u0 (\lambda (t3: T).(pc3 c u t3)) H10 u H_y0) in (let H15 \def (eq_ind_r T u0
+(\lambda (t3: T).(sort t3)) H5 u H_y0) in (eq_ind T u (\lambda (t3: T).(eq T
+(THead (Bind Abst) u t) (THead (Bind Abst) t3 t))) (refl_equal T (THead (Bind
+Abst) u t)) u0 H_y0))) t0 H_y1)))))))) (pc3_gen_abst c u u0 t t0 H9))))))))))
+t2 H4))))))))) t1 H)).
+
+theorem sort_correct:
+ \forall (g: G).(\forall (t1: T).((sort t1) \to (\forall (c: C).(ex3 T
+(\lambda (t2: T).(tau0 g c t1 t2)) (\lambda (t2: T).(ty3 g c t1 t2)) (\lambda
+(t2: T).(sort t2))))))
+\def
+ \lambda (g: G).(\lambda (t1: T).(\lambda (H: (sort t1)).(sort_ind (\lambda
+(t: T).(\forall (c: C).(ex3 T (\lambda (t2: T).(tau0 g c t t2)) (\lambda (t2:
+T).(ty3 g c t t2)) (\lambda (t2: T).(sort t2))))) (\lambda (n: nat).(\lambda
+(c: C).(ex3_intro T (\lambda (t2: T).(tau0 g c (TSort n) t2)) (\lambda (t2:
+T).(ty3 g c (TSort n) t2)) (\lambda (t2: T).(sort t2)) (TSort (next g n))
+(tau0_sort g c n) (ty3_sort g c n) (sort_sort (next g n))))) (\lambda (u:
+T).(\lambda (H0: (sort u)).(\lambda (H1: ((\forall (c: C).(ex3 T (\lambda
+(t2: T).(tau0 g c u t2)) (\lambda (t2: T).(ty3 g c u t2)) (\lambda (t2:
+T).(sort t2)))))).(\lambda (t: T).(\lambda (_: (sort t)).(\lambda (H3:
+((\forall (c: C).(ex3 T (\lambda (t2: T).(tau0 g c t t2)) (\lambda (t2:
+T).(ty3 g c t t2)) (\lambda (t2: T).(sort t2)))))).(\lambda (c: C).(let H_x
+\def (H1 c) in (let H4 \def H_x in (ex3_ind T (\lambda (t2: T).(tau0 g c u
+t2)) (\lambda (t2: T).(ty3 g c u t2)) (\lambda (t2: T).(sort t2)) (ex3 T
+(\lambda (t2: T).(tau0 g c (THead (Bind Abst) u t) t2)) (\lambda (t2: T).(ty3
+g c (THead (Bind Abst) u t) t2)) (\lambda (t2: T).(sort t2))) (\lambda (x0:
+T).(\lambda (_: (tau0 g c u x0)).(\lambda (H6: (ty3 g c u x0)).(\lambda (_:
+(sort x0)).(let H_x0 \def (H3 (CHead c (Bind Abst) u)) in (let H8 \def H_x0
+in (ex3_ind T (\lambda (t2: T).(tau0 g (CHead c (Bind Abst) u) t t2))
+(\lambda (t2: T).(ty3 g (CHead c (Bind Abst) u) t t2)) (\lambda (t2: T).(sort
+t2)) (ex3 T (\lambda (t2: T).(tau0 g c (THead (Bind Abst) u t) t2)) (\lambda
+(t2: T).(ty3 g c (THead (Bind Abst) u t) t2)) (\lambda (t2: T).(sort t2)))
+(\lambda (x1: T).(\lambda (H9: (tau0 g (CHead c (Bind Abst) u) t
+x1)).(\lambda (H10: (ty3 g (CHead c (Bind Abst) u) t x1)).(\lambda (H11:
+(sort x1)).(ex_ind T (\lambda (t0: T).(ty3 g (CHead c (Bind Abst) u) x1 t0))
+(ex3 T (\lambda (t2: T).(tau0 g c (THead (Bind Abst) u t) t2)) (\lambda (t2:
+T).(ty3 g c (THead (Bind Abst) u t) t2)) (\lambda (t2: T).(sort t2)))
+(\lambda (x: T).(\lambda (H12: (ty3 g (CHead c (Bind Abst) u) x1
+x)).(ex3_intro T (\lambda (t2: T).(tau0 g c (THead (Bind Abst) u t) t2))
+(\lambda (t2: T).(ty3 g c (THead (Bind Abst) u t) t2)) (\lambda (t2: T).(sort
+t2)) (THead (Bind Abst) u x1) (tau0_bind g Abst c u t x1 H9) (ty3_bind g c u
+x0 H6 Abst t x1 H10 x H12) (sort_abst u H0 x1 H11)))) (ty3_correct g (CHead c
+(Bind Abst) u) t x1 H10)))))) H8))))))) H4)))))))))) t1 H))).
+
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/subst0/dec".
+
include "subst0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/subst0/defs".
+
include "lift/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/subst0/fwd".
+
include "subst0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/subst0/props".
+
include "subst0/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/subst0/subst0".
+
include "subst0/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/subst0/tlt".
+
include "subst0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/subst1/defs".
+
include "subst0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/subst1/fwd".
+
include "subst1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/subst1/props".
+
include "subst1/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/subst1/subst1".
+
include "subst1/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/tau0/defs".
+
include "G/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/tau0/props".
+
include "tau0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/tau1/cnt".
+
include "tau1/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/tau1/defs".
+
include "tau0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/tau1/props".
+
include "tau1/defs.ma".
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* This file was automatically generated: do not edit *********************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/theory".
-
-include "subst0/tlt.ma".
-
-include "tau1/cnt.ma".
-
-include "ex0/props.ma".
-
-include "wcpr0/fwd.ma".
-
-include "pr3/wcpr0.ma".
-
-include "ex2/props.ma".
-
-include "ex1/props.ma".
-
-include "ty3/tau0.ma".
-
-include "ty3/nf2.ma".
-
-include "ty3/dec.ma".
-
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+
+
+include "subst0/tlt.ma".
+
+include "tau1/cnt.ma".
+
+include "ex0/props.ma".
+
+include "wcpr0/fwd.ma".
+
+include "pr3/wcpr0.ma".
+
+include "ex2/props.ma".
+
+include "ex1/props.ma".
+
+include "ty3/tau0.ma".
+
+include "ty3/nf2.ma".
+
+include "ty3/dec.ma".
+
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/tlist/defs".
+
include "T/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/tlist/props".
+
include "tlist/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/tlt/defs".
+
include "T/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/tlt/props".
+
include "tlt/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/arity".
+
include "ty3/pr3_props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/arity_props".
+
include "ty3/arity.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/dec".
+
include "ty3/pr3_props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/defs".
+
include "G/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/fsubst0".
+
include "ty3/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/fwd".
+
include "ty3/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/nf2".
+
include "ty3/arity.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/pr3".
+
include "csubt/ty3.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/pr3_props".
+
include "ty3/pr3.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/props".
+
include "ty3/fwd.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/subst1".
+
include "ty3/props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/tau0".
+
include "ty3/pr3_props.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/wcpr0/defs".
+
include "pr0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/wcpr0/fwd".
+
include "wcpr0/defs.ma".
(* This file was automatically generated: do not edit *********************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/wcpr0/getl".
+
include "wcpr0/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/Lift/defs".
+
(* LIFT RELATION
- Usage: invoke with positive polarity
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/Lift/fun".
+
include "Lift/inv.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/Lift/inv".
+
include "Lift/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/Lift/props".
+
include "Lift/fun.ma".
--- /dev/null
+DIR=$(shell basename $$PWD)
+
+$(DIR) all:
+ ../../../matitac
+$(DIR).opt opt all.opt:
+ ../../../matitac.opt
+clean:
+ ../../../matitaclean
+clean.opt:
+ ../../../matitaclean.opt
+depend:
+ ../matitadep
+depend.opt:
+ ../matitadep.opt
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/datatypes/Context".
+
(* FLAT CONTEXTS
- Naming policy:
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/datatypes/Term".
+
(* POLARIZED TERMS
- Naming policy:
- terms : t u
*)
-include "preamble.ma".
+include "preamble4.ma".
inductive Bind: Type \def
| abbr: Bind
--- /dev/null
+preamble4.ma NLE/nplus.ma NLE/props.ma NPlus/monoid.ma datatypes/Bool.ma logic/equality.ma
+datatypes/Context.ma datatypes/Term.ma
+datatypes/Term.ma preamble4.ma
+Lift/props.ma Lift/fun.ma
+Lift/inv.ma Lift/defs.ma
+Lift/defs.ma datatypes/Term.ma
+Lift/fun.ma Lift/inv.ma
+NLE/nplus.ma
+NLE/props.ma
+NPlus/monoid.ma
+datatypes/Bool.ma
+logic/equality.ma
+++ /dev/null
-H=@
-
-RT_BASEDIR=../../../
-OPTIONS=-bench
-MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS)
-CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS)
-MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS)
-CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS)
-
-devel:=$(shell basename `pwd`)
-
-ifneq "$(SRC)" ""
- XXX="SRC=$(SRC)"
-endif
-
-all: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel)
-clean: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel)
-cleanall: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all
-
-all.opt opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel)
-clean.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel)
-cleanall.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all
-
-%.mo: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@
-%.mo.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $(@:.opt=)
-
-preall:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel)
-
-preall.opt:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) init $(devel)
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* Project started Tue Aug 22, 2006 ***************************************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/preamble".
-
-(* PREAMBLE
-*)
-
-include "logic/equality.ma".
-include "../../RELATIONAL/datatypes/Bool.ma".
-include "../../RELATIONAL/NPlus/monoid.ma".
-include "../../RELATIONAL/NLE/props.ma".
-include "../../RELATIONAL/NLE/nplus.ma".
-
-axiom f_equal_3: \forall (A,B,C,D:Set).
- \forall (f:A \to B \to C \to D).
- \forall (x1,x2:A).
- \forall (y1,y2:B).
- \forall (z1,z2:C).
- x1 = x2 \to y1 = y2 \to z1 = z2 \to
- f x1 y1 z1 = f x2 y2 z2.
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* Project started Tue Aug 22, 2006 ***************************************)
+
+
+
+(* PREAMBLE
+*)
+
+include "logic/equality.ma".
+include "datatypes/Bool.ma".
+include "NPlus/monoid.ma".
+include "NLE/props.ma".
+include "NLE/nplus.ma".
+
+axiom f_equal_3: \forall (A,B,C,D:Set).
+ \forall (f:A \to B \to C \to D).
+ \forall (x1,x2:A).
+ \forall (y1,y2:B).
+ \forall (z1,z2:C).
+ x1 = x2 \to y1 = y2 \to z1 = z2 \to
+ f x1 y1 z1 = f x2 y2 z2.
--- /dev/null
+baseuri=cic:/matita/LAMBDA-TYPES/Unified-Sub
+include_paths= ../../RELATIONAL/
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/CLE/defs".
+
(* ORDER RELATION BETWEEN POSITIONS AND CONTEXTS
*)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/Insert/defs".
+
(* INSERT RELATION FOR CONTEXTS
*)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/Insert/fun".
+
include "CLE/defs.ma".
include "Insert/inv.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/Insert/inv".
+
(*
*)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/Insert/props".
+
(*
*)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/Lift/defs".
+
(* PROOF RELOCATION
*)
--- /dev/null
+DIR=$(shell basename $$PWD)
+
+$(DIR) all:
+ ../../matitac
+$(DIR).opt opt all.opt:
+ ../../matitac.opt
+clean:
+ ../../matitaclean
+clean.opt:
+ ../../matitaclean.opt
+depend:
+ ../../matitadep
+depend.opt:
+ ../../matitadep.opt
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/NTrack/defs".
+
(* NORMAL PROOF TREE TRACKS
*)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/NTrack/inv".
+
include "NTrack/defs.ma".
(*
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/NTrack/order".
+
include "Track/order.ma".
include "NTrack/props.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/NTrack/props".
+
include "Insert/props.ma".
include "Track/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/PEq/defs".
+
(* EQUALITY PREDICATE FOR PROOFS IN CONTEXT
*)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/PNF/defs".
+
(* NORMAL FORM PREDICATE FOR PROOFS IN CONTEXT
For cut elimination
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/PRed/defs".
+
(* SINGLE STEP PARALLEL REDUCTION
For cut elimination
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/PRed/wlt".
+
(**)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/Track/defs".
+
(* PROOF TREE TRACKS
*)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/Track/inv".
+
include "Track/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/Track/order".
+
include "Insert/fun.ma".
include "Track/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/Track/pred".
+
(**)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/WLT/defs".
+
(* ORDER RELATION BETWEEN PROOFS IN CONTEXT
*)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/Weight/defs".
+
(* PROOF WEIGHT
For cut elimination and confluence
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/datatypes_defs/Context".
+
(* FLAT CONTEXTS
- Naming policy:
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/datatypes_defs/Formula".
+
(* FORMULAE
- Naming policy:
- formulae: a b c d
*)
-include "preamble.ma".
+include "preamble0.ma".
inductive Formula: Type \def
| posr: Nat \to Formula
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/datatypes_defs/Proof".
+
(* PROOFS
- Naming policy:
- proofs: p q r s
*)
-include "preamble.ma".
+include "preamble0.ma".
inductive Proof: Type \def
| lref: Nat \to Proof (* projection *)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/datatypes_defs/Sequent".
+
(* SEQUENTS
- Naming policy:
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/LOGIC/datatypes_props/Sequent".
+
include "datatypes_defs/Sequent.ma".
--- /dev/null
+preamble0.ma NLE/defs.ma
+Insert/props.ma Insert/fun.ma
+Insert/inv.ma Insert/defs.ma
+Insert/defs.ma Lift/defs.ma datatypes_defs/Context.ma
+Insert/fun.ma CLE/defs.ma Insert/inv.ma
+datatypes_defs/Context.ma datatypes_defs/Proof.ma datatypes_defs/Sequent.ma
+datatypes_defs/Sequent.ma datatypes_defs/Formula.ma
+datatypes_defs/Proof.ma preamble0.ma
+datatypes_defs/Formula.ma preamble0.ma
+PRed/wlt.ma PEq/defs.ma PRed/defs.ma WLT/defs.ma
+PRed/defs.ma Insert/defs.ma
+Track/inv.ma Track/defs.ma
+Track/pred.ma PRed/defs.ma Track/inv.ma datatypes_props/Sequent.ma
+Track/defs.ma Insert/defs.ma
+Track/order.ma Insert/fun.ma Track/defs.ma
+Lift/defs.ma datatypes_defs/Proof.ma
+PNF/defs.ma PEq/defs.ma PRed/defs.ma
+datatypes_props/Sequent.ma datatypes_defs/Sequent.ma
+Weight/defs.ma datatypes_defs/Context.ma
+CLE/defs.ma datatypes_defs/Context.ma
+NTrack/props.ma Insert/props.ma NTrack/inv.ma Track/defs.ma
+NTrack/inv.ma NTrack/defs.ma
+NTrack/defs.ma Insert/defs.ma
+NTrack/order.ma NTrack/props.ma Track/order.ma
+PEq/defs.ma datatypes_defs/Context.ma
+WLT/defs.ma Weight/defs.ma
+NLE/defs.ma
+++ /dev/null
-H=@
-
-RT_BASEDIR=../../
-OPTIONS=-bench
-MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS)
-CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS)
-MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS)
-CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS)
-
-devel:=$(shell basename `pwd`)
-
-ifneq "$(SRC)" ""
- XXX="SRC=$(SRC)"
-endif
-
-all: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel)
-clean: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel)
-cleanall: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all
-
-all.opt opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel)
-clean.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel)
-cleanall.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all
-
-%.mo: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@
-%.mo.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $(@:.opt=)
-
-preall:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel)
-
-preall.opt:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) init $(devel)
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* Project started Sat Apr 7, 2007 ****************************************)
-
-set "baseuri" "cic:/matita/LOGIC/preamble".
-
-(* PREAMBLE
-*)
-
-include "../RELATIONAL/NLE/defs.ma".
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* Project started Sat Apr 7, 2007 ****************************************)
+
+
+
+(* PREAMBLE
+*)
+
+include "NLE/defs.ma".
--- /dev/null
+baseuri=cic:/matita/LOGIC
+include_paths= ../RELATIONAL
GOALS = all opt clean clean.opt
-DEVELS = ../library ../legacy RELATIONAL LOGIC LAMBDA-TYPES
+DEVELS = RELATIONAL LOGIC LAMBDA-TYPES
$(GOALS):
@$(foreach DEVEL, $(DEVELS), $(MAKE) -C $(DEVEL) $@;)
--- /dev/null
+DIR=$(shell basename $$PWD)
+
+$(DIR) all:
+ ../../matitac
+$(DIR).opt opt all.opt:
+ ../../matitac.opt
+clean:
+ ../../matitaclean
+clean.opt:
+ ../../matitaclean.opt
+depend:
+ ../../matitadep
+depend.opt:
+ ../../matitadep.opt
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NLE/defs".
+
include "NPlus/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NLE/inv".
+
include "NLE/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NLE/nplus".
+
include "NLE/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NLE/order".
+
include "NLE/inv.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NLE/props".
+
include "NLE/order.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NPlus/defs".
+
include "datatypes/Nat.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NPlus/fun".
+
include "NPlus/inv.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NPlus/inv".
+
include "NPlus/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NPlus/monoid".
+
include "NPlus/fun.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NPlusList/defs".
+
include "datatypes/List.ma".
include "NPlus/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/NPlusList/props".
+
include "NPlusList/defs.ma".
(*
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/ZEq/defs".
+
include "datatypes/Zah.ma".
include "NPlus/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/ZEq/setoid".
+
include "NPlus/fun.ma".
include "ZEq/defs.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/datatypes/Bool".
+
include "preamble.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/datatypes/List".
+
include "preamble.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/datatypes/Nat".
+
include "preamble.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/datatypes/Zah".
+
include "datatypes/Nat.ma".
--- /dev/null
+preamble.ma datatypes/constructors.ma logic/connectives.ma logic/equality.ma
+datatypes/Nat.ma preamble.ma
+datatypes/Zah.ma datatypes/Nat.ma
+datatypes/List.ma preamble.ma
+datatypes/Bool.ma preamble.ma
+ZEq/setoid.ma NPlus/fun.ma ZEq/defs.ma
+ZEq/defs.ma NPlus/defs.ma datatypes/Zah.ma
+NLE/nplus.ma NLE/defs.ma
+NLE/props.ma NLE/order.ma
+NLE/inv.ma NLE/defs.ma
+NLE/defs.ma NPlus/defs.ma datatypes/Nat.ma
+NLE/order.ma NLE/inv.ma
+NPlusList/props.ma NPlusList/defs.ma
+NPlusList/defs.ma NPlus/defs.ma datatypes/List.ma
+NPlus/inv.ma NPlus/defs.ma
+NPlus/monoid.ma NPlus/fun.ma
+NPlus/defs.ma datatypes/Nat.ma
+NPlus/fun.ma NPlus/inv.ma
+datatypes/constructors.ma
+logic/connectives.ma
+logic/equality.ma
+++ /dev/null
-H=@
-
-RT_BASEDIR=../../
-OPTIONS=-bench
-MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS)
-CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS)
-MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS)
-CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS)
-
-devel:=$(shell basename `pwd`)
-
-ifneq "$(SRC)" ""
- XXX="SRC=$(SRC)"
-endif
-
-all: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel)
-clean: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel)
-cleanall: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all
-
-all.opt opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel)
-clean.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel)
-cleanall.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all
-
-%.mo: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@
-%.mo.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $(@:.opt=)
-
-preall:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel)
-
-preall.opt:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) init $(devel)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/RELATIONAL/preamble".
+
include "logic/equality.ma".
include "logic/connectives.ma".
--- /dev/null
+baseuri=cic:/matita/RELATIONAL
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-set "baseuri" "cic:/matita/test/prova".
-
-include "../legacy/coq.ma".
-
-theorem pippo: \forall (A,B:Prop). A \land B \to A.
- intros; decompose; assumption.
-qed.
-
-inline procedural "cic:/matita/test/prova/pippo.con".
-
-alias id "plus" = "cic:/Coq/Init/Peano/plus.con".
-alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
-alias id "eq" = "cic:/Coq/Init/Logic/eq.ind#xpointer(1/1)".
-theorem plus_comm: \forall n:nat.\forall m:nat.eq nat (plus n m) (plus m n).
- intros; alias id "plus_comm" = "cic:/Coq/Arith/Plus/plus_comm.con".
-apply plus_comm.
-qed.
-(*
-include "LAMBDA-TYPES/LambdaDelta-1/preamble.ma".
-alias id "ty3" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/defs/ty3.ind#xpointer(1/1)".
-alias id "pc3" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/defs/pc3.con".
-alias id "THead" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/defs/T.ind#xpointer(1/1/3)".
-alias id "T" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/defs/T.ind#xpointer(1/1)".
-alias id "G" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/G/defs/G.ind#xpointer(1/1)".
-alias id "Flat" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/defs/K.ind#xpointer(1/1/2)".
-alias id "Cast" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/defs/F.ind#xpointer(1/1/2)".
-alias id "C" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/C/defs/C.ind#xpointer(1/1)".
-theorem ty3_gen_cast:
- (\forall g:G
- .\forall c:C
- .\forall t1:T
- .\forall t2:T
- .\forall x:T
- .ty3 g c (THead (Flat Cast) t2 t1) x
- \rarr pc3 c t2 x\land ty3 g c t1 t2)
-.
-(* tactics: 80 *)
-intros 6 (g c t1 t2 x H).
-apply insert_eq;(* 6 P P P C I I 3 0 *)
-[apply T(* dependent *)
-|apply (THead (Flat Cast) t2 t1)(* dependent *)
-|apply (\lambda t:T.ty3 g c t x)(* dependent *)
-|intros 2 (y H0).
-alias id "ty3_ind" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/ty3/defs/ty3_ind.con".
-elim H0 using ty3_ind names 0;(* 13 P C I I I I I I I C C C I 12 3 *)
-[intros 11 (c0 t0 t UNUSED UNUSED u t3 UNUSED H4 H5 H6).
-letin H7 \def (f_equal T T (\lambda e:T.e) u (THead (Flat Cast) t2 t1) H6).(* 6 C C C C C I *)
-rewrite > H7 in H4:(%) as (H8).
-cut (pc3 c0 t2 t3\land ty3 g c0 t1 t2) as H10;
-[id
-|apply H8.(* 1 I *)
-apply refl_equal(* 2 C C *)
-].
-elim H10 using and_ind names 0.(* 5 P P C I I 3 0 *)
-intros 2 (H11 H12).
-apply conj;(* 4 C C I I *)
-[alias id "pc3_t" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/props/pc3_t.con".
-apply pc3_t;(* 6 P C C I C I *)
-[apply t3(* dependent *)
-|apply H11(* assumption *)
-|apply H5(* assumption *)
-]
-|apply H12(* assumption *)
-]
-|intros 3 (c0 m H1).
-alias id "K" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/defs/K.ind#xpointer(1/1)".
-cut match THead (Flat Cast) t2 t1 in T return \lambda _:T.Prop with
-[TSort (_:nat)\rArr True
-|TLRef (_:nat)\rArr False
-|THead (_:K) (_:T) (_:T)\rArr False] as H2;
-[id
-|rewrite < H1 in \vdash (%).
-apply I
-].
-clearbody H2.
-change in H2:(%) with match THead (Flat Cast) t2 t1 in T return \lambda _:T.Prop with
-[TSort (_:nat)\rArr True
-|TLRef (_:nat)\rArr False
-|THead (_:K) (_:T) (_:T)\rArr False].
-elim H2 using False_ind names 0(* 2 C I 2 0 *)
-|intros 9 (n c0 d u UNUSED t UNUSED UNUSED H4).
-cut match THead (Flat Cast) t2 t1 in T return \lambda _:T.Prop with
-[TSort (_:nat)\rArr False
-|TLRef (_:nat)\rArr True
-|THead (_:K) (_:T) (_:T)\rArr False] as H5;
-[id
-|rewrite < H4 in \vdash (%).
-apply I
-].
-clearbody H5.
-change in H5:(%) with match THead (Flat Cast) t2 t1 in T return \lambda _:T.Prop with
-[TSort (_:nat)\rArr False
-|TLRef (_:nat)\rArr True
-|THead (_:K) (_:T) (_:T)\rArr False].
-elim H5 using False_ind names 0(* 2 C I 2 0 *)
-|intros 9 (n c0 d u UNUSED t UNUSED UNUSED H4).
-cut match THead (Flat Cast) t2 t1 in T return \lambda _:T.Prop with
-[TSort (_:nat)\rArr False
-|TLRef (_:nat)\rArr True
-|THead (_:K) (_:T) (_:T)\rArr False] as H5;
-[id
-|rewrite < H4 in \vdash (%).
-apply I
-].
-clearbody H5.
-change in H5:(%) with match THead (Flat Cast) t2 t1 in T return \lambda _:T.Prop with
-[TSort (_:nat)\rArr False
-|TLRef (_:nat)\rArr True
-|THead (_:K) (_:T) (_:T)\rArr False].
-elim H5 using False_ind names 0(* 2 C I 2 0 *)
-|intros 14 (c0 u t UNUSED UNUSED b t0 t3 UNUSED UNUSED t4 UNUSED UNUSED H7).
-alias id "F" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/defs/F.ind#xpointer(1/1)".
-alias id "B" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/T/defs/B.ind#xpointer(1/1)".
-cut match THead (Flat Cast) t2 t1 in T return \lambda _:T.Prop with
-[TSort (_:nat)\rArr False
-|TLRef (_:nat)\rArr False
-|THead (k:K) (_:T) (_:T)\rArr
- match k in K return \lambda _:K.Prop with
- [Bind (_:B)\rArr True|Flat (_:F)\rArr False]] as H8;
-[id
-|rewrite < H7 in \vdash (%).
-apply I
-].
-clearbody H8.
-change in H8:(%) with match THead (Flat Cast) t2 t1 in T return \lambda _:T.Prop with
-[TSort (_:nat)\rArr False
-|TLRef (_:nat)\rArr False
-|THead (k:K) (_:T) (_:T)\rArr
- match k in K return \lambda _:K.Prop with
- [Bind (_:B)\rArr True|Flat (_:F)\rArr False]].
-elim H8 using False_ind names 0(* 2 C I 2 0 *)
-|intros 10 (c0 w u UNUSED UNUSED v t UNUSED UNUSED H5).
-cut match THead (Flat Cast) t2 t1 in T return \lambda _:T.Prop with
-[TSort (_:nat)\rArr False
-|TLRef (_:nat)\rArr False
-|THead (k:K) (_:T) (_:T)\rArr
- match k in K return \lambda _:K.Prop with
- [Bind (_:B)\rArr False
- |Flat (f:F)\rArr
- match f in F return \lambda _:F.Prop with
- [Appl\rArr True|Cast\rArr False]]] as H6;
-[id
-|rewrite < H5 in \vdash (%).
-apply I
-].
-clearbody H6.
-change in H6:(%) with match THead (Flat Cast) t2 t1 in T return \lambda _:T.Prop with
-[TSort (_:nat)\rArr False
-|TLRef (_:nat)\rArr False
-|THead (k:K) (_:T) (_:T)\rArr
- match k in K return \lambda _:K.Prop with
- [Bind (_:B)\rArr False
- |Flat (f:F)\rArr
- match f in F return \lambda _:F.Prop with
- [Appl\rArr True|Cast\rArr False]]].
-elim H6 using False_ind names 0(* 2 C I 2 0 *)
-|intros 9 (c0 t0 t3 H1 H2 t4 UNUSED UNUSED H5).
-letin H6 \def (f_equal T T
- (\lambda e:T
- .match e in T return \lambda _:T.T with
- [TSort (_:nat)\rArr t3
- |TLRef (_:nat)\rArr t3
- |THead (_:K) (t:T) (_:T)\rArr t]) (THead (Flat Cast) t3 t0)
- (THead (Flat Cast) t2 t1) H5).(* 6 C C C C C I *)
-letin H7 \def (f_equal T T
- (\lambda e:T
- .match e in T return \lambda _:T.T with
- [TSort (_:nat)\rArr t0
- |TLRef (_:nat)\rArr t0
- |THead (_:K) (_:T) (t:T)\rArr t]) (THead (Flat Cast) t3 t0)
- (THead (Flat Cast) t2 t1) H5).(* 6 C C C C C I *)
-cut (t3=t2\rarr pc3 c0 t2 t3\land ty3 g c0 t1 t2) as DEFINED;
-[id
-|intros 1 (H8).
-rewrite > H8 in H2:(%) as (UNUSED).
-rewrite > H8 in H1:(%) as (H12).
-rewrite > H8 in \vdash (%).
-clearbody H7.
-change in H7:(%) with (match THead (Flat Cast) t3 t0 in T return \lambda _:T.T with
- [TSort (_:nat)\rArr t0
- |TLRef (_:nat)\rArr t0
- |THead (_:K) (_:T) (t:T)\rArr t]
- =match THead (Flat Cast) t2 t1 in T return \lambda _:T.T with
- [TSort (_:nat)\rArr t0
- |TLRef (_:nat)\rArr t0
- |THead (_:K) (_:T) (t:T)\rArr t]).
-rewrite > H7 in H12:(%) as (H14).
-apply conj;(* 4 C C I I *)
-[alias id "pc3_refl" = "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/pc3/props/pc3_refl.con".
-apply pc3_refl(* 2 C C *)
-|apply H14(* assumption *)
-]
-].
-apply DEFINED.(* 1 I *)
-apply H6(* assumption *)
-]
-|apply H(* assumption *)
-].
-qed.
-*)
-(*
-include "nat/orders.ma".
-
-theorem le_inv:
- \forall P:nat \to Prop
- .\forall p2
- .\forall p1
- .p2 <= p1 \to
- (p1 = p2 \to P p2) \to
- (\forall n1
- .p2 <= n1 \to
- (p1 = n1 \to P n1) \to
- p1 = S n1 \to P (S n1)) \to
- P p1.
- intros 4; elim H names 0; clear H p1; intros;
- [ apply H; reflexivity
- | apply H3; clear H3; intros;
- [ apply H | apply H1; clear H1; intros; subst;
- [ apply H2; apply H3 | ]
- | reflexivity
- ]
-*)
--- /dev/null
+DIR=$(shell basename $$PWD)
+
+$(DIR) all:
+ ../matitac
+$(DIR).opt opt all.opt:
+ ../matitac.opt
+clean:
+ ../matitaclean
+clean.opt:
+ ../matitaclean.opt
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+
+
+include "Q/q.ma".
+include "ordered_divisible_group.ma".
+
+definition strong_decidable ≝
+ λA:Prop.A ∨ ¬ A.
+
+theorem strong_decidable_to_Not_Not_eq:
+ ∀T:Type.∀eq: T → T → Prop.∀x,y:T.
+ strong_decidable (x=y) → ¬x≠y → x=y.
+ intros;
+ cases s;
+ [ assumption
+ | elim (H H1)
+ ]
+qed.
+
+definition apartness_of_strong_decidable:
+ ∀T:Type.(∀x,y:T.strong_decidable (x=y)) → apartness.
+ intros;
+ constructor 1;
+ [ apply T
+ | apply (λx,y:T.x ≠ y);
+ | simplify;
+ intros 2;
+ apply (H (refl_eq ??));
+ | simplify;
+ intros 4;
+ apply H;
+ symmetry;
+ assumption
+ | simplify;
+ intros;
+ elim (f x z);
+ [ elim (f z y);
+ [ elim H;
+ transitivity z;
+ assumption
+ | right;
+ assumption
+ ]
+ | left;
+ assumption
+ ]
+ ]
+qed.
+
+theorem strong_decidable_to_strong_ext:
+ ∀T:Type.∀sd:∀x,y:T.strong_decidable (x=y).
+ ∀op:T→T. strong_ext (apartness_of_strong_decidable ? sd) op.
+ intros 6;
+ intro;
+ apply a;
+ apply eq_f;
+ assumption;
+qed.
+
+theorem strong_decidable_to_transitive_to_cotransitive:
+ ∀T:Type.∀le:T→T→Prop.(∀x,y:T.strong_decidable (le x y)) →
+ transitive ? le → cotransitive ? (λx,y.¬ (le x y)).
+ intros;
+ whd;
+ simplify;
+ intros;
+ elim (f x z);
+ [ elim (f z y);
+ [ elim H;
+ apply (t ? z);
+ assumption
+ | right;
+ assumption
+ ]
+ | left;
+ assumption
+ ]
+qed.
+
+theorem reflexive_to_coreflexive:
+ ∀T:Type.∀le:T→T→Prop.reflexive ? le → coreflexive ? (λx,y.¬(le x y)).
+ intros;
+ unfold;
+ simplify;
+ intros 2;
+ apply H1;
+ apply H;
+qed.
+
+definition ordered_set_of_strong_decidable:
+ ∀T:Type.∀le:T→T→Prop.(∀x,y:T.strong_decidable (le x y)) →
+ transitive ? le → reflexive ? le → excess.
+ intros;
+ constructor 1;
+ [ apply T
+ | apply (λx,y.¬(le x y));
+ | apply reflexive_to_coreflexive;
+ assumption
+ | apply strong_decidable_to_transitive_to_cotransitive;
+ assumption
+ ]
+qed.
+
+definition abelian_group_of_strong_decidable:
+ ∀T:Type.∀plus:T→T→T.∀zero:T.∀opp:T→T.
+ (∀x,y:T.strong_decidable (x=y)) →
+ associative ? plus (eq T) →
+ commutative ? plus (eq T) →
+ (∀x:T. plus zero x = x) →
+ (∀x:T. plus (opp x) x = zero) →
+ abelian_group.
+ intros;
+ constructor 1;
+ [apply (apartness_of_strong_decidable ? f);]
+ try assumption;
+ [ change with (associative ? plus (λx,y:T.¬x≠y));
+ simplify;
+ intros;
+ intro;
+ apply H2;
+ apply a;
+ | intros 2;
+ intro;
+ apply a1;
+ apply c;
+ | intro;
+ intro;
+ apply a1;
+ apply H
+ | intro;
+ intro;
+ apply a1;
+ apply H1
+ | intros;
+ apply strong_decidable_to_strong_ext;
+ assumption
+ ]
+qed.
+
+definition left_neutral ≝ λC:Type.λop.λe:C. ∀x:C. op e x = x.
+definition left_inverse ≝ λC:Type.λop.λe:C.λinv:C→C. ∀x:C. op (inv x) x = e.
+
+record nabelian_group : Type ≝
+ { ncarr:> Type;
+ nplus: ncarr → ncarr → ncarr;
+ nzero: ncarr;
+ nopp: ncarr → ncarr;
+ nplus_assoc: associative ? nplus (eq ncarr);
+ nplus_comm: commutative ? nplus (eq ncarr);
+ nzero_neutral: left_neutral ? nplus nzero;
+ nopp_inverse: left_inverse ? nplus nzero nopp
+ }.
+
+definition abelian_group_of_nabelian_group:
+ ∀G:nabelian_group.(∀x,y:G.strong_decidable (x=y)) → abelian_group.
+ intros;
+ apply abelian_group_of_strong_decidable;
+ [2: apply (nplus G)
+ | skip
+ | apply (nzero G)
+ | apply (nopp G)
+ | assumption
+ | apply nplus_assoc;
+ | apply nplus_comm;
+ | apply nzero_neutral;
+ | apply nopp_inverse
+ ]
+qed.
+
+definition Z_abelian_group: abelian_group.
+ apply abelian_group_of_nabelian_group;
+ [ constructor 1;
+ [ apply Z
+ | apply Zplus
+ | apply OZ
+ | apply Zopp
+ | whd;
+ intros;
+ symmetry;
+ apply associative_Zplus
+ | apply sym_Zplus
+ | intro;
+ reflexivity
+ | intro;
+ rewrite > sym_Zplus;
+ apply Zplus_Zopp;
+ ]
+ | simplify;
+ intros;
+ unfold;
+ generalize in match (eqZb_to_Prop x y);
+ elim (eqZb x y);
+ simplify in H;
+ [ left ; assumption
+ | right; assumption
+ ]
+ ]
+qed.
+
+record nordered_set: Type ≝
+ { nos_carr:> Type;
+ nos_le: nos_carr → nos_carr → Prop;
+ nos_reflexive: reflexive ? nos_le;
+ nos_transitive: transitive ? nos_le
+ }.
+
+definition excess_of_nordered_group:
+ ∀O:nordered_set.(∀x,y:O. strong_decidable (nos_le ? x y)) → excess.
+ intros;
+ constructor 1;
+ [ apply (nos_carr O)
+ | apply (λx,y.¬(nos_le ? x y))
+ | apply reflexive_to_coreflexive;
+ apply nos_reflexive
+ | apply strong_decidable_to_transitive_to_cotransitive;
+ [ assumption
+ | apply nos_transitive
+ ]
+ ]
+qed.
+
+lemma non_deve_stare_qui: reflexive ? Zle.
+ intro;
+ elim x;
+ [ exact I
+ |2,3: simplify;
+ apply le_n;
+ ]
+qed.
+
+axiom non_deve_stare_qui3: ∀x,y:Z. x < y → x ≤ y.
+
+axiom non_deve_stare_qui4: ∀x,y:Z. x < y → y ≰ x.
+
+definition Z_excess: excess.
+ apply excess_of_nordered_group;
+ [ constructor 1;
+ [ apply Z
+ | apply Zle
+ | apply non_deve_stare_qui
+ | apply transitive_Zle
+ ]
+ | simplify;
+ intros;
+ unfold;
+ generalize in match (Z_compare_to_Prop x y);
+ cases (Z_compare x y); simplify; intro;
+ [ left;
+ apply non_deve_stare_qui3;
+ assumption
+ | left;
+ rewrite > H;
+ apply non_deve_stare_qui
+ | right;
+ apply non_deve_stare_qui4;
+ assumption
+ ]
+ ]
+qed.
\ No newline at end of file
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/fields/".
+
include "attic/rings.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/integration_algebras/".
+
include "attic/vector_spaces.ma".
include "lattice.ma".
].
qed.
-coercion cic:/matita/integration_algebras/rs_lattice.con.
+coercion cic:/matita/attic/integration_algebras/rs_lattice.con.
lemma rs_ordered_abelian_group: ∀K.pre_riesz_space K → ordered_abelian_group.
intros (K V);
]
qed.
-coercion cic:/matita/integration_algebras/rs_ordered_abelian_group.con.
+coercion cic:/matita/attic/integration_algebras/rs_ordered_abelian_group.con.
record is_riesz_space (K:ordered_field_ch0) (V:pre_riesz_space K) : Prop ≝
{ rs_compat_le_times: ∀a:K.∀f:V. 0≤a → 0≤f → 0≤a*f
λR:real.λV:riesz_space R.λnorm:riesz_norm ? V.
n_function R V (rn_norm ? ? norm).
-coercion cic:/matita/integration_algebras/rn_function.con 1.
+coercion cic:/matita/attic/integration_algebras/rn_function.con 1.
(************************** L-SPACES *************************************)
(*
}.
interpretation "Algebra product" 'times a b =
- (cic:/matita/integration_algebras/a_mult.con _ a b).
+ (cic:/matita/attic/integration_algebras/a_mult.con _ a b).
definition ring_of_algebra ≝
λK.λA:algebra K.
mk_ring A (a_mult ? A) (a_one ? A)
(a_ring ? ? ? ? (a_algebra_properties ? A)).
-coercion cic:/matita/integration_algebras/ring_of_algebra.con.
+coercion cic:/matita/attic/integration_algebras/ring_of_algebra.con.
record pre_f_algebra (K:ordered_field_ch0) : Type ≝
{ fa_archimedean_riesz_space:> archimedean_riesz_space K;
]
qed.
-coercion cic:/matita/integration_algebras/fa_algebra.con.
+coercion cic:/matita/attic/integration_algebras/fa_algebra.con.
record is_f_algebra (K) (A:pre_f_algebra K) : Prop ≝
{ compat_mult_le: ∀f,g:A.0 ≤ f → 0 ≤ g → 0 ≤ f*g;
axiom ifa_f_algebra: ∀R:real.integration_f_algebra R → f_algebra R.
-coercion cic:/matita/integration_algebras/ifa_f_algebra.con.
+coercion cic:/matita/attic/integration_algebras/ifa_f_algebra.con.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/ordered_fields_ch0/".
+
include "attic/fields.ma".
include "ordered_group.ma".
]
qed.
-coercion cic:/matita/ordered_fields_ch0/of_ordered_abelian_group.con.
+coercion cic:/matita/attic/ordered_fields_ch0/of_ordered_abelian_group.con.
(*CSC: I am not able to prove this since unfold is undone by coercion composition*)
axiom of_with1:
]
qed.
-coercion cic:/matita/ordered_fields_ch0/of_cotransitively_ordered_set.con.
+coercion cic:/matita/attic/ordered_fields_ch0/of_cotransitively_ordered_set.con.
record is_ordered_field_ch0 (F:pre_ordered_field_ch0) : Type \def
{ of_mult_compat: ∀a,b:F. 0≤a → 0≤b → 0≤a*b;
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/reals/".
+
include "attic/ordered_fields_ch0.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/rings/".
+
include "group.ma".
qed.
interpretation "Ring mult" 'times a b =
- (cic:/matita/rings/mult.con _ a b).
+ (cic:/matita/attic/rings/mult.con _ a b).
notation "1" with precedence 89
for @{ 'one }.
interpretation "Ring one" 'one =
- (cic:/matita/rings/one.con _).
+ (cic:/matita/attic/rings/one.con _).
lemma eq_mult_zero_x_zero: ∀R:ring.∀x:R.0*x=0.
intros;
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/vector_spaces/".
+
include "attic/reals.ma".
}.
interpretation "Vector space external product" 'times a b =
- (cic:/matita/vector_spaces/emult.con _ _ a b).
+ (cic:/matita/attic/vector_spaces/emult.con _ _ a b).
record is_semi_norm (R:real) (V: vector_space R) (semi_norm:V→R) : Prop \def
{ sn_positive: ∀x:V. zero R ≤ semi_norm x;
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/classical_pointwise/ordered_sets/".
+
include "excess.ma".
for @{ 'hide_everything_but $a }.
interpretation "mk_bounded_above_sequence" 'hide_everything_but a
-= (cic:/matita/ordered_set/bounded_above_sequence.ind#xpointer(1/1/1) _ _ a _).
+= (cic:/matita/classical_pointfree/ordered_sets/bounded_above_sequence.ind#xpointer(1/1/1) _ _ a _).
interpretation "mk_bounded_below_sequence" 'hide_everything_but a
-= (cic:/matita/ordered_set/bounded_below_sequence.ind#xpointer(1/1/1) _ _ a _).
+= (cic:/matita/classical_pointfree/ordered_sets/bounded_below_sequence.ind#xpointer(1/1/1) _ _ a _).
theorem eq_f_sup_sup_f:
∀O':dedekind_sigma_complete_ordered_set.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/classical_pointfree/ordered_sets2".
+
include "classical_pointfree/ordered_sets.ma".
qed.
interpretation "mk_bounded_sequence" 'hide_everything_but a
-= (cic:/matita/ordered_set/bounded_sequence.ind#xpointer(1/1/1) _ _ a _ _).
+= (cic:/matita/classical_pointfree/ordered_sets/bounded_sequence.ind#xpointer(1/1/1) _ _ a _ _).
lemma reduce_bas_seq:
∀O:ordered_set.∀a:nat→O.∀p.∀i.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/sets/".
+
include "nat/nat.ma".
+include "logic/connectives.ma".
+
definition set ≝ λX:Type.X → Prop.
for @{ 'member_of $x $A }.
interpretation "Member of" 'member_of x A =
- (cic:/matita/sets/member_of.con _ A x).
+ (cic:/matita/classical_pointwise/sets/member_of.con _ A x).
notation "hvbox(x break ∉ A)" with precedence 60
for @{ 'not_member_of $x $A }.
interpretation "Not member of" 'not_member_of x A =
(cic:/matita/logic/connectives/Not.con
- (cic:/matita/sets/member_of.con _ A x)).
+ (cic:/matita/classical_pointwise/sets/member_of.con _ A x)).
definition emptyset : ∀X.set X ≝ λX:Type.λx:X.False.
notation "∅︀" with precedence 100 for @{ 'emptyset }.
interpretation "Emptyset" 'emptyset =
- (cic:/matita/sets/emptyset.con _).
+ (cic:/matita/classical_pointwise/sets/emptyset.con _).
definition subset: ∀X. set X → set X → Prop≝ λX.λA,B:set X.∀x. x ∈ A → x ∈ B.
for @{ 'subset $A $B }.
interpretation "Subset" 'subset A B =
- (cic:/matita/sets/subset.con _ A B).
+ (cic:/matita/classical_pointwise/sets/subset.con _ A B).
definition intersection: ∀X. set X → set X → set X ≝
λX.λA,B:set X.λx. x ∈ A ∧ x ∈ B.
for @{ 'intersection $A $B }.
interpretation "Intersection" 'intersection A B =
- (cic:/matita/sets/intersection.con _ A B).
+ (cic:/matita/classical_pointwise/sets/intersection.con _ A B).
definition union: ∀X. set X → set X → set X ≝ λX.λA,B:set X.λx. x ∈ A ∨ x ∈ B.
for @{ 'union $A $B }.
interpretation "Union" 'union A B =
- (cic:/matita/sets/union.con _ A B).
+ (cic:/matita/classical_pointwise/sets/union.con _ A B).
definition seq ≝ λX:Type.nat → X.
for @{ 'nth $A $i }.
interpretation "nth" 'nth A i =
- (cic:/matita/sets/nth.con _ A i).
+ (cic:/matita/classical_pointwise/sets/nth.con _ A i).
definition countable_union: ∀X. seq (set X) → set X ≝
λX.λA:seq (set X).λx.∃j.x ∈ A \sub j.
for @{ 'big_union ${default @{(λ${ident i}:$ty.$B)} @{(λ${ident i}.$B)}}}.
interpretation "countable_union" 'big_union η.t =
- (cic:/matita/sets/countable_union.con _ t).
+ (cic:/matita/classical_pointwise/sets/countable_union.con _ t).
definition complement: ∀X. set X \to set X ≝ λX.λA:set X.λx. x ∉ A.
for @{ 'complement $A }.
interpretation "Complement" 'complement A =
- (cic:/matita/sets/complement.con _ A).
+ (cic:/matita/classical_pointwise/sets/complement.con _ A).
definition inverse_image: ∀X,Y.∀f: X → Y.set Y → set X ≝
λX,Y,f,B,x. f x ∈ B.
for @{ 'finverse $f }.
interpretation "Inverse image" 'finverse f =
- (cic:/matita/sets/inverse_image.con _ _ f).
\ No newline at end of file
+ (cic:/matita/classical_pointwise/sets/inverse_image.con _ _ f).
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/sigma_algebra/".
+
include "classical_pointwise/topology.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/topology/".
+
include "classical_pointwise/sets.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/constructive_connectives/".
+include "logic/connectives.ma".
inductive Or (A,B:Type) : Type ≝
Left : A → Or A B
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/constructive_higher_order_relations".
+
include "constructive_connectives.ma".
+include "higher_order_defs/relations.ma".
definition cotransitive ≝
λC:Type.λlt:C→C→Type.∀x,y,z:C. lt x y → lt x z ∨ lt z y.
unfold; intros (x y H); cases H; [right|left] assumption;
qed.
-
\ No newline at end of file
+
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/lebesgue/".
+
include "metric_lattice.ma".
include "sequence.ma".
--- /dev/null
+metric_lattice.ma lattice.ma metric_space.ma
+metric_space.ma ordered_divisible_group.ma
+sandwich.ma metric_lattice.ma nat/orders.ma nat/plus.ma sequence.ma
+premetric_lattice.ma lattice.ma metric_space.ma
+ordered_group.ma group.ma
+divisible_group.ma group.ma nat/orders.ma
+ordered_divisible_group.ma divisible_group.ma nat/orders.ma nat/times.ma ordered_group.ma
+sequence.ma excess.ma nat/orders.ma ordered_group.ma
+constructive_connectives.ma logic/connectives.ma
+group.ma excess.ma
+prevalued_lattice.ma ordered_group.ma
+excess.ma constructive_connectives.ma constructive_higher_order_relations.ma higher_order_defs/relations.ma nat/plus.ma
+Q_is_orded_divisble_group.ma Q/q.ma ordered_divisible_group.ma
+lattice.ma excess.ma
+constructive_higher_order_relations.ma constructive_connectives.ma higher_order_defs/relations.ma
+constructive_pointfree/lebesgue.ma constructive_connectives.ma metric_lattice.ma sequence.ma
+classical_pointwise/topology.ma classical_pointwise/sets.ma
+classical_pointwise/sigma_algebra.ma classical_pointwise/topology.ma
+classical_pointwise/sets.ma logic/connectives.ma nat/nat.ma
+classical_pointfree/ordered_sets.ma excess.ma
+classical_pointfree/ordered_sets2.ma classical_pointfree/ordered_sets.ma
+attic/fields.ma attic/rings.ma
+attic/reals.ma attic/ordered_fields_ch0.ma
+attic/integration_algebras.ma attic/vector_spaces.ma lattice.ma
+attic/vector_spaces.ma attic/reals.ma
+attic/rings.ma group.ma
+attic/ordered_fields_ch0.ma group.ma attic/fields.ma ordered_group.ma
+nat/nat.ma
+logic/connectives.ma
+higher_order_defs/relations.ma
+Q/q.ma
+nat/plus.ma
+higher_order_defs/relations.ma
+logic/connectives.ma
+nat/orders.ma
+nat/times.ma
+nat/orders.ma
+nat/orders.ma
+nat/plus.ma
+nat/orders.ma
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/divisible_group/".
+
include "nat/orders.ma".
include "group.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/excess/".
+
include "higher_order_defs/relations.ma".
include "nat/plus.ma".
-include "constructive_connectives.ma".
include "constructive_higher_order_relations.ma".
+include "constructive_connectives.ma".
record excess : Type ≝ {
exc_carr:> Type;
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/group/".
+
include "excess.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/lattice/".
+
include "excess.ma".
+++ /dev/null
-H=@
-
-RT_BASEDIR=../
-OPTIONS=-bench
-MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS)
-CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS)
-MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS)
-CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS)
-
-devel:=$(shell basename `pwd`)
-
-all: preall
- $(H)MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel)
-clean: preall
- $(H)MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel)
-cleanall: preall
- $(H)MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all
-
-all.opt opt: preall
- $(H)MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel)
-clean.opt: preall
- $(H)MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel)
-cleanall.opt: preall
- $(H)MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all
-
-%.mo: preall
- $(H)MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@
-%.mo.opt: preall
- $(H)MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $(@:.opt=)
-
-preall:
- $(H)MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel)
-
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/metric_lattice/".
+
include "metric_space.ma".
include "lattice.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/metric_space/".
+
include "ordered_divisible_group.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/ordered_divisible_group/".
+
include "nat/orders.ma".
include "nat/times.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/ordered_group/".
+
include "group.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/premetric_lattice/".
+
include "metric_space.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/prevalued_lattice/".
+
include "ordered_group.ma".
--- /dev/null
+baseuri=cic:/matita/
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/sandwich/".
+
include "nat/plus.ma".
include "nat/orders.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/sequence/".
+
include "excess.ma".
+++ /dev/null
-#!/usr/bin/ruby -w
-# filter converting from .depend to .dot
-# tested on .depend generated by ocamldep
-# $Id$
-
-require 'set'
-
-edges = Set.new
-$stdin.each {|line|
- target, deps = line.split(/\s*:\s*/)
- while deps =~ /\\\s*$/ # deal with lines continued with trailing \
- deps.sub!(/\s*\\\s*$/, '')
- line = $stdin.readline
- deps += ' ' + line.lstrip
- end
- sources, targets = target.split, deps.split
- for src in sources
- for tgt in targets # ignore file extensions
- src.sub!(/\.[^.]+/, '')
- tgt.sub!(/\.[^.]+/, '')
- edges << [src, tgt] unless src == tgt # ignore self deps
- end
- end
-}
-puts 'digraph G {'
-for src, tgt in edges
- print "\"#{src}\" -> \"#{tgt}\";\n"
-end
-puts '}'
-
+++ /dev/null
-(* Copyright (C) 2006, HELM Team.
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-open Printf
-
-let is_notation = function GrafiteParser.LNone _ -> true | _ -> false
-
-let grep () =
- let recursive = ref false in
- let spec = [
- "-r", Arg.Set recursive, "enable directory recursion";
- ] in
- MatitaInit.add_cmdline_spec spec;
- MatitaInit.initialize_all ();
- let include_paths =
- Helm_registry.get_list Helm_registry.string "matita.includes" in
- let status =
- CicNotation2.load_notation ~include_paths
- BuildTimeConf.core_notation_script in
- let path =
- match Helm_registry.get_list Helm_registry.string "matita.args" with
- | [ path ] -> path
- | _ -> MatitaInit.die_usage () in
- let grep_fun =
- if !recursive then
- (fun dirname ->
- ignore (GrafiteWalker.rgrep_statement ~status
- ~callback:(fun (fname, s) -> printf "%s: %s\n%!" fname s)
- ~dirname is_notation))
- else
- (fun fname ->
- ignore (GrafiteWalker.grep_statement ~status
- ~callback:(fun s -> printf "%s\n%!" s)
- ~fname is_notation)) in
- grep_fun path
-
-let handle_localized_exns f arg =
- try
- f arg
- with HExtlib.Localized (loc, exn) ->
- let loc_begin, loc_end = HExtlib.loc_of_floc loc in
- eprintf "Error at %d-%d: %s\n%!" loc_begin loc_end (Printexc.to_string exn)
-
-let main () = handle_localized_exns grep ()
-
+++ /dev/null
-(* Copyright (C) 2006, HELM Team.
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-val main: unit -> unit
-
On the contrary, theorem and definitions declared in a file can be
immediately used without including it.</para>
<para>The file <command>s</command> is automatically compiled
- if it is not compiled yet and if it is handled by a
- <link linkend="developments">development</link>.
+ if it is not compiled yet.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect1>
- <sect1 id="command_set">
- <title>set</title>
- <para><userinput>set "baseuri" "s"</userinput></para>
- <para>
- <variablelist>
- <varlistentry>
- <term>Synopsis:</term>
- <listitem>
- <para><emphasis role="bold">set</emphasis> &qstring; &qstring;</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Action:</term>
- <listitem>
- <para>Sets to <command>s</command> the baseuri of all the
- theorems and definitions stated in the current file.
- The baseuri should be <command>a/b/c/foo</command>
- if the file is named <command>foo</command> and it is in
- the subtree <command>a/b/c</command> of the current
- <link linkend="developments">development</link>.
- This requirement is not enforced, but it could be in the future.
- </para>
- <para>Currently, <command>baseuri</command> is the only
- property that can be set even if the parser accepts
- arbitrary property names.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </sect1>
<sect1 id="command_whelp">
<title>whelp</title>
<para><userinput>whelp locate "s"</userinput></para>
</sect1>
<sect1 id="authoring">
<title>Authoring</title>
- <sect2 id="developments">
- <title>How to use developments</title>
+ <sect2 id="compilation">
+ <title>How to compile a script</title>
<para>
- A development is a set of scripts files that are strictly related (i.e.
- they depend on each other). &appname; is able to automatically manage
- dependencies among the scripts in a development, compiling them in the
- correct order.
+ Scripts are compiled to base URIs. Base URIs are of the form
+ "cic:/matita/path" and are given once for all for a set
+ of scripts using the "root" file.
</para>
<para>
- The include statement can be performed by &appname; only if the mentioned
- script is compiled. If both scripts (the one that includes and the included)
- are part of the same development, the included script (and recursively all
- its dependencies) can be compiled automatically. Dependencies among scripts
- belonging to different developments is not implemented yet.
- </para>
- <para>
- The "Developments..." item the File menu (or pressing
- Ctrl+D) opens the Developments window.
- </para>
- <figure><title>The Developments window</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="figures/developments.png" />
- </imageobject>
- <textobject><phrase>Screenshot of the Developments window.</phrase></textobject>
- </mediaobject>
- </figure>
- <para>
- <variablelist><title>Developments window buttons</title>
- <varlistentry><term><filename>New</filename></term>
- <listitem>
- <para>
- To create a new Development the user needs to specify a name<footnote>
- <para>
- The name of the Development should be the name of the directory in
- which it lives. This is not a requirement, but the makefile
- automatically generated by matita in the root directory of the
- development will eventually generate a new Development with a name
- that follows this convention. Having more than one development for
- the same set of files is not an issue.
- </para>
- </footnote>
- and the root directory in which all scripts will be placed,
- eventually organized in subdirectories. The Development should be
- named as the directory in which it lives. A "makefile"
- file is placed in the specified root directory. That makefile
- supports the following targets:
- <variablelist>
- <varlistentry><term><filename>all</filename></term>
- <listitem>
- <para>
- Build the whole development.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term><filename>clean</filename></term>
- <listitem>
- <para>
- Cleans the whole development.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term><filename>cleanall</filename></term>
- <listitem>
- <para>
- Resets the user environment (i.e. deleting all the results
- of compilation of every development, including the contents
- of the database). This target should be used only in case
- something goes wrong and &appname; behaves incorrectly.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term><filename>scriptname.mo</filename></term>
- <listitem>
- <para>
- Compiles "scriptname.ma"
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term><filename>Delete</filename></term>
- <listitem>
- <para>
- Decompiles the whole development and removes it.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term><filename>Build</filename></term>
- <listitem>
- <para>
- Compiles all the scripts in the development.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term><filename>Clean</filename></term>
- <listitem>
- <para>
- Decompiles the whole development.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term><filename>Publish</filename></term>
- <listitem>
- <para>
- All the user developments live in the "user" space. That is, the
- result of the compilation of scripts is placed in his home directory
- and the tuples are placed in personal tables inside the database.
- Publishing a development means putting it in the "library" space. This
- means putting the result of compilation in the same place where the
- standard library lives. This feature will be improved in the future
- to support publishing the development in the "distributed
- library" space (making your development public).
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term><filename>Close</filename></term>
- <listitem>
- <para>
- Closes the Developments window
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
+ A "root" file has to be placed in the root of a script set,
+ for example, consider the following files and directories, and
+ assume you keep files in "list" separated from files
+ in "sort" (for example the former directory may contain
+ functions and proofs about lists, while latter sorting algorithms
+ for lists):
+<programlisting><![CDATA[
+ list/
+ list.ma (* depending just on the standard library *)
+ utils/
+ swap.ma (* including list.ma *)
+ sort/
+ qsort.ma (* including utils/swap.ma *)
+]]></programlisting>
+ To be able to compile properly the contents of "list"
+ a file called root has to be placed in it. The file should be like
+ the following snippet.
+<programlisting><![CDATA[
+ baseuri=cic:/matita/mydatastructures
+]]></programlisting>
+ This file tells &appname; that objects generated by
+ "list.ma" have to be placed in
+ "cic:/matita/mydatastructures/list" while
+ objects generated by
+ "swap.ma" have to be placed in
+ "cic:/matita/mydatastructures/utils/swap".
+ </para>
+ <para>
+ Once you created the root file, you must generate a depend file.
+ Enter the "list" directory (the root of yuor file set)
+ and type "matitadep". Remember to regenerate the depend file
+ every time you alter the dependencies of your files (for example
+ including other scripts).
+ You can now compile you files typing "matitac".
+ </para>
+ <para>
+ To compile the "sort" directory, create a root file
+ in "sort/" like the following one and then run
+ "matitadep".
+<programlisting><![CDATA[
+ baseuri=cic:/matita/myalgorithms
+ include_paths=../list
+]]></programlisting>
+ The include_paths field can declare a list of paths separated by space.
+ Please omit any "/" from the end of base URIs or paths.
+ </para>
</sect2>
<sect2 id="authoringinterface">
<title>The authoring interface</title>
--- /dev/null
+DIR=$(shell basename $$PWD)
+
+$(DIR) all:
+ ../matitac
+$(DIR).opt opt all.opt:
+ ../matitac.opt
+clean:
+ ../matitaclean
+clean.opt:
+ ../matitaclean.opt
+depend:
+ ../matitadep
+depend.opt:
+ ../matitadep.opt
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/legacy/coq/".
-
default "equality"
cic:/Coq/Init/Logic/eq.ind
cic:/Coq/Init/Logic/sym_eq.con
+++ /dev/null
-H=@
-
-RT_BASEDIR=../
-OPTIONS=-bench -onepass -system
-MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS)
-CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS)
-MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS)
-CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS)
-
-devel:=$(shell basename `pwd`)
-
-ifneq "$(SRC)" ""
- XXX="SRC=$(SRC)"
-endif
-
-all: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel)
-clean: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel)
-cleanall: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all
-
-all.opt opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel)
-clean.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel)
-cleanall.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all
-
-%.mo: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@
-%.mo.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $(@:.opt=)
-
-preall:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel)
-
-preall.opt:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) init $(devel)
--- /dev/null
+baseuri=cic:/matita/legacy
--- /dev/null
+DIR=$(shell basename $$PWD)
+
+$(DIR) all:
+ ../matitac
+$(DIR).opt opt all.opt:
+ ../matitac.opt
+clean:
+ ../matitaclean
+clean.opt:
+ ../matitaclean.opt
+depend:
+ ../matitadep
+depend.opt:
+ ../matitadep.opt
cs_proof : is_CSetoid cs_crr cs_eq cs_ap}.
interpretation "setoid equality"
- 'eq x y = (cic:/matita/algebra/CoRN/Setoid/cs_eq.con _ x y).
+ 'eq x y = (cic:/matita/algebra/CoRN/Setoids/cs_eq.con _ x y).
interpretation "setoid apart"
- 'neq x y = (cic:/matita/algebra/CoRN/Setoid/cs_ap.con _ x y).
+ 'neq x y = (cic:/matita/algebra/CoRN/Setoids/cs_ap.con _ x y).
(* visto che sia "ap" che "eq" vanno in Prop e data la "tight-apartness",
"cs_neq" e "ap" non sono la stessa cosa? *)
definition un_op_fun: \forall S:CSetoid. CSetoid_un_op S \to CSetoid_fun S S
\def \lambda S.\lambda f.f.
-coercion cic:/matita/algebra/CoRN/Setoid/un_op_fun.con.
+coercion cic:/matita/algebra/CoRN/Setoids/un_op_fun.con.
definition cs_un_op_strext : \forall S:CSetoid. \forall f: CSetoid_fun S S. fun_strext S S (csf_fun S S f) \def
\lambda S:CSetoid. \lambda f : CSetoid_fun S S. csf_strext S S f.
definition bin_op_bin_fun: \forall S:CSetoid. CSetoid_bin_op S \to CSetoid_bin_fun S S S
\def \lambda S.\lambda f.f.
-coercion cic:/matita/algebra/CoRN/Setoid/bin_op_bin_fun.con.
+coercion cic:/matita/algebra/CoRN/Setoids/bin_op_bin_fun.con.
CSetoid_outer_op S S \to CSetoid_bin_fun S S S
\def \lambda S.\lambda f.f.
-coercion cic:/matita/algebra/CoRN/Setoid/outer_op_bin_fun.con.
+coercion cic:/matita/algebra/CoRN/Setoids/outer_op_bin_fun.con.
(* begin hide
Identity Coercion outer_op_bin_fun : CSetoid_outer_op >-> CSetoid_bin_fun.
end hide *)
--- /dev/null
+Z/dirichlet_product.ma Z/sigma_p.ma Z/times.ma nat/primes.ma
+Z/moebius.ma Z/sigma_p.ma nat/factorization.ma
+Z/times.ma Z/plus.ma nat/lt_arith.ma
+Z/orders.ma Z/z.ma logic/connectives.ma nat/orders.ma
+Z/inversion.ma Z/dirichlet_product.ma Z/moebius.ma
+Z/plus.ma Z/z.ma nat/minus.ma
+Z/compare.ma Z/orders.ma nat/compare.ma
+Z/sigma_p.ma Z/plus.ma Z/times.ma nat/generic_iter_p.ma nat/ord.ma nat/primes.ma
+Z/z.ma datatypes/bool.ma nat/nat.ma
+assembly/test.ma assembly/vm.ma
+assembly/byte.ma assembly/exadecimal.ma
+assembly/vm.ma assembly/byte.ma
+assembly/exadecimal.ma assembly/extra.ma
+assembly/extra.ma list/list.ma nat/div_and_mod.ma nat/primes.ma
+datatypes/constructors.ma logic/equality.ma
+datatypes/compare.ma
+datatypes/bool.ma higher_order_defs/functions.ma logic/equality.ma
+algebra/groups.ma algebra/monoids.ma datatypes/bool.ma logic/connectives.ma nat/compare.ma nat/le_arith.ma
+algebra/finite_groups.ma algebra/groups.ma nat/relevant_equations.ma
+algebra/semigroups.ma higher_order_defs/functions.ma
+algebra/monoids.ma algebra/semigroups.ma
+algebra/CoRN/SetoidInc.ma algebra/CoRN/SetoidFun.ma
+algebra/CoRN/SemiGroups.ma algebra/CoRN/SetoidInc.ma
+algebra/CoRN/Setoids.ma Z/plus.ma datatypes/constructors.ma higher_order_defs/relations.ma logic/equality.ma nat/nat.ma
+algebra/CoRN/SetoidFun.ma algebra/CoRN/Setoids.ma higher_order_defs/relations.ma
+demo/propositional_sequent_calculus.ma datatypes/constructors.ma list/sort.ma nat/compare.ma nat/plus.ma
+demo/power_derivative.ma nat/compare.ma nat/nat.ma nat/orders.ma nat/plus.ma
+list/sort.ma datatypes/bool.ma datatypes/constructors.ma list/list.ma
+list/list.ma higher_order_defs/functions.ma logic/equality.ma nat/nat.ma
+logic/equality.ma higher_order_defs/relations.ma logic/connectives.ma
+logic/connectives.ma
+logic/coimplication.ma logic/connectives.ma
+logic/connectives2.ma higher_order_defs/relations.ma
+nat/div_and_mod.ma datatypes/constructors.ma nat/minus.ma
+nat/count.ma nat/permutation.ma nat/relevant_equations.ma nat/sigma_and_pi.ma
+nat/factorial2.ma nat/exp.ma nat/factorial.ma
+nat/totient1.ma nat/compare.ma nat/gcd_properties1.ma nat/iteration2.ma nat/totient.ma
+nat/congruence.ma nat/primes.ma nat/relevant_equations.ma
+nat/minus.ma nat/compare.ma nat/le_arith.ma
+nat/chebyshev.ma nat/factorial2.ma nat/factorization.ma nat/log.ma nat/pi_p.ma
+nat/chinese_reminder.ma nat/congruence.ma nat/exp.ma nat/gcd.ma nat/permutation.ma
+nat/permutation.ma nat/compare.ma nat/sigma_and_pi.ma
+nat/factorial.ma nat/le_arith.ma
+nat/nth_prime.ma nat/lt_arith.ma nat/primes.ma
+nat/binomial.ma nat/factorial2.ma nat/iteration2.ma
+nat/fermat_little_theorem.ma nat/congruence.ma nat/exp.ma nat/gcd.ma nat/permutation.ma
+nat/exp.ma nat/div_and_mod.ma nat/lt_arith.ma
+nat/minimization.ma nat/minus.ma
+nat/gcd.ma nat/lt_arith.ma nat/primes.ma
+nat/chebyshev_thm.ma nat/neper.ma
+nat/neper.ma nat/binomial.ma nat/chebyshev.ma nat/div_and_mod_diseq.ma nat/iteration2.ma nat/log.ma
+nat/sigma_and_pi.ma nat/exp.ma nat/factorial.ma nat/lt_arith.ma
+nat/le_arith.ma nat/orders.ma nat/times.ma
+nat/times.ma nat/plus.ma
+nat/div_and_mod_diseq.ma nat/lt_arith.ma
+nat/generic_iter_p.ma nat/div_and_mod_diseq.ma nat/ord.ma nat/primes.ma
+nat/gcd_properties1.ma nat/gcd.ma
+nat/totient.ma nat/chinese_reminder.ma nat/iteration2.ma
+nat/lt_arith.ma nat/div_and_mod.ma
+nat/factorization.ma nat/ord.ma
+nat/log.ma datatypes/constructors.ma nat/div_and_mod_diseq.ma nat/iteration2.ma nat/minimization.ma nat/primes.ma nat/relevant_equations.ma
+nat/iteration2.ma nat/count.ma nat/generic_iter_p.ma nat/ord.ma nat/primes.ma
+nat/nat.ma higher_order_defs/functions.ma
+nat/relevant_equations.ma nat/gcd.ma nat/minus.ma nat/times.ma
+nat/map_iter_p.ma nat/count.ma nat/permutation.ma
+nat/orders.ma higher_order_defs/ordering.ma logic/connectives.ma nat/nat.ma
+nat/pi_p.ma nat/generic_iter_p.ma nat/iteration2.ma nat/primes.ma
+nat/plus.ma nat/nat.ma
+nat/euler_theorem.ma nat/nat.ma nat/map_iter_p.ma nat/totient.ma
+nat/compare.ma datatypes/bool.ma datatypes/compare.ma nat/orders.ma
+nat/primes.ma logic/connectives.ma nat/div_and_mod.ma nat/factorial.ma nat/minimization.ma nat/sigma_and_pi.ma
+nat/ord.ma datatypes/constructors.ma nat/exp.ma nat/gcd.ma nat/nth_prime.ma nat/relevant_equations.ma
+Q/Qaxioms.ma Z/compare.ma Z/times.ma nat/iteration2.ma
+Q/q.ma Z/compare.ma Z/plus.ma
+technicalities/setoids.ma datatypes/constructors.ma logic/coimplication.ma logic/connectives2.ma
+Fsub/part1a.ma Fsub/defn.ma
+Fsub/util.ma list/list.ma logic/equality.ma nat/compare.ma
+Fsub/defn.ma Fsub/util.ma
+Fsub/part1a_inversion.ma Fsub/defn.ma
+decidable_kit/streicher.ma logic/connectives.ma logic/equality.ma
+decidable_kit/decidable.ma datatypes/bool.ma decidable_kit/streicher.ma logic/connectives.ma nat/compare.ma
+decidable_kit/fgraph.ma decidable_kit/fintype.ma
+decidable_kit/eqtype.ma datatypes/constructors.ma decidable_kit/decidable.ma
+decidable_kit/list_aux.ma decidable_kit/eqtype.ma list/list.ma nat/plus.ma
+decidable_kit/fintype.ma decidable_kit/eqtype.ma decidable_kit/list_aux.ma
+higher_order_defs/relations.ma logic/connectives.ma
+higher_order_defs/functions.ma logic/equality.ma
+higher_order_defs/ordering.ma logic/equality.ma
+++ /dev/null
-set "baseuri" "cic:/matita/library_notation/".
-
-include "Q/q.ma".
-include "higher_order_defs/functions.ma".
-include "higher_order_defs/ordering.ma".
-include "higher_order_defs/relations.ma".
-include "nat/nth_prime.ma".
-include "nat/plus.ma".
-include "nat/ord.ma".
-include "nat/congruence.ma".
-include "nat/compare.ma".
-include "nat/totient.ma".
-include "nat/le_arith.ma".
-include "nat/count.ma".
-include "nat/orders.ma".
-include "nat/minus.ma".
-include "nat/exp.ma".
-include "nat/gcd.ma".
-include "nat/div_and_mod.ma".
-include "nat/primes.ma".
-include "nat/relevant_equations.ma".
-include "nat/chinese_reminder.ma".
-include "nat/factorial.ma".
-include "nat/lt_arith.ma".
-include "nat/minimization.ma".
-include "nat/permutation.ma".
-include "nat/sigma_and_pi.ma".
-include "nat/factorization.ma".
-include "nat/times.ma".
-include "nat/fermat_little_theorem.ma".
-include "nat/nat.ma".
-(* FG: coq non c'entra con library, o sbaglio? *)
-(* include "legacy/coq.ma". *)
-include "Z/compare.ma".
-include "Z/plus.ma".
-include "Z/times.ma".
-include "Z/z.ma".
-include "Z/orders.ma".
-include "list/sort.ma".
-include "list/list.ma".
-include "algebra/semigroups.ma".
-include "algebra/monoids.ma".
-include "algebra/groups.ma".
-include "algebra/finite_groups.ma".
-include "logic/connectives.ma".
-include "logic/equality.ma".
-include "datatypes/constructors.ma".
-include "datatypes/compare.ma".
-include "datatypes/bool.ma".
-
-notation "hvbox(x break \middot y)"
- left associative with precedence 55
-for @{ 'times $x $y }.
-
right associative with precedence 47
for @{'append $l1 $l2 }.
-interpretation "nil" 'nil = (cic:/matita/list/list.ind#xpointer(1/1/1) _).
+interpretation "nil" 'nil = (cic:/matita/list/list/list.ind#xpointer(1/1/1) _).
interpretation "cons" 'cons hd tl =
- (cic:/matita/list/list.ind#xpointer(1/1/2) _ hd tl).
+ (cic:/matita/list/list/list.ind#xpointer(1/1/2) _ hd tl).
(* theorem test_notation: [O; S O; S (S O)] = O :: S O :: S (S O) :: []. *)
[ nil => []
| (cons hd tl) => tl].
-interpretation "append" 'append l1 l2 = (cic:/matita/list/append.con _ l1 l2).
+interpretation "append" 'append l1 l2 = (cic:/matita/list/list/append.con _ l1 l2).
theorem append_nil: \forall A:Type.\forall l:list A.l @ [] = l.
intros;
+++ /dev/null
-H=@
-
-RT_BASEDIR=../
-OPTIONS=-bench
-MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS)
-CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS)
-MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS)
-CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS)
-
-devel:=$(shell basename `pwd`)
-
-ifneq "$(SRC)" ""
- XXX="SRC=$(SRC)"
-endif
-
-all: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel)
-clean: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel)
-cleanall: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all
-
-all.opt opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel)
-clean.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel)
-cleanall.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all
-
-%.mo: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@
-%.mo.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $(@:.opt=)
-
-preall:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel)
-
-preall.opt:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) init $(devel)
--- /dev/null
+baseuri=cic:/matita
set "baseuri" "cic:/matita/technicalities/setoids".
include "datatypes/constructors.ma".
-include "logic/connectives2.ma".
include "logic/coimplication.ma".
+include "logic/connectives2.ma".
(* DEFINITIONS OF Relation_Class AND n-ARY Morphism_Theory *)
</child>
</widget>
</child>
+ <!--
<child>
<widget class="GtkImageMenuItem" id="developmentsMenuItem">
<property name="visible">True</property>
</child>
</widget>
</child>
+ -->
<child>
<widget class="GtkSeparatorMenuItem" id="separator2">
<property name="visible">True</property>
</widget>
</child>
</widget>
- <widget class="GtkWindow" id="NewDevelWin">
- <property name="title" translatable="yes">Create development</property>
- <property name="resizable">False</property>
- <property name="modal">True</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ALWAYS</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_UTILITY</property>
- <child>
- <widget class="GtkVBox" id="vbox10">
- <property name="visible">True</property>
- <child>
- <widget class="GtkTable" id="table2">
- <property name="visible">True</property>
- <property name="border_width">3</property>
- <property name="n_rows">2</property>
- <property name="n_columns">3</property>
- <property name="column_spacing">5</property>
- <property name="row_spacing">5</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <widget class="GtkButton" id="chooseRootButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">...</property>
- <property name="use_underline">True</property>
- <property name="response_id">0</property>
- </widget>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="rootEntry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">*</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="nameEntry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">*</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label21">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Root directory</property>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label20">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Name</property>
- </widget>
- <packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHSeparator" id="hseparator1">
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="padding">2</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox21">
- <property name="visible">True</property>
- <property name="border_width">3</property>
- <property name="spacing">5</property>
- <child>
- <widget class="GtkVBox" id="vbox11">
- <property name="visible">True</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </widget>
- </child>
- <child>
- <widget class="GtkButton" id="addButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-add</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="cancelButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkWindow" id="DevelListWin">
- <property name="title" translatable="yes">Developments</property>
- <property name="window_position">GTK_WIN_POS_CENTER</property>
- <child>
- <widget class="GtkVBox" id="vbox12">
- <property name="visible">True</property>
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow10">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <child>
- <widget class="GtkTreeView" id="developmentsTreeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">False</property>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="GtkHSeparator" id="hseparator2">
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="padding">2</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="buttonsHbox">
- <property name="visible">True</property>
- <property name="border_width">3</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkVBox" id="vbox13">
- <property name="visible">True</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </widget>
- </child>
- <child>
- <widget class="GtkButton" id="newButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-new</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="deleteButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-delete</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="buildButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="response_id">0</property>
- <child>
- <widget class="GtkAlignment" id="alignment14">
- <property name="visible">True</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <child>
- <widget class="GtkHBox" id="hbox23">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <widget class="GtkImage" id="image358">
- <property name="visible">True</property>
- <property name="stock">gtk-execute</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label22">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Build</property>
- <property name="use_underline">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="cleanButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="response_id">0</property>
- <child>
- <widget class="GtkAlignment" id="alignment15">
- <property name="visible">True</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <child>
- <widget class="GtkHBox" id="hbox24">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <widget class="GtkImage" id="image359">
- <property name="visible">True</property>
- <property name="stock">gtk-clear</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label23">
- <property name="visible">True</property>
- <property name="label" translatable="yes">C_lean</property>
- <property name="use_underline">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="publishButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="response_id">0</property>
- <child>
- <widget class="GtkAlignment" id="alignment16">
- <property name="visible">True</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <child>
- <widget class="GtkHBox" id="hbox25">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <widget class="GtkImage" id="image907">
- <property name="visible">True</property>
- <property name="stock">gtk-convert</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label24">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish</property>
- <property name="use_underline">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">5</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="graphButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="response_id">0</property>
- <child>
- <widget class="GtkAlignment" id="alignment17">
- <property name="visible">True</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <child>
- <widget class="GtkHBox" id="hbox26">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <widget class="GtkImage" id="image908">
- <property name="visible">True</property>
- <property name="stock">gtk-zoom-fit</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label27">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Graph</property>
- <property name="use_underline">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">6</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="closeButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">7</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
<widget class="GtkDialog" id="DisambiguationErrors">
<property name="width_request">450</property>
<property name="height_request">400</property>
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/".
-
(fun ~title ~message ->
MatitaGtkMisc.ask_confirmation ~title ~message
~parent:gui#main#toplevel ())
- ~develcreator:gui#createDevelopment
()
in
gui#sourceView#source_buffer#begin_not_undoable_action ();
end
(** Debugging }}} *)
- (** {2 Command line parsing} *)
-
-let set_matita_mode () =
- let matita_mode =
- if Filename.basename Sys.argv.(0) = "cicbrowser" ||
- Filename.basename Sys.argv.(0) = "cicbrowser.opt"
- then "cicbrowser"
- else "matita"
- in
- Helm_registry.set "matita.mode" matita_mode
-
(** {2 Main} *)
let _ =
- set_matita_mode ();
at_exit (fun () -> print_endline "\nThanks for using Matita!\n");
Sys.catch_break true;
let args = Helm_registry.get_list Helm_registry.string "matita.args" in
- if Helm_registry.get "matita.mode" = "cicbrowser" then (* cicbrowser *)
- let browser = MatitaMathView.cicBrowser () in
- let uri = match args with [] -> "cic:/" | _ -> String.concat " " args in
- browser#loadInput uri
- else begin (* matita *)
- (try gui#loadScript (List.hd args) with Failure _ -> ());
- gui#main#mainWin#show ();
- end;
+ (try gui#loadScript (List.hd args) with Failure _ -> ());
+ gui#main#mainWin#show ();
try
- GtkThread.main ()
+ GtkThread.main ()
with Sys.Break ->
Sys.set_signal Sys.sigint
(Sys.Signal_handle
(fun _ ->
prerr_endline "Still cleaning the library: don't be impatient!"));
prerr_endline "Matita is cleaning up. Please wait.";
- try
- let baseuri =
- GrafiteTypes.get_string_option
- (MatitaScript.current ())#grafite_status "baseuri"
- in
+ let baseuri =
+ GrafiteTypes.get_baseuri (MatitaScript.current ())#grafite_status
+ in
LibraryClean.clean_baseuris [baseuri]
- with GrafiteTypes.Option_error _ -> ()
(* vim:set foldmethod=marker: *)
GrafiteTypes.set_metasenv metasenv grafite_status,tac
let disambiguate_command lexicon_status_ref grafite_status cmd =
+ let baseuri = GrafiteTypes.get_baseuri grafite_status in
let lexicon_status,metasenv,cmd =
- GrafiteDisambiguate.disambiguate_command
- ~baseuri:(
- try
- Some (GrafiteTypes.get_string_option grafite_status "baseuri")
- with
- GrafiteTypes.Option_error _ -> None)
+ GrafiteDisambiguate.disambiguate_command ~baseuri
!lexicon_status_ref (GrafiteTypes.get_proof_metasenv grafite_status) cmd
in
lexicon_status_ref := lexicon_status;
in
GrafiteTypes.set_metasenv metasenv grafite_status,macro
-let eval_ast ?do_heavy_checks ?clean_baseuri lexicon_status
+let eval_ast ?do_heavy_checks lexicon_status
grafite_status (text,prefix_len,ast)
=
let lexicon_status_ref = ref lexicon_status in
+ let baseuri = GrafiteTypes.get_baseuri grafite_status in
let new_grafite_status,new_objs =
GrafiteEngine.eval_ast
~disambiguate_tactic:(disambiguate_tactic text prefix_len lexicon_status_ref)
~disambiguate_command:(disambiguate_command lexicon_status_ref)
~disambiguate_macro:(disambiguate_macro lexicon_status_ref)
- ?do_heavy_checks ?clean_baseuri grafite_status (text,prefix_len,ast) in
+ ?do_heavy_checks grafite_status (text,prefix_len,ast) in
let new_lexicon_status =
LexiconSync.add_aliases_for_objs !lexicon_status_ref new_objs in
let new_aliases =
LexiconSync.alias_diff ~from:lexicon_status new_lexicon_status in
let _,intermediate_states =
- let baseuri = GrafiteTypes.get_string_option new_grafite_status "baseuri" in
List.fold_left
(fun (lexicon_status,acc) (k,((v,_) as value)) ->
let b =
try
- UriManager.buri_of_uri (UriManager.uri_of_string v) = baseuri
+ (* this hack really sucks! *)
+ UriManager.buri_of_uri (UriManager.uri_of_string v) =
+ baseuri
with
UriManager.IllFormedUri _ -> false (* v is a description, not a URI *)
in
if b then
lexicon_status,acc
else
+
let new_lexicon_status =
LexiconEngine.set_proof_aliases lexicon_status [k,value]
in
((new_grafite_status,new_lexicon_status),None)::intermediate_states
exception TryingToAdd of string
+exception EnrichedWithLexiconStatus of exn * LexiconEngine.status
let out = ref ignore
let set_callback f = out := f
-let eval_from_stream ~first_statement_only ~include_paths ?(prompt=false)
- ?do_heavy_checks ?clean_baseuri ?(enforce_no_new_aliases=true)
+let eval_from_stream ~first_statement_only ~include_paths
+ ?do_heavy_checks ?(enforce_no_new_aliases=true)
?(watch_statuses=fun _ _ -> ()) lexicon_status grafite_status str cb
=
let rec loop lexicon_status grafite_status statuses =
let loop =
- if first_statement_only then
- fun _ _ statuses -> statuses
- else
- loop
+ if first_statement_only then fun _ _ statuses -> statuses
+ else loop
+ in
+ let stop,l,g,s =
+ try
+ let cont =
+ try
+ Some (GrafiteParser.parse_statement ~include_paths str lexicon_status)
+ with
+ End_of_file -> None
+ in
+ match cont with
+ | None -> true, lexicon_status, grafite_status, statuses
+ | Some (lexicon_status,ast) ->
+ (match ast with
+ GrafiteParser.LNone _ ->
+ watch_statuses lexicon_status grafite_status ;
+ false, lexicon_status, grafite_status,
+ (((grafite_status,lexicon_status),None)::statuses)
+ | GrafiteParser.LSome ast ->
+ !out ast;
+ cb grafite_status ast;
+ let new_statuses =
+ eval_ast ?do_heavy_checks lexicon_status
+ grafite_status ("",0,ast) in
+ if enforce_no_new_aliases then
+ List.iter
+ (fun (_,alias) ->
+ match alias with
+ None -> ()
+ | Some (k,((v,_) as value)) ->
+ let newtxt =
+ DisambiguatePp.pp_environment
+ (DisambiguateTypes.Environment.add k value
+ DisambiguateTypes.Environment.empty)
+ in
+ raise (TryingToAdd newtxt)) new_statuses;
+ let grafite_status,lexicon_status =
+ match new_statuses with
+ [] -> assert false
+ | (s,_)::_ -> s
+ in
+ watch_statuses lexicon_status grafite_status ;
+ false, lexicon_status, grafite_status, (new_statuses @ statuses))
+ with exn ->
+ raise (EnrichedWithLexiconStatus (exn, lexicon_status))
in
- if prompt then (print_string "matita> "; flush stdout);
- let cont =
- try
- Some (GrafiteParser.parse_statement ~include_paths str lexicon_status)
- with
- End_of_file -> None
- in
- match cont with
- | None -> statuses
- | Some (lexicon_status,ast) ->
- (match ast with
- GrafiteParser.LNone _ ->
- watch_statuses lexicon_status grafite_status ;
- loop lexicon_status grafite_status
- (((grafite_status,lexicon_status),None)::statuses)
- | GrafiteParser.LSome ast ->
- !out ast;
- cb grafite_status ast;
- let new_statuses =
- eval_ast ?do_heavy_checks ?clean_baseuri lexicon_status
- grafite_status ("",0,ast) in
- if enforce_no_new_aliases then
- List.iter
- (fun (_,alias) ->
- match alias with
- None -> ()
- | Some (k,((v,_) as value)) ->
- let newtxt =
- DisambiguatePp.pp_environment
- (DisambiguateTypes.Environment.add k value
- DisambiguateTypes.Environment.empty)
- in
- raise (TryingToAdd newtxt)) new_statuses;
- let grafite_status,lexicon_status =
- match new_statuses with
- [] -> assert false
- | (s,_)::_ -> s
- in
- watch_statuses lexicon_status grafite_status ;
- loop lexicon_status grafite_status (new_statuses @ statuses))
+ if stop then s else loop l g s
in
loop lexicon_status grafite_status []
;;
val eval_ast :
?do_heavy_checks:bool ->
- ?clean_baseuri:bool ->
LexiconEngine.status ->
GrafiteTypes.status ->
string * int *
(* heavy checks slow down the compilation process but give you some interesting
* infos like if the theorem is a duplicate *)
+exception EnrichedWithLexiconStatus of exn * LexiconEngine.status
+
(* should be used only by the compiler since it looses the
* disambiguation_context (text,prefix_len,_) *)
val eval_from_stream :
first_statement_only:bool ->
include_paths:string list ->
- ?prompt:bool ->
?do_heavy_checks:bool ->
- ?clean_baseuri:bool ->
?enforce_no_new_aliases:bool -> (* default true *)
?watch_statuses:(LexiconEngine.status -> GrafiteTypes.status -> unit) ->
LexiconEngine.status ->
let _,msg = to_string exn in
let (x, y) = HExtlib.loc_of_floc floc in
Some floc, sprintf "Error at %d-%d: %s" x y msg
- | GrafiteTypes.Option_error ("baseuri", "not found" ) ->
- None,
- "Baseuri not set for this script. "
- ^ "Use 'set \"baseuri\" \"<uri>\".' to set it."
| GrafiteTypes.Command_error msg -> None, "Error: " ^ msg
| CicNotationParser.Parse_error err ->
None, sprintf "Parse error: %s" err
None, "Already defined: " ^ UriManager.string_of_uri s
| CoercDb.EqCarrNotImplemented msg ->
None, ("EqCarrNotImplemented: " ^ Lazy.force msg)
+ | MatitaEngine.EnrichedWithLexiconStatus (exn,_) ->
+ None, "EnrichedWithLexiconStatus "^snd(to_string exn)
| GrafiteDisambiguator.DisambiguationError (offset,errorll) ->
let loc =
match errorll with
method clear () =
buffer#delete ~start:buffer#start_iter ~stop:buffer#end_iter
method log_callback (tag: HLog.log_tag) s =
+ let s = Pcre.replace ~pat:"\e\\[0;3.m([^\e]+)\e\\[0m" ~templ:"$1" s in
match tag with
| `Debug -> self#debug (s ^ "\n")
| `Error -> self#error (s ^ "\n")
end
let clean_current_baseuri grafite_status =
- try
- let baseuri = GrafiteTypes.get_string_option grafite_status "baseuri" in
- LibraryClean.clean_baseuris [baseuri]
- with GrafiteTypes.Option_error _ -> ()
+ LibraryClean.clean_baseuris [GrafiteTypes.get_baseuri grafite_status]
-let ask_and_save_moo_if_needed parent fname lexicon_status grafite_status =
- let baseuri =
- try Some (GrafiteTypes.get_string_option grafite_status "baseuri")
- with GrafiteTypes.Option_error _ -> None
+let save_moo lexicon_status grafite_status =
+ let script = MatitaScript.current () in
+ let baseuri = GrafiteTypes.get_baseuri grafite_status in
+ let no_pstatus =
+ grafite_status.GrafiteTypes.proof_status = GrafiteTypes.No_proof
in
- if (MatitaScript.current ())#eos &&
- grafite_status.GrafiteTypes.proof_status = GrafiteTypes.No_proof &&
- baseuri <> None
- then
- begin
- let baseuri = match baseuri with Some b -> b | None -> assert false in
- let moo_fname =
- LibraryMisc.obj_file_of_baseuri ~must_exist:false ~baseuri
- ~writable:true in
- let save () =
- let lexicon_fname =
+ match script#bos, script#eos, no_pstatus with
+ | true, _, _ -> ()
+ | _, true, true ->
+ let moo_fname =
+ LibraryMisc.obj_file_of_baseuri ~must_exist:false ~baseuri
+ ~writable:true in
+ let lexicon_fname =
LibraryMisc.lexicon_file_of_baseuri
~must_exist:false ~baseuri ~writable:true
- in
- GrafiteMarshal.save_moo moo_fname
- grafite_status.GrafiteTypes.moo_content_rev;
- LexiconMarshal.save_lexicon lexicon_fname
- lexicon_status.LexiconEngine.lexicon_content_rev
- in
- begin
- let rc =
- MatitaGtkMisc.ask_confirmation
- ~title:"A .moo can be generated"
- ~message:(Printf.sprintf
- "%s can be generated for %s.\n<i>Should I generate it?</i>"
- (Filename.basename moo_fname) (Filename.basename fname))
- ~parent ()
- in
- let b =
- match rc with
- | `YES -> true
- | `NO -> false
- | `CANCEL -> raise MatitaTypes.Cancel
- in
- if b then
- save ()
- else
- clean_current_baseuri grafite_status
- end
- end
- else
- clean_current_baseuri grafite_status
+ in
+ GrafiteMarshal.save_moo moo_fname
+ grafite_status.GrafiteTypes.moo_content_rev;
+ LexiconMarshal.save_lexicon lexicon_fname
+ lexicon_status.LexiconEngine.lexicon_content_rev
+ | _ -> clean_current_baseuri grafite_status
+;;
let ask_unsaved parent =
MatitaGtkMisc.ask_confirmation
end
-let rec interactive_error_interp ~all_passes (source_buffer:GSourceView.source_buffer) notify_exn offset errorll script_fname
+let rec interactive_error_interp ~all_passes
+ (source_buffer:GSourceView.source_buffer) notify_exn offset errorll filename
=
(* hook to save a script for each disambiguation error *)
if false then
source_buffer#get_text ~start:source_buffer#start_iter
~stop:source_buffer#end_iter () in
let md5 = Digest.to_hex (Digest.string text) in
- let filename = match script_fname with Some s -> s | None -> "unnamed.ma" in
let filename =
Filename.chop_extension filename ^ ".error." ^ md5 ^ ".ma" in
let ch = open_out filename in
connect_button dialog#disambiguationErrorsMoreErrors
(fun _ -> return () ;
interactive_error_interp ~all_passes:true source_buffer
- notify_exn offset errorll script_fname);
+ notify_exn offset errorll filename);
connect_button dialog#disambiguationErrorsCancelButton fail;
dialog#disambiguationErrors#show ();
GtkThread.main ()
let main = new mainWin () in
let fileSel = new fileSelectionWin () in
let findRepl = new findReplWin () in
- let develList = new develListWin () in
- let newDevel = new newDevelWin () in
let keyBindingBoxes = (* event boxes which should receive global key events *)
[ main#mainWinEventBox ]
in
val mutable chosen_file = None
val mutable _ok_not_exists = false
val mutable _only_directory = false
- val mutable script_fname = None
val mutable font_size = default_font_size
- val mutable next_devel_must_contain = None
val mutable next_ligatures = []
val clipboard = GData.clipboard Gdk.Atom.clipboard
val primary = GData.clipboard Gdk.Atom.primary
initializer
+ let s () = MatitaScript.current () in
(* glade's check widgets *)
List.iter (fun w -> w#check_widgets ())
(let c w = (w :> <check_widgets: unit -> unit>) in
(* interface lockers *)
let lock_world _ =
main#buttonsToolbar#misc#set_sensitive false;
- develList#buttonsHbox#misc#set_sensitive false;
main#scriptMenu#misc#set_sensitive false;
source_view#set_editable false
in
let unlock_world _ =
main#buttonsToolbar#misc#set_sensitive true;
- develList#buttonsHbox#misc#set_sensitive true;
main#scriptMenu#misc#set_sensitive true;
source_view#set_editable true;
(*The next line seems sufficient to avoid some unknown race condition *)
with
| GrafiteDisambiguator.DisambiguationError (offset,errorll) ->
(try
- interactive_error_interp ~all_passes:!all_disambiguation_passes source_buffer
- notify_exn offset errorll script_fname
+ interactive_error_interp
+ ~all_passes:!all_disambiguation_passes source_buffer
+ notify_exn offset errorll (s())#filename
with
exc -> notify_exn exc);
unlock_world ()
f (); source_view#misc#grab_focus ()
with
exc -> source_view#misc#grab_focus (); raise exc in
- (* developments win *)
- let model =
- new MatitaGtkMisc.multiStringListModel
- ~cols:2 develList#developmentsTreeview
- in
- let refresh_devels_win () =
- model#list_store#clear ();
- List.iter
- (fun (name, root) -> model#easy_mappend [name;root])
- (MatitamakeLib.list_known_developments ())
- in
- let get_devel_selected () =
- match model#easy_mselection () with
- | [[name;_]] -> MatitamakeLib.development_for_name name
- | _ -> None
- in
- let refresh () =
- while Glib.Main.pending () do
- ignore(Glib.Main.iteration false);
- done
- in
- connect_button develList#newButton
- (fun () ->
- next_devel_must_contain <- None;
- newDevel#toplevel#misc#show());
- connect_button develList#deleteButton
- (locker (fun () ->
- (match get_devel_selected () with
- | None -> ()
- | Some d -> MatitamakeLib.destroy_development_in_bg refresh d);
- refresh_devels_win ()));
- connect_button develList#buildButton
- (locker (fun () ->
- match get_devel_selected () with
- | None -> ()
- | Some d ->
- let build = locker
- (fun () -> MatitamakeLib.build_development_in_bg refresh d)
- in
- ignore(build ())));
- connect_button develList#cleanButton
- (locker (fun () ->
- match get_devel_selected () with
- | None -> ()
- | Some d ->
- let clean = locker
- (fun () -> MatitamakeLib.clean_development_in_bg refresh d)
- in
- ignore(clean ())));
- (* publish button hidden, use command line
- connect_button develList#publishButton
- (locker (fun () ->
- match get_devel_selected () with
- | None -> ()
- | Some d ->
- let publish = locker (fun () ->
- MatitamakeLib.publish_development_in_bg refresh d) in
- ignore(publish ())));
- *)
- develList#publishButton#misc#hide ();
- connect_button develList#graphButton (fun () ->
- match get_devel_selected () with
- | None -> ()
- | Some d ->
- (match MatitamakeLib.dot_for_development d with
- | None -> ()
- | Some _ ->
- let browser = MatitaMathView.cicBrowser () in
- browser#load (`Development
- (MatitamakeLib.name_for_development d))));
- connect_button develList#closeButton
- (fun () -> develList#toplevel#misc#hide());
- ignore(develList#toplevel#event#connect#delete
- (fun _ -> develList#toplevel#misc#hide();true));
- connect_menu_item main#developmentsMenuItem
- (fun () -> refresh_devels_win ();develList#toplevel#misc#show ());
-
- (* add development win *)
- let check_if_root_contains root =
- match next_devel_must_contain with
- | None -> true
- | Some path ->
- let is_prefix_of d1 d2 =
- let d1 = MatitamakeLib.normalize_path d1 in
- let d2 = MatitamakeLib.normalize_path d2 in
- let len1 = String.length d1 in
- let len2 = String.length d2 in
- if len2 < len1 then
- false
- else
- let pref = String.sub d2 0 len1 in
- pref = d1
- in
- is_prefix_of root path
- in
- connect_button newDevel#addButton
- (fun () ->
- let name = newDevel#nameEntry#text in
- let root = newDevel#rootEntry#text in
- if check_if_root_contains root then
- begin
- ignore (MatitamakeLib.initialize_development name root);
- refresh_devels_win ();
- newDevel#nameEntry#set_text "";
- newDevel#rootEntry#set_text "";
- newDevel#toplevel#misc#hide()
- end
- else
- HLog.error ("The selected root does not contain " ^
- match next_devel_must_contain with
- | Some x -> x
- | _ -> assert false));
- connect_button newDevel#chooseRootButton
- (fun () ->
- let path = self#chooseDir () in
- match path with
- | Some path -> newDevel#rootEntry#set_text path
- | None -> ());
- connect_button newDevel#cancelButton
- (fun () -> newDevel#toplevel#misc#hide ());
- ignore(newDevel#toplevel#event#connect#delete
- (fun _ -> newDevel#toplevel#misc#hide();true));
(* file selection win *)
ignore (fileSel#fileSelectionWin#event#connect#delete (fun _ -> true));
source_buffer#set_language matita_lang;
source_buffer#set_highlight true
in
- let s () = MatitaScript.current () in
let disableSave () =
- script_fname <- None;
+ (s())#assignFileName None;
main#saveMenuItem#misc#set_sensitive false
in
let saveAsScript () =
let script = s () in
match self#chooseFile ~ok_not_exists:true () with
| Some f ->
- script#assignFileName f;
+ HExtlib.touch f;
+ script#assignFileName (Some f);
script#saveToFile ();
console#message ("'"^f^"' saved.\n");
self#_enableSaveTo f
| None -> ()
in
let saveScript () =
- match script_fname with
- | None -> saveAsScript ()
- | Some f ->
- (s ())#assignFileName f;
- (s ())#saveToFile ();
- console#message ("'"^f^"' saved.\n");
+ let script = s () in
+ if script#has_name then
+ (script#saveToFile ();
+ console#message ("'"^script#filename^"' saved.\n"))
+ else saveAsScript ()
in
let abandon_script () =
let lexicon_status = (s ())#lexicon_status in
| `YES -> saveScript ()
| `NO -> ()
| `CANCEL -> raise MatitaTypes.Cancel);
- (match script_fname with
- | None -> ()
- | Some fname ->
- ask_and_save_moo_if_needed main#toplevel fname
- lexicon_status grafite_status);
+ save_moo lexicon_status grafite_status
in
let loadScript () =
let script = s () in
| Some f ->
abandon_script ();
script#reset ();
- script#assignFileName f;
+ script#assignFileName (Some f);
source_view#source_buffer#begin_not_undoable_action ();
script#loadFromFile f;
source_view#source_buffer#end_not_undoable_action ();
(s ())#template ();
source_view#source_buffer#end_not_undoable_action ();
disableSave ();
- script_fname <- None
+ (s ())#assignFileName None
in
let cursor () =
source_buffer#place_cursor
let jump = locker (keep_focus jump) in
(* quit *)
self#setQuitCallback (fun () ->
- let lexicon_status = (MatitaScript.current ())#lexicon_status in
- let grafite_status = (MatitaScript.current ())#grafite_status in
+ let script = MatitaScript.current () in
if source_view#buffer#modified then
- begin
- let rc = ask_unsaved main#toplevel in
- try
- match rc with
- | `YES -> saveScript ();
- if not source_view#buffer#modified then
- begin
- (match script_fname with
- | None -> ()
- | Some fname ->
- ask_and_save_moo_if_needed main#toplevel
- fname lexicon_status grafite_status);
- GMain.Main.quit ()
- end
- | `NO -> GMain.Main.quit ()
- | `CANCEL -> raise MatitaTypes.Cancel
- with MatitaTypes.Cancel -> ()
- end
+ match ask_unsaved main#toplevel with
+ | `YES ->
+ saveScript ();
+ save_moo script#lexicon_status script#grafite_status;
+ GMain.Main.quit ()
+ | `NO -> GMain.Main.quit ()
+ | `CANCEL -> ()
else
- begin
- (match script_fname with
- | None -> clean_current_baseuri grafite_status; GMain.Main.quit ()
- | Some fname ->
- try
- ask_and_save_moo_if_needed main#toplevel fname lexicon_status
- grafite_status;
- GMain.Main.quit ()
- with MatitaTypes.Cancel -> ())
- end);
+ (save_moo script#lexicon_status script#grafite_status;
+ GMain.Main.quit ()));
connect_button main#scriptAdvanceButton advance;
connect_button main#scriptRetractButton retract;
connect_button main#scriptTopButton top;
ask_text ~gui:self ~title:"External editor" ~msg ~multiline:false
~default:(Helm_registry.get "matita.external_editor") ()
in *)
- let fname = (MatitaScript.current ())#filename in
+ let script = MatitaScript.current () in
+ let fname = script#filename in
let slice mark =
source_buffer#start_iter#get_slice
~stop:(source_buffer#get_iter_at_mark mark)
in
- let script = MatitaScript.current () in
let locked = `MARK script#locked_mark in
let string_pos mark = string_of_int (String.length (slice mark)) in
let cursor_pos = string_pos `INSERT in
method loadScript file =
let script = MatitaScript.current () in
script#reset ();
- if Pcre.pmatch ~pat:"\\.p$" file then
- begin
- let tptppath =
- Helm_registry.get_opt_default Helm_registry.string ~default:"./"
- "matita.tptppath"
- in
- let data = Matitaprover.p_to_ma ~filename:file ~tptppath () in
- let filename = Pcre.replace ~pat:"\\.p$" ~templ:".ma" file in
- script#assignFileName filename;
- source_view#source_buffer#begin_not_undoable_action ();
- script#loadFromString data;
- source_view#source_buffer#end_not_undoable_action ();
- console#message ("'"^filename^"' loaded.");
- self#_enableSaveTo filename
- end
- else
- begin
- script#assignFileName file;
- let content =
- if Sys.file_exists file then file
- else BuildTimeConf.script_template
- in
- source_view#source_buffer#begin_not_undoable_action ();
- script#loadFromFile content;
- source_view#source_buffer#end_not_undoable_action ();
- console#message ("'"^file^"' loaded.");
- self#_enableSaveTo file
- end
+ script#assignFileName (Some file);
+ let file = script#filename in
+ let content =
+ if Sys.file_exists file then file
+ else BuildTimeConf.script_template
+ in
+ source_view#source_buffer#begin_not_undoable_action ();
+ script#loadFromFile content;
+ source_view#source_buffer#end_not_undoable_action ();
+ console#message ("'"^file^"' loaded.");
+ self#_enableSaveTo file
- method setStar name b =
+ method setStar b =
+ let s = MatitaScript.current () in
let w = main#toplevel in
let set x = w#set_title x in
- let name = "Matita - " ^ name in
- if b then
- set (name ^ " *")
- else
- set (name)
+ let name =
+ "Matita - " ^ Filename.basename s#filename ^
+ (if b then "*" else "") ^
+ " in " ^ s#buri_of_current_file
+ in
+ set name
method private _enableSaveTo file =
- script_fname <- Some file;
self#main#saveMenuItem#misc#set_sensitive true
method console = console
method fileSel = fileSel
method findRepl = findRepl
method main = main
- method develList = develList
- method newDevel = newDevel
method newBrowserWin () =
object (self)
(* we should check that this is a directory *)
chosen_file
- method createDevelopment ~containing =
- next_devel_must_contain <- containing;
- newDevel#toplevel#misc#show()
-
method askText ?(title = "") ?(msg = "") () =
let dialog = new textDialog () in
dialog#textDialog#set_title title;
method fileSel : MatitaGeneratedGui.fileSelectionWin
method main : MatitaGeneratedGui.mainWin
method findRepl : MatitaGeneratedGui.findReplWin
- method develList: MatitaGeneratedGui.develListWin
- method newDevel: MatitaGeneratedGui.newDevelWin
(* method toolbar : MatitaGeneratedGui.toolBarWin *)
method console: console
* @param ok_not_exists if set to true returns also non existent files
* (useful for save). Defaults to false *)
method chooseFile: ?ok_not_exists:bool -> unit -> string option
- method createDevelopment: containing:string option -> unit
(** prompt the user for a (multiline) text entry *)
method askText: ?title:string -> ?msg:string -> unit -> string option
method loadScript: string -> unit
- method setStar: string -> bool -> unit
+ method setStar: bool -> unit
(** {3 Fonts} *)
method increaseFontSize: unit -> unit
(* $Id$ *)
type thingsToInitilaize =
- ConfigurationFile | Db | Environment | Getter | Makelib | CmdLine | Registry
+ ConfigurationFile | Db | Environment | Getter | CmdLine | Registry
exception FailedToInitialize of thingsToInitilaize
let registry_defaults = [
"matita.debug", "false";
"matita.external_editor", "gvim -f -c 'go %p' %f";
- "matita.preserve", "false";
"matita.profile", "true";
"matita.system", "false";
- "matita.verbosity", "1";
- "matita.bench", "false";
+ "matita.verbose", "false";
"matita.paste_unicode_as_tex", "false";
"matita.noinnertypes", "false";
"matita.do_heavy_checks", "true";
- (** verbosity level: 1 is the default, 0 is intuitively "quiet", > 1 is
- * intuitively verbose *)
+ "matita.moo", "true";
]
let set_registry_values =
else
init_status
-let initialize_makelib init_status =
- wants [ConfigurationFile] init_status;
- if not (already_configured [Makelib] init_status) then
- begin
- MatitamakeLib.initialize ();
- Makelib::init_status
- end
- else
- init_status
-
let initialize_environment init_status =
wants [CmdLine] init_status;
if not (already_configured [Getter;Environment] init_status) then
List.iter
(fun (name, s) -> Hashtbl.replace usages name s)
[ "matitac",
- Printf.sprintf "MatitaC v%s
+ Printf.sprintf "Matita batch compiler v%s
Usage: matitac [ OPTION ... ] FILE
Options:"
BuildTimeConf.version;
- "gragrep",
- Printf.sprintf "Grafite Grep v%s
-Usage: gragrep [ -r ] PATH
-Options:"
- BuildTimeConf.version;
- "matitaprover",
- Printf.sprintf "Matita's prover v%s
+ "matitaprover",
+ Printf.sprintf "Matita (TPTP) prover v%s
Usage: matitaprover [ -tptppath ] FILE.p
Options:"
BuildTimeConf.version;
"matita",
- Printf.sprintf "Matita v%s
-Usage: matita [ OPTION ... ] [ FILE ... ]
-Options:"
- BuildTimeConf.version;
- "cicbrowser",
- Printf.sprintf
- "CIC Browser v%s
-Usage: cicbrowser [ URL | WHELP QUERY ]
+ Printf.sprintf "Matita interactive theorem prover v%s
+Usage: matita [ OPTION ... ] [ FILE ]
Options:"
BuildTimeConf.version;
"matitadep",
- Printf.sprintf "MatitaDep v%s
-Usage: matitadep [ OPTION ... ] FILE ...
+ Printf.sprintf "Matita depency file generator v%s
+Usage: matitadep [ OPTION ... ]
Options:"
BuildTimeConf.version;
"matitaclean",
Printf.sprintf "MatitaClean v%s
Usage: matitaclean all
- matitaclean [ (FILE | URI) ... ]
-Options:"
- BuildTimeConf.version;
- "matitamake",
- Printf.sprintf "MatitaMake v%s
-Usage: matitamake [ OPTION ... ] (init | clean | list | destroy | build)
- init
- Parameters: name (the name of the development, required)
- root (the directory in which the delopment is rooted,
- optional, default is current working directory)
- Description: tells matitamake that a new development radicated
- in the current working directory should be handled.
- clean
- Parameters: name (the name of the development to destroy, optional)
- If omitted the development that holds the current working
- directory is used (if any).
- Description: clean the develpoment.
- list
- Parameters:
- Description: lists the known developments and their roots.
- destroy
- Parameters: name (the name of the development to destroy, required)
- Description: deletes a development (only from matitamake metadat, no
- .ma files will be deleted).
- build
- Parameters: name (the name of the development to build, required)
- Description: completely builds the develpoment.
- publish
- Parameters: name (the name of the development to publish, required)
- Description: cleans the development in the user space, rebuilds it
- in the system space ('ro' repositories, that for this operation
- becames writable).
-Notes:
- If target is omitted an 'all' will be used as the default.
- With -build you can build a development wherever it is.
- If you specify a target it implicitly refers to the development that
- holds the current working directory (if any).
+ matitaclean ( FILE | URI )
Options:"
BuildTimeConf.version;
]
try Filename.chop_extension basename with Invalid_argument _ -> basename
in
try Hashtbl.find usages usage_key with Not_found -> default_usage
+;;
+
+let dump f =
+ let module G = GrafiteAst in
+ let module L = LexiconAst in
+ let module H = HExtlib in
+ Helm_registry.set_bool "matita.moo" false;
+ let floc = H.dummy_floc in
+ let nl_ast = G.Comment (floc, G.Note (floc, "")) in
+ let och = open_out f in
+ let atexit () = close_out och in
+ let out_comment och s =
+ let s = if s <> "" && s.[0] = '*' then "#" ^ s else s in
+ Printf.fprintf och "%s%s%s\n\n" "(*" s "*)"
+ in
+ let out_line_comment och s =
+ let l = 70 - String.length s in
+ let s = Printf.sprintf " %s %s" s (String.make l '*') in
+ out_comment och s
+ in
+ let out_preamble och (path, lines) =
+ let ich = open_in path in
+ let rec print i =
+ if i > 0 then
+ let s = input_line ich in
+ begin Printf.fprintf och "%s\n" s; print (pred i) end
+ in
+ print lines;
+ out_line_comment och "This file was automatically generated: do not edit"
+ in
+ let pp_ast_statement st =
+ GrafiteAstPp.pp_statement ~term_pp:CicNotationPp.pp_term
+ ~map_unicode_to_tex:(Helm_registry.get_bool
+ "matita.paste_unicode_as_tex")
+ ~lazy_term_pp:CicNotationPp.pp_term
+ ~obj_pp:(CicNotationPp.pp_obj CicNotationPp.pp_term) st
+ in
+ let nl () = output_string och (pp_ast_statement nl_ast) in
+ let rt_base_dir = Filename.dirname Sys.argv.(0) in
+ let path = Filename.concat rt_base_dir "matita.ma.templ" in
+ let lines = 14 in
+ out_preamble och (path, lines);
+ let grafite_parser_cb fname =
+ let ast = G.Executable
+ (floc, G.Command (floc, G.Include (floc, fname))) in
+ output_string och (pp_ast_statement ast); nl (); nl ()
+ in
+ let matita_engine_cb = function
+ | G.Executable (_, G.Macro (_, G.Inline _))
+ | G.Executable (_, G.Command (_, G.Include _)) -> ()
+ | ast ->
+ output_string och (pp_ast_statement ast); nl (); nl ()
+ in
+ let matitac_lib_cb = output_string och in
+ GrafiteParser.set_callback grafite_parser_cb;
+ MatitaEngine.set_callback matita_engine_cb;
+ MatitacLib.set_callback matitac_lib_cb;
+ at_exit atexit
+;;
let extra_cmdline_specs = ref []
let add_cmdline_spec l = extra_cmdline_specs := l @ !extra_cmdline_specs
wants [Registry] init_status;
let includes = ref [] in
let default_includes = [
- ".";
BuildTimeConf.stdlib_dir_devel;
BuildTimeConf.stdlib_dir_installed ; ]
in
let absolutize s =
- if Pcre.pmatch ~pat:"^/" s then s else Sys.getcwd() ^"/"^s
+ if Pcre.pmatch ~pat:"^/" s then s else Sys.getcwd () ^"/"^s
in
let args = ref [] in
let add_l l = fun s -> l := s :: !l in
- let reduce_verbosity () =
- Helm_registry.set_int "matita.verbosity"
- (Helm_registry.get_int "matita.verbosity" - 1) in
let print_version () =
Printf.printf "%s\n" BuildTimeConf.version;exit 0 in
- let increase_verbosity () =
- Helm_registry.set_int "matita.verbosity"
- (Helm_registry.get_int "matita.verbosity" + 1) in
let no_innertypes () =
Helm_registry.set_bool "matita.noinnertypes" true in
+ let set_baseuri s =
+ match Str.split (Str.regexp "::") s with
+ | [path; uri] -> Helm_registry.set "matita.baseuri"
+ (HExtlib.normalize_path (absolutize path)^" "^uri)
+ | _ -> raise (Failure "bad baseuri, use -b 'path::uri'")
+ in
let arg_spec =
let std_arg_spec = [
+ "-b", Arg.String set_baseuri, "<path::uri> forces the baseuri of path";
"-I", Arg.String (add_l includes),
("<path> Adds path to the list of searched paths for the "
^ "include command");
"-profile-only",
Arg.String (fun rex -> Helm_registry.set "matita.profile_only" rex),
"Activates only profiler with label matching the provided regex";
- "-bench",
- Arg.Unit (fun () -> Helm_registry.set_bool "matita.bench" true),
- "Turns on parsable output on stdout, that is timings for matitac...";
- "-preserve",
- Arg.Unit (fun () -> Helm_registry.set_bool "matita.preserve" true),
- "Turns off automatic baseuri cleaning";
- "-q", Arg.Unit reduce_verbosity, "Reduce verbosity";
"-system", Arg.Unit (fun () ->
Helm_registry.set_bool "matita.system" true),
("Act on the system library instead of the user one"
^ "\n WARNING: not for the casual user");
- "-v", Arg.Unit increase_verbosity, "Increase verbosity";
+ "-dump", Arg.String dump,
+ "<filename> Dump with expanded macros to <filename>";
+ "-v",
+ Arg.Unit (fun () -> Helm_registry.set_bool "matita.verbose" true),
+ "Verbose mode";
"--version", Arg.Unit print_version, "Prints version";
] in
let debug_arg_spec =
in
Arg.parse arg_spec (add_l args) (usage ());
let includes =
- List.map absolutize ((List.rev !includes) @ default_includes) in
+ List.map (fun x -> HExtlib.normalize_path (absolutize x))
+ ((List.rev !includes) @ default_includes)
+ in
set_list ~key:"matita.includes" includes;
let args = List.rev (List.filter (fun x -> x <> "") !args) in
set_list ~key:"matita.args" args;
[ load_configuration; fill_registry; parse_cmdline]
let other_components =
- [ initialize_makelib; initialize_db; initialize_environment ]
+ [ initialize_db; initialize_environment ]
let initialize_all () =
status :=
List.fold_left (fun s f -> f s) !status
(conf_components @ other_components)
-(* initialize_notation
- (initialize_environment
- (initialize_db
- (initialize_makelib
- (load_configuration
- (parse_cmdline !status))))) *)
let parse_cmdline_and_configuration_file () =
status := List.fold_left (fun s f -> f s) !status conf_components
ignore (win#toplevel#event#connect#delete (fun _ ->
let my_id = Oo.id self in
cicBrowsers := List.filter (fun b -> Oo.id b <> my_id) !cicBrowsers;
- if !cicBrowsers = [] &&
- Helm_registry.get "matita.mode" = "cicbrowser"
- then
- GMain.quit ();
false));
ignore(win#whelpResultTreeview#connect#row_activated
~callback:(fun _ _ ->
| `About `Coercions -> self#coerchgraph true ()
| `Check term -> self#_loadCheck term
| `Cic (term, metasenv) -> self#_loadTermCic term metasenv
- | `Development d -> self#_showDevelDeps d
| `Dir dir -> self#_loadDir dir
| `HBugs `Tutors -> self#_loadHBugsTutors
| `Metadata (`Deps ((`Fwd | `Back) as dir, uri)) ->
win#browserUri#entry#set_text (MatitaTypes.string_of_entry entry);
current_entry <- entry
- method private _showDevelDeps d =
- match MatitamakeLib.development_for_name d with
- | None -> ()
- | Some devel ->
- (match MatitamakeLib.dot_for_development devel with
- | None -> ()
- | Some fname ->
- gviz#load_graph_from_file ~gviz_cmd:"tred | dot" fname;
- self#_showGviz)
-
method private _loadObj obj =
(* showMath must be done _before_ loading the document, since if the
* widget is not mapped (hidden by the notebook) the document is not
let shutup () =
HLog.set_log_callback (fun _ _ -> ());
+(*
let out = open_out "/dev/null" in
Unix.dup2 (Unix.descr_of_out_channel out) (Unix.descr_of_out_channel stderr)
+*)
mathviewer:MatitaTypes.mathViewer;
urichooser: UriManager.uri list -> UriManager.uri list;
ask_confirmation: title:string -> message:string -> [`YES | `NO | `CANCEL];
- develcreator: containing:string option -> unit;
- mutable filenamedata: string option * MatitamakeLib.development option
}
-let eval_with_engine guistuff lexicon_status grafite_status user_goal
+let eval_with_engine include_paths guistuff lexicon_status grafite_status user_goal
skipped_txt nonskipped_txt st
=
let module TAPp = GrafiteAstPp in
([],skipped_txt) enriched_history_fragment
in
res,"",parsed_text_length
+;;
-let wrap_with_developments guistuff f arg =
- let compile_needed_and_go_on lexiconfile d exc =
- let target = Pcre.replace ~pat:"lexicon$" ~templ:"moo" lexiconfile in
- let target = Pcre.replace ~pat:"metadata$" ~templ:"moo" target in
- let refresh_cb () =
- while Glib.Main.pending () do ignore(Glib.Main.iteration false); done
- in
- if not(MatitamakeLib.build_development_in_bg ~target refresh_cb d) then
- raise exc
- else
- f arg
- in
- let do_nothing () = raise (ActionCancelled "Inclusion not performed") in
- let check_if_file_is_exists f =
- assert(Pcre.pmatch ~pat:"ma$" f);
- let pwd = Sys.getcwd () in
- let f_pwd = pwd ^ "/" ^ f in
- if not (HExtlib.is_regular f_pwd) then
- raise (ActionCancelled ("File "^f_pwd^" does not exists!"))
- else
- raise
- (ActionCancelled
- ("Internal error: "^f_pwd^" exists but I'm unable to include it!"))
- in
- let handle_with_devel d lexiconfile mafile exc =
- let name = MatitamakeLib.name_for_development d in
- let title = "Unable to include " ^ lexiconfile in
- let message =
- mafile ^ " is handled by development <b>" ^ name ^ "</b>.\n\n" ^
- "<i>Should I compile it and Its dependencies?</i>"
- in
- (match guistuff.ask_confirmation ~title ~message with
- | `YES -> compile_needed_and_go_on lexiconfile d exc
- | `NO -> raise exc
- | `CANCEL -> do_nothing ())
- in
- let handle_without_devel mafilename exc =
- let title = "Unable to include " ^ mafilename in
- let message =
- mafilename ^ " is <b>not</b> handled by a development.\n" ^
- "All dependencies are automatically solved for a development.\n\n" ^
- "<i>Do you want to set up a development?</i>"
- in
- (match guistuff.ask_confirmation ~title ~message with
- | `YES ->
- guistuff.develcreator ~containing:(Some (Filename.dirname mafilename));
- do_nothing ()
- | `NO -> raise exc
- | `CANCEL -> do_nothing())
- in
- try
- f arg
+(* this function calls the parser in a way that it does not perform inclusions,
+ * so that we can ensure the inclusion is performed after the included file
+ * is compiled (if needed). matitac does not need that, since it compiles files
+ * in the good order, here files may be compiled on demand. *)
+let wrap_with_make include_paths (f : GrafiteParser.statement) x =
+ try
+ f ~never_include:true ~include_paths x
with
- | DependenciesParser.UnableToInclude mafilename ->
- assert (Pcre.pmatch ~pat:"ma$" mafilename);
- check_if_file_is_exists mafilename
- | LexiconEngine.IncludedFileNotCompiled (xfilename,mafilename)
- | GrafiteEngine.IncludedFileNotCompiled (xfilename,mafilename) as exn ->
- assert (Pcre.pmatch ~pat:"ma$" mafilename);
- assert (Pcre.pmatch ~pat:"lexicon$" xfilename ||
- Pcre.pmatch ~pat:"mo$" xfilename );
- (* we know that someone was able to include the .ma, get the baseuri
- * but was unable to get the compilation output 'xfilename' *)
- match MatitamakeLib.development_for_dir (Filename.dirname mafilename) with
- | None -> handle_without_devel mafilename exn
- | Some d -> handle_with_devel d xfilename mafilename exn
-;;
-
-let eval_with_engine
- guistuff lexicon_status grafite_status user_goal
- skipped_txt nonskipped_txt st
-=
- wrap_with_developments guistuff
- (eval_with_engine
- guistuff lexicon_status grafite_status user_goal
- skipped_txt nonskipped_txt) st
+ | GrafiteParser.NoInclusionPerformed mafilename ->
+ let root, buri, _, tgt =
+ try Librarian.baseuri_of_script ~include_paths mafilename
+ with Librarian.NoRootFor _ ->
+ HLog.error ("The included file '"^mafilename^"' has no root file,");
+ HLog.error "please create it.";
+ raise (Failure ("No root file for "^mafilename))
+ in
+ let initial_lexicon_status =
+ CicNotation2.load_notation ~include_paths:[] BuildTimeConf.core_notation_script
+ in
+ let b,x =
+ try
+ GrafiteSync.push ();
+ LexiconSync.time_travel ~present:x ~past:initial_lexicon_status;
+ let rc = MatitacLib.Make.make root [tgt] in
+ GrafiteSync.pop ();
+ CicNotation.reset ();
+ ignore(CicNotation2.load_notation ~include_paths:[]
+ BuildTimeConf.core_notation_script);
+ let x = List.fold_left (fun s c -> LexiconEngine.eval_command s c)
+ initial_lexicon_status (List.rev
+ x.LexiconEngine.lexicon_content_rev)
+ in
+ rc,x
+ with
+ | exn ->
+ HLog.error ("Unexpected " ^ snd(MatitaExcPp.to_string exn));
+ assert false
+ in
+ if b then f ~include_paths x
+ else raise (Failure ("Compiling: " ^ tgt))
;;
let pp_eager_statement_ast =
let module MD = GrafiteDisambiguator in
let module ML = MatitaMisc in
try
- begin
- match ex with
- | TA.Command (_,TA.Set (_,"baseuri",u)) ->
- if Http_getter_storage.is_read_only u then
- raise (ActionCancelled ("baseuri " ^ u ^ " is readonly"));
- if not (Http_getter_storage.is_empty ~local:true u) then
- (match
- guistuff.ask_confirmation
- ~title:"Baseuri redefinition"
- ~message:(
- "Baseuri " ^ u ^ " already exists.\n" ^
- "Do you want to redefine the corresponding "^
- "part of the library?")
- with
- | `YES -> LibraryClean.clean_baseuris [u]
- | `NO -> ()
- | `CANCEL -> raise MatitaTypes.Cancel)
- | _ -> ()
- end;
ignore (buffer#move_mark (`NAME "beginning_of_statement")
~where:((buffer#get_iter_at_mark (`NAME "locked"))#forward_chars
(Glib.Utf8.length skipped_txt))) ;
- eval_with_engine
+ eval_with_engine include_paths
guistuff lexicon_status grafite_status user_goal skipped_txt nonskipped_txt
(TA.Executable (loc, ex))
with
| `Raw text ->
if Pcre.pmatch ~rex:only_dust_RE text then raise Margin;
let ast =
- wrap_with_developments guistuff
- (GrafiteParser.parse_statement
- (Ulexing.from_utf8_string text) ~include_paths) lexicon_status
+ wrap_with_make include_paths
+ (GrafiteParser.parse_statement (Ulexing.from_utf8_string text)) lexicon_status
in
ast, text
| `Ast (st, text) -> (lexicon_status, st), text
~set_star
~ask_confirmation
~urichooser
- ~develcreator
() =
let buffer = source_view#buffer in
let source_buffer = source_view#source_buffer in
-let initial_statuses () =
- (* these include_paths are used only to load the initial notation *)
- let include_paths =
- Helm_registry.get_list Helm_registry.string "matita.includes" in
+let initial_statuses baseuri =
let lexicon_status =
- CicNotation2.load_notation ~include_paths
- BuildTimeConf.core_notation_script in
- let grafite_status = GrafiteSync.init () in
+ CicNotation2.load_notation ~include_paths:[]
+ BuildTimeConf.core_notation_script
+ in
+ let grafite_status = GrafiteSync.init baseuri in
grafite_status,lexicon_status
in
+let read_include_paths file =
+ try
+ let root, _buri, _fname, _tgt =
+ Librarian.baseuri_of_script ~include_paths:[] file
+ in
+ let rc =
+ Str.split (Str.regexp " ")
+ (List.assoc "include_paths" (Librarian.load_root_file (root^"/root")))
+ in
+ List.iter (HLog.debug) rc; rc
+ with Librarian.NoRootFor _ | Not_found -> []
+in
+let default_buri = "cic:/matita/tests" in
+let default_fname = ".unnamed.ma" in
object (self)
- val mutable include_paths =
- Helm_registry.get_list Helm_registry.string "matita.includes"
+ val mutable include_paths_ = []
val scriptId = fresh_script_id ()
-
+
val guistuff = {
mathviewer = mathviewer;
urichooser = urichooser;
ask_confirmation = ask_confirmation;
- develcreator = develcreator;
- filenamedata = (None, None)}
-
- method private getFilename =
- match guistuff.filenamedata with Some f,_ -> f | _ -> assert false
+ }
- method filename = self#getFilename
-
- method private ppFilename =
- match guistuff.filenamedata with
- | Some f,_ -> f
- | None,_ -> sprintf ".unnamed%d.ma" scriptId
+ val mutable filename_ = (None : string option)
+
+ method has_name = filename_ <> None
+ method include_paths =
+ include_paths_ @
+ Helm_registry.get_list Helm_registry.string "matita.includes"
+
+ method private curdir =
+ try
+ let root, _buri, _fname, _tgt =
+ Librarian.baseuri_of_script ~include_paths:self#include_paths
+ self#filename
+ in
+ root
+ with Librarian.NoRootFor _ -> Sys.getcwd ()
+
+ method buri_of_current_file =
+ match filename_ with
+ | None -> default_buri
+ | Some f ->
+ try
+ let _root, buri, _fname, _tgt =
+ Librarian.baseuri_of_script ~include_paths:self#include_paths f
+ in
+ buri
+ with Librarian.NoRootFor _ -> default_buri
+
+ method filename = match filename_ with None -> default_fname | Some f -> f
+
initializer
ignore (GMain.Timeout.add ~ms:300000
~callback:(fun _ -> self#_saveToBackupFile ();true));
ignore (buffer#connect#modified_changed
- (fun _ -> set_star (Filename.basename self#ppFilename) buffer#modified))
+ (fun _ -> set_star buffer#modified))
val mutable statements = [] (** executed statements *)
- val mutable history = [ initial_statuses () ]
+ val mutable history = [ initial_statuses default_buri ]
(** 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.
method private _advance ?statement () =
let s = match statement with Some s -> s | None -> self#getFuture in
+ if self#bos then LibraryClean.clean_baseuris [self#buri_of_current_file];
HLog.debug ("evaluating: " ^ first_line s ^ " ...");
let entries, newtext, parsed_len =
try
- eval_statement include_paths buffer guistuff self#lexicon_status
+ eval_statement self#include_paths buffer guistuff self#lexicon_status
self#grafite_status userGoal self (`Raw s)
with End_of_file -> raise Margin
in
buffer#set_text (HExtlib.input_file f);
self#reset_buffer;
buffer#set_modified false
-
+
method assignFileName file =
- let abspath = MatitaMisc.absolute_path file in
- let dirname = Filename.dirname abspath in
- let devel = MatitamakeLib.development_for_dir dirname in
- guistuff.filenamedata <- Some abspath, devel;
- let include_ =
- match MatitamakeLib.development_for_dir dirname with
- None -> []
- | Some devel -> [MatitamakeLib.root_for_development devel] in
- let include_ =
- include_ @ (Helm_registry.get_list Helm_registry.string "matita.includes")
+ let file =
+ match file with
+ | Some f -> Some (Librarian.absolutize f)
+ | None -> None
in
- include_paths <- include_
+ self#goto_top;
+ filename_ <- file;
+ include_paths_ <-
+ (match file with Some file -> read_include_paths file | None -> []);
+ self#reset_buffer;
+ Sys.chdir self#curdir;
+ HLog.debug ("Moving to " ^ Sys.getcwd ())
method saveToFile () =
- let oc = open_out self#getFilename in
- output_string oc (buffer#get_text ~start:buffer#start_iter
+ if self#has_name then
+ let oc = open_out self#filename in
+ output_string oc (buffer#get_text ~start:buffer#start_iter
~stop:buffer#end_iter ());
- close_out oc;
- buffer#set_modified false
+ close_out oc;
+ set_star false;
+ buffer#set_modified false
+ else
+ HLog.error "Can't save, no filename selected"
method private _saveToBackupFile () =
if buffer#modified then
begin
- let f = self#ppFilename ^ "~" in
+ let f = self#filename in
let oc = open_out f in
output_string oc (buffer#get_text ~start:buffer#start_iter
~stop:buffer#end_iter ());
method private reset_buffer =
statements <- [];
- history <- [ initial_statuses () ];
+ history <- [ initial_statuses self#buri_of_current_file ];
userGoal <- None;
self#notify;
buffer#remove_tag locked_tag ~start:buffer#start_iter ~stop:buffer#end_iter;
method template () =
let template = HExtlib.input_file BuildTimeConf.script_template in
buffer#insert ~iter:(buffer#get_iter `START) template;
- let development = MatitamakeLib.development_for_dir (Unix.getcwd ()) in
- guistuff.filenamedata <- (None,development);
- let include_ =
- match development with
- None -> []
- | Some devel -> [MatitamakeLib.root_for_development devel ]
- in
- let include_ =
- include_ @ (Helm_registry.get_list Helm_registry.string "matita.includes")
- in
- include_paths <- include_ ;
- buffer#set_modified false;
- set_star (Filename.basename self#ppFilename) false
+ buffer#set_modified false;
+ set_star false
method goto (pos: [`Top | `Bottom | `Cursor]) () =
try
method setGoal n = userGoal <- n
method goal = userGoal
+ method bos =
+ match history with
+ | _::[] -> true
+ | _ -> false
+
method eos =
let rec is_there_only_comments lexicon_status s =
if Pcre.pmatch ~rex:only_dust_RE s then raise Margin;
let lexicon_status,st =
GrafiteParser.parse_statement (Ulexing.from_utf8_string s)
- ~include_paths lexicon_status
+ ~include_paths:self#include_paths lexicon_status
in
match st with
| GrafiteParser.LSome (GrafiteAst.Comment (loc,_)) ->
HLog.debug ("history size: " ^ string_of_int (List.length history));
HLog.debug (sprintf "%d statements:" (List.length statements));
List.iter HLog.debug statements;
- HLog.debug ("Current file name: " ^
- (match guistuff.filenamedata with
- |None,_ -> "[ no name ]"
- | Some f,_ -> f));
-
+ HLog.debug ("Current file name: " ^ self#filename);
end
let _script = ref None
-let script ~source_view ~mathviewer ~urichooser ~develcreator ~ask_confirmation ~set_star ()
+let script ~source_view ~mathviewer ~urichooser ~ask_confirmation ~set_star ()
=
let s = new script
- ~source_view ~mathviewer ~ask_confirmation ~urichooser ~develcreator ~set_star ()
+ ~source_view ~mathviewer ~ask_confirmation ~urichooser ~set_star ()
in
_script := Some s;
s
method locked_tag : GText.tag
method error_tag : GText.tag
- (** @return current status *)
+ (** @return current status *)
method lexicon_status: LexiconEngine.status
method grafite_status: GrafiteTypes.status
method template: unit -> unit
(** {2 Load/save} *)
-
- method assignFileName : string -> unit (* to the current active file *)
+
+ method has_name: bool
+ (* alwais return a name, use has_name to check if it is the default one *)
+ method filename: string
+ method buri_of_current_file: string
+ method include_paths: string list
+ method assignFileName : string option -> unit (* to the current active file *)
method loadFromFile : string -> unit
method loadFromString : string -> unit
method saveToFile : unit -> unit
(** @return true if there is an ongoing proof, false otherise *)
method onGoingProof: unit -> bool
-(* method proofStatus: ProofEngineTypes.status |+* @raise Statement_error +| *)
method proofMetasenv: Cic.metasenv (** @raise Statement_error *)
method proofContext: Cic.context (** @raise Statement_error *)
method proofConclusion: Cic.term (** @raise Statement_error *)
(** end of script, true if the whole script has been executed *)
method eos: bool
+ method bos: bool
(** misc *)
method clean_dirty_lock: unit
source_view:GSourceView.source_view ->
mathviewer: MatitaTypes.mathViewer->
urichooser: (UriManager.uri list -> UriManager.uri list) ->
- develcreator: (containing:string option -> unit) ->
ask_confirmation:
(title:string -> message:string -> [`YES | `NO | `CANCEL]) ->
- set_star: (string -> bool -> unit) ->
+ set_star: (bool -> unit) ->
unit ->
script
[ `About of abouts (* current proof *)
| `Check of string (* term *)
| `Cic of Cic.term * Cic.metasenv
- | `Development of string
| `Dir of string (* "directory" in cic uris namespace *)
| `HBugs of [ `Tutors ] (* list of available HBugs tutors *)
| `Metadata of [ `Deps of [`Fwd | `Back] * UriManager.uri ]
| `About `CoercionsFull -> "about:coercions"
| `Check _ -> "check:"
| `Cic (_, _) -> "term:"
- | `Development d -> "devel:/" ^ d
| `Dir uri -> uri
| `HBugs `Tutors -> "hbugs:/tutors/"
| `Metadata meta ->
[ `About of abouts
| `Check of string
| `Cic of Cic.term * Cic.metasenv
- | `Development of string
| `Dir of string
| `HBugs of [ `Tutors ]
| `Metadata of [ `Deps of [`Fwd | `Back] * UriManager.uri ]
match !grafite_status with
[] -> exit n
| grafite_status::_ ->
- try
- let baseuri = GrafiteTypes.get_string_option grafite_status "baseuri" in
+ let baseuri = GrafiteTypes.get_baseuri grafite_status in
LibraryClean.clean_baseuris ~verbose:false [baseuri];
exit n
- with GrafiteTypes.Option_error("baseuri", "not found") ->
- (* no baseuri ==> nothing to clean yet *)
- exit n
let terminate n =
let terminator = String.make 1 (Char.chr 249) in
| _ -> ()
in
run_script str
- (MatitaEngine.eval_from_stream ~first_statement_only:true ~prompt:false
+ (MatitaEngine.eval_from_stream ~first_statement_only:true
~include_paths:(Lazy.force include_paths) ~watch_statuses) ;
interactive_loop (Some (List.length !lexicon_status))
with
);
(* must be called after init since args are set by cmdline parsing *)
let system_mode = Helm_registry.get_bool "matita.system" in
- Helm_registry.set_int "matita.verbosity" 0;
let include_paths =
Helm_registry.get_list Helm_registry.string "matita.includes" in
- grafite_status := [GrafiteSync.init ()];
+ grafite_status := [GrafiteSync.init "cic:/matita/tests/"];
lexicon_status :=
[CicNotation2.load_notation ~include_paths
BuildTimeConf.core_notation_script] ;
else
begin
let baseuri =
- GrafiteTypes.get_string_option
- (match !grafite_status with
+ GrafiteTypes.get_baseuri
+ (match !grafite_status with
[] -> assert false
- | s::_ -> s) "baseuri" in
+ | s::_ -> s)
+ in
let moo_fname =
LibraryMisc.obj_file_of_baseuri
~must_exist:false ~baseuri ~writable:true
(* $Id$ *)
-module G = GrafiteAst
-module L = LexiconAst
-module H = HExtlib
+(* compiler ala pascal/java using make *)
+let main_compiler () =
+ MatitaInit.initialize_all ();
+ (* targets and deps *)
+ let targets = Helm_registry.get_list Helm_registry.string "matita.args" in
+ let target, root =
+ match targets with
+ | [] ->
+ (match Librarian.find_roots_in_dir (Sys.getcwd ()) with
+ | [x] -> [], Filename.dirname x
+ | [] ->
+ prerr_endline "No targets and no root found"; exit 1
+ | roots ->
+ let roots = List.map (HExtlib.chop_prefix (Sys.getcwd()^"/")) roots in
+ prerr_endline ("Too many roots found:\n\t" ^ String.concat "\n\t" roots);
+ prerr_endline ("\nEnter one of these directories and retry");
+ exit 1);
+ | [hd] ->
+ let root, buri, file, target =
+ Librarian.baseuri_of_script ~include_paths:[] hd
+ in
+ [target], root
+ | _ -> prerr_endline "Only one target (or none) can be specified.";exit 1
+ in
+ (* must be called after init since args are set by cmdline parsing *)
+ let system_mode = Helm_registry.get_bool "matita.system" in
+ if system_mode then HLog.message "Compiling in system space";
+ (* here we go *)
+ if not (Helm_registry.get_bool "matita.verbose") then MatitaMisc.shutup ();
+ if MatitacLib.Make.make root target then
+ HLog.message "Compilation successful"
+ else
+ HLog.message "Compilation failed"
+;;
-(* from transcript *)
-
-let out_comment och s =
- let s = if s <> "" && s.[0] = '*' then "#" ^ s else s in
- Printf.fprintf och "%s%s%s\n\n" "(*" s "*)"
-
-let out_line_comment och s =
- let l = 70 - String.length s in
- let s = Printf.sprintf " %s %s" s (String.make l '*') in
- out_comment och s
-
-let out_preamble och (path, lines) =
- let ich = open_in path in
- let rec print i =
- if i > 0 then
- let s = input_line ich in
- begin Printf.fprintf och "%s\n" s; print (pred i) end
- in
- print lines;
- out_line_comment och "This file was automatically generated: do not edit"
-
-(* from matitacLib *)
-
-let pp_ast_statement st =
- GrafiteAstPp.pp_statement ~term_pp:CicNotationPp.pp_term
- ~map_unicode_to_tex:(Helm_registry.get_bool
- "matita.paste_unicode_as_tex")
- ~lazy_term_pp:CicNotationPp.pp_term ~obj_pp:(CicNotationPp.pp_obj CicNotationPp.pp_term) st
-
-(**)
-
-let dump f =
- Helm_registry.set_bool "matita.moo" false;
- let floc = H.dummy_floc in
- let nl_ast = G.Comment (floc, G.Note (floc, "")) in
- let och = open_out f in
- let atexit () = close_out och in
- let nl () = output_string och (pp_ast_statement nl_ast) in
- let rt_base_dir = Filename.dirname Sys.argv.(0) in
- let path = Filename.concat rt_base_dir "matita.ma.templ" in
- let lines = 14 in
- out_preamble och (path, lines);
- let grafite_parser_cb fname =
- let ast = G.Executable (floc, G.Command (floc, G.Include (floc, fname))) in
- output_string och (pp_ast_statement ast); nl (); nl ()
- in
- let matita_engine_cb = function
- | G.Executable (_, G.Macro (_, G.Inline _))
- | G.Executable (_, G.Command (_, G.Include _)) -> ()
- | ast ->
- output_string och (pp_ast_statement ast); nl (); nl ()
- in
- let matitac_lib_cb = output_string och in
- GrafiteParser.set_callback grafite_parser_cb;
- MatitaEngine.set_callback matita_engine_cb;
- MatitacLib.set_callback matitac_lib_cb;
- at_exit atexit
-
let main () =
- Helm_registry.set_bool "matita.moo" true;
- match Filename.basename Sys.argv.(0) with
- |"gragrep" |"gragrep.opt" |"gragrep.opt.static" ->Gragrep.main()
- |"matitadep" |"matitadep.opt" |"matitadep.opt.static" ->Matitadep.main()
- |"matitaclean"|"matitaclean.opt"|"matitaclean.opt.static"->Matitaclean.main()
- |"matitamake" |"matitamake.opt" |"matitamake.opt.static" ->Matitamake.main()
- |"matitaprover"|"matitaprover.opt"
- |"matitaprover.opt.static" ->Matitaprover.main()
- |"matitawiki"|"matitawiki.opt" ->MatitaWiki.main()
- | _ ->
-(*
- let _ = Paramodulation.Saturation.init () in *)
-(* ALB to link paramodulation *)
- let dump_msg = "<filename> Dump source with expanded macros to <filename>" in
- MatitaInit.add_cmdline_spec ["-dump", Arg.String dump, dump_msg];
- let _ = MatitacLib.main `COMPILER in
- ()
+ let bin = Filename.basename Sys.argv.(0) in
+ if Pcre.pmatch ~pat:"^matitadep" bin then Matitadep.main ()
+ else if Pcre.pmatch ~pat:"^matitaclean" bin then Matitaclean.main ()
+ else if Pcre.pmatch ~pat:"^matitawiki" bin then MatitaWiki.main ()
+ else main_compiler ()
+;;
let _ = main ()
open GrafiteTypes
-exception AttemptToInsertAnAlias
+exception AttemptToInsertAnAlias of LexiconEngine.status
let out = ref ignore
-
let set_callback f = out := f
-let pp_ast_statement st =
- GrafiteAstPp.pp_statement
- ~map_unicode_to_tex:(Helm_registry.get_bool
- "matita.paste_unicode_as_tex")
- ~term_pp:CicNotationPp.pp_term
- ~lazy_term_pp:CicNotationPp.pp_term ~obj_pp:(CicNotationPp.pp_obj CicNotationPp.pp_term) st
-
-(** {2 Initialization} *)
-
-let grafite_status = (ref None : GrafiteTypes.status option ref)
-let lexicon_status = (ref None : LexiconEngine.status option ref)
+let slash_n_RE = Pcre.regexp "\\n" ;;
-let run_script is eval_function =
- let lexicon_status',grafite_status' =
- match !lexicon_status,!grafite_status with
- | Some ss, Some s -> ss,s
- | _,_ -> assert false
- in
- let slash_n_RE = Pcre.regexp "\\n" in
- let cb =
- if Helm_registry.get_int "matita.verbosity" < 1 then
- (fun _ _ -> ())
- else
- (fun grafite_status stm ->
- (* dump_status grafite_status; *)
- let stm = pp_ast_statement stm in
- let stm = Pcre.replace ~rex:slash_n_RE stm in
- let stm =
- if String.length stm > 50 then
- String.sub stm 0 50 ^ " ..."
- else
- stm
- in
- HLog.debug ("Executing: ``" ^ stm ^ "''"))
+let pp_ast_statement grafite_status stm =
+ let stm = GrafiteAstPp.pp_statement
+ ~map_unicode_to_tex:(Helm_registry.get_bool "matita.paste_unicode_as_tex")
+ ~term_pp:CicNotationPp.pp_term
+ ~lazy_term_pp:CicNotationPp.pp_term ~obj_pp:(CicNotationPp.pp_obj
+ CicNotationPp.pp_term) stm
in
- let matita_debug = Helm_registry.get_bool "matita.debug" in
- try
- match eval_function lexicon_status' grafite_status' is cb with
- [] -> raise End_of_file
- | ((grafite_status'',lexicon_status''),None)::_ ->
- lexicon_status := Some lexicon_status'';
- grafite_status := Some grafite_status''
- | (s,Some _)::_ -> raise AttemptToInsertAnAlias
- with
- | GrafiteEngine.Drop
- | End_of_file
- | CicNotationParser.Parse_error _
- | GrafiteEngine.Macro _ as exn -> raise exn
- | exn ->
- if not matita_debug then
- HLog.error (snd (MatitaExcPp.to_string exn)) ;
- raise exn
-
-let fname () =
- let rec aux = function
- | ""::tl -> aux tl
- | [x] -> x
- | [] -> MatitaInit.die_usage ()
- | l ->
- prerr_endline
- ("Wrong commands: " ^
- String.concat " " (List.map (fun x -> "'" ^ x ^ "'") l));
- MatitaInit.die_usage ()
+ let stm = Pcre.replace ~rex:slash_n_RE stm in
+ let stm =
+ if String.length stm > 50 then String.sub stm 0 50 ^ " ..."
+ else stm
in
- aux (Helm_registry.get_list Helm_registry.string "matita.args")
+ HLog.debug ("Executing: ``" ^ stm ^ "''")
+;;
-let pp_ocaml_mode () =
- HLog.message "";
- HLog.message " ** Entering Ocaml mode ** ";
- HLog.message "";
- HLog.message "Type 'go ();;' to enter an interactive matitac";
- HLog.message ""
-
-let clean_exit n =
- let opt_exit =
- function
- None -> ()
- | Some n -> exit n
- in
- match !grafite_status with
- None -> opt_exit n
- | Some grafite_status ->
- try
- let baseuri = GrafiteTypes.get_string_option grafite_status "baseuri" in
- LibraryClean.clean_baseuris ~verbose:false [baseuri];
- opt_exit n
- with GrafiteTypes.Option_error("baseuri", "not found") ->
- (* no baseuri ==> nothing to clean yet *)
- opt_exit n
+let clean_exit baseuri rc =
+ LibraryClean.clean_baseuris ~verbose:false [baseuri]; rc
+;;
let get_macro_context = function
| Some {GrafiteTypes.proof_status = GrafiteTypes.No_proof} -> []
let goal = Continuationals.Stack.find_goal stack in
GrafiteTypes.get_proof_context status goal
| None -> assert false
+;;
-let rec interactive_loop () =
- let str = Ulexing.from_utf8_channel stdin in
- try
- run_script str
- (MatitaEngine.eval_from_stream ~first_statement_only:false ~prompt:true
- ~include_paths:(Helm_registry.get_list Helm_registry.string
- "matita.includes"))
- with
- | GrafiteEngine.Drop -> pp_ocaml_mode ()
- | GrafiteEngine.Macro (floc, f) ->
- begin match f (get_macro_context !grafite_status) with
- | _, GrafiteAst.Inline (_, style, suri, prefix) ->
- let str =
- ApplyTransformation.txt_of_inline_macro style suri prefix
- ~map_unicode_to_tex:(Helm_registry.get_bool
- "matita.paste_unicode_as_tex")
- in
- !out str;
- interactive_loop ()
- | _ ->
- let x, y = HExtlib.loc_of_floc floc in
- HLog.error (sprintf "A macro has been found in a script at %d-%d" x y);
- interactive_loop ()
- end
- | Sys.Break -> HLog.error "user break!"; interactive_loop ()
- | GrafiteTypes.Command_error _ -> interactive_loop ()
- | End_of_file ->
- print_newline ();
- clean_exit (Some 0)
- | HExtlib.Localized (floc,CicNotationParser.Parse_error err) ->
- let x, y = HExtlib.loc_of_floc floc in
- HLog.error (sprintf "Parse error at %d-%d: %s" x y err);
- interactive_loop ()
- | exn -> HLog.error (Printexc.to_string exn); interactive_loop ()
-
-let go () =
- Helm_registry.load_from BuildTimeConf.matita_conf;
- Http_getter.init ();
- MetadataTypes.ownerize_tables (Helm_registry.get "matita.owner");
- LibraryDb.create_owner_environment ();
- CicEnvironment.set_trust (* environment trust *)
- (let trust =
- Helm_registry.get_opt_default Helm_registry.get_bool
- ~default:true "matita.environment_trust" in
- fun _ -> trust);
- let include_paths =
- Helm_registry.get_list Helm_registry.string "matita.includes" in
- grafite_status := Some (GrafiteSync.init ());
- lexicon_status :=
- Some (CicNotation2.load_notation ~include_paths
- BuildTimeConf.core_notation_script);
- Sys.catch_break true;
- interactive_loop ()
-
-let pp_times fname bench_mode rc big_bang =
- if bench_mode then
- begin
- let { Unix.tms_utime = u ; Unix.tms_stime = s} = Unix.times () in
- let r = Unix.gettimeofday () -. big_bang in
- let extra = try Sys.getenv "BENCH_EXTRA_TEXT" with Not_found -> "" in
- let cc =
- if Str.string_match (Str.regexp ".*opt$") Sys.argv.(0) 0 then
- "matitac.opt"
- else
- "matitac"
- in
- let rc = if rc then "\e[0;32mOK\e[0m" else "\e[0;31mFAIL\e[0m" in
- let times =
- let fmt t =
- let seconds = int_of_float t in
- let cents = int_of_float ((t -. floor t) *. 100.0) in
- let minutes = seconds / 60 in
- let seconds = seconds mod 60 in
- Printf.sprintf "%dm%02d.%02ds" minutes seconds cents
- in
- Printf.sprintf "%s %s %s" (fmt r) (fmt u) (fmt s)
- in
- let fname =
- match MatitamakeLib.development_for_dir (Filename.dirname fname) with
- | None -> fname
- | Some d ->
- let rootlen = String.length(MatitamakeLib.root_for_development d)in
- let fnamelen = String.length fname in
- assert (fnamelen > rootlen);
- String.sub fname rootlen (fnamelen - rootlen)
+let pp_times fname rc big_bang =
+ if not (Helm_registry.get_bool "matita.verbose") then
+ let { Unix.tms_utime = u ; Unix.tms_stime = s} = Unix.times () in
+ let r = Unix.gettimeofday () -. big_bang in
+ let extra = try Sys.getenv "BENCH_EXTRA_TEXT" with Not_found -> "" in
+ let rc,rcascii =
+ if rc then "\e[0;32mOK\e[0m","Ok" else "\e[0;31mFAIL\e[0m","Fail" in
+ let times =
+ let fmt t =
+ let seconds = int_of_float t in
+ let cents = int_of_float ((t -. floor t) *. 100.0) in
+ let minutes = seconds / 60 in
+ let seconds = seconds mod 60 in
+ Printf.sprintf "%dm%02d.%02ds" minutes seconds cents
in
- let fname =
- if fname.[0] = '/' then
- String.sub fname 1 (String.length fname - 1)
- else
- fname
- in
- let s = Printf.sprintf "%s %-35s %-4s %s %s" cc fname rc times extra in
- print_endline s;
- flush stdout
- end
+ Printf.sprintf "%s %s %s" (fmt r) (fmt u) (fmt s)
+ in
+ let s = Printf.sprintf "%-4s %s %s" rc times extra in
+ print_endline s;
+ flush stdout;
+ HLog.message ("Compilation of "^Filename.basename fname^": "^rc)
;;
-let rec compiler_loop fname big_bang mode buf =
- let include_paths =
- Helm_registry.get_list Helm_registry.string "matita.includes" in
- let clean_baseuri = not (Helm_registry.get_bool "matita.preserve") in
- let matita_debug = Helm_registry.get_bool "matita.debug" in
- let bench_mode = Helm_registry.get_bool "matita.bench" in
- try
- run_script buf
- (MatitaEngine.eval_from_stream ~first_statement_only:false ~include_paths
- ~clean_baseuri)
- with
- | End_of_file -> ()
- | Sys.Break as exn ->
- if matita_debug then raise exn;
- HLog.error "user break!";
- pp_times fname bench_mode false big_bang;
- if mode = `COMPILER then
- clean_exit (Some ~-1)
- else
- pp_ocaml_mode ()
- | GrafiteEngine.Drop ->
- if mode = `COMPILER then
- begin
- pp_times fname bench_mode false big_bang;
- clean_exit (Some 1)
- end
- else
- pp_ocaml_mode ()
- | GrafiteEngine.Macro (floc, f) ->
- begin match f (get_macro_context !grafite_status) with
- | _, GrafiteAst.Inline (_, style, suri, prefix) ->
- let str =
- ApplyTransformation.txt_of_inline_macro style suri prefix
- ~map_unicode_to_tex:(Helm_registry.get_bool
- "matita.paste_unicode_as_tex") in
- !out str;
- compiler_loop fname big_bang mode buf
- | _ ->
- let x, y = HExtlib.loc_of_floc floc in
- HLog.error (sprintf "A macro has been found in a script at %d-%d" x y);
- if mode = `COMPILER then
- begin
- pp_times fname bench_mode false big_bang;
- clean_exit (Some 1)
- end
- else
- pp_ocaml_mode ()
- end
- | HExtlib.Localized (floc,CicNotationParser.Parse_error err) ->
- let (x, y) = HExtlib.loc_of_floc floc in
- HLog.error (sprintf "Parse error at %d-%d: %s" x y err);
- if mode = `COMPILER then
- begin
- pp_times fname bench_mode false big_bang;
- clean_exit (Some 1)
- end
- else
- pp_ocaml_mode ()
- | exn ->
- if matita_debug then raise exn;
- if mode = `COMPILER then
- begin
- pp_times fname bench_mode false big_bang;
- clean_exit (Some 3)
- end
- else
- pp_ocaml_mode ()
+let cut prefix s =
+ let lenp = String.length prefix in
+ let lens = String.length s in
+ assert (lens > lenp);
+ assert (String.sub s 0 lenp = prefix);
+ String.sub s lenp (lens-lenp)
+;;
-let main ~mode =
- let big_bang = Unix.gettimeofday () in
- MatitaInit.initialize_all ();
- (* must be called after init since args are set by cmdline parsing *)
- let fname = fname () in
- if false then
- (let baseuri =
- (* This does not work yet :-(
- let baseuri =
- GrafiteTypes.get_string_option
- (match !grafite_status with None -> assert false | Some s -> s)
- "baseuri" in*)
- lazy
- (fst (DependenciesParser.baseuri_of_script ~include_paths:[] fname)) in
- let mangled_baseuri =
- lazy
- ( let baseuri = Lazy.force baseuri in
- let baseuri = String.sub baseuri 5 (String.length baseuri - 5) in
- let baseuri = Pcre.replace ~pat:"/" ~templ:"_" baseuri in
- String.uncapitalize baseuri
- ) in
- let f =
- lazy
- (open_out
- (Filename.dirname fname ^ "/" ^ Lazy.force mangled_baseuri ^ ".ml")) in
- LibrarySync.set_object_declaration_hook
- (fun _ obj ->
- output_string (Lazy.force f)
- (CicExportation.ppobj (Lazy.force baseuri) obj);
- flush (Lazy.force f)));
- let system_mode = Helm_registry.get_bool "matita.system" in
- let bench_mode = Helm_registry.get_bool "matita.bench" in
- if bench_mode then
- Helm_registry.set_int "matita.verbosity" 0;
- let include_paths =
- Helm_registry.get_list Helm_registry.string "matita.includes" in
- grafite_status := Some (GrafiteSync.init ());
- lexicon_status :=
- Some (CicNotation2.load_notation ~include_paths
- BuildTimeConf.core_notation_script);
- Sys.catch_break true;
- let origcb = HLog.get_log_callback () in
- let origcb t s = origcb t ((if system_mode then "[S] " else "") ^ s) in
- let newcb tag s =
- match tag with
- | `Debug | `Message -> ()
- | `Warning | `Error -> origcb tag s
+let get_include_paths options =
+ let include_paths =
+ try List.assoc "include_paths" options with Not_found -> ""
in
- if Helm_registry.get_int "matita.verbosity" < 1 then
- HLog.set_log_callback newcb;
- if bench_mode then MatitaMisc.shutup ();
- let time = Unix.time () in
- if Helm_registry.get_int "matita.verbosity" < 1 && not bench_mode then
- origcb `Message ("compiling " ^ Filename.basename fname ^ "...")
- else
- HLog.message (sprintf "execution of %s started:" fname);
- let ich = match fname with
- | "stdin" -> stdin
- | fname -> open_in fname
+ let include_paths = Str.split (Str.regexp " ") include_paths in
+ let include_paths =
+ include_paths @
+ Helm_registry.get_list Helm_registry.string "matita.includes"
+ in
+ include_paths
+;;
+
+let compile options fname =
+ let matita_debug = Helm_registry.get_bool "matita.debug" in
+ let include_paths = get_include_paths options in
+ let root,baseuri,fname,_tgt =
+ Librarian.baseuri_of_script ~include_paths fname in
+ let grafite_status = GrafiteSync.init baseuri in
+ let lexicon_status =
+ CicNotation2.load_notation ~include_paths:[]
+ BuildTimeConf.core_notation_script
+ in
+ let initial_lexicon_status = lexicon_status in
+ let big_bang = Unix.gettimeofday () in
+ let time = Unix.time () in
+ try
+ (* sanity checks *)
+ let moo_fname =
+ LibraryMisc.obj_file_of_baseuri ~must_exist:false ~baseuri ~writable:true
in
- let buf = Ulexing.from_utf8_channel ich in
- compiler_loop fname big_bang mode buf;
- let elapsed = Unix.time () -. time in
- let tm = Unix.gmtime elapsed in
- let sec = string_of_int tm.Unix.tm_sec ^ "''" in
- let min =
- if tm.Unix.tm_min > 0 then (string_of_int tm.Unix.tm_min ^ "' ") else ""
+ let lexicon_fname=
+ LibraryMisc.lexicon_file_of_baseuri
+ ~must_exist:false ~baseuri ~writable:true
+ in
+ if Http_getter_storage.is_read_only baseuri then
+ HLog.error
+ (Printf.sprintf "uri %s belongs to a read-only repository" baseuri);
+ (* cleanup of previously compiled objects *)
+ if (not (Http_getter_storage.is_empty ~local:true baseuri) ||
+ LibraryClean.db_uris_of_baseuri baseuri <> [])
+ then begin
+ HLog.message ("baseuri " ^ baseuri ^ " is not empty");
+ HLog.message ("cleaning baseuri " ^ baseuri);
+ LibraryClean.clean_baseuris [baseuri];
+ assert (Http_getter_storage.is_empty ~local:true baseuri);
+ end;
+ (* create dir for XML files *)
+ if not (Helm_registry.get_opt_default Helm_registry.bool "matita.nodisk"
+ ~default:false)
+ then
+ HExtlib.mkdir
+ (Filename.dirname
+ (Http_getter.filename ~local:true ~writable:true (baseuri ^
+ "foo.con")));
+ HLog.message ("compiling " ^ Filename.basename fname ^ " in " ^ baseuri);
+ if not (Helm_registry.get_bool "matita.verbose") then
+ (let cc =
+ let rex = Str.regexp ".*opt$" in
+ if Str.string_match rex Sys.argv.(0) 0 then "matitac.opt"
+ else "matitac"
+ in
+ let s = Printf.sprintf "%s %-35s " cc (cut (root^"/") fname) in
+ print_string s; flush stdout);
+ let buf = Ulexing.from_utf8_channel (open_in fname) in
+ let print_cb =
+ if not (Helm_registry.get_bool "matita.verbose") then (fun _ _ -> ())
+ else pp_ast_statement
in
- let hou =
- if tm.Unix.tm_hour > 0 then (string_of_int tm.Unix.tm_hour ^ "h ") else ""
+ let grafite_status, lexicon_status =
+ let rec aux_for_dump x =
+ try
+ match
+ MatitaEngine.eval_from_stream ~first_statement_only:false ~include_paths
+ lexicon_status grafite_status buf x
+ with
+ | [] -> grafite_status, lexicon_status
+ | ((grafite,lexicon),None)::_ -> grafite, lexicon
+ | ((_,l),Some _)::_ -> raise (AttemptToInsertAnAlias l)
+
+ with MatitaEngine.EnrichedWithLexiconStatus
+ (GrafiteEngine.Macro (floc, f), lex_status) as exn ->
+ match f (get_macro_context (Some grafite_status)) with
+ | _, GrafiteAst.Inline (_, style, suri, prefix) ->
+ let str =
+ ApplyTransformation.txt_of_inline_macro style suri prefix
+ ~map_unicode_to_tex:(Helm_registry.get_bool
+ "matita.paste_unicode_as_tex") in
+ !out str;
+ aux_for_dump x
+ |_-> raise exn
+ in
+ aux_for_dump print_cb
in
+ let elapsed = Unix.time () -. time in
let proof_status,moo_content_rev,lexicon_content_rev =
- match !lexicon_status,!grafite_status with
- | Some ss, Some s ->
- s.proof_status, s.moo_content_rev,
- ss.LexiconEngine.lexicon_content_rev
- | _,_ -> assert false
+ grafite_status.proof_status, grafite_status.moo_content_rev,
+ lexicon_status.LexiconEngine.lexicon_content_rev
in
if proof_status <> GrafiteTypes.No_proof then
- begin
- HLog.error
- "there are still incomplete proofs at the end of the script";
- pp_times fname bench_mode true big_bang;
- clean_exit (Some 2)
- end
+ (HLog.error
+ "there are still incomplete proofs at the end of the script";
+ pp_times fname false big_bang;
+ LexiconSync.time_travel
+ ~present:lexicon_status ~past:initial_lexicon_status;
+ clean_exit baseuri false)
else
- begin
- let baseuri, _fullpathforfname =
- DependenciesParser.baseuri_of_script ~include_paths fname in
- let moo_fname =
- LibraryMisc.obj_file_of_baseuri
- ~must_exist:false ~baseuri ~writable:true
- in
- let lexicon_fname=
- LibraryMisc.lexicon_file_of_baseuri
+ (if not (Helm_registry.get_bool "matita.moo" &&
+ Filename.check_suffix fname ".mma") then begin
+ (* FG: we do not generate .moo when dumping .mma files *)
+ GrafiteMarshal.save_moo moo_fname moo_content_rev;
+ LexiconMarshal.save_lexicon lexicon_fname lexicon_content_rev;
+ end;
+ let tm = Unix.gmtime elapsed in
+ let sec = string_of_int tm.Unix.tm_sec ^ "''" in
+ let min =
+ if tm.Unix.tm_min > 0 then (string_of_int tm.Unix.tm_min^"' ") else ""
+ in
+ let hou =
+ if tm.Unix.tm_hour > 0 then (string_of_int tm.Unix.tm_hour^"h ") else ""
+ in
+ HLog.message
+ (sprintf "execution of %s completed in %s." fname (hou^min^sec));
+ pp_times fname true big_bang;
+ LexiconSync.time_travel
+ ~present:lexicon_status ~past:initial_lexicon_status;
+ true)
+ with
+ (* all exceptions should be wrapped to allow lexicon-undo (LS.time_travel) *)
+ | AttemptToInsertAnAlias lexicon_status ->
+ pp_times fname false big_bang;
+ LexiconSync.time_travel
+ ~present:lexicon_status ~past:initial_lexicon_status;
+ clean_exit baseuri false
+ | MatitaEngine.EnrichedWithLexiconStatus (exn, lex_stat) ->
+ (match exn with
+ | Sys.Break -> HLog.error "user break!"
+ | HExtlib.Localized (floc,CicNotationParser.Parse_error err) ->
+ let (x, y) = HExtlib.loc_of_floc floc in
+ HLog.error (sprintf "Parse error at %d-%d: %s" x y err)
+ | exn -> HLog.error (snd (MatitaExcPp.to_string exn)));
+ LexiconSync.time_travel ~present:lex_stat ~past:initial_lexicon_status;
+ pp_times fname false big_bang;
+ clean_exit baseuri false
+ | Sys.Break as exn ->
+ if matita_debug then raise exn;
+ HLog.error "user break!";
+ pp_times fname false big_bang;
+ clean_exit baseuri false
+ | exn ->
+ if matita_debug then raise exn;
+ HLog.error
+ ("Unwrapped exception, please fix: "^ snd (MatitaExcPp.to_string exn));
+ pp_times fname false big_bang;
+ clean_exit baseuri false
+;;
+
+module F =
+ struct
+ type source_object = string
+ type target_object = string
+ let string_of_source_object s = s;;
+ let string_of_target_object s = s;;
+
+ let root_and_target_of opts mafile =
+ try
+ let include_paths = get_include_paths opts in
+ let root,baseuri,_,_ =
+ Librarian.baseuri_of_script ~include_paths mafile
+ in
+ Some root, LibraryMisc.obj_file_of_baseuri
~must_exist:false ~baseuri ~writable:true
- in
-(* FG: we do not generate .moo when dumping .mma files *)
- if Helm_registry.get_bool "matita.moo" then begin
- GrafiteMarshal.save_moo moo_fname moo_content_rev;
- LexiconMarshal.save_lexicon lexicon_fname lexicon_content_rev;
- end;
- HLog.message
- (sprintf "execution of %s completed in %s." fname (hou^min^sec));
- pp_times fname bench_mode true big_bang;
- exit 0
- end
+ with Librarian.NoRootFor x -> None, ""
+ ;;
+
+ let mtime_of_source_object s =
+ try Some (Unix.stat s).Unix.st_mtime
+ with Unix.Unix_error (Unix.ENOENT, "stat", f) when f = s -> None
+ ;;
+
+ let mtime_of_target_object s =
+ try Some (Unix.stat s).Unix.st_mtime
+ with Unix.Unix_error (Unix.ENOENT, "stat", f) when f = s -> None
+ ;;
+
+ let build = compile;;
+
+ let load_deps_file = Librarian.load_deps_file;;
+
+ end
+
+module Make = Librarian.Make(F)
+
* http://helm.cs.unibo.it/
*)
-val interactive_loop : unit -> unit
-
-(** go initializes the status and calls interactive_loop *)
-val go : unit -> unit
-val main : mode:[ `COMPILER | `TOPLEVEL ] -> unit
-
-(** clean_exit n
- if n = Some n it performs an exit [n] after a complete clean-up of what was
- partially compiled
- otherwise it performs the clean-up without exiting
-*)
-val clean_exit : int option -> unit
-
(* this callback is called on the expansion of every inline macro *)
val set_callback: (string -> unit) -> unit
+
+module Make : sig
+ val make: string -> string list -> bool
+end
+
end
;;
+let clean_all () =
+ if Helm_registry.get_bool "matita.system" then
+ ask_confirmation ();
+ LibraryDb.clean_owner_environment ();
+ let prefixes =
+ HExtlib.filter_map
+ (fun s ->
+ if String.sub s 0 5 = "file:" then
+ Some (Str.replace_first (Str.regexp "^file://") "" s)
+ else
+ None)
+ (Http_getter_storage.list_writable_prefixes ())
+ in
+ List.iter
+ (fun xmldir ->
+ let clean_pat =
+ String.concat " -o "
+ (List.map (fun suf -> "-name \\*" ^ suf) clean_suffixes) in
+ let clean_cmd =
+ sprintf "find %s \\( %s \\) -exec rm \\{\\} \\; 2> /dev/null"
+ xmldir clean_pat in
+ ignore (Sys.command clean_cmd);
+ ignore
+ (Sys.command ("find " ^ xmldir ^
+ " -type d -exec rmdir -p {} \\; 2> /dev/null")))
+ prefixes
+;;
+
let main () =
let _ = MatitaInit.initialize_all () in
- if Helm_registry.get_bool "matita.bench" then MatitaMisc.shutup ();
- match Helm_registry.get_list Helm_registry.string "matita.args" with
- | [ "all" ] ->
- if Helm_registry.get_bool "matita.system" then
- ask_confirmation ();
- LibraryDb.clean_owner_environment ();
- let prefixes =
- HExtlib.filter_map
- (fun s ->
- if String.sub s 0 5 = "file:" then
- Some (Str.replace_first (Str.regexp "^file://") "" s)
- else
- None)
- (Http_getter_storage.list_writable_prefixes ())
- in
- List.iter
- (fun xmldir ->
- let clean_pat =
- String.concat " -o "
- (List.map (fun suf -> "-name \\*" ^ suf) clean_suffixes) in
- let clean_cmd =
- sprintf "find %s \\( %s \\) -exec rm \\{\\} \\; 2> /dev/null"
- xmldir clean_pat in
- ignore (Sys.command clean_cmd);
- ignore
- (Sys.command ("find " ^ xmldir ^
- " -type d -exec rmdir -p {} \\; 2> /dev/null")))
- prefixes;
- exit 0
- | [] -> MatitaInit.die_usage ()
- | files ->
- let uris_to_remove =
- List.fold_left
- (fun uris_to_remove suri ->
- let uri =
- try
- UM.buri_of_uri (UM.uri_of_string suri)
- with UM.IllFormedUri _ ->
- let u,_ =
- DependenciesParser.baseuri_of_script ~include_paths:[] suri in
- if String.length u < 5 || String.sub u 0 5 <> "cic:/" then begin
- HLog.error (sprintf "File %s defines a bad baseuri: %s"
- suri u);
- exit 1
- end else
- u
- in
- uri::uris_to_remove) [] files
- in
- LibraryClean.clean_baseuris uris_to_remove
+ if not (Helm_registry.get_bool "matita.verbose") then MatitaMisc.shutup ();
+ let files =
+ match Helm_registry.get_list Helm_registry.string "matita.args" with
+ | [ "all" ] -> clean_all (); exit 0
+ | [] ->
+ (match Librarian.find_roots_in_dir (Sys.getcwd ()) with
+ | [x] ->
+ Sys.chdir (Filename.dirname x);
+ HExtlib.find ~test:(fun x -> Filename.check_suffix x ".ma") "."
+ | [] ->
+ prerr_endline "No targets and no root found"; exit 1
+ | roots ->
+ let roots = List.map (HExtlib.chop_prefix (Sys.getcwd()^"/")) roots in
+ prerr_endline ("Too many roots found:\n\t" ^ String.concat "\n\t" roots);
+ prerr_endline ("\nEnter one of these directories and retry");
+ exit 1);
+ | files -> files
+ in
+ let uris_to_remove =
+ List.fold_left
+ (fun uris_to_remove suri ->
+ let uri =
+ try
+ UM.buri_of_uri (UM.uri_of_string suri)
+ with UM.IllFormedUri _ ->
+ let _,u,_,_ = Librarian.baseuri_of_script ~include_paths:[] suri in
+ if String.length u < 5 || String.sub u 0 5 <> "cic:/" then begin
+ HLog.error (sprintf "File %s defines a bad baseuri: %s"
+ suri u);
+ exit 1
+ end else
+ u
+ in
+ uri::uris_to_remove) [] files
+ in
+ LibraryClean.clean_baseuris uris_to_remove
module GA = GrafiteAst
module U = UriManager
-let obj_file_of_baseuri writable baseuri =
- try
- LibraryMisc.obj_file_of_baseuri
- ~must_exist:true ~baseuri ~writable
- with
- | Http_getter_types.Unresolvable_URI _
- | Http_getter_types.Key_not_found _ ->
- LibraryMisc.obj_file_of_baseuri
- ~must_exist:false ~baseuri ~writable:true
-;;
-
let main () =
(* all are maps from "file" to "something" *)
- let include_deps = Hashtbl.create (Array.length Sys.argv) in
- let include_deps_dot = Hashtbl.create (Array.length Sys.argv) in
- let baseuri_of = Hashtbl.create (Array.length Sys.argv) in
- let baseuri_of_inv = Hashtbl.create (Array.length Sys.argv) in
- let uri_deps = Hashtbl.create (Array.length Sys.argv) in
- let ma_topo = Hashtbl.create (Array.length Sys.argv) in
- let ma_topo_keys = ref [] in
+ let include_deps = Hashtbl.create 13 in
+ let baseuri_of = Hashtbl.create 13 in
+ let baseuri_of_inv = Hashtbl.create 13 in
+ let dot_file = ref "" in
+ (* helpers *)
+ let include_paths = ref [] in
+ let baseuri_of_script s =
+ try Hashtbl.find baseuri_of s
+ with Not_found ->
+ let _,b,_,_ =
+ Librarian.baseuri_of_script ~include_paths:!include_paths s
+ in
+ Hashtbl.add baseuri_of s b;
+ Hashtbl.add baseuri_of_inv b s;
+ b
+ in
+ let script_of_baseuri ma b =
+ try Some (Hashtbl.find baseuri_of_inv b)
+ with Not_found ->
+ HLog.error ("Skipping dependency of '"^ma^"' over '"^b^"'");
+ HLog.error ("Plase include the file defining such baseuri, or fix");
+ HLog.error ("possibly incorrect verbatim URIs in the .ma file.");
+ None
+ in
let buri alias = U.buri_of_uri (U.uri_of_string alias) in
let resolve alias current_buri =
let buri = buri alias in
- if buri <> current_buri then Some buri else None in
- let dot_file = ref "" in
- let order_only = ref false in
+ if buri <> current_buri then Some buri else None
+ in
+ (* initialization *)
MatitaInit.add_cmdline_spec
["-dot", Arg.Set_string dot_file,
- "<file> Save dependency graph in dot format to the given file";
- "-order", Arg.Set order_only,
- "Only print (one of the possibles) build order(s) for the given *.ma"];
+ "<file> Save dependency graph in dot format to the given file";];
MatitaInit.parse_cmdline_and_configuration_file ();
MatitaInit.initialize_environment ();
- MatitamakeLib.initialize ();
- let include_paths =
- Helm_registry.get_list Helm_registry.string "matita.includes" in
- let args = Helm_registry.get_list Helm_registry.string "matita.args" in
- if args = [] then
- begin
- prerr_endline "At least one .ma file must be specified";
- exit 1
- end;
- let ma_files = args in
- let bof = Hashtbl.create 10 in
- let baseuri_of_script s =
- try Hashtbl.find bof s
- with Not_found ->
- let b,_ = DependenciesParser.baseuri_of_script ~include_paths s in
- Hashtbl.add bof s b; b
+ let args =
+ let roots = Librarian.find_roots_in_dir (Sys.getcwd ()) in
+ match roots with
+ | [] ->
+ prerr_endline ("No roots found in " ^ Sys.getcwd ());
+ exit 1
+ | [x] ->
+ Sys.chdir (Filename.dirname x);
+ let opts = Librarian.load_root_file "root" in
+ include_paths :=
+ (try Str.split (Str.regexp " ") (List.assoc "include_paths" opts)
+ with Not_found -> []) @
+ (Helm_registry.get_list Helm_registry.string "matita.includes");
+ HExtlib.find ~test:(fun x -> Filename.check_suffix x ".ma") "."
+ | _ ->
+ let roots = List.map (HExtlib.chop_prefix (Sys.getcwd()^"/")) roots in
+ prerr_endline ("Too many roots found:\n\t" ^ String.concat "\n\t" roots);
+ prerr_endline ("\nEnter one of these directories and retry");
+ exit 1
in
+ let ma_files = args in
+ (* here we go *)
+ (* fills:
+ Hashtbl.add include_deps ma_file ma_file
+ Hashtbl.add include_deps_dot ma_file baseuri
+ *)
+ List.iter (fun ma_file -> ignore (baseuri_of_script ma_file)) ma_files;
List.iter
(fun ma_file ->
- let ic = open_in ma_file in
- let istream = Ulexing.from_utf8_channel ic in
- let dependencies = DependenciesParser.parse_dependencies istream in
- close_in ic;
- if !order_only then begin
- let relative_ma_file =
- (* change a path leading to a .ma file into a path relative to its
- * development root dir *)
- let absolute_ma_file =
- if Filename.is_relative ma_file then
- Filename.concat (Sys.getcwd ()) ma_file
- else
- ma_file in
- let ma_dir = Filename.dirname absolute_ma_file in
- match MatitamakeLib.development_for_dir ma_dir with
- | None ->
- eprintf "no development setup for dir '%s'\n%!" ma_dir;
- assert false
- | Some devel ->
- Pcre.replace
- ~pat:(Pcre.quote(MatitamakeLib.root_for_development devel) ^ "/?")
- ~templ:"" absolute_ma_file
- in
- ma_topo_keys := relative_ma_file :: !ma_topo_keys;
- List.iter
- (function
- | DependenciesParser.IncludeDep path ->
- Hashtbl.add ma_topo relative_ma_file path
- | _ -> ())
- dependencies
- end else
+ let ma_baseuri = baseuri_of_script ma_file in
+ let dependencies = DependenciesParser.deps_of_file ma_file in
List.iter
(function
| DependenciesParser.UriDep uri ->
let uri = UriManager.string_of_uri uri in
if not (Http_getter_storage.is_legacy uri) then
- Hashtbl.add uri_deps ma_file uri
- | DependenciesParser.BaseuriDep uri ->
- let uri = Http_getter_misc.strip_trailing_slash uri in
- Hashtbl.add baseuri_of ma_file uri;
- Hashtbl.add baseuri_of_inv uri ma_file
+ let dep = resolve uri ma_baseuri in
+ (match dep with
+ | None -> ()
+ | Some u ->
+ match script_of_baseuri ma_file u with
+ | Some d -> Hashtbl.add include_deps ma_file d
+ | None -> ())
| DependenciesParser.IncludeDep path ->
- try
- let baseuri = baseuri_of_script path in
- if not (Http_getter_storage.is_legacy baseuri) then
- (let moo_file = obj_file_of_baseuri false baseuri in
- Hashtbl.add include_deps ma_file moo_file;
- Hashtbl.add include_deps_dot ma_file baseuri)
- with Sys_error _ ->
- HLog.warn
- ("Unable to find " ^ path ^ " that is included in " ^ ma_file))
+ ignore (baseuri_of_script path);
+ Hashtbl.add include_deps ma_file path)
dependencies)
ma_files;
- Hashtbl.iter
- (fun file alias ->
- try
- let dep = resolve alias (Hashtbl.find baseuri_of file) in
- match dep with
- | None -> ()
- | Some u ->
- Hashtbl.add include_deps file (obj_file_of_baseuri false u)
- with Not_found ->
- prerr_endline ("File "^ file^" has no baseuri. Use set baseuri");
- exit 1)
- uri_deps;
- let gcp x y =
- (* explode and implode from the OCaml Expert FAQ. *)
- let explode s =
- let rec exp i l =
- if i < 0 then l else exp (i - 1) (s.[i] :: l) in
- exp (String.length s - 1) []
- in
- let implode l =
- let res = String.create (List.length l) in
- let rec imp i = function
- | [] -> res
- | c :: l -> res.[i] <- c; imp (i + 1) l in
- imp 0 l
- in
- let rec aux = function
- | x::tl1,y::tl2 when x = y -> x::(aux (tl1,tl2))
- | _ -> []
- in
- implode (aux (explode x,explode y))
- in
- let max_path = List.hd ma_files in
- let max_path = List.fold_left gcp max_path ma_files in
- let short x = Pcre.replace ~pat:("^"^max_path) x in
- if !dot_file <> "" then (* generate dependency graph if required *)
+ (* dot generation *)
+ if !dot_file <> "" then
begin
let oc = open_out !dot_file in
let fmt = Format.formatter_of_out_channel oc in
- GraphvizPp.Dot.header (* ~graph_attrs:["rankdir","LR"] *) fmt;
+ GraphvizPp.Dot.header fmt;
List.iter
(fun ma_file ->
- let deps = Hashtbl.find_all include_deps_dot ma_file in
+ let deps = Hashtbl.find_all include_deps ma_file in
let deps =
HExtlib.filter_map
(fun u ->
in
let deps = List.fast_sort Pervasives.compare deps in
let deps = HExtlib.list_uniq deps in
- GraphvizPp.Dot.node (short ma_file) fmt;
- List.iter (fun dep -> GraphvizPp.Dot.edge (short ma_file) (short dep) fmt) deps)
+ GraphvizPp.Dot.node ma_file fmt;
+ List.iter (fun dep -> GraphvizPp.Dot.edge ma_file dep fmt) deps)
ma_files;
GraphvizPp.Dot.trailer fmt;
close_out oc
end;
- if !order_only then begin
- let module OrdererString =
- struct
- type t = string
- let compare = Pervasives.compare
- end
- in
- let module Topo = HTopoSort.Make (OrdererString) in
- let sorted_ma =
- Topo.topological_sort !ma_topo_keys (Hashtbl.find_all ma_topo) in
- List.iter print_endline sorted_ma
- (*Hashtbl.iter (fun k v -> printf "%s: %s\n" k v) ma_topo*)
- end else
- List.iter (* generate regular .depend output *)
- (fun ma_file ->
- try
- let deps = Hashtbl.find_all include_deps ma_file in
- let deps = List.fast_sort Pervasives.compare deps in
- let deps = HExtlib.list_uniq deps in
- let deps = ma_file :: deps in
- let baseuri = Hashtbl.find baseuri_of ma_file in
- let moo = obj_file_of_baseuri true baseuri in
- printf "%s: %s\n%s: %s\n%s: %s\n%s: %s\n"
- moo (String.concat " " deps)
- (Filename.basename(Pcre.replace ~pat:"ma$" ~templ:"mo" ma_file)) moo
- (Pcre.replace ~pat:"ma$" ~templ:"mo" ma_file) moo
- (Pcre.replace ~pat:"ma$" ~templ:"mo" (short ma_file)) moo
- with Not_found ->
- prerr_endline ("File "^ma_file^" has no baseuri. Use set baseuri");
- exit 1)
- ma_files
+ (* generate regular depend output *)
+ let fix_name f =
+ let f =
+ if Pcre.pmatch ~pat:"^\\./" f then
+ String.sub f 2 (String.length f - 2)
+ else
+ f
+ in
+ HExtlib.normalize_path f
+ in
+ let deps =
+ List.fold_left
+ (fun acc ma_file ->
+ let deps = Hashtbl.find_all include_deps ma_file in
+ let deps = List.fast_sort Pervasives.compare deps in
+ let deps = HExtlib.list_uniq deps in
+ let deps = List.map fix_name deps in
+ (fix_name ma_file, deps) :: acc)
+ [] ma_files
+ in
+ let extern =
+ List.fold_left
+ (fun acc (_,d) ->
+ List.fold_left
+ (fun a x ->
+ if List.exists (fun (t,_) -> x=t) deps then a
+ else x::a)
+ acc d)
+ [] deps
+ in
+ Librarian.write_deps_file (Sys.getcwd())
+ (deps@HExtlib.list_uniq (List.sort Pervasives.compare (List.map (fun x ->
+ x,[]) extern)))
+;;
+++ /dev/null
-(* Copyright (C) 2005, HELM Team.
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-(* $Id$ *)
-
-module MK = MatitamakeLib ;;
-
-let main () =
- MatitaInit.parse_cmdline_and_configuration_file ();
- MK.initialize ();
- let usage = ref (fun () -> ()) in
- let dev_of_name name =
- match MK.development_for_name name with
- | None ->
- prerr_endline ("Unable to find a development called " ^ name);
- exit 1
- | Some d -> d
- in
- let dev_for_dir dir =
- match MK.development_for_dir dir with
- | None ->
- prerr_endline ("Unable to find a development holding directory: "^ dir);
- exit 1
- | Some d -> d
- in
- let init_dev args =
- let name, path =
- match args with
- | [ name; path ] when path.[0] = '/' -> name, path
- | [ name; path ] -> name, Unix.getcwd () ^ "/" ^ path
- | [ name ] -> name, Unix.getcwd ()
- | _ -> !usage (); (* should not be reached *) assert false
- in
- match MK.initialize_development name path with
- | None -> exit 2
- | Some _ -> exit 0
- in
- let list_dev args =
- if List.length args <> 0 then !usage ();
- match MK.list_known_developments () with
- | [] -> print_string "No developments found.\n"; exit 0
- | l ->
- List.iter
- (fun (name, root) ->
- print_string (Printf.sprintf "%-10s\trooted in %s\n" name root))
- l;
- exit 0
- in
- let destroy_dev args =
- if List.length args <> 1 then !usage ();
- let name = (List.hd args) in
- let dev = dev_of_name name in
- MK.destroy_development dev;
- exit 0
- in
- let clean_dev args =
- let dev =
- match args with
- | [] -> dev_for_dir (Unix.getcwd ())
- | [name] -> dev_of_name name
- | _ -> !usage (); exit 1
- in
- match MK.clean_development dev with
- | true -> exit 0
- | false -> exit 1
- in
- let build_dev args =
- if List.length args <> 1 then !usage ();
- let name = (List.hd args) in
- let dev = dev_of_name name in
- match MK.build_development dev with
- | true -> exit 0
- | false -> exit 1
- in
- let publish_dev args =
- if List.length args <> 1 then !usage ();
- let name = (List.hd args) in
- let dev = dev_of_name name in
- match MK.publish_development dev with
- | true -> exit 0
- | false -> exit 1
- in
- let target args =
- if List.length args < 1 then !usage ();
- let dev = dev_for_dir (Unix.getcwd ()) in
- List.iter
- (fun t ->
- ignore(MK.build_development ~target:t dev))
- args
- in
- let params = [
- "init", init_dev;
- "clean", clean_dev;
- "list", list_dev;
- "destroy", destroy_dev;
- "build", build_dev;
- "publish", publish_dev;
- ]
- in
- usage := MatitaInit.die_usage;
- let parse args =
- match args with
- | [] -> target [ "all" ]
- | s :: tl ->
- let f, args =
- try
- (List.assoc s params), tl
- with Not_found ->
- if s.[0] = '-' then (!usage ();assert false) else target, args
- in
- f args
- in
- parse (Helm_registry.get_list Helm_registry.string "matita.args")
+++ /dev/null
-(* Copyright (C) 2006, HELM Team.
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-val main : unit -> unit
-
+++ /dev/null
-(* Copyright (C) 2005, HELM Team.
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-(* $Id$ *)
-
-open Printf
-
-let logger = fun mark ->
- match mark with
- | `Error -> HLog.error
- | `Warning -> HLog.warn
- | `Debug -> HLog.debug
- | `Message -> HLog.message
-
-type development =
- { root: string ; name: string }
-
-let developments = ref []
-
-let pool () = Helm_registry.get "matita.basedir" ^ "/matitamake/" ;;
-let rootfile = "/root" ;;
-
-(* /foo/./bar/..//baz -> /foo/baz *)
-let normalize_path s =
- let s = Str.global_replace (Str.regexp "//") "/" s in
- let l = Str.split (Str.regexp "/") s in
- let rec aux = function
- | [] -> []
- | he::".."::tl -> aux tl
- | he::"."::tl -> aux (he::tl)
- | he::tl -> he :: aux tl
- in
- (if Str.string_match (Str.regexp "^/") s 0 then "/" else "") ^
- String.concat "/" (aux l)
- ^ (if Str.string_match (Str.regexp "/$") s 0 then "/" else "")
-;;
-
-let ls_dir dir =
- try
- let d = Unix.opendir dir in
- let content = ref [] in
- try
- while true do
- let name = Unix.readdir d in
- if name <> "." && name <> ".." then
- content := name :: !content
- done;
- Some []
- with End_of_file -> Unix.closedir d; Some !content
- with Unix.Unix_error _ -> None
-
-let initialize () =
- (* create a base env if none *)
- HExtlib.mkdir (pool ());
- (* load developments *)
- match ls_dir (pool ()) with
- | None -> logger `Error ("Unable to list directory " ^ pool ())
- | Some l ->
- let paths =
- List.fold_left
- (fun acc name ->
- let root =
- try
- Some (HExtlib.input_file (pool () ^ name ^ rootfile))
- with Unix.Unix_error _ ->
- logger `Warning ("Malformed development " ^ name);
- None
- in
- match root with
- | None -> acc
- | Some root ->
- developments := {root = root ; name = name} :: !developments;
- root::acc)
- [] l
- in
- let inc = Helm_registry.get_list Helm_registry.string "matita.includes" in
- Helm_registry.set_list Helm_registry.of_string
- ~key:"matita.includes" ~value:(inc @ paths)
-
-(* finds the makefile path for development devel *)
-let makefile_for_development devel =
- let develdir = pool () ^ devel.name in
- develdir ^ "/makefile"
-
-let dot_for_development devel =
- let dot_fname = pool () ^ devel.name ^ "/depend.dot" in
- if Sys.file_exists dot_fname then Some dot_fname else None
-
-(* given a dir finds a development that is radicated in it or below *)
-let development_for_dir dir =
- let dir = normalize_path dir in
- let is_prefix_of d1 d2 =
- let len1 = String.length d1 in
- let len2 = String.length d2 in
- if len2 < len1 then
- false
- else
- let pref = String.sub d2 0 len1 in
- pref = d1 && (len1 = len2 || d2.[len1] = '/')
- in
- try
- Some (List.find (fun d -> is_prefix_of d.root dir) !developments)
- with Not_found | Failure _ -> None
-
-let development_for_name name =
- try
- Some (List.find (fun d -> d.name = name) !developments)
- with Not_found -> None
-
-(* dumps the deveopment to disk *)
-let dump_development devel =
- let devel_dir = pool () ^ devel.name in
- HExtlib.mkdir devel_dir;
- HExtlib.output_file ~filename:(devel_dir ^ rootfile) ~text:devel.root
-
-let list_known_developments () =
- List.map (fun r -> r.name,r.root) !developments
-
-let am_i_opt = lazy (
- if Pcre.pmatch ~pat:"\\.opt$" Sys.argv.(0) then ".opt" else "")
-
-let rebuild_makefile development =
- let makefilepath = makefile_for_development development in
- let template =
- HExtlib.input_file BuildTimeConf.matitamake_makefile_template
- in
- let ext = Lazy.force am_i_opt in
- let binpath =
- if HExtlib.is_executable
- (BuildTimeConf.runtime_base_dir ^ "/matitac" ^ ext)
- then BuildTimeConf.runtime_base_dir ^ "/" else ""
- in
- let cc = binpath ^ "matitac" ^ ext in
- let rm = binpath ^ "matitaclean" ^ ext in
- let mm = binpath ^ "matitadep" ^ ext in
- let df = pool () ^ development.name ^ "/depend" in
- let template = Pcre.replace ~pat:"@ROOT@" ~templ:development.root template in
- let template = Pcre.replace ~pat:"@CC@" ~templ:cc template in
- let template = Pcre.replace ~pat:"@DEP@" ~templ:mm template in
- let template = Pcre.replace ~pat:"@DEPFILE@" ~templ:df template in
- let template = Pcre.replace ~pat:"@CLEAN@" ~templ:rm template in
- HExtlib.output_file ~filename:makefilepath ~text:template
-
-let rebuild_makefile_devel development =
- let path = development.root ^ "/makefile" in
- if not (Sys.file_exists path) then
- begin
- let template =
- HExtlib.input_file BuildTimeConf.matitamake_makefile_template_devel
- in
- let template =
- Pcre.replace ~pat:"@MATITA_RT_BASE_DIR@"
- ~templ:BuildTimeConf.runtime_base_dir template
- in
- HExtlib.output_file ~filename:path ~text:template
- end
-
-(* creates a new development if possible *)
-let initialize_development name dir =
- let dir = normalize_path dir in
- let name = Pcre.replace ~pat:" " ~templ:"_" name in
- let dev = {name = name ; root = dir} in
- dump_development dev;
- rebuild_makefile dev;
- rebuild_makefile_devel dev;
- developments := dev :: !developments;
- Some dev
-
-let make chdir args =
- let old = Unix.getcwd () in
- try
- Unix.chdir chdir;
- let cmd = String.concat " " ("make" :: List.map Filename.quote args) in
- let rc = Unix.system cmd in
- Unix.chdir old;
- match rc with
- | Unix.WEXITED 0 -> true
- | Unix.WEXITED i -> logger `Error ("make returned " ^ string_of_int i);false
- | _ -> logger `Error "make STOPPED or SIGNALED!";false
- with Unix.Unix_error (_,cmd,err) ->
- logger `Warning ("Unix Error: " ^ cmd ^ ": " ^ err);
- false
-
-let call_make ?matita_flags development target make =
- let matita_flags =
- let already_defined =
- match matita_flags with
- | None -> (try Sys.getenv "MATITA_FLAGS" with Not_found -> "")
- | Some s -> s
- in
- let bench =
- if Helm_registry.get_bool "matita.bench" then " -bench" else ""
- in
- let system =
- if Helm_registry.get_bool "matita.system" then " -system" else ""
- in
- let noinnertypes =
- if Helm_registry.get_bool "matita.noinnertypes" then " -noinnertypes" else ""
- in
- already_defined ^ bench ^ system ^ noinnertypes
- in
- let csc = try ["SRC=" ^ Sys.getenv "SRC"] with Not_found -> [] in
- rebuild_makefile development;
- let makefile = makefile_for_development development in
- let flags = [] in
- let flags =
- try
- flags @ [ sprintf "MATITA_FLAGS=%s" matita_flags ]
- with Not_found -> flags in
- let flags = flags @ csc in
- let args =
- ["--no-print-directory"; "-s"; "-k"; "-f"; makefile; target] @ flags
- in
- (* prerr_endline (String.concat " " args); *)
- make development.root args
-
-let build_development ?matita_flags ?(target="all") development =
- call_make ?matita_flags development target make
-
-(* not really good vt100 *)
-let vt100 s =
- let rex = Pcre.regexp "\e\\[[0-9;]+m" in
- let rex_i = Pcre.regexp "^Info" in
- let rex_w = Pcre.regexp "^Warning" in
- let rex_e = Pcre.regexp "^Error" in
- let rex_d = Pcre.regexp "^Debug" in
- let rex_noendline = Pcre.regexp "\\n" in
- let s = Pcre.replace ~rex:rex_noendline s in
- let tokens = Pcre.split ~rex s in
- let logger = ref HLog.message in
- let rec aux =
- function
- | [] -> ()
- | s::tl ->
- (if Pcre.pmatch ~rex:rex_i s then
- logger := HLog.message
- else if Pcre.pmatch ~rex:rex_w s then
- logger := HLog.warn
- else if Pcre.pmatch ~rex:rex_e s then
- logger := HLog.error
- else if Pcre.pmatch ~rex:rex_d s then
- logger := HLog.debug
- else
- !logger s);
- aux tl
- in
- aux tokens
-
-
-let mk_maker refresh_cb =
- (fun chdir args ->
- let out_r,out_w = Unix.pipe () in
- let err_r,err_w = Unix.pipe () in
- let pid = ref ~-1 in
- let oldhandler = Sys.signal Sys.sigchld (Sys.Signal_ignore) in
- try
-(* prerr_endline (String.concat " " args); *)
- let argv = Array.of_list ("make"::args) in
- pid := Unix.create_process "make" argv Unix.stdin out_w err_w;
- Unix.close out_w;
- Unix.close err_w;
- let buf = String.create 1024 in
- let rec aux = function
- | f::tl ->
- let len = Unix.read f buf 0 1024 in
- if len = 0 then
- raise
- (Unix.Unix_error
- (Unix.EPIPE,"read","len = 0 (matita internal)"));
- vt100 (String.sub buf 0 len);
- aux tl
- | _ -> ()
- in
- while true do
- let r,_,_ = Unix.select [out_r; err_r] [] [] (-. 1.) in
- aux r;
- refresh_cb ()
- done;
- ignore(Sys.signal Sys.sigchld oldhandler);
- true
- with
- | Unix.Unix_error (_,"read",_)
- | Unix.Unix_error (_,"select",_) ->
- ignore(Sys.signal Sys.sigchld oldhandler);
- true)
-
-let build_development_in_bg ?matita_flags ?(target="all") refresh_cb development =
- call_make ?matita_flags development target (mk_maker refresh_cb)
-
-let clean_development ?matita_flags development =
- call_make ?matita_flags development "clean" make
-
-let clean_development_in_bg ?matita_flags refresh_cb development =
- call_make development ?matita_flags "clean" (mk_maker refresh_cb)
-
-let destroy_development_aux development clean_development =
- let delete_development development =
- let unlink = HExtlib.safe_remove in
- let rmdir dir =
- try
- Unix.rmdir dir
- with Unix.Unix_error _ ->
- logger `Warning ("Unable to remove dir " ^ dir);
- match ls_dir dir with
- | None -> logger `Error ("Unable to list directory " ^ dir)
- | Some [] -> ()
- | Some l -> logger `Error ("The directory is not empty")
- in
- unlink (makefile_for_development development);
- unlink (pool () ^ development.name ^ rootfile);
- unlink (pool () ^ development.name ^ "/depend");
- unlink (pool () ^ development.name ^ "/depend.errors");
- unlink (pool () ^ development.name ^ "/depend.dot");
- rmdir (pool () ^ development.name);
- developments :=
- List.filter (fun d -> d.name <> development.name) !developments
- in
- if not(clean_development development) then
- begin
- logger `Warning "Unable to clean the development problerly.";
- logger `Warning "This may cause garbage."
- end;
- delete_development development
-
-let destroy_development ?matita_flags development =
- destroy_development_aux development (clean_development ?matita_flags)
-
-let destroy_development_in_bg ?matita_flags refresh development =
- destroy_development_aux development
- (clean_development_in_bg refresh ?matita_flags )
-
-let root_for_development development = development.root
-let name_for_development development = development.name
-
-let publish_development_bstract build clean devel =
- let matita_flags, matita_flags_system =
- let orig_matita_flags =
- try Sys.getenv "MATITA_FLAGS" with Not_found -> ""
- in
- orig_matita_flags, orig_matita_flags ^ " -system"
- in
- HLog.message "cleaning the development before publishing";
- if clean ~matita_flags devel then
- begin
- HLog.message "rebuilding the development in 'system' space";
- (* here we should use pristine metadata if we use sqlite *)
- if build ~matita_flags:matita_flags_system devel then
- begin
- HLog.message "publishing succeded";
- true
- end
- else
- begin
- HLog.error "building process failed, reverting";
- if not (clean ~matita_flags devel) then
- HLog.error "cleaning failed, end of the world (2)";
- false
- end
- end
- else
- (HLog.error "unable to clean the development, publishing failed"; false)
-
-let publish_development devel =
- publish_development_bstract
- (fun ~matita_flags devel -> build_development ~matita_flags devel)
- (fun ~matita_flags devel -> clean_development ~matita_flags devel) devel
-let publish_development_in_bg cb devel =
- publish_development_bstract
- (fun ~matita_flags devel -> build_development_in_bg cb ~matita_flags devel)
- (fun ~matita_flags devel -> clean_development_in_bg cb ~matita_flags devel)
- devel
-
+++ /dev/null
-(* Copyright (C) 2005, HELM Team.
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-type development
-
-(* initialize_development [name] [dir]
- * ask matitamake to recorder [dir] as the root for thedevelopment [name] *)
-val initialize_development: string -> string -> development option
-(* make target [default all] *)
-val build_development: ?matita_flags:string -> ?target:string -> development -> bool
-(* make target [default all], the refresh cb is called after every output *)
-val build_development_in_bg:
- ?matita_flags:string -> ?target:string -> (unit -> unit) -> development -> bool
-(* make clean *)
-val clean_development: ?matita_flags:string -> development -> bool
-val clean_development_in_bg: ?matita_flags:string -> (unit -> unit) -> development -> bool
-
-val publish_development_in_bg: (unit -> unit) -> development -> bool
-val publish_development: development -> bool
-
-(* return the development that handles dir *)
-val development_for_dir: string -> development option
-(* return the development *)
-val development_for_name: string -> development option
-(* return the known list of name, development_root *)
-val list_known_developments: unit -> (string * string ) list
-(* cleans the development, forgetting about it *)
-val destroy_development: ?matita_flags:string -> development -> unit
-val destroy_development_in_bg: ?matita_flags:string -> (unit -> unit) -> development -> unit
-(* initiale internal data structures *)
-val initialize : unit -> unit
-(* gives back the root *)
-val root_for_development : development -> string
-(* gives back the name *)
-val name_for_development : development -> string
-
-(** @return dot file for a given development, if it exists *)
-val dot_for_development : development -> string option
-
-val normalize_path: string -> string
+++ /dev/null
-(* Copyright (C) 2006, HELM Team.
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-let raw_preamble buri = "
-inductive eq (A:Type) (x:A) : A \\to Prop \\def refl_eq : eq A x x.
-
-theorem sym_eq : \\forall A:Type.\\forall x,y:A. eq A x y \\to eq A y x.
-intros.elim H. apply refl_eq.
-qed.
-
-theorem eq_elim_r:
- \\forall A:Type.\\forall x:A. \\forall P: A \\to Prop.
- P x \\to \\forall y:A. eq A y x \\to P y.
-intros. elim (sym_eq ? ? ? H1).assumption.
-qed.
-
-theorem trans_eq :
- \\forall A:Type.\\forall x,y,z:A. eq A x y \\to eq A y z \\to eq A x z.
-intros.elim H1.assumption.
-qed.
-
-default \"equality\"
- " ^ buri ^ "/eq.ind
- " ^ buri ^ "/sym_eq.con
- " ^ buri ^ "/trans_eq.con
- " ^ buri ^ "/eq_ind.con
- " ^ buri ^ "/eq_elim_r.con
- " ^ buri ^ "/eq_f.con
- " ^ buri ^ "/eq_f1.con.
-
-theorem eq_f: \\forall A,B:Type.\\forall f:A\\to B.
- \\forall x,y:A. eq A x y \\to eq B (f x) (f y).
-intros.elim H.reflexivity.
-qed.
-
-theorem eq_f1: \\forall A,B:Type.\\forall f:A\\to B.
- \\forall x,y:A. eq A x y \\to eq B (f y) (f x).
-intros.elim H.reflexivity.
-qed.
-
-inductive ex (A:Type) (P:A \\to Prop) : Prop \\def
- ex_intro: \\forall x:A. P x \\to ex A P.
-interpretation \"exists\" 'exists \\eta.x =
- (" ^ buri ^ "/ex.ind#xpointer(1/1) _ x).
-
-notation < \"hvbox(\\exists ident i opt (: ty) break . p)\"
- right associative with precedence 20
-for @{ 'exists ${default
- @{\\lambda ${ident i} : $ty. $p)}
- @{\\lambda ${ident i} . $p}}}.
-
-"
-;;
-
-let p_to_ma ?timeout ~tptppath ~filename () =
- let data =
- Tptp2grafite.tptp2grafite ?timeout ~filename ~tptppath:tptppath
- ~raw_preamble ()
- in
- data
-;;
-
-let main () =
- let tptppath = ref "./" in
- let timeout = ref 600 in
- MatitaInit.add_cmdline_spec
- ["-tptppath",Arg.String (fun s -> tptppath:= s),
- "Where to find the Axioms/ and Problems/ directory";
- "-timeout", Arg.Int (fun x -> timeout := x),
- "Timeout in seconds"];
- MatitaInit.parse_cmdline_and_configuration_file ();
- Helm_registry.set_bool "matita.nodisk" true;
- HLog.set_log_callback (fun _ _ -> ());
- let args = Helm_registry.get_list Helm_registry.string "matita.args" in
- let inputfile =
- match args with
- | [file] -> file
- | _ -> prerr_endline "You must specify exactly one .p file."; exit 1
- in
- let data =
- p_to_ma ~timeout:!timeout ~filename:inputfile ~tptppath:!tptppath ()
- in
-(* prerr_endline data; *)
- let is = Ulexing.from_utf8_string data in
- let gs = GrafiteSync.init () in
- let ls =
- CicNotation2.load_notation ~include_paths:[]
- BuildTimeConf.core_notation_script
- in
- Sys.catch_break true;
- try
- let _ =
- MatitaEngine.eval_from_stream
- ~first_statement_only:false
- ~include_paths:[]
- ~clean_baseuri:true
- ~do_heavy_checks:false
- ~prompt:false
- ls gs is
- (fun _ _ -> ())
-(*
- (fun _ s ->
- let pp_ast_statement =
- GrafiteAstPp.pp_statement ~term_pp:CicNotationPp.pp_term
- ~lazy_term_pp:CicNotationPp.pp_term ~obj_pp:CicNotationPp.pp_obj
- in
- prerr_endline (pp_ast_statement s))
-*)
- in
- exit 0
- with exn ->
- prerr_endline (snd (MatitaExcPp.to_string exn));
- exit 1
-;;
+++ /dev/null
-(* Copyright (C) 2006, HELM Team.
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-val main: unit -> unit
-
-val p_to_ma: ?timeout:int -> tptppath:string -> filename:string -> unit -> string
-
+++ /dev/null
-(* Copyright (C) 2004-2005, HELM Team.
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-(* $Id$ *)
-
-let _ =
- let _ = Topdirs.dir_quit in
- Toploop.loop Format.std_formatter;
- assert false
+++ /dev/null
-(* Copyright (C) 2007, HELM Team.
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-open Printf
-
-module Ast = GrafiteAst
-module Pt = CicNotationPt
-
- (* set to false to change identifier instead of adding extra identifiers *)
-let add_ident = ref true
-
-let error_token = "O"
-let error_token_len = String.length error_token
-
-let has_toplevel_term = function
- | GrafiteParser.LSome (Ast.Executable (_, Ast.Command (_, Ast.Obj (loc, (
- Pt.Theorem ((`Definition | `Lemma | `Theorem), _, _, _)
- (*| Pt.Inductive _*)
- (*| Pt.Record _*)
- ))))) ->
- true
- | _ -> false
-
-let flush_token_stream (stream, loc_func) =
- let tok_count = ref ~-1 in
- let rec aux acc =
- let next_tok =
- try Some (Stream.next stream) with Stream.Failure -> None in
- match next_tok with
- | None | Some ("EOI", _) -> List.rev acc
- | Some tok ->
- incr tok_count;
- aux ((tok, loc_func !tok_count) :: acc) in
- aux []
-
-let rotten_script ~fname statement =
- (* XXX terribly inefficient: the same script is read several times ... *)
- let lexer = CicNotationLexer.level2_ast_lexer in
- let token_stream, loc_func =
- lexer.Token.tok_func (Obj.magic (Ulexing.from_utf8_string statement)) in
- let tokens = flush_token_stream (token_stream, loc_func) in
- let target_token, target_pos =
- let rec sanitize_tokens acc = function
- | [] -> List.rev acc
- | (("IDENT",
- ("theorem" | "definition" | "lemma" | "record" | "inductive")), _)
- :: (("IDENT", _), _) :: tl ->
- (* avoid rottening of object names *)
- sanitize_tokens acc tl
- | (("SYMBOL", ("∀" | "λ" | "Π")), _) :: (("IDENT", _), _) :: tl ->
- (* avoid rottening of binders *)
- let rec remove_args = function
- | (("SYMBOL", ","), _) :: (("IDENT", _), _) :: tl ->
- remove_args tl
- | tl -> tl in
- sanitize_tokens acc (remove_args tl)
- | (("SYMBOL", "⇒"), _) as hd :: tl ->
- (* avoid rottening of constructor names in pattern matching *)
- let rec remove_until_branch_start = function
- | (("SYMBOL", ("|" | "[")), _) :: tl -> tl
- | hd :: tl -> remove_until_branch_start tl
- | [] -> [] in
- sanitize_tokens (hd :: remove_until_branch_start acc) tl
- | hd :: tl -> (* every other identfier can be rottened! *)
- sanitize_tokens (hd :: acc) tl in
- let idents =
- List.filter (function (("IDENT", _), _) -> true | _ -> false)
- (sanitize_tokens [] tokens) in
- List.nth idents (Random.int (List.length idents))
- in
- let start_pos, end_pos = (* positions in bytecount *)
- Glib.Utf8.offset_to_pos statement 0 (Stdpp.first_pos target_pos),
- Glib.Utf8.offset_to_pos statement 0 (Stdpp.last_pos target_pos) in
- let statement' =
- if !add_ident then
- String.sub statement 0 start_pos
- ^ "O "
- ^ String.sub statement start_pos (String.length statement - start_pos)
- else
- String.sub statement 0 start_pos
- ^ "O"
- ^ String.sub statement end_pos (String.length statement - end_pos)
- in
- let script = HExtlib.input_file fname in
- let matches =
- let rex =
- Pcre.regexp ~flags:[`DOTALL]
- (sprintf "^(.*)(%s)(.*)$" (Pcre.quote statement)) in
- try
- Pcre.extract ~rex script
- with Not_found -> assert false
- in
- let trailer = (* trailing comment with machine parseable error location *)
- let preamble_len = Glib.Utf8.length matches.(1) in
- sprintf "\n(*\nerror-at: %d-%d\n*)\n"
- (preamble_len + Stdpp.first_pos target_pos)
- (preamble_len + Stdpp.first_pos target_pos + error_token_len) in
- let script' =
- sprintf "%s%s%s%s" matches.(1) statement' matches.(3) trailer in
- let md5 = Digest.to_hex (Digest.string script') in
- HExtlib.output_file
- ~filename:(sprintf "%s.%s.rottened" fname md5)
- ~text:script'
-
-let grep () =
- let recursive = ref false in
- let spec = [
- "-r", Arg.Set recursive, "enable directory recursion";
- ] in
- MatitaInit.add_cmdline_spec spec;
- MatitaInit.initialize_all ();
- let include_paths =
- Helm_registry.get_list Helm_registry.string "matita.includes" in
- let status =
- CicNotation2.load_notation ~include_paths
- BuildTimeConf.core_notation_script in
- let path =
- match Helm_registry.get_list Helm_registry.string "matita.args" with
- | [ path ] -> path
- | _ -> MatitaInit.die_usage () in
- let grep_fun =
- if !recursive then
- (fun dirname ->
- let sane_statements =
- GrafiteWalker.rgrep_statement ~status ~dirname has_toplevel_term in
- List.iter (fun (fname, statement) -> rotten_script ~fname statement)
- sane_statements)
- else
- (fun fname ->
- let sane_statements =
- GrafiteWalker.grep_statement ~status ~fname has_toplevel_term in
- List.iter (fun statement -> rotten_script ~fname statement)
- sane_statements)
- in
- grep_fun path
-
-let handle_localized_exns f arg =
- try
- f arg
- with HExtlib.Localized (loc, exn) ->
- let loc_begin, loc_end = HExtlib.loc_of_floc loc in
- eprintf "Error at %d-%d: %s\n%!" loc_begin loc_end (Printexc.to_string exn)
-
-let _ =
- Random.self_init ();
- handle_localized_exns grep ()
-
+++ /dev/null
-#!/bin/bash
-set -x
-make clean-rottened
-./rottener.opt -r library/
+++ /dev/null
-SRC=$(shell find @ROOT@ -name "*.ma" -a -type f)
-SHORTSRC=$(echo $(SRC) | sed 's?^@ROOT@/??g')
-TODO=$(SRC:%.ma=%.mo)
-
-MATITA_FLAGS=
-MATITA_FLAGS+=-noprofile
-NODB=false
-ifeq ($(NODB),true)
- MATITA_FLAGS += -nodb
-endif
-
-MATITAC=@CC@
-MATITACLEAN=@CLEAN@
-MATITADEP=@DEP@
-
-all: $(TODO)
-
-clean:
- $(MATITACLEAN) $(MATITA_FLAGS) $(SRC)
- rm -f $(TODO) @DEPFILE@
-
-%.moo:
- if [ -z "$<" ]; then \
- echo "missing dependencies for $@"; \
- else \
- $(MATITAC) $(MATITA_FLAGS) -q -I @ROOT@ $<; \
- fi
-
-@DEPFILE@ : $(SRC)
- $(MATITADEP) $(MATITA_FLAGS) -I '@ROOT@' -dot @DEPFILE@.dot $^ \
- 1> @DEPFILE@ 2>@DEPFILE@.errors \
- || (echo;cat @DEPFILE@.errors;echo;rm @DEPFILE@;false)
-
-# this is the depend for full targets like:
-# dir/dir/name.moo: dir/dir/name.ma dir/dep.moo
-include @DEPFILE@
+++ /dev/null
-H=@
-
-RT_BASEDIR=$(shell if [ -x "@MATITA_RT_BASE_DIR@/matitamake" -o -x "@MATITA_RT_BASE_DIR@/matitamake.opt" ]; then echo "@MATITA_RT_BASE_DIR@"; else echo ""; fi)
-OPTIONS=-bench
-MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS)
-CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS)
-MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS)
-CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS)
-
-devel:=$(shell basename `pwd`)
-
-ifneq "$(SRC)" ""
- XXX="SRC=$(SRC)"
-endif
-
-all: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel)
-clean: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel)
-cleanall: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all
-
-all.opt opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel)
-clean.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel)
-cleanall.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all
-
-%.mo: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@
-%.mo.opt: preall.opt
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $(@:.opt=)
-
-preall:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel)
-
-preall.opt:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) init $(devel)
--- /dev/null
+DIR=$(shell basename $$PWD)
+
+$(DIR) all:
+ ../matitac 2>/dev/null
+$(DIR).opt opt all.opt:
+ ../matitac.opt 2>/dev/null
+clean:
+ ../matitaclean
+clean.opt:
+ ../matitaclean.opt
+depend:
+ ../matitadep
+depend.opt:
+ ../matitadep.opt
-set "baseuri" "cic:/matita/TPTP/BOO001-1".
+
include "logic/equality.ma".
(* Inclusion of: BOO001-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO003-2".
+
include "logic/equality.ma".
(* Inclusion of: BOO003-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO003-4".
+
include "logic/equality.ma".
(* Inclusion of: BOO003-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO004-2".
+
include "logic/equality.ma".
(* Inclusion of: BOO004-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO004-4".
+
include "logic/equality.ma".
(* Inclusion of: BOO004-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO005-2".
+
include "logic/equality.ma".
(* Inclusion of: BOO005-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO005-4".
+
include "logic/equality.ma".
(* Inclusion of: BOO005-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO006-2".
+
include "logic/equality.ma".
(* Inclusion of: BOO006-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO006-4".
+
include "logic/equality.ma".
(* Inclusion of: BOO006-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO009-2".
+
include "logic/equality.ma".
(* Inclusion of: BOO009-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO009-4".
+
include "logic/equality.ma".
(* Inclusion of: BOO009-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO010-2".
+
include "logic/equality.ma".
(* Inclusion of: BOO010-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO010-4".
+
include "logic/equality.ma".
(* Inclusion of: BOO010-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO011-2".
+
include "logic/equality.ma".
(* Inclusion of: BOO011-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO011-4".
+
include "logic/equality.ma".
(* Inclusion of: BOO011-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO012-2".
+
include "logic/equality.ma".
(* Inclusion of: BOO012-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO012-4".
+
include "logic/equality.ma".
(* Inclusion of: BOO012-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO013-2".
+
include "logic/equality.ma".
(* Inclusion of: BOO013-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO013-4".
+
include "logic/equality.ma".
(* Inclusion of: BOO013-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO016-2".
+
include "logic/equality.ma".
(* Inclusion of: BOO016-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO017-2".
+
include "logic/equality.ma".
(* Inclusion of: BOO017-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO018-4".
+
include "logic/equality.ma".
(* Inclusion of: BOO018-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO034-1".
+
include "logic/equality.ma".
(* Inclusion of: BOO034-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO069-1".
+
include "logic/equality.ma".
(* Inclusion of: BOO069-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO071-1".
+
include "logic/equality.ma".
(* Inclusion of: BOO071-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/BOO075-1".
+
include "logic/equality.ma".
(* Inclusion of: BOO075-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL004-3".
+
include "logic/equality.ma".
(* Inclusion of: COL004-3.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL007-1".
+
include "logic/equality.ma".
(* Inclusion of: COL007-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL008-1".
+
include "logic/equality.ma".
(* Inclusion of: COL008-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL010-1".
+
include "logic/equality.ma".
(* Inclusion of: COL010-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL012-1".
+
include "logic/equality.ma".
(* Inclusion of: COL012-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL013-1".
+
include "logic/equality.ma".
(* Inclusion of: COL013-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL014-1".
+
include "logic/equality.ma".
(* Inclusion of: COL014-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL015-1".
+
include "logic/equality.ma".
(* Inclusion of: COL015-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL016-1".
+
include "logic/equality.ma".
(* Inclusion of: COL016-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL017-1".
+
include "logic/equality.ma".
(* Inclusion of: COL017-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL018-1".
+
include "logic/equality.ma".
(* Inclusion of: COL018-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL021-1".
+
include "logic/equality.ma".
(* Inclusion of: COL021-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL022-1".
+
include "logic/equality.ma".
(* Inclusion of: COL022-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL024-1".
+
include "logic/equality.ma".
(* Inclusion of: COL024-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL025-1".
+
include "logic/equality.ma".
(* Inclusion of: COL025-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL045-1".
+
include "logic/equality.ma".
(* Inclusion of: COL045-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL048-1".
+
include "logic/equality.ma".
(* Inclusion of: COL048-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL050-1".
+
include "logic/equality.ma".
(* Inclusion of: COL050-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL058-2".
+
include "logic/equality.ma".
(* Inclusion of: COL058-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL058-3".
+
include "logic/equality.ma".
(* Inclusion of: COL058-3.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL060-2".
+
include "logic/equality.ma".
(* Inclusion of: COL060-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL060-3".
+
include "logic/equality.ma".
(* Inclusion of: COL060-3.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL061-2".
+
include "logic/equality.ma".
(* Inclusion of: COL061-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL061-3".
+
include "logic/equality.ma".
(* Inclusion of: COL061-3.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL062-2".
+
include "logic/equality.ma".
(* Inclusion of: COL062-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL062-3".
+
include "logic/equality.ma".
(* Inclusion of: COL062-3.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL063-2".
+
include "logic/equality.ma".
(* Inclusion of: COL063-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL063-3".
+
include "logic/equality.ma".
(* Inclusion of: COL063-3.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL063-4".
+
include "logic/equality.ma".
(* Inclusion of: COL063-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL063-5".
+
include "logic/equality.ma".
(* Inclusion of: COL063-5.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL063-6".
+
include "logic/equality.ma".
(* Inclusion of: COL063-6.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL064-2".
+
include "logic/equality.ma".
(* Inclusion of: COL064-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL064-3".
+
include "logic/equality.ma".
(* Inclusion of: COL064-3.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL064-4".
+
include "logic/equality.ma".
(* Inclusion of: COL064-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL064-5".
+
include "logic/equality.ma".
(* Inclusion of: COL064-5.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL064-6".
+
include "logic/equality.ma".
(* Inclusion of: COL064-6.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL064-7".
+
include "logic/equality.ma".
(* Inclusion of: COL064-7.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL064-8".
+
include "logic/equality.ma".
(* Inclusion of: COL064-8.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL064-9".
+
include "logic/equality.ma".
(* Inclusion of: COL064-9.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL083-1".
+
include "logic/equality.ma".
(* Inclusion of: COL083-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL084-1".
+
include "logic/equality.ma".
(* Inclusion of: COL084-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL085-1".
+
include "logic/equality.ma".
(* Inclusion of: COL085-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/COL086-1".
+
include "logic/equality.ma".
(* Inclusion of: COL086-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP001-2".
+
include "logic/equality.ma".
(* Inclusion of: GRP001-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP001-4".
+
include "logic/equality.ma".
(* Inclusion of: GRP001-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP010-4".
+
include "logic/equality.ma".
(* Inclusion of: GRP010-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP011-4".
+
include "logic/equality.ma".
(* Inclusion of: GRP011-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP012-4".
+
include "logic/equality.ma".
(* Inclusion of: GRP012-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP022-2".
+
include "logic/equality.ma".
(* Inclusion of: GRP022-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP023-2".
+
include "logic/equality.ma".
(* Inclusion of: GRP023-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP115-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP115-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP116-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP116-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP117-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP117-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP118-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP118-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP136-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP136-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP137-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP137-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP139-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP139-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP141-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP141-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP142-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP142-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP143-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP143-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP144-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP144-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP145-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP145-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP146-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP146-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP149-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP149-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP150-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP150-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP151-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP151-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP152-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP152-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP153-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP153-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP154-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP154-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP155-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP155-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP156-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP156-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP157-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP157-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP158-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP158-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP159-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP159-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP160-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP160-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP161-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP161-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP162-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP162-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP163-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP163-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP168-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP168-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP168-2".
+
include "logic/equality.ma".
(* Inclusion of: GRP168-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP173-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP173-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP174-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP174-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP176-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP176-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP176-2".
+
include "logic/equality.ma".
(* Inclusion of: GRP176-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP182-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP182-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP182-2".
+
include "logic/equality.ma".
(* Inclusion of: GRP182-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP182-3".
+
include "logic/equality.ma".
(* Inclusion of: GRP182-3.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP182-4".
+
include "logic/equality.ma".
(* Inclusion of: GRP182-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP186-3".
+
include "logic/equality.ma".
(* Inclusion of: GRP186-3.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP186-4".
+
include "logic/equality.ma".
(* Inclusion of: GRP186-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP188-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP188-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP188-2".
+
include "logic/equality.ma".
(* Inclusion of: GRP188-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP189-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP189-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP189-2".
+
include "logic/equality.ma".
(* Inclusion of: GRP189-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP192-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP192-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP206-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP206-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP454-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP454-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP455-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP455-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP456-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP456-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP457-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP457-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP458-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP458-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP459-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP459-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP460-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP460-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP463-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP463-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP467-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP467-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP481-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP481-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP484-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP484-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP485-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP485-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP486-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP486-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP487-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP487-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP488-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP488-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP490-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP490-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP491-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP491-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP492-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP492-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP493-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP493-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP494-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP494-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP495-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP495-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP496-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP496-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP497-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP497-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP498-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP498-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP509-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP509-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP510-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP510-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP511-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP511-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP512-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP512-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP513-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP513-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP514-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP514-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP515-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP515-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP516-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP516-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP517-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP517-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP518-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP518-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP520-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP520-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP541-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP541-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP542-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP542-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP543-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP543-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP544-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP544-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP545-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP545-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP546-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP546-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP547-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP547-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP548-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP548-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP549-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP549-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP550-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP550-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP551-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP551-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP552-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP552-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP556-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP556-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP558-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP558-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP560-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP560-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP561-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP561-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP562-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP562-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP564-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP564-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP565-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP565-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP566-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP566-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP567-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP567-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP568-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP568-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP569-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP569-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP570-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP570-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP572-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP572-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP573-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP573-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP574-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP574-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP576-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP576-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP577-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP577-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP578-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP578-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP580-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP580-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP581-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP581-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP582-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP582-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP583-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP583-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP584-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP584-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP586-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP586-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP588-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP588-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP590-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP590-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP592-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP592-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP595-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP595-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP596-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP596-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP597-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP597-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP598-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP598-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP599-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP599-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP600-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP600-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP602-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP602-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP603-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP603-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP604-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP604-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP605-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP605-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP606-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP606-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP608-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP608-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP612-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP612-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP613-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP613-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP614-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP614-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP615-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP615-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/GRP616-1".
+
include "logic/equality.ma".
(* Inclusion of: GRP616-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LAT008-1".
+
include "logic/equality.ma".
(* Inclusion of: LAT008-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LAT033-1".
+
include "logic/equality.ma".
(* Inclusion of: LAT033-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LAT034-1".
+
include "logic/equality.ma".
(* Inclusion of: LAT034-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LAT039-1".
+
include "logic/equality.ma".
(* Inclusion of: LAT039-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LAT039-2".
+
include "logic/equality.ma".
(* Inclusion of: LAT039-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LAT040-1".
+
include "logic/equality.ma".
(* Inclusion of: LAT040-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LAT045-1".
+
include "logic/equality.ma".
(* Inclusion of: LAT045-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL110-2".
+
include "logic/equality.ma".
(* Inclusion of: LCL110-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL112-2".
+
include "logic/equality.ma".
(* Inclusion of: LCL112-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL113-2".
+
include "logic/equality.ma".
(* Inclusion of: LCL113-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL114-2".
+
include "logic/equality.ma".
(* Inclusion of: LCL114-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL115-2".
+
include "logic/equality.ma".
(* Inclusion of: LCL115-2.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL132-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL132-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL133-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL133-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL134-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL134-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL135-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL135-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL139-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL139-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL140-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL140-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL141-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL141-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL153-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL153-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL154-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL154-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL155-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL155-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL156-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL156-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL157-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL157-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL158-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL158-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL161-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL161-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LCL164-1".
+
include "logic/equality.ma".
(* Inclusion of: LCL164-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LDA001-1".
+
include "logic/equality.ma".
(* Inclusion of: LDA001-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/LDA007-3".
+
include "logic/equality.ma".
(* Inclusion of: LDA007-3.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/RNG007-4".
+
include "logic/equality.ma".
(* Inclusion of: RNG007-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/RNG008-4".
+
include "logic/equality.ma".
(* Inclusion of: RNG008-4.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/RNG011-5".
+
include "logic/equality.ma".
(* Inclusion of: RNG011-5.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/RNG023-6".
+
include "logic/equality.ma".
(* Inclusion of: RNG023-6.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/RNG023-7".
+
include "logic/equality.ma".
(* Inclusion of: RNG023-7.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/RNG024-6".
+
include "logic/equality.ma".
(* Inclusion of: RNG024-6.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/RNG024-7".
+
include "logic/equality.ma".
(* Inclusion of: RNG024-7.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/ROB002-1".
+
include "logic/equality.ma".
(* Inclusion of: ROB002-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/ROB009-1".
+
include "logic/equality.ma".
(* Inclusion of: ROB009-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/ROB010-1".
+
include "logic/equality.ma".
(* Inclusion of: ROB010-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/ROB013-1".
+
include "logic/equality.ma".
(* Inclusion of: ROB013-1.p *)
(* -------------------------------------------------------------------------- *)
-set "baseuri" "cic:/matita/TPTP/ROB030-1".
+
include "logic/equality.ma".
(* Inclusion of: ROB030-1.p *)
(* ------------------------------------------------------------------------------ *)
-set "baseuri" "cic:/matita/TPTP/SYN083-1".
+
include "logic/equality.ma".
(* Inclusion of: SYN083-1.p *)
(* -------------------------------------------------------------------------- *)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/absurd/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias num (instance 0) = "natural number".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
alias id "not" = "cic:/Coq/Init/Logic/not.con".
(**************************************************************************)
(* test _with_ the WHD on the apply argument *)
-set "baseuri" "cic:/matita/tests/apply/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "not" = "cic:/Coq/Init/Logic/not.con".
alias id "False" = "cic:/Coq/Init/Logic/False.ind#xpointer(1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/apply2".
+
include "nat/nat.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/applys".
+
include "nat/div_and_mod.ma".
include "nat/factorial.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/assumption".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias num (instance 0) = "Coq natural number".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/nat/bad_induction".
+
include "nat/nat.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/auto/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "O" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/1)".
alias id "S" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/2)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/baseuri/".
-set "baseuri" "cic:/matita/tests/baseuri/".
+
+
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/bool/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias id "eq" = "cic:/Coq/Init/Logic/eq.ind#xpointer(1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/change/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias num (instance 0) = "Coq natural number".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
alias symbol "plus" (instance 0) = "Coq's natural plus".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/clear".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias num (instance 0) = "natural number".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
alias id "True" = "cic:/Coq/Init/Logic/True.ind#xpointer(1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/clearbody".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias num (instance 0) = "Coq natural number".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
alias symbol "plus" (instance 0) = "Coq's natural plus".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/coercions/".
+
include "nat/compare.ma".
include "nat/times.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/".
+
include "logic/equality.ma".
include "nat/nat.ma".
axiom f : ∀n,m. A n -> B m.
axiom g : ∀n.B n.
-coercion cic:/matita/test/c.con.
-coercion cic:/matita/test/d.con.
+coercion cic:/matita/tests/coercions_contravariant/c.con.
+coercion cic:/matita/tests/coercions_contravariant/d.con.
definition foo := λn,n1,m,m1.(λx.d m m1 (f n m (c n1 n x)) : A1 n1 -> B1 m1).
definition foo1_1 := λn,n1,m,m1.(f n m : A1 n1 -> B1 m1).
definition h := λn,m.λx:A n.g m.
definition foo2 := λn,n1,m,m1.(h n m : A1 n1 -> B1 m1).
definition foo3 := λn1,n,m,m1.(h n m : A1 n1 -> B1 m1).
-definition foo4 := λn1,n,m1,m.(h n m : A1 n1 -> B1 m1).
\ No newline at end of file
+definition foo4 := λn1,n,m1,m.(h n m : A1 n1 -> B1 m1).
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/".
+
include "nat/nat.ma".
include "list/list.ma".
axiom veclen : ∀A,n.vec A n -> nat.
-coercion cic:/matita/test/c.con.
+coercion cic:/matita/tests/coercions_dependent/c.con.
alias num (instance 0) = "natural number".
definition xxx := veclen nat ? [3; 4; 7].
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/".
+
include "nat/nat.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/coercions_nonuniform/".
+
axiom A : Type.
axiom B : A -> Type.
axiom k : ∀a:A.B (f a).
-coercion cic:/matita/test/coercions_nonuniform/k.con.
+coercion cic:/matita/tests/coercions_nonuniform/k.con.
axiom C : Type.
axiom c2 : ∀a.B (f a) -> B (f1 a).
axiom c1 : ∀a:A. B (f1 a) -> C.
-coercion cic:/matita/test/coercions_nonuniform/c1.con.
-coercion cic:/matita/test/coercions_nonuniform/c2.con.
+coercion cic:/matita/tests/coercions_nonuniform/c1.con.
+coercion cic:/matita/tests/coercions_nonuniform/c2.con.
axiom g : C -> C.
(*
Coq < Coercion c1 : B >-> C.
User error: c1 does not respect the inheritance uniform condition
-*)
\ No newline at end of file
+*)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/".
+
include "logic/equality.ma".
include "nat/nat.ma".
axiom jmcBA : ∀n,m.∀p:A n = B m.B m -> A n.
axiom jmcAB : ∀n,m.∀p:A n = B m.A n -> B m.
-coercion cic:/matita/test/jmcAB.con.
-coercion cic:/matita/test/jmcBA.con.
+coercion cic:/matita/tests/coercions_open/jmcAB.con.
+coercion cic:/matita/tests/coercions_open/jmcBA.con.
axiom daemon : ∀x,y:A O.x = y.
alias num (instance 0) = "natural number".
lemma xx : ∀b:B 2.∀a:A 1.eatA ? b = eatB ? a.
intros; [3,5,7,9: apply AB|1: apply daemon];skip.
-qed.
\ No newline at end of file
+qed.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/coercions_propagation/".
+
include "logic/connectives.ma".
include "nat/orders.ma".
sigma_intro: ∀a:A. P a → sigma A P.
interpretation "sigma" 'exists \eta.x =
- (cic:/matita/test/coercions_propagation/sigma.ind#xpointer(1/1) _ x).
+ (cic:/matita/tests/coercions_propagation/sigma.ind#xpointer(1/1) _ x).
definition inject ≝ λP.λa:nat.λp:P a. sigma_intro ? P ? p.
-coercion cic:/matita/test/coercions_propagation/inject.con 0 1.
+coercion cic:/matita/tests/coercions_propagation/inject.con 0 1.
definition eject ≝ λP.λc: ∃n:nat.P n. match c with [ sigma_intro w _ ⇒ w].
-coercion cic:/matita/test/coercions_propagation/eject.con.
+coercion cic:/matita/tests/coercions_propagation/eject.con.
alias num (instance 0) = "natural number".
theorem test: ∃n. 0 ≤ n.
definition injectN ≝ λA,k.λP.λa:NN A k.λp:P a. sigma_intro ? P ? p.
-coercion cic:/matita/test/coercions_propagation/injectN.con 0 1.
+coercion cic:/matita/tests/coercions_propagation/injectN.con 0 1.
definition ejectN ≝ λA,k.λP.λc: ∃n:NN A k.P n. match c with [ sigma_intro w _ ⇒ w].
-coercion cic:/matita/test/coercions_propagation/ejectN.con.
+coercion cic:/matita/tests/coercions_propagation/ejectN.con.
definition PN :=
λA,k.λx:NN A k. 1 <= k.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/russell/".
+
include "nat/orders.ma".
include "list/list.ma".
sig_intro: ∀a:A. P a → sigma A P.
interpretation "sigma" 'exists \eta.x =
- (cic:/matita/test/russell/sigma.ind#xpointer(1/1) _ x).
+ (cic:/matita/tests/coercions_russell/sigma.ind#xpointer(1/1) _ x).
definition inject ≝ λP.λa:list nat.λp:P a. sig_intro ? P ? p.
-coercion cic:/matita/test/russell/inject.con 0 1.
+coercion cic:/matita/tests/coercions_russell/inject.con 0 1.
definition eject ≝ λP.λc: ∃n:list nat.P n. match c with [ sig_intro w _ ⇒ w].
-coercion cic:/matita/test/russell/eject.con.
+coercion cic:/matita/tests/coercions_russell/eject.con.
alias symbol "exists" (instance 2) = "exists".
lemma tl : ∀l:list nat. l ≠ [] → ∃l1.∃a.a :: l1 = l.
definition nat_return := λn:nat. Some ? n.
-coercion cic:/matita/test/russell/nat_return.con.
+coercion cic:/matita/tests/coercions_russell/nat_return.con.
definition raise_exn := None nat.
definition inject_opt ≝ λP.λa:option nat.λp:P a. sig_intro ? P ? p.
-coercion cic:/matita/test/russell/inject_opt.con 0 1.
+coercion cic:/matita/tests/coercions_russell/inject_opt.con 0 1.
definition eject_opt ≝ λP.λc: ∃n:option nat.P n. match c with [ sig_intro w _ ⇒ w].
-coercion cic:/matita/test/russell/eject_opt.con.
+coercion cic:/matita/tests/coercions_russell/eject_opt.con.
(* we may define mem as in the following lemma and get rid of it *)
definition find_spec ≝
notation < "'If' \nbsp b \nbsp 'Then' \nbsp t \nbsp 'Else' \nbsp f" for @{ 'if $b $t $f }.
notation > "'If' b 'Then' t 'Else' f" for @{ 'if $b $t $f }.
-interpretation "if" 'if a b c = (cic:/matita/test/russell/if.con _ a b c).
+interpretation "if" 'if a b c = (cic:/matita/tests/coercions_russell/if.con _ a b c).
definition sigma_find_spec : ∀p,l. sigma ? (λres.find_spec l p res).
(* define the find function *)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/comments/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
(* commento che va nell'ast, ma non viene contato
come step perche' non e' un executable
-set "baseuri" "cic:/matita/tests/compose/LCL002-1".
+
include "logic/equality.ma".
theorem an_1:
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/constructor".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias num (instance 0) = "natural number".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/continuationals".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias id "S" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/2)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/contradiction".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "True" = "cic:/Coq/Init/Logic/True.ind#xpointer(1/1)".
alias id "not" = "cic:/Coq/Init/Logic/not.con".
alias num (instance 0) = "natural number".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/cut".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias num (instance 0) = "natural number".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/decl".
+
include "nat/times.ma".
include "nat/orders.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/decompose".
+
include "logic/connectives.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/demodulation/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias num = "Coq natural number".
alias symbol "times" = "Coq's natural times".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/demodulation_matita/".
+
include "nat/minus.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/dependent_injection".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias id "bool" = "cic:/Coq/Init/Datatypes/bool.ind#xpointer(1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/dependent_type_inference/".
+
include "nat/nat.ma".
--- /dev/null
+naiveparamod.ma logic/equality.ma
+coercions_nonuniform.ma
+paramodulation.ma coq.ma
+demodulation_coq.ma coq.ma
+assumption.ma coq.ma
+elim.ma coq.ma
+generalize.ma coq.ma
+comments.ma coq.ma
+overred.ma logic/equality.ma
+clear.ma coq.ma
+metasenv_ordering.ma coq.ma
+tinycals.ma logic/connectives.ma
+demodulation_matita.ma nat/minus.ma
+fguidi.ma coq.ma
+inversion2.ma coq.ma
+absurd.ma coq.ma
+decompose.ma logic/connectives.ma
+unfold.ma coq.ma
+dependent_injection.ma coq.ma
+tacticals.ma
+multiple_inheritance.ma logic/equality.ma
+second.ma first.ma
+destruct.ma datatypes/constructors.ma logic/equality.ma nat/nat.ma
+test3.ma coq.ma
+continuationals.ma coq.ma
+coercions_dupelim.ma logic/equality.ma nat/nat.ma
+apply.ma coq.ma
+coercions_open.ma logic/equality.ma nat/nat.ma
+match_inference.ma
+hard_refine.ma coq.ma
+fix_betareduction.ma coq.ma
+push_pop_status_aux1.ma
+push_pop_status.ma push_pop_status_aux1.ma
+decl.ma nat/orders.ma nat/times.ma
+pullback.ma
+mysql_escaping.ma
+rewrite.ma coq.ma
+push_pop_status_aux2.ma
+injection.ma coq.ma
+contradiction.ma coq.ma
+fold.ma coq.ma
+coercions.ma nat/compare.ma nat/times.ma
+record.ma
+bad_induction.ma logic/equality.ma nat/nat.ma
+first.ma
+cut.ma coq.ma
+letrecand.ma nat/nat.ma
+coercions_contravariant.ma logic/equality.ma nat/nat.ma
+test4.ma coq.ma
+dependent_type_inference.ma nat/nat.ma
+coercions_propagation.ma logic/connectives.ma nat/orders.ma
+letrec.ma
+apply2.ma nat/nat.ma
+inversion.ma coq.ma
+replace.ma coq.ma
+applys.ma nat/div_and_mod.ma nat/factorial.ma nat/primes.ma
+third.ma first.ma second.ma
+simpl.ma coq.ma
+coercions_dependent.ma decidable_kit/list_aux.ma list/list.ma nat/nat.ma
+constructor.ma coq.ma
+test2.ma coq.ma
+compose.ma logic/equality.ma
+coercions_russell.ma datatypes/bool.ma datatypes/constructors.ma list/list.ma list/sort.ma nat/compare.ma nat/orders.ma
+clearbody.ma coq.ma
+bool.ma coq.ma
+change.ma coq.ma
+interactive/grafite.ma
+interactive/drop.ma
+interactive/test7.ma
+interactive/automatic_insertion.ma
+interactive/test5.ma
+interactive/test_instance.ma
+interactive/test6.ma
+bad_tests/baseuri.ma
+bad_tests/auto.ma coq.ma
+paramodulation/irratsqrt2.ma nat/minus.ma nat/times.ma
+paramodulation/boolean_algebra.ma coq.ma
+paramodulation/group.ma coq.ma
+paramodulation/BOO075-1.ma
+TPTP/Veloci/BOO012-4.p.ma logic/equality.ma
+TPTP/Veloci/COL064-2.p.ma logic/equality.ma
+TPTP/Veloci/COL012-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP570-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP189-1.p.ma logic/equality.ma
+TPTP/Veloci/COL008-1.p.ma logic/equality.ma
+TPTP/Veloci/COL062-3.p.ma logic/equality.ma
+TPTP/Veloci/SYN083-1.p.ma logic/equality.ma
+TPTP/Veloci/LAT039-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP173-1.p.ma logic/equality.ma
+TPTP/Veloci/COL015-1.p.ma logic/equality.ma
+TPTP/Veloci/RNG024-6.p.ma logic/equality.ma
+TPTP/Veloci/COL062-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP576-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP137-1.p.ma logic/equality.ma
+TPTP/Veloci/COL063-5.p.ma logic/equality.ma
+TPTP/Veloci/COL045-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP011-4.p.ma logic/equality.ma
+TPTP/Veloci/GRP578-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP168-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP588-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO005-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP161-1.p.ma logic/equality.ma
+TPTP/Veloci/COL050-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP552-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP551-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP182-4.p.ma logic/equality.ma
+TPTP/Veloci/GRP467-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL155-1.p.ma logic/equality.ma
+TPTP/Veloci/COL086-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP614-1.p.ma logic/equality.ma
+TPTP/Veloci/COL048-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP517-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP493-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL113-2.p.ma logic/equality.ma
+TPTP/Veloci/BOO006-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP612-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP518-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP158-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO003-2.p.ma logic/equality.ma
+TPTP/Veloci/BOO005-4.p.ma logic/equality.ma
+TPTP/Veloci/GRP595-1.p.ma logic/equality.ma
+TPTP/Veloci/COL060-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP494-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP163-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP168-2.p.ma logic/equality.ma
+TPTP/Veloci/BOO075-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP605-1.p.ma logic/equality.ma
+TPTP/Veloci/RNG007-4.p.ma logic/equality.ma
+TPTP/Veloci/GRP486-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP149-1.p.ma logic/equality.ma
+TPTP/Veloci/LDA007-3.p.ma logic/equality.ma
+TPTP/Veloci/GRP568-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP189-2.p.ma logic/equality.ma
+TPTP/Veloci/COL025-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO009-4.p.ma logic/equality.ma
+TPTP/Veloci/ROB009-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP511-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP516-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP562-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP597-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP509-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL161-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO010-2.p.ma logic/equality.ma
+TPTP/Veloci/RNG023-7.p.ma logic/equality.ma
+TPTP/Veloci/GRP491-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP615-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP142-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP485-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP141-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP569-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL153-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP192-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO013-4.p.ma logic/equality.ma
+TPTP/Veloci/BOO034-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO012-2.p.ma logic/equality.ma
+TPTP/Veloci/COL007-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP547-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP510-1.p.ma logic/equality.ma
+TPTP/Veloci/COL024-1.p.ma logic/equality.ma
+TPTP/Veloci/LDA001-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP513-1.p.ma logic/equality.ma
+TPTP/Veloci/LAT008-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP206-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP580-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP598-1.p.ma logic/equality.ma
+TPTP/Veloci/COL063-6.p.ma logic/equality.ma
+TPTP/Veloci/GRP153-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP151-1.p.ma logic/equality.ma
+TPTP/Veloci/ROB010-1.p.ma logic/equality.ma
+TPTP/Veloci/COL004-3.p.ma logic/equality.ma
+TPTP/Veloci/GRP567-1.p.ma logic/equality.ma
+TPTP/Veloci/LAT045-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP492-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL133-1.p.ma logic/equality.ma
+TPTP/Veloci/COL063-4.p.ma logic/equality.ma
+TPTP/Veloci/GRP463-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO004-2.p.ma logic/equality.ma
+TPTP/Veloci/LCL134-1.p.ma logic/equality.ma
+TPTP/Veloci/RNG023-6.p.ma logic/equality.ma
+TPTP/Veloci/GRP487-1.p.ma logic/equality.ma
+TPTP/Veloci/COL016-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP586-1.p.ma logic/equality.ma
+TPTP/Veloci/ROB013-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL140-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL132-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO010-4.p.ma logic/equality.ma
+TPTP/Veloci/COL014-1.p.ma logic/equality.ma
+TPTP/Veloci/COL064-6.p.ma logic/equality.ma
+TPTP/Veloci/GRP162-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP602-1.p.ma logic/equality.ma
+TPTP/Veloci/ROB030-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP496-1.p.ma logic/equality.ma
+TPTP/Veloci/COL058-2.p.ma logic/equality.ma
+TPTP/Veloci/LCL112-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP484-1.p.ma logic/equality.ma
+TPTP/Veloci/LAT034-1.p.ma logic/equality.ma
+TPTP/Veloci/COL010-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP146-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP454-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO009-2.p.ma logic/equality.ma
+TPTP/Veloci/LAT039-1.p.ma logic/equality.ma
+TPTP/Veloci/COL083-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP495-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP143-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO004-4.p.ma logic/equality.ma
+TPTP/Veloci/GRP604-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP488-1.p.ma logic/equality.ma
+TPTP/Veloci/LAT040-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP182-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP543-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP118-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP514-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO003-4.p.ma logic/equality.ma
+TPTP/Veloci/LCL157-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP542-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP182-3.p.ma logic/equality.ma
+TPTP/Veloci/GRP117-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP606-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP456-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP549-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP154-1.p.ma logic/equality.ma
+TPTP/Veloci/RNG008-4.p.ma logic/equality.ma
+TPTP/Veloci/GRP561-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP139-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO018-4.p.ma logic/equality.ma
+TPTP/Veloci/GRP144-1.p.ma logic/equality.ma
+TPTP/Veloci/COL013-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO011-4.p.ma logic/equality.ma
+TPTP/Veloci/LCL154-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP574-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP565-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP459-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP582-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP545-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL115-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP572-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP583-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP116-1.p.ma logic/equality.ma
+TPTP/Veloci/COL064-9.p.ma logic/equality.ma
+TPTP/Veloci/GRP560-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP145-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP160-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP581-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP001-2.p.ma logic/equality.ma
+TPTP/Veloci/LAT033-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP023-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP001-4.p.ma logic/equality.ma
+TPTP/Veloci/GRP603-1.p.ma logic/equality.ma
+TPTP/Veloci/COL061-3.p.ma logic/equality.ma
+TPTP/Veloci/COL064-5.p.ma logic/equality.ma
+TPTP/Veloci/COL084-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP544-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP515-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP548-1.p.ma logic/equality.ma
+TPTP/Veloci/COL022-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP188-2.p.ma logic/equality.ma
+TPTP/Veloci/LCL164-1.p.ma logic/equality.ma
+TPTP/Veloci/COL061-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP174-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP608-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP012-4.p.ma logic/equality.ma
+TPTP/Veloci/BOO001-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP010-4.p.ma logic/equality.ma
+TPTP/Veloci/COL018-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP458-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO071-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP497-1.p.ma logic/equality.ma
+TPTP/Veloci/COL017-1.p.ma logic/equality.ma
+TPTP/Veloci/COL060-3.p.ma logic/equality.ma
+TPTP/Veloci/COL021-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP613-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP159-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL135-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP176-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP157-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP600-1.p.ma logic/equality.ma
+TPTP/Veloci/COL064-7.p.ma logic/equality.ma
+TPTP/Veloci/COL064-8.p.ma logic/equality.ma
+TPTP/Veloci/GRP577-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP136-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO006-4.p.ma logic/equality.ma
+TPTP/Veloci/GRP592-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP156-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP176-1.p.ma logic/equality.ma
+TPTP/Veloci/RNG011-5.p.ma logic/equality.ma
+TPTP/Veloci/GRP186-3.p.ma logic/equality.ma
+TPTP/Veloci/GRP186-4.p.ma logic/equality.ma
+TPTP/Veloci/GRP520-1.p.ma logic/equality.ma
+TPTP/Veloci/COL058-3.p.ma logic/equality.ma
+TPTP/Veloci/BOO069-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP022-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP155-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP188-1.p.ma logic/equality.ma
+TPTP/Veloci/BOO016-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP498-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP590-1.p.ma logic/equality.ma
+TPTP/Veloci/ROB002-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP152-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL110-2.p.ma logic/equality.ma
+TPTP/Veloci/BOO017-2.p.ma logic/equality.ma
+TPTP/Veloci/COL064-4.p.ma logic/equality.ma
+TPTP/Veloci/LCL139-1.p.ma logic/equality.ma
+TPTP/Veloci/COL063-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP182-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP490-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP115-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL141-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP564-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP481-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP455-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP550-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP599-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP596-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP460-1.p.ma logic/equality.ma
+TPTP/Veloci/RNG024-7.p.ma logic/equality.ma
+TPTP/Veloci/COL085-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL158-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP512-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP616-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP150-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP584-1.p.ma logic/equality.ma
+TPTP/Veloci/COL064-3.p.ma logic/equality.ma
+TPTP/Veloci/BOO013-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP566-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL156-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP573-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP541-1.p.ma logic/equality.ma
+TPTP/Veloci/LCL114-2.p.ma logic/equality.ma
+TPTP/Veloci/BOO011-2.p.ma logic/equality.ma
+TPTP/Veloci/GRP546-1.p.ma logic/equality.ma
+TPTP/Veloci/COL063-3.p.ma logic/equality.ma
+TPTP/Veloci/GRP556-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP558-1.p.ma logic/equality.ma
+TPTP/Veloci/GRP457-1.p.ma logic/equality.ma
+coq.ma
+datatypes/bool.ma
+datatypes/constructors.ma
+decidable_kit/list_aux.ma
+list/list.ma
+list/sort.ma
+logic/connectives.ma
+logic/equality.ma
+nat/compare.ma
+nat/div_and_mod.ma
+nat/factorial.ma
+nat/minus.ma
+nat/nat.ma
+nat/orders.ma
+nat/primes.ma
+nat/times.ma
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/discriminate".
+
include "logic/equality.ma".
include "nat/nat.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/elim".
-include "../legacy/coq.ma".
+
+include "coq.ma".
inductive stupidtype: Set \def
| Base : stupidtype
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/fguidi/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "O" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/1)".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias id "S" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/2)".
-alias id "le" = "cic:/matita/fguidi/le.ind#xpointer(1/1)".
+alias id "le" = "cic:/matita/tests/fguidi/le.ind#xpointer(1/1)".
alias id "False_ind" = "cic:/Coq/Init/Logic/False_ind.con".
alias id "I" = "cic:/Coq/Init/Logic/True.ind#xpointer(1/1/1)".
alias id "ex_intro" = "cic:/Coq/Init/Logic/ex.ind#xpointer(1/1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/first/".
+
inductive nat : Set \def
| O : nat
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/fix_betareduction/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "eq" = "cic:/Coq/Init/Logic/eq.ind#xpointer(1/1)".
alias id "n" = "cic:/Suresnes/BDD/canonicite/Canonicity_BDT/n.con".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/fold".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias num (instance 0) = "natural number".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/generalize".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias num (instance 0) = "Coq natural number".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
-set "baseuri" "cic:/matita/TPTP/BOO024-1".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "eq" = "cic:/Coq/Init/Logic/eq.ind#xpointer(1/1)".
(* Inclusion of: BOO024-1.p *)
(* -------------------------------------------------------------------------- *)
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/injection".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias id "bool" = "cic:/Coq/Init/Datatypes/bool.ind#xpointer(1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/xxx".
+
theorem t: And True (eq nat O O). split. exact (refl_equal nat O). exact I. qed.
\ No newline at end of file
-set "baseuri" "cic:/matita/tests/drop".
+
alias id "O" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/1)".
alias num (instance 0) = "natural number".
-set "baseuri" "cic:/matita/tests/grafite/".
+
(* commento *)
(** hint. *)
-set "baseuri" "cic:/matita/tests/interactive/test5/".
+
whelp instance
\lambda A:Set.
-set "baseuri" "cic:/matita/tests/interactive/test6/".
+
whelp instance
\lambda A:Set.
-set "baseuri" "cic:/matita/tests/interactive/test7/".
+
whelp instance
\lambda A:Set.
-set "baseuri" "cic:/matita/tests/interactive/instance/".
+
whelp instance \lambda A:Set.\lambda P:A \to A \to Prop.\forall x:A. P x x.
whelp instance \lambda A:Set.\lambda P:A \to A \to Prop.\forall x,y:A. P x y \to P y x.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/inversion_sum/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/inversion2/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
inductive nat : Set \def
O : nat
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/letrec/".
+
alias id "O" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/letrecand".
+
include "nat/nat.ma".
+++ /dev/null
-H=@
-
-RT_BASEDIR=../
-OPTIONS=-bench
-MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS)
-CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS)
-MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS)
-CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS)
-
-devel:=$(shell basename `pwd`)
-
-ifneq "$(SRC)" ""
- XXX=SRC=$(SRC)
-endif
-
-all: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel)
-clean: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel)
-cleanall: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all
-
-all.opt opt: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel)
-clean.opt: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel)
-cleanall.opt: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all
-
-%.mo: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@
-%.mo.opt: preall
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $(@:.opt=)
-
-preall:
- $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel)
-
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/match_inference/".
+
inductive pos: Set \def
| one : pos
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/metasenv_ordering".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias num (instance 0) = "natural number".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/".
+
include "logic/equality.ma".
[ exact (C r)
| rewrite > (with_ r); exact (mult (r2_ r))]
qed.
-coercion cic:/matita/test/r2.con.
+coercion cic:/matita/tests/multiple_inheritance/r2.con.
(* convertibility test *)
lemma conv_test : ∀r:R.C r -> K r.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/mysql_escaping/".
+
theorem a' : Prop \to Prop.intros.assumption.qed.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/naiveparamod".
+
include "logic/equality.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/overred/".
+
include "logic/equality.ma".
axiom t3 : T3.
axiom c : T2 -> X -> X.
-coercion cic:/matita/test/overred/c.con 1.
+coercion cic:/matita/tests/overred/c.con 1.
axiom daemon : c t3 x = x.
theorem find_a_coercion_from_T2_for_a_term_in_T3 : (* c *) t3 x = x.
apply daemon.
-qed.
\ No newline at end of file
+qed.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/paramodulation".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
alias symbol "plus" (instance 0) = "Coq's natural plus".
-set "baseuri" "cic:/matita/TPTP/BOO075-1".
+
inductive eq (A:Type) (x:A) : A \to Prop \def refl_eq : eq A x x.
qed.
default "equality"
- cic:/matita/TPTP/BOO075-1/eq.ind
- cic:/matita/TPTP/BOO075-1/sym_eq.con
- cic:/matita/TPTP/BOO075-1/trans_eq.con
- cic:/matita/TPTP/BOO075-1/eq_ind.con
- cic:/matita/TPTP/BOO075-1/eq_elim_r.con
- cic:/matita/TPTP/BOO075-1/eq_rec.con
- cic:/matita/TPTP/BOO075-1/eq_elim_r'.con
- cic:/matita/TPTP/BOO075-1/eq_rect.con
- cic:/matita/TPTP/BOO075-1/eq_elim_r''.con
- cic:/matita/TPTP/BOO075-1/eq_f.con
- cic:/matita/TPTP/BOO075-1/eq_f1.con.
+ cic:/matita/tests/paramodulation/BOO075-1/eq.ind
+ cic:/matita/tests/paramodulation/BOO075-1/sym_eq.con
+ cic:/matita/tests/paramodulation/BOO075-1/trans_eq.con
+ cic:/matita/tests/paramodulation/BOO075-1/eq_ind.con
+ cic:/matita/tests/paramodulation/BOO075-1/eq_elim_r.con
+ cic:/matita/tests/paramodulation/BOO075-1/eq_rec.con
+ cic:/matita/tests/paramodulation/BOO075-1/eq_elim_r'.con
+ cic:/matita/tests/paramodulation/BOO075-1/eq_rect.con
+ cic:/matita/tests/paramodulation/BOO075-1/eq_elim_r''.con
+ cic:/matita/tests/paramodulation/BOO075-1/eq_f.con
+ cic:/matita/tests/paramodulation/BOO075-1/eq_f1.con.
theorem eq_f: \forall A,B:Type.\forall f:A\to B.
\forall x,y:A. eq A x y \to eq B (f x) (f y).
inductive ex (A:Type) (P:A \to Prop) : Prop \def
ex_intro: \forall x:A. P x \to ex A P.
interpretation "exists" 'exists \eta.x =
- (cic:/matita/TPTP/BOO075-1/ex.ind#xpointer(1/1) _ x).
+ (cic:/matita/tests/paramodulation/BOO075-1/ex.ind#xpointer(1/1) _ x).
notation < "hvbox(\exists ident i opt (: ty) break . p)"
right associative with precedence 20
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/SK/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias id "eq" = "cic:/Coq/Init/Logic/eq.ind#xpointer(1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/paramodulation/group".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias id "eq" = "cic:/Coq/Init/Logic/eq.ind#xpointer(1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/paramodulation/irratsqrt2/".
+
include "nat/times.ma".
include "nat/minus.ma".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/pullback".
+
inductive T : Type \def t : T.
inductive L : Type \def l : L.
--- /dev/null
+
+(* XXX coercions *)
+axiom A: Type.
+axiom B: Type.
+axiom cAB: A -> B.
+coercion cic:/matita/tests/push_pop_status/cAB.con.
+
+inductive eq (A:Type) (x:A) : A \to Prop \def
+ refl_eq : eq A x x.
+
+(* XXX notation *)
+notation "hvbox(a break === b)" non associative with precedence 45 for @{ 'eqqq $a $b }.
+interpretation "test" 'eqqq x y = (cic:/matita/tests/push_pop_status/eq.ind#xpointer(1/1) _ x y).
+
+theorem eq_rect':
+ \forall A. \forall x:A. \forall P: \forall y:A. x===y \to Type.
+ P ? (refl_eq ? x) \to \forall y:A. \forall p:x===y. P y p.
+ intros.
+ exact
+ (match p1 return \lambda y. \lambda p.P y p with
+ [refl_eq \Rightarrow p]).
+qed.
+
+lemma sym_eq : \forall A:Type.\forall x,y:A. x===y \to y===x.
+intros.elim H. apply refl_eq.
+qed.
+
+lemma trans_eq : \forall A:Type.\forall x,y,z:A. x===y \to y===z \to x===z.
+intros.elim H1.assumption.
+qed.
+
+theorem eq_elim_r:
+ \forall A:Type.\forall x:A. \forall P: A \to Prop.
+ P x \to \forall y:A. y===x \to P y.
+intros. elim (sym_eq ? ? ? H1).assumption.
+qed.
+
+theorem eq_elim_r':
+ \forall A:Type.\forall x:A. \forall P: A \to Set.
+ P x \to \forall y:A. y===x \to P y.
+intros. elim (sym_eq ? ? ? H).assumption.
+qed.
+
+theorem eq_elim_r'':
+ \forall A:Type.\forall x:A. \forall P: A \to Type.
+ P x \to \forall y:A. y===x \to P y.
+intros. elim (sym_eq ? ? ? H).assumption.
+qed.
+
+theorem eq_f: \forall A,B:Type.\forall f:A\to B.
+\forall x,y:A. x===y \to f x === f y.
+intros.elim H.apply refl_eq.
+qed.
+
+theorem eq_f': \forall A,B:Type.\forall f:A\to B.
+\forall x,y:A. x===y \to f y === f x.
+intros.elim H.apply refl_eq.
+qed.
+
+(* XXX defaults *)
+default "equality"
+ cic:/matita/tests/push_pop_status/eq.ind
+ cic:/matita/tests/push_pop_status/sym_eq.con
+ cic:/matita/tests/push_pop_status/trans_eq.con
+ cic:/matita/tests/push_pop_status/eq_ind.con
+ cic:/matita/tests/push_pop_status/eq_elim_r.con
+ cic:/matita/tests/push_pop_status/eq_rec.con
+ cic:/matita/tests/push_pop_status/eq_elim_r'.con
+ cic:/matita/tests/push_pop_status/eq_rect.con
+ cic:/matita/tests/push_pop_status/eq_elim_r''.con
+ cic:/matita/tests/push_pop_status/eq_f.con
+ cic:/matita/tests/push_pop_status/eq_f'.con. (* \x.sym (eq_f x) *)
+
+include "push_pop_status_aux1.ma".
+(* include "push_pop_status_aux2.ma". *)
+
+(* XXX default *)
+theorem prova: \forall x:A. eq A x x.
+intros. reflexivity.
+qed.
+
+(* XXX notation *)
+theorem prova1: \forall x:A. x === x.
+intros. apply refl_eq.
+qed.
+
+(* XXX coercion *)
+theorem pippo: A -> B.
+intro a.
+apply (a : B).
+qed.
+
+definition X := b.
+
+
--- /dev/null
+axiom c : Type.
--- /dev/null
+axiom c : Type.
+axiom x : c === c.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/record/".
+
record empty : Type \def {}.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/replace/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias num (instance 0) = "Coq natural number".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/rewrite/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias num (instance 0) = "Coq natural number".
--- /dev/null
+baseuri=cic:/matita/tests
+include_paths=../legacy
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/second/".
+
alias id "nat" = "cic:/matita/tests/first/nat.ind#xpointer(1/1)".
alias id "O" = "cic:/matita/tests/first/nat.ind#xpointer(1/1/1)".
alias id "eq" = "cic:/matita/tests/first/eq.ind#xpointer(1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/simpl/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
alias id "plus" = "cic:/Coq/Init/Peano/plus.con".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/test/tacticals".
+
inductive myand (A, B: Prop) : Prop \def
| myconj : ∀a:A.∀b:B. myand A B.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/test2/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias symbol "and" (instance 0) = "Coq's logical and".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/test3/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
theorem a:\forall x.x=x.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/test4/".
-include "../legacy/coq.ma".
+
+include "coq.ma".
(* commento che va nell'ast, ma non viene contato
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/third/".
+
alias id "nat" = "cic:/matita/tests/first/nat.ind#xpointer(1/1)".
alias id "O" = "cic:/matita/tests/first/nat.ind#xpointer(1/1/1)".
alias id "eq" = "cic:/matita/tests/first/eq.ind#xpointer(1/1)".
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/tests/tinycals".
+
theorem prova:
\forall A,B,C:Prop.
(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/unfold".
-include "../legacy/coq.ma".
+
+include "coq.ma".
alias symbol "plus" (instance 0) = "Coq's natural plus".
definition myplus \def \lambda x,y. x+y.