From: Andrea Asperti Date: Wed, 6 Oct 2010 14:30:46 +0000 (+0000) Subject: removed tptp_grafite X-Git-Tag: make_still_working~2799 X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=commitdiff_plain;h=5abc99efce12b00f1b4fa981c04be47c213ebe61;p=helm.git removed tptp_grafite --- diff --git a/matita/components/Makefile b/matita/components/Makefile index db866c9c4..707990615 100644 --- a/matita/components/Makefile +++ b/matita/components/Makefile @@ -11,7 +11,7 @@ MODULES = \ hgdome \ registry \ hmysql \ - syntax_extensions \ + syntax_extensions \ thread \ xmldiff \ urimanager \ @@ -38,7 +38,6 @@ MODULES = \ ng_library \ content_pres \ lexicon \ - tptp_grafite \ grafite_parser \ ng_tactics \ grafite_engine \ diff --git a/matita/components/tptp_grafite/.depend b/matita/components/tptp_grafite/.depend deleted file mode 100644 index bf1f2d73e..000000000 --- a/matita/components/tptp_grafite/.depend +++ /dev/null @@ -1,17 +0,0 @@ -parser.cmi: ast.cmo -parserTHF.cmi: astTHF.cmo -tptp2grafite.cmi: -ast.cmo: -ast.cmx: -lexer.cmo: parser.cmi -lexer.cmx: parser.cmx -astTHF.cmo: -astTHF.cmx: -lexerTHF.cmo: parserTHF.cmi -lexerTHF.cmx: parserTHF.cmx -parser.cmo: ast.cmo parser.cmi -parser.cmx: ast.cmx parser.cmi -parserTHF.cmo: astTHF.cmo parserTHF.cmi -parserTHF.cmx: astTHF.cmx parserTHF.cmi -tptp2grafite.cmo: parser.cmi lexer.cmo ast.cmo tptp2grafite.cmi -tptp2grafite.cmx: parser.cmx lexer.cmx ast.cmx tptp2grafite.cmi diff --git a/matita/components/tptp_grafite/.depend.opt b/matita/components/tptp_grafite/.depend.opt deleted file mode 100644 index fb60fe8f2..000000000 --- a/matita/components/tptp_grafite/.depend.opt +++ /dev/null @@ -1,10 +0,0 @@ -parser.cmi: ast.cmx -tptp2grafite.cmi: -ast.cmo: -ast.cmx: -lexer.cmo: parser.cmi -lexer.cmx: parser.cmx -parser.cmo: ast.cmx parser.cmi -parser.cmx: ast.cmx parser.cmi -tptp2grafite.cmo: parser.cmi lexer.cmx ast.cmx tptp2grafite.cmi -tptp2grafite.cmx: parser.cmx lexer.cmx ast.cmx tptp2grafite.cmi diff --git a/matita/components/tptp_grafite/Makefile b/matita/components/tptp_grafite/Makefile deleted file mode 100644 index e452480d8..000000000 --- a/matita/components/tptp_grafite/Makefile +++ /dev/null @@ -1,77 +0,0 @@ -PACKAGE = tptp_grafite -PREDICATES = - -INTERFACE_FILES= parser.mli parserTHF.mli tptp2grafite.mli - -IMPLEMENTATION_FILES = ast.ml lexer.ml astTHF.ml lexerTHF.ml $(INTERFACE_FILES:%.mli=%.ml) -EXTRA_OBJECTS_TO_INSTALL = -EXTRA_OBJECTS_TO_CLEAN = - -TPTPDIR= /home/$(USER)/work-area/TPTP-v4.0.1/ - -all: tptp2grafite mainTHF -clean: clean_tests clean_generated - -clean_generated: - rm -f parser.mli parser.ml parserTHF.mli parserTHF.ml - rm -f lexer.ml lexerTHF.ml - -clean_tests: - rm -f tptp2grafite - -lexer.cmo: parser.cmi -lexer.cmx: parser.cmi -lexerTHF.cmo: parserTHF.cmi -lexerTHF.cmx: parserTHF.cmi - -%.mli %.ml: %.mly - ocamlyacc $*.mly -%.ml:%.mll - ocamllex $*.mll - -LOCAL_LINKOPTS = -package helm-$(PACKAGE) -linkpkg -tptp2grafite: main.ml tptp_grafite.cma - @echo " OCAMLC $<" - @$(OCAMLC) $(LOCAL_LINKOPTS) -o $@ $< - -mainTHF: mainTHF.ml tptp_grafite.cma - @echo " OCAMLC $<" - @$(OCAMLC) $(LOCAL_LINKOPTS) -o $@ $< - -test: tptp2grafite mainTHF - -testall: tptp2grafite - for X in `cat unit_equality_problems`; do\ - cat $(TPTPDIR)/$$X | ./tptp2grafite || echo ERROR PARSING $$X;\ - done - -generate-%: - for X in `cat $*`; do\ - ./tptp2grafite -tptppath $(TPTPDIR) $$X.p \ - > ../../matita/tests/TPTP/$$X.ma || echo Failed: $$X; \ - done - -ngenerate-%: - for X in `cat $*`; do\ - ./tptp2grafite -ng -tptppath $(TPTPDIR) $$X.p \ - > ../../matita/contribs/ng_TPTP/$$X.ma || echo Failed: $$X; \ - done - -parse-%: - for X in `cat $*`; do\ - echo "Parsing $$X"; \ - ./tptp2grafite -tptppath $(TPTPDIR) $$X.p \ - > /dev/null || echo Failed: $$X; \ - done - -thf: - rm -rf THF - mkdir THF - for x in `cat thf_problems`; do\ - echo $$x;\ - ./mainTHF -tptppath $(TPTPDIR) $$x.p > THF/$$x.ma;\ - done - -include ../../Makefile.defs -include ../Makefile.common - diff --git a/matita/components/tptp_grafite/ast.ml b/matita/components/tptp_grafite/ast.ml deleted file mode 100644 index b8f855dd1..000000000 --- a/matita/components/tptp_grafite/ast.ml +++ /dev/null @@ -1,31 +0,0 @@ -type kinds_of_formulae = - | Axiom | Hypothesis | Definition | Lemma | Theorem | Conjecture - | Lemma_conjecture | Negated_conjecture | Plain | Unknown - -type source = NoSource - -type info = NoInfo - -type term = - | Variable of string - | Constant of string - | Function of string * term list - -type atom = - | Proposition of string - | Predicate of string * term list - | True - | False - | Eq of term * term - | NotEq of term * term - -type formulae = - | Disjunction of formulae * formulae - | NegAtom of atom - | Atom of atom - -type ast = - | Comment of string - | Inclusion of string * (string list) - | AnnotatedFormula of - string * kinds_of_formulae * formulae * source * info list diff --git a/matita/components/tptp_grafite/astTHF.ml b/matita/components/tptp_grafite/astTHF.ml deleted file mode 100644 index e47c69e65..000000000 --- a/matita/components/tptp_grafite/astTHF.ml +++ /dev/null @@ -1,24 +0,0 @@ -type role = - Axiom -| Hypothesis -| Definition -| Assumption -| Lemma -| Theorem -| Conjecture -| Negated_conjecture -| Lemma_conjecture -| Plain -| Fi_domain -| Fi_functors -| Fi_predicates -| Type -| Unknown - - -type ast = - | ThfFormula of string * role * CicNotationPt.term - | ThfDefinition of string * string * CicNotationPt.term - | ThfType of string * string * CicNotationPt.term - | Comment of string - | Inclusion of string * (string list) diff --git a/matita/components/tptp_grafite/heq_problems b/matita/components/tptp_grafite/heq_problems deleted file mode 100644 index b45d71ce3..000000000 --- a/matita/components/tptp_grafite/heq_problems +++ /dev/null @@ -1,142 +0,0 @@ -ANA003-1 -ANA004-1 -ANA005-1 -CAT018-4 -COL003-10 -COL003-2 -COL003-3 -COL003-4 -COL003-5 -COL003-6 -COL003-7 -COL003-8 -COL003-9 -COL006-2 -COL006-3 -COL006-4 -COL042-2 -COL042-3 -COL042-4 -COL042-5 -COL043-2 -COL044-2 -COL044-3 -COL044-4 -COL044-5 -HWC002-1 -HWC003-1 -HWC003-2 -HWV002-1 -HWV003-1 -HWV004-1 -LAT001-1 -LAT002-1 -LAT041-1 -LCL109-4 -LCL149-1 -LCL150-1 -LCL152-1 -LCL181-3 -LCL191-3 -LCL192-3 -LCL193-3 -LCL194-3 -LCL195-3 -LCL208-3 -LCL213-3 -LCL214-3 -LCL215-3 -LCL216-3 -LCL217-3 -LCL220-3 -LCL221-3 -LCL222-3 -LCL223-3 -LCL224-3 -LCL225-3 -LCL227-3 -LCL229-3 -LCL230-3 -LCL231-3 -LCL242-3 -LCL243-3 -LCL245-3 -LCL246-3 -LCL247-3 -LCL249-3 -LCL251-3 -LCL252-3 -LCL253-3 -LCL254-3 -LCL255-3 -LCL260-3 -LCL262-3 -LCL263-3 -LCL264-3 -LCL265-3 -LCL266-3 -LCL269-3 -LCL270-3 -LCL271-3 -LCL272-3 -LCL273-3 -LCL274-3 -LCL275-3 -LCL276-3 -LCL277-3 -LCL278-3 -LCL281-3 -LCL282-3 -LCL283-3 -LCL284-3 -LCL285-3 -LCL286-3 -LCL289-3 -LCL293-3 -LCL295-3 -LCL298-3 -LCL299-3 -LCL300-3 -LCL302-3 -LCL303-3 -LCL304-3 -LCL305-3 -LCL306-3 -LCL307-3 -LCL308-3 -LCL309-3 -LCL310-3 -LCL311-3 -LCL312-3 -LCL313-3 -LCL314-3 -LCL315-3 -LCL316-3 -LCL319-3 -LCL324-3 -LCL325-3 -LCL327-3 -LCL328-3 -LCL329-3 -LCL330-3 -LCL331-3 -LCL332-3 -LCL334-3 -LCL335-3 -LCL336-3 -LCL337-3 -LCL339-3 -LCL340-3 -LCL341-3 -LCL344-3 -LCL345-3 -LCL346-3 -LCL347-3 -LCL348-3 -LCL349-3 -LCL351-3 -LCL353-3 -LDA004-1 -ROB014-1 -ROB015-2 -ROB018-1 diff --git a/matita/components/tptp_grafite/hne_problems b/matita/components/tptp_grafite/hne_problems deleted file mode 100644 index 845ea315f..000000000 --- a/matita/components/tptp_grafite/hne_problems +++ /dev/null @@ -1,90 +0,0 @@ -ANA003-2 -LCL001-1 -LCL002-1 -LCL005-1 -LCL019-1 -LCL020-1 -LCL021-1 -LCL024-1 -LCL032-1 -LCL037-1 -LCL038-1 -LCL061-1 -LCL062-1 -LCL063-1 -LCL074-1 -LCL084-2 -LCL084-3 -LCL085-1 -LCL105-1 -LCL119-1 -LCL122-1 -LCL124-1 -LCL125-1 -LCL166-1 -LCL167-1 -LCL218-1 -LCL227-1 -LCL230-1 -LCL231-1 -LCL249-1 -LCL253-1 -LCL369-1 -LCL375-1 -LCL377-1 -LCL393-1 -LCL394-1 -LCL395-1 -LCL423-1 -LCL425-1 -NUM017-1 -PLA001-1 -PLA004-1 -PLA004-2 -PLA005-1 -PLA005-2 -PLA007-1 -PLA008-1 -PLA009-1 -PLA009-2 -PLA010-1 -PLA011-1 -PLA011-2 -PLA012-1 -PLA013-1 -PLA014-1 -PLA014-2 -PLA015-1 -PLA016-1 -PLA018-1 -PLA019-1 -PLA021-1 -PLA023-1 -PUZ039-1 -PUZ040-1 -PUZ042-1 -PUZ050-1 -RNG001-2 -RNG004-3 -SWV014-1 -SYN556-1 -SYN598-1 -SYN599-1 -SYN600-1 -SYN614-1 -SYN615-1 -SYN617-1 -SYN628-1 -SYN631-1 -SYN639-1 -SYN640-1 -SYN646-1 -SYN647-1 -SYN649-1 -SYN653-1 -SYN654-1 -SYN655-1 -SYN704-1 -SYN707-1 -SYN708-1 -SYN711-1 diff --git a/matita/components/tptp_grafite/lexer.mll b/matita/components/tptp_grafite/lexer.mll deleted file mode 100644 index 273d1b79b..000000000 --- a/matita/components/tptp_grafite/lexer.mll +++ /dev/null @@ -1,57 +0,0 @@ -{ - open Parser - exception BadToken of string - - let incr_linenum lexbuf = - let pos = lexbuf.Lexing.lex_curr_p in - lexbuf.Lexing.lex_curr_p <- { pos with - Lexing.pos_lnum = pos.Lexing.pos_lnum + 1; - Lexing.pos_bol = pos.Lexing.pos_cnum; - } - ;; - -} - -let dust = ' ' | '\t' -let comment = '%' [^ '\n' ] * '\n' -let lname = - ['a'-'z'] ['a'-'z''A'-'Z''0'-'9''_']* -let uname = - ['A'-'Z'] ['a'-'z''A'-'Z''0'-'9''_']* -let qstring = ''' [^ ''' ]+ ''' -let type_ = - "axiom" | "hypothesis" | "definition" | "lemma" | "theorem" | - "conjecture" | "lemma_conjecture" | "negated_conjecture" | - "plain" | "unknown" - -let ieq = "=" -let peq = "equal" -let nieq = "!=" - -rule yylex = parse - | dust { yylex lexbuf } - | '\n' { incr_linenum lexbuf; yylex lexbuf } - | comment { incr_linenum lexbuf; COMMENT (Lexing.lexeme lexbuf) } - | "include" { INCLUSION } - | type_ { TYPE (Lexing.lexeme lexbuf) } - | "cnf" { CNF } - | "$true" { TRUE } - | "$false" { FALSE } - | "equal" { PEQ } - - | lname { LNAME (Lexing.lexeme lexbuf) } - | uname { UNAME (Lexing.lexeme lexbuf) } - | ['0' - '9']+ { NUM (int_of_string (Lexing.lexeme lexbuf)) } - | ',' { COMMA } - | '.' { DOT } - | '(' { LPAREN } - | ')' { RPAREN } - | '|' { IOR } - | '~' { NOT } - | '=' { IEQ } - | "!=" { NIEQ } - | qstring { QSTRING (Lexing.lexeme lexbuf) } - | eof { EOF } - | _ { raise (BadToken (Lexing.lexeme lexbuf)) } - -{ (* trailer *) } diff --git a/matita/components/tptp_grafite/lexerTHF.mll b/matita/components/tptp_grafite/lexerTHF.mll deleted file mode 100644 index 4cbbb61bd..000000000 --- a/matita/components/tptp_grafite/lexerTHF.mll +++ /dev/null @@ -1,77 +0,0 @@ -{ - open ParserTHF - exception BadToken of string - - let incr_linenum lexbuf = - let pos = lexbuf.Lexing.lex_curr_p in - lexbuf.Lexing.lex_curr_p <- { pos with - Lexing.pos_lnum = pos.Lexing.pos_lnum + 1; - Lexing.pos_bol = pos.Lexing.pos_cnum; - } - ;; - -} - -let dust = ' ' | '\t' -let comment = '%' [^ '\n' ] * '\n' -let lname = - ['a'-'z'] ['a'-'z''A'-'Z''0'-'9''_']* -let uname = - ['A'-'Z'] ['a'-'z''A'-'Z''0'-'9''_']* -let qstring = ''' [^ ''' ]+ ''' -let type_ = - "axiom" | "hypothesis" | "definition" | "lemma" | "theorem" | - "conjecture" | "lemma_conjecture" | "negated_conjecture" | - "plain" | "unknown" | "type" - -let ieq = "=" -let peq = "equal" -let nieq = "!=" - -rule yylex = parse - | dust { yylex lexbuf } - | '\n' { incr_linenum lexbuf; yylex lexbuf } - | comment { incr_linenum lexbuf; COMMENT (Lexing.lexeme lexbuf) } - | "include" { INCLUSION } - | type_ { TYPE (Lexing.lexeme lexbuf) } - | "thf" { THF } - | "$true" { TRUE } - | "$false" { FALSE } - | "equal" { PEQ } - - | "$i" { TYPE_I } - | "$o" { TYPE_O } - | "$tType" { TYPE_U } - | ">" { TO } - - | lname { LNAME (Lexing.lexeme lexbuf) } - | uname { UNAME (Lexing.lexeme lexbuf) } - - | ['0' - '9']+ { NUM (int_of_string (Lexing.lexeme lexbuf)) } - | ',' { COMMA } - | '.' { DOT } - | '(' { LPAREN } - | ')' { RPAREN } - | '|' { IOR } - | '&' { IAND } - | '~' { NOT } - | '=' { IEQ } - | "=>" { IMPLY } - | "<=" { IMPLYLR } - | "<=>" { COIMPLY } - | "<~>" { XOR } - | "!=" { NIEQ } - | "!" { FORALL } - | "?" { EXISTS } - | "!" { FORALL } - | "^" { LAMBDA } - | "[" { BEGINVARLIST } - | "]" { ENDVARLIST } - | ":" { COLON } - | "," { COMMA } - | "@" { APPLY } - | qstring { QSTRING (Lexing.lexeme lexbuf) } - | eof { EOF } - | _ { raise (BadToken (Lexing.lexeme lexbuf)) } - -{ (* trailer *) } diff --git a/matita/components/tptp_grafite/main.ml b/matita/components/tptp_grafite/main.ml deleted file mode 100644 index c236e520a..000000000 --- a/matita/components/tptp_grafite/main.ml +++ /dev/null @@ -1,24 +0,0 @@ -(* OPTIONS *) -let tptppath = ref "./";; -let ng = ref false;; -let spec = [ - ("-ng",Arg.Set ng,"Matita ng syntax"); - ("-tptppath", - Arg.String (fun x -> tptppath := x), - "Where to find the Axioms/ and Problems/ directory") -] - -(* MAIN *) -let _ = - let usage = "Usage: tptp2grafite [options] file" in - let inputfile = ref "" in - Arg.parse spec (fun s -> inputfile := s) usage; - if !inputfile = "" then - begin - prerr_endline usage; - exit 1 - end; - print_endline - (Tptp2grafite.tptp2grafite ~filename:!inputfile ~tptppath:!tptppath ~ng:!ng ()); - exit 0 - diff --git a/matita/components/tptp_grafite/mainTHF.ml b/matita/components/tptp_grafite/mainTHF.ml deleted file mode 100644 index aa68fa61e..000000000 --- a/matita/components/tptp_grafite/mainTHF.ml +++ /dev/null @@ -1,138 +0,0 @@ -module T = CicNotationPt -module GA = GrafiteAst -module A = AstTHF - -let floc = HExtlib.dummy_floc;; - -(* OPTIONS *) -let tptppath = ref "./";; -let ng = ref false;; -let spec = [ - ("-ng",Arg.Set ng,"Matita ng syntax"); - ("-tptppath", - Arg.String (fun x -> tptppath := x), - "Where to find the Axioms/ and Problems/ directory") -] - -let resolve ~tptppath s = - if s.[0] = '/' then s else - let resolved_name = - if Filename.check_suffix s ".p" then - (assert (String.length s > 5); - let prefix = String.sub s 0 3 in - tptppath ^ "/Problems/" ^ prefix ^ "/" ^ s) - else - tptppath ^ "/" ^ s - in - if HExtlib.is_regular resolved_name then - resolved_name - else - begin - prerr_endline ("Unable to find " ^ s ^ " (" ^ resolved_name ^ ")"); - exit 1 - end -;; - - -let find_related id = - HExtlib.filter_map_monad - (fun acc -> function - | A.ThfDefinition (_,did,dbody) when did = id -> Some dbody, None - | A.ThfType (_,did,dtype) when did = id -> Some dtype, None - | x -> acc, Some x) -;; - -(* MAIN *) -let _ = - let usage = "Usage: tptpTHF2grafite [options] file" in - let inputfile = ref "" in - Arg.parse spec (fun s -> inputfile := s) usage; - if !inputfile = "" then - begin - prerr_endline usage; - exit 1 - end; - let tptppath = !tptppath in - let statements = - let rec aux = function - | [] -> [] - | ((A.Inclusion (file,_)) as hd) :: tl -> - let file = resolve ~tptppath file in - let lexbuf = Lexing.from_channel (open_in file) in - let statements = ParserTHF.main LexerTHF.yylex lexbuf in - hd :: aux (statements @ tl) - | hd::tl -> hd :: aux tl - in - aux [A.Inclusion (!inputfile,[])] - in - let statements = - let rec aux = function - | [] -> [] - | A.Comment s :: tl -> - let s = Pcre.replace ~pat:"\n" ~templ:"" s in - let s = Pcre.replace ~pat:"\\*\\)" ~templ:"" s in - GA.Comment (floc,GA.Note (floc,s)) :: aux tl - | A.Inclusion (s,_) :: tl -> - GA.Comment ( - floc, GA.Note ( - floc,"Inclusion of: " ^ s)) :: aux tl - | A.ThfType(name,id,ty) :: tl -> - let body, tl = find_related id None tl in - let what = match body with None -> `Axiom | _ -> `Definition in - GA.Executable(floc, - GA.NCommand(floc, - GA.NObj(floc, - T.Theorem(what, id,ty,body,`Regular)))) :: aux tl - | A.ThfDefinition(name,id,body) :: tl -> - let ty, tl = find_related id None tl in - let ty = match ty with Some x -> x | None -> T.Implicit `JustOne in - GA.Executable(floc, - GA.NCommand(floc, - GA.NObj(floc, - T.Theorem(`Definition, - id,ty,Some body,`Regular)))):: aux tl - | A.ThfFormula(name,(A.Axiom|A.Hypothesis|A.Assumption),term) :: tl -> - GA.Executable(floc, - GA.NCommand(floc, - GA.NObj(floc, - T.Theorem(`Axiom, name,term,None,`Regular)))):: aux tl - | A.ThfFormula(name,A.Conjecture,term) :: tl -> - GA.Executable(floc, - GA.NCommand(floc, - GA.NObj(floc, - T.Theorem(`Theorem, name, - term,None,`Regular)))):: aux tl - | A.ThfFormula _ :: tl -> assert false - in - aux statements - in - let pp t = - (* ZACK: setting width to 80 will trigger a bug of BoxPp.render_to_string - * which will show up using the following command line: - * ./tptp2grafite -tptppath ~tassi/TPTP-v3.1.1 GRP170-1 *) - let width = max_int in - let term_pp prec content_term = - let pres_term = TermContentPres.pp_ast content_term in - let lookup_uri = fun _ -> None in - let markup = CicNotationPres.render ~lookup_uri ~prec pres_term in - let s = BoxPp.render_to_string List.hd width markup ~map_unicode_to_tex:false in - Pcre.substitute - ~rex:(Pcre.regexp ~flags:[`UTF8] "∀[Ha-z][a-z0-9_]*") ~subst:(fun x -> "\n" ^ x) - s - in - CicNotationPp.set_pp_term (term_pp 90); - let lazy_term_pp = fun x -> assert false in - let obj_pp = CicNotationPp.pp_obj CicNotationPp.pp_term in - Pcre.replace ~pat:"^theorem" ~templ:"ntheorem" - (Pcre.replace ~pat:"^axiom" ~templ:"naxiom" - (Pcre.replace ~pat:"^definition" ~templ:"ndefinition" - (Pcre.replace ~pat:"Type \\\\sub ([0-9]+)" ~templ:"Type[$1]" - (GrafiteAstPp.pp_statement - ~map_unicode_to_tex:false - ~term_pp:(term_pp 19) ~lazy_term_pp ~obj_pp t)))) - in - print_endline (pp (GA.Executable (floc, - GA.Command(floc,GA.Include(floc,true,`OldAndNew,"TPTP.ma"))))); - List.iter (fun x -> print_endline (pp x)) statements; - exit 0 - diff --git a/matita/components/tptp_grafite/parser.mly b/matita/components/tptp_grafite/parser.mly deleted file mode 100644 index 4fe172144..000000000 --- a/matita/components/tptp_grafite/parser.mly +++ /dev/null @@ -1,150 +0,0 @@ -%{ - (* header *) - open Ast - open Parsing - open Lexing - - let parse_error s = Printf.eprintf "%s: " s ;; - let rm_q s = String.sub s 1 (String.length s - 2) ;; - -%} - %token TYPE - %token COMMENT - %token NUM - %token LNAME - %token UNAME - %token QSTRING - %token COMMA - %token INCLUSION - %token LPAREN - %token RPAREN - %token CNF - %token TRUE - %token FALSE - %token IOR - %token NOT - %token NIEQ - %token IEQ - %token PEQ - %token DOT - %token EOF - - %type main - %start main -%% - main: - | tptp_input EOF {[$1]} - | tptp_input main {$1::$2} - | error { - let start_pos = rhs_start_pos 1 in - let end_pos = rhs_end_pos 1 in - Printf.eprintf "from line %d char %d to line %d char %d\n" - start_pos.pos_lnum (start_pos.pos_cnum - start_pos.pos_bol) - end_pos.pos_lnum (end_pos.pos_cnum - end_pos.pos_bol); - exit 1 - } - ; - - tptp_input: - | annot_formula {$1} - | include_ {$1} - | comment {$1} - ; - - annot_formula: - | CNF LPAREN - name COMMA formula_type COMMA formula formula_source_and_infos - RPAREN DOT { - AnnotatedFormula ($3,$5,$7,fst $8,snd $8) - } - ; - - formula_type: - | TYPE { - match $1 with - | "axiom" -> Axiom - | "hypothesis" -> Hypothesis - | "definition" -> Definition - | "lemma" -> Lemma - | "theorem" -> Theorem - | "conjecture" -> Conjecture - | "lemma_conjecture" -> Lemma_conjecture - | "negated_conjecture" -> Negated_conjecture - | "plain" -> Plain - | "unknown" -> Unknown - | _ -> assert false - } - ; - - formula: - | LPAREN disjunction RPAREN {$2} - | disjunction {$1} - ; - - disjunction: - | literal {$1} - | literal IOR disjunction { - Disjunction ($1,$3) - } - ; - - literal: - | NOT atom { NegAtom $2 } - | atom { Atom $1 } - ; - - atom: - | atomic_word LPAREN term_list RPAREN { Predicate ($1,$3) } - | atomic_word { Proposition $1 } - | TRUE { True } - | FALSE { False } - | term IEQ term { Eq ($1,$3) } - | term NIEQ term { NotEq ($1,$3) } - | PEQ LPAREN term COMMA term RPAREN { Eq ($3,$5) } - ; - - term_list: - | term { [$1] } - | term COMMA term_list { $1 :: $3 } - ; - - term: - | upper_word { Variable $1 } - | atomic_word LPAREN term_list RPAREN { Function ($1,$3) } - | atomic_word { Constant $1 } - ; - - upper_word: UNAME { $1 } ; - - atomic_word: - | LNAME { $1 } - | QSTRING { rm_q $1 } - | TYPE { (* workaround! *) - match $1 with - | "theorem" -> "theoremP" - | "axiom" -> "axiomP" - | s -> prerr_endline s;assert false } - ; - - formula_source_and_infos: - | { NoSource, [NoInfo] } - | COMMA { assert false } - ; - - include_: - | INCLUSION LPAREN QSTRING selection_of_formulae RPAREN DOT { - let fname = rm_q $3 in - Inclusion (fname,$4) - } - ; - - selection_of_formulae: - | { [] } - | COMMA name selection_of_formulae { $2::$3 } - ; - - comment: COMMENT {Comment $1} ; - - name: NUM { string_of_int $1} | LNAME { $1 } | UNAME { $1 } ; -%% - (* trailer *) diff --git a/matita/components/tptp_grafite/parserTHF.mly b/matita/components/tptp_grafite/parserTHF.mly deleted file mode 100644 index 99606a956..000000000 --- a/matita/components/tptp_grafite/parserTHF.mly +++ /dev/null @@ -1,188 +0,0 @@ -%{ - (* header *) - open AstTHF - open Parsing - open Lexing - module T = CicNotationPt - - let parse_error s = Printf.eprintf "%s: " s ;; - let rm_q s = String.sub s 1 (String.length s - 2) ;; - -let reserved = [ - "in","In"; - "to","To"; - "theorem","Theorem"; -];; - -let unreserve k = - try List.assoc k reserved with Not_found -> k -;; - - -%} - %token TYPE - %token COMMENT - %token NUM - %token LNAME - %token UNAME - %token QSTRING - %token COMMA - %token INCLUSION - %token LPAREN - %token RPAREN - %token CNF - %token TRUE - %token FALSE - %token NOT - %token IAND - %token IOR - %token NIEQ - %token IEQ - %token XOR - %token IMPLY - %token IMPLYLR - %token COIMPLY - %token PEQ - %token DOT - %token EOF - %token FORALL - %token EXISTS - %token LAMBDA - %token COLON - %token BEGINVARLIST - %token ENDVARLIST - %token APPLY - %token TYPE_I - %token TYPE_O - %token TYPE_U - %token TO - %token THF - - %left IOR - %left IAND - %nonassoc NOT - %right TO - %left APPLY - - %type main - %start main -%% - main: - | tptp_input EOF {[$1]} - | tptp_input main {$1::$2} - | error { - let start_pos = rhs_start_pos 1 in - let end_pos = rhs_end_pos 1 in - Printf.eprintf "from line %d char %d to line %d char %d\n" - start_pos.pos_lnum (start_pos.pos_cnum - start_pos.pos_bol) - end_pos.pos_lnum (end_pos.pos_cnum - end_pos.pos_bol); - exit 1 - } - ; - - tptp_input: - | annot_formula {$1} - | include_ {$1} - | comment {$1} - ; - - formula_source_and_infos: - | { () } - | COMMA { assert false } - ; - - annot_formula: - | THF LPAREN name COMMA formula_type COMMA - term formula_source_and_infos RPAREN DOT { - match $5 with - | Definition -> - (match $7 with - | T.Appl [T.Symbol("Eq",_);T.Ident(name,_);body] -> - ThfDefinition($3,unreserve name,body) - | _ -> prerr_endline ("near " ^ $3); assert false) - | Type -> - (match $7 with - | T.Cast (T.Ident(name,_),ty) -> ThfType($3,unreserve name,ty) - | _ -> assert false) - | _ -> ThfFormula($3,$5,$7) - } - ; - - formula_type: - | TYPE { - match $1 with - | "axiom" -> Axiom - | "hypothesis" -> Hypothesis - | "definition" -> Definition - | "lemma" -> Lemma - | "theorem" -> Theorem - | "conjecture" -> Conjecture - | "lemma_conjecture" -> Lemma_conjecture - | "negated_conjecture" -> Negated_conjecture - | "plain" -> Plain - | "unknown" -> Unknown - | "type" -> Type - | _ -> assert false - } - ; - - quantifier : - | FORALL {`Forall} - | EXISTS {`Exists} - | LAMBDA {`Lambda} - - vardecl : - | UNAME { T.Ident($1,None), None } - | UNAME COLON term { T.Ident($1,None),Some $3 } - - varlist : - | vardecl { [$1] } - | vardecl COMMA varlist { $1 :: $3 } - - term: - | quantifier BEGINVARLIST varlist ENDVARLIST COLON term { - List.fold_right (fun v t -> T.Binder($1,v,t)) $3 $6 - } - | term APPLY term { - match $1 with - | T.Appl l -> T.Appl (l @ [$3]) - | x -> T.Appl ([$1; $3]) - } - | LPAREN term COLON term RPAREN { T.Cast ($2,$4) } - | term TO term { T.Binder (`Forall,(T.Ident("_",None),Some $1),$3) } - | term IMPLY term { T.Binder (`Forall,(T.Ident("_",None),Some $1),$3) } - | term IMPLYLR term { T.Binder (`Forall,(T.Ident("_",None),Some $3),$1) } - | term COIMPLY term { T.Appl [T.Symbol("Iff",0);$1;$3] } - | term XOR term { T.Appl [T.Symbol("Xor",0);$1;$3] } - | term IEQ term { T.Appl [T.Symbol("Eq",0);$1;$3] } - | term NIEQ term { T.Appl [T.Symbol("NotEq",0);$1;$3] } - | term IAND term { T.Appl [T.Symbol("And",0);$1;$3] } - | term IOR term { T.Appl [T.Symbol("Or",0);$1;$3] } - | NOT term { T.Appl [T.Symbol("Not",0);$2] } - | LPAREN term RPAREN {$2} - | LNAME { T.Ident(unreserve $1,None) } - | UNAME { T.Ident($1,None) } - | TYPE_I { T.Symbol("i",0) } - | TYPE_O { T.Symbol("o",0) } - | TYPE_U { T.Sort (`NType "0") } - | FALSE { T.Symbol("False",0)} - | TRUE { T.Symbol("True",0)} - ; - - include_: - | INCLUSION LPAREN QSTRING selection_of_formulae RPAREN DOT { - let fname = rm_q $3 in - Inclusion (fname,$4) - } - ; - - selection_of_formulae: - | { [] } - | COMMA name selection_of_formulae { $2::$3 } - ; - - comment: COMMENT {Comment $1} ; - - name: NUM { string_of_int $1} | LNAME { $1 } | UNAME { $1 } ; -%% - (* trailer *) diff --git a/matita/components/tptp_grafite/thf_problems b/matita/components/tptp_grafite/thf_problems deleted file mode 100644 index 830a868b5..000000000 --- a/matita/components/tptp_grafite/thf_problems +++ /dev/null @@ -1,2729 +0,0 @@ -SWV438^1 -SWV443^1 -SWV425^2 -SWV428^2 -SWV432^2 -SWV428^1 -SWV431^2 -SWV430^1 -SWV436^3 -SWV439^1 -SWV441^1 -SWV432^1 -SWV426^4 -SWV427^2 -SWV433^1 -SWV427^1 -SWV435^3 -SWV426^3 -SWV444^1 -SWV429^1 -SWV426^2 -SWV430^2 -SWV437^1 -SWV425^1 -SWV440^1 -SWV429^2 -SWV447^1 -SWV426^1 -SWV446^1 -SWV434^3 -SWV442^1 -SWV433^2 -SWV431^1 -SWV436^4 -SWV445^1 -SWV435^4 -SWV434^4 -SYO272^5 -SYO337^5 -SYO130^5 -SYO408^1 -SYO147^5 -SYO466^1 -SYO188^5 -SYO174^5 -SYO165^5 -SYO466^2 -SYO432^1 -SYO228^5 -SYO120^5 -SYO436^1 -SYO184^5 -SYO296^5 -SYO483^6 -SYO284^5 -SYO462^1 -SYO465^1 -SYO278^5 -SYO471^2 -SYO453^5 -SYO217^5 -SYO314^5 -SYO160^5 -SYO302^5 -SYO367^5 -SYO064^4.001 -SYO048^1 -SYO065^4.003 -SYO176^5 -SYO092^5 -SYO245^5 -SYO131^5 -SYO002^1 -SYO063^4 -SYO234^5 -SYO472^4 -SYO159^5 -SYO062^4.003 -SYO424^1 -SYO304^5 -SYO155^5 -SYO468^4 -SYO455^5 -SYO425^1 -SYO457^2 -SYO050^1 -SYO201^5 -SYO112^5 -SYO454^4 -SYO071^4.001 -SYO009^1 -SYO182^5 -SYO482^6 -SYO499^1 -SYO205^5 -SYO462^2 -SYO067^4.004 -SYO193^5 -SYO311^5 -SYO455^2 -SYO049^1 -SYO163^5 -SYO401^1 -SYO455^3 -SYO473^5 -SYO146^5 -SYO305^5 -SYO471^6 -SYO451^6 -SYO241^5 -SYO462^4 -SYO042^1 -SYO448^1 -SYO012^1 -SYO275^5 -SYO026^1 -SYO395^1 -SYO021^1 -SYO065^4.001 -SYO464^2 -SYO010^1 -SYO058^4 -SYO313^5 -SYO303^5 -SYO294^5 -SYO032^1 -SYO232^5 -SYO342^5 -SYO454^2 -SYO463^1 -SYO239^5 -SYO468^3 -SYO379^5 -SYO186^5 -SYO339^5 -SYO455^6 -SYO427^1 -SYO298^5 -SYO397^1 -SYO473^6 -SYO183^5 -SYO461^6 -SYO354^5 -SYO317^5 -SYO100^5 -SYO465^2 -SYO386^5 -SYO474^5 -SYO416^1 -SYO149^5 -SYO464^4 -SYO098^5 -SYO223^5 -SYO450^1 -SYO437^1 -SYO074^4.003 -SYO451^2 -SYO472^6 -SYO462^6 -SYO224^5 -SYO081^5 -SYO085^5 -SYO316^5 -SYO127^5 -SYO072^4.001 -SYO363^5 -SYO072^4.003 -SYO469^2 -SYO216^5 -SYO212^5 -SYO450^6 -SYO373^5 -SYO400^1 -SYO461^2 -SYO290^5 -SYO210^5 -SYO252^5 -SYO221^5 -SYO046^1 -SYO415^1 -SYO069^4.002 -SYO022^1 -SYO460^6 -SYO420^1 -SYO459^6 -SYO478^6 -SYO168^5 -SYO315^5 -SYO403^1 -SYO177^5 -SYO465^5 -SYO079^5 -SYO097^5 -SYO001^1 -SYO348^5 -SYO069^4.001 -SYO454^6 -SYO467^2 -SYO164^5 -SYO497^6 -SYO262^5 -SYO452^6 -SYO464^3 -SYO019^1 -SYO450^4 -SYO291^5 -SYO070^4.003 -SYO471^1 -SYO116^5 -SYO393^1 -SYO114^5 -SYO003^1 -SYO471^4 -SYO453^2 -SYO285^5 -SYO371^5 -SYO173^5 -SYO005^1 -SYO470^3 -SYO271^5 -SYO431^1 -SYO070^4.004 -SYO144^5 -SYO326^5 -SYO269^5 -SYO204^5 -SYO466^6 -SYO004^1 -SYO101^5 -SYO102^5 -SYO484^6 -SYO438^1 -SYO451^1 -SYO074^4.001 -SYO494^6 -SYO109^5 -SYO074^4.002 -SYO067^4.002 -SYO345^5 -SYO052^2 -SYO106^5 -SYO334^5 -SYO189^5 -SYO351^5 -SYO222^5 -SYO378^5 -SYO170^5 -SYO459^4 -SYO470^6 -SYO452^1 -SYO445^1 -SYO380^5 -SYO076^5 -SYO329^5 -SYO029^1 -SYO208^5 -SYO258^5 -SYO073^4.004 -SYO479^6 -SYO467^6 -SYO467^1 -SYO248^5 -SYO207^5 -SYO306^5 -SYO199^5 -SYO444^1 -SYO015^1 -SYO381^5 -SYO051^1 -SYO470^1 -SYO064^4.002 -SYO468^5 -SYO251^5 -SYO453^4 -SYO136^5 -SYO054^2 -SYO218^5 -SYO451^4 -SYO336^5 -SYO430^1 -SYO064^4.004 -SYO171^5 -SYO071^4.002 -SYO469^3 -SYO119^5 -SYO469^5 -SYO105^5 -SYO069^4.003 -SYO061^4 -SYO073^4.003 -SYO008^1 -SYO419^1 -SYO175^5 -SYO288^5 -SYO031^1 -SYO040^1 -SYO358^5 -SYO331^5 -SYO385^5 -SYO292^5 -SYO020^1 -SYO071^4.004 -SYO471^5 -SYO068^4.020 -SYO384^5 -SYO074^4.004 -SYO418^1 -SYO157^5 -SYO247^5 -SYO423^1 -SYO067^4.001 -SYO065^4.002 -SYO023^1 -SYO135^5 -SYO410^1 -SYO362^5 -SYO459^3 -SYO198^5 -SYO140^5 -SYO254^5 -SYO452^3 -SYO280^5 -SYO192^5 -SYO094^5 -SYO088^5 -SYO153^5 -SYO376^5 -SYO346^5 -SYO399^1 -SYO043^1 -SYO377^5 -SYO454^1 -SYO255^5 -SYO489^6 -SYO325^5 -SYO066^4.004 -SYO034^1 -SYO220^5 -SYO369^5 -SYO456^6 -SYO396^1 -SYO498^6 -SYO203^5 -SYO481^6 -SYO055^2 -SYO166^5 -SYO470^5 -SYO495^6 -SYO200^5 -SYO457^1 -SYO412^1 -SYO117^5 -SYO413^1 -SYO458^4 -SYO460^1 -SYO472^5 -SYO493^6 -SYO073^4.001 -SYO405^1 -SYO191^5 -SYO382^5 -SYO268^5 -SYO287^5 -SYO389^5 -SYO394^1 -SYO141^5 -SYO457^5 -SYO454^3 -SYO219^5 -SYO213^5 -SYO426^1 -SYO062^4.004 -SYO257^5 -SYO006^1 -SYO073^4.002 -SYO025^1 -SYO142^5 -SYO129^5 -SYO229^5 -SYO087^5 -SYO250^5 -SYO320^5 -SYO473^1 -SYO267^5 -SYO392^1 -SYO122^5 -SYO450^5 -SYO417^1 -SYO319^5 -SYO463^6 -SYO321^5 -SYO356^5 -SYO167^5 -SYO274^5 -SYO469^1 -SYO467^5 -SYO113^5 -SYO035^1 -SYO488^6 -SYO347^5 -SYO256^5 -SYO107^5 -SYO099^5 -SYO045^1 -SYO458^3 -SYO041^1 -SYO007^1 -SYO039^1 -SYO143^5 -SYO472^2 -SYO068^4.001 -SYO428^1 -SYO332^5 -SYO235^5 -SYO065^4.004 -SYO452^4 -SYO490^6 -SYO295^5 -SYO178^5 -SYO464^5 -SYO162^5 -SYO349^5 -SYO324^5 -SYO447^1 -SYO069^4.004 -SYO457^3 -SYO264^5 -SYO366^5 -SYO158^5 -SYO463^5 -SYO226^5 -SYO333^5 -SYO463^3 -SYO472^3 -SYO110^5 -SYO465^3 -SYO471^3 -SYO335^5 -SYO341^5 -SYO322^5 -SYO473^4 -SYO078^5 -SYO309^5 -SYO279^5 -SYO297^5 -SYO474^3 -SYO350^5 -SYO018^1 -SYO187^5 -SYO340^5 -SYO103^5 -SYO353^5 -SYO123^5 -SYO240^5 -SYO458^6 -SYO475^6 -SYO456^1 -SYO054^1 -SYO086^5 -SYO231^5 -SYO154^5 -SYO391^5 -SYO451^5 -SYO080^5 -SYO312^5 -SYO491^6 -SYO462^3 -SYO249^5 -SYO474^2 -SYO460^5 -SYO033^1 -SYO476^6 -SYO458^5 -SYO487^6 -SYO059^4 -SYO172^5 -SYO028^1 -SYO180^5 -SYO121^5 -SYO206^5 -SYO352^5 -SYO024^1 -SYO470^2 -SYO453^3 -SYO273^5 -SYO263^5 -SYO406^1 -SYO450^2 -SYO460^4 -SYO011^1 -SYO066^4.002 -SYO075^5 -SYO093^5 -SYO237^5 -SYO179^5 -SYO374^5 -SYO328^5 -SYO429^1 -SYO458^1 -SYO443^1 -SYO050^2 -SYO343^5 -SYO323^5 -SYO053^1 -SYO082^5 -SYO067^4.003 -SYO108^5 -SYO261^5 -SYO387^5 -SYO449^1 -SYO238^5 -SYO407^1 -SYO276^5 -SYO084^5 -SYO467^3 -SYO051^2 -SYO435^1 -SYO474^6 -SYO115^5 -SYO056^2 -SYO244^5 -SYO243^5 -SYO464^6 -SYO037^1 -SYO465^4 -SYO111^5 -SYO462^5 -SYO456^4 -SYO458^2 -SYO038^1 -SYO132^5 -SYO473^2 -SYO027^1 -SYO190^5 -SYO197^5 -SYO195^5 -SYO030^1 -SYO286^5 -SYO134^5 -SYO368^5 -SYO456^3 -SYO460^3 -SYO307^5 -SYO344^5 -SYO355^5 -SYO202^5 -SYO365^5 -SYO095^5 -SYO253^5 -SYO459^1 -SYO057^1 -SYO246^5 -SYO442^1 -SYO053^2 -SYO152^5 -SYO070^4.001 -SYO474^1 -SYO066^4.003 -SYO468^6 -SYO300^5 -SYO125^5 -SYO470^4 -SYO402^1 -SYO440^1 -SYO456^2 -SYO214^5 -SYO308^5 -SYO070^4.002 -SYO375^5 -SYO468^2 -SYO016^1 -SYO383^5 -SYO467^4 -SYO090^5 -SYO242^5 -SYO148^5 -SYO196^5 -SYO453^1 -SYO047^1 -SYO370^5 -SYO145^5 -SYO194^5 -SYO126^5 -SYO139^5 -SYO466^3 -SYO485^6 -SYO455^4 -SYO017^1 -SYO066^4.001 -SYO486^6 -SYO209^5 -SYO461^5 -SYO169^5 -SYO433^1 -SYO265^5 -SYO225^5 -SYO459^2 -SYO064^4.003 -SYO057^2 -SYO472^1 -SYO463^4 -SYO450^3 -SYO469^6 -SYO452^5 -SYO161^5 -SYO460^2 -SYO071^4.003 -SYO496^6 -SYO260^5 -SYO301^5 -SYO466^4 -SYO062^4.002 -SYO185^5 -SYO461^3 -SYO211^5 -SYO357^5 -SYO454^5 -SYO089^5 -SYO360^5 -SYO137^5 -SYO455^1 -SYO457^6 -SYO289^5 -SYO474^4 -SYO388^5 -SYO414^1 -SYO451^3 -SYO118^5 -SYO463^2 -SYO277^5 -SYO327^5 -SYO421^1 -SYO464^1 -SYO151^5 -SYO283^5 -SYO133^5 -SYO124^5 -SYO227^5 -SYO338^5 -SYO409^1 -SYO404^1 -SYO236^5 -SYO266^5 -SYO138^5 -SYO128^5 -SYO270^5 -SYO068^4.010 -SYO230^5 -SYO468^1 -SYO330^5 -SYO456^5 -SYO068^4.005 -SYO310^5 -SYO398^1 -SYO215^5 -SYO459^5 -SYO461^4 -SYO318^5 -SYO500^1 -SYO361^5 -SYO473^3 -SYO156^5 -SYO422^1 -SYO434^1 -SYO453^6 -SYO364^5 -SYO411^1 -SYO052^1 -SYO072^4.004 -SYO469^4 -SYO441^1 -SYO457^4 -SYO055^1 -SYO060^4 -SYO390^5 -SYO044^1 -SYO077^5 -SYO181^5 -SYO096^5 -SYO359^5 -SYO013^1 -SYO372^5 -SYO480^6 -SYO282^5 -SYO461^1 -SYO293^5 -SYO439^1 -SYO056^1 -SYO072^4.002 -SYO477^6 -SYO465^6 -SYO233^5 -SYO150^5 -SYO091^5 -SYO281^5 -SYO259^5 -SYO452^2 -SYO492^6 -SYO466^5 -SYO446^1 -SYO104^5 -SYO083^5 -SYO299^5 -LCL613^1 -LCL690^1 -LCL612^1 -LCL600^1 -LCL586^1 -LCL739^5 -LCL718^1 -LCL606^1 -LCL615^1 -LCL618^1 -LCL585^1 -LCL587^1 -LCL623^1 -LCL583^1 -LCL742^5 -LCL230^4 -LCL723^1 -LCL594^1 -LCL624^1 -LCL737^5 -LCL634^1 -LCL584^1 -LCL703^1 -LCL695^1 -LCL607^1 -LCL692^1 -LCL593^1 -LCL591^1 -LCL604^1 -LCL698^1 -LCL706^1 -LCL720^1 -LCL694^1 -LCL588^1 -LCL708^1 -LCL626^1 -LCL595^1 -LCL711^1 -LCL621^1 -LCL596^1 -LCL732^5 -LCL693^1 -LCL710^1 -LCL590^1 -LCL741^5 -LCL731^5 -LCL740^5 -LCL629^1 -LCL627^1 -LCL738^5 -LCL735^5 -LCL743^5 -LCL619^1 -LCL592^1 -LCL699^1 -LCL609^1 -LCL598^1 -LCL705^1 -LCL697^1 -LCL724^1 -LCL721^1 -LCL712^1 -LCL730^5 -LCL625^1 -LCL691^1 -LCL614^1 -LCL715^1 -LCL580^1 -LCL736^5 -LCL716^1 -LCL599^1 -LCL631^1 -LCL597^1 -LCL700^1 -LCL582^1 -LCL696^1 -LCL603^1 -LCL608^1 -LCL717^1 -LCL727^5 -LCL704^1 -LCL632^1 -LCL733^5 -LCL713^1 -LCL601^1 -LCL729^5 -LCL714^1 -LCL725^1 -LCL630^1 -LCL709^1 -LCL620^1 -LCL728^5 -LCL602^1 -LCL726^5 -LCL581^1 -LCL719^1 -LCL707^1 -LCL633^1 -LCL617^1 -LCL722^1 -LCL701^1 -LCL702^1 -LCL181^4 -LCL611^1 -LCL589^1 -LCL734^5 -LCL579^1 -SYN987^1 -SYN977^4 -SYN731^5 -SYN392^4 -SYN992^1 -SYN007^4.014 -SYN045^4 -SYN386^5 -SYN393^4.003 -SYN416^4 -SYN381^5 -SYN049^5 -SYN046^4 -SYN983^1 -SYN374^5 -SYN382^5 -SYN064^5 -SYN393^4.004 -SYN997^1 -SYN998^1 -SYN978^4 -SYN055^5 -SYN389^4 -SYN984^1 -SYN036^5 -SYN001^4.003 -SYN363^5 -SYN358^5 -SYN001^4.004 -SYN996^1 -SYN988^1 -SYN361^5 -SYN355^5 -SYN391^4 -SYN041^4 -SYN991^1 -SYN390^4 -SYN388^4 -SYN364^5 -SYN001^4.001 -SYN040^4 -SYN989^2 -SYN988^2 -SYN365^5 -SYN044^4 -SYN995^1 -SYN387^4 -SYN000^1 -SYN985^1 -SYN357^5 -SYN393^4.002 -SYN990^1 -SYN001^4.002 -SYN360^5 -SYN047^4 -SYN059^5 -SYN375^5 -SYN000^2 -SYN057^5 -SYN994^1 -SYN356^5 -SYN987^2 -SYN058^5 -SYN051^5 -SYN989^1 -SYN916^4 -SYN377^5 -SYN999^1 -SYN915^4 -SYN056^5 -SYN732^5 -SYN993^1 -ALG282^5 -ALG298^5 -ALG256^1 -ALG248^1 -ALG268^4 -ALG290^5 -ALG258^2 -ALG249^3 -ALG251^3 -ALG278^5 -ALG265^2 -ALG257^1 -ALG275^5 -ALG272^5 -ALG270^5 -ALG263^1 -ALG264^2 -ALG266^1 -ALG266^2 -ALG261^2 -ALG292^5 -ALG274^5 -ALG258^1 -ALG253^2 -ALG260^1 -ALG268^1 -ALG251^1 -ALG285^5 -ALG277^5 -ALG263^2 -ALG280^5 -ALG287^5 -ALG284^5 -ALG267^2 -ALG289^5 -ALG286^5 -ALG254^2 -ALG269^2 -ALG257^2 -ALG252^2 -ALG251^2 -ALG288^5 -ALG273^5 -ALG248^3 -ALG268^5 -ALG268^3 -ALG297^5 -ALG269^3 -ALG259^2 -ALG295^5 -ALG281^5 -ALG296^5 -ALG269^4 -ALG001^5 -ALG262^2 -ALG294^5 -ALG254^1 -ALG293^5 -ALG276^5 -ALG264^3 -ALG264^1 -ALG269^1 -ALG253^1 -ALG250^3 -ALG271^5 -ALG283^5 -ALG255^1 -ALG260^2 -ALG268^6 -ALG259^1 -ALG279^5 -ALG263^3 -ALG248^2 -ALG261^1 -ALG247^2 -ALG252^1 -ALG256^2 -ALG291^5 -ALG268^2 -ALG267^1 -GRP001^5 -SEV236^5 -SEV341^5 -SEV299^5 -SEV206^5 -SEV069^5 -SEV251^5 -SEV309^5 -SEV286^5 -SEV356^5 -SEV227^5 -SEV102^5 -SEV040^5 -SEV157^5 -SEV055^5 -SEV059^5 -SEV303^5 -SEV008^5 -SEV129^5 -SEV262^5 -SEV099^5 -SEV295^5 -SEV047^5 -SEV337^5 -SEV006^5 -SEV390^5 -SEV339^5 -SEV306^5 -SEV193^5 -SEV345^5 -SEV138^5 -SEV241^5 -SEV344^5 -SEV070^5 -SEV121^5 -SEV253^5 -SEV403^5 -SEV229^5 -SEV016^5 -SEV273^5 -SEV035^5 -SEV134^5 -SEV252^5 -SEV272^5 -SEV145^5 -SEV338^5 -SEV304^5 -SEV208^5 -SEV233^5 -SEV131^5 -SEV077^5 -SEV413^5 -SEV392^5 -SEV122^5 -SEV275^5 -SEV051^5 -SEV065^5 -SEV380^5 -SEV329^5 -SEV120^5 -SEV048^5 -SEV343^5 -SEV375^5 -SEV014^5 -SEV147^5 -SEV033^5 -SEV091^5 -SEV287^5 -SEV290^5 -SEV311^5 -SEV152^5 -SEV115^5 -SEV171^5 -SEV360^5 -SEV310^5 -SEV036^5 -SEV342^5 -SEV293^5 -SEV271^5 -SEV294^5 -SEV011^5 -SEV210^5 -SEV219^5 -SEV226^5 -SEV019^5 -SEV354^5 -SEV186^5 -SEV312^5 -SEV175^5 -SEV325^5 -SEV018^5 -SEV334^5 -SEV137^5 -SEV280^5 -SEV201^5 -SEV258^5 -SEV034^5 -SEV288^5 -SEV263^5 -SEV100^5 -SEV410^5 -SEV140^5 -SEV020^5 -SEV216^5 -SEV142^5 -SEV162^5 -SEV195^5 -SEV406^5 -SEV355^5 -SEV202^5 -SEV265^5 -SEV071^5 -SEV317^5 -SEV281^5 -SEV207^5 -SEV296^5 -SEV007^5 -SEV298^5 -SEV073^5 -SEV083^5 -SEV028^5 -SEV139^5 -SEV221^5 -SEV234^5 -SEV119^5 -SEV245^5 -SEV373^5 -SEV319^5 -SEV400^5 -SEV151^5 -SEV094^5 -SEV218^5 -SEV377^5 -SEV165^5 -SEV358^5 -SEV246^5 -SEV090^5 -SEV143^5 -SEV079^5 -SEV062^5 -SEV114^5 -SEV331^5 -SEV209^5 -SEV057^5 -SEV243^5 -SEV402^5 -SEV188^5 -SEV023^5 -SEV418^5 -SEV166^5 -SEV316^5 -SEV395^5 -SEV178^5 -SEV156^5 -SEV066^5 -SEV061^5 -SEV323^5 -SEV397^5 -SEV126^5 -SEV283^5 -SEV414^5 -SEV135^5 -SEV371^5 -SEV060^5 -SEV387^5 -SEV068^5 -SEV256^5 -SEV074^5 -SEV198^5 -SEV044^5 -SEV108^5 -SEV124^5 -SEV001^5 -SEV179^5 -SEV197^5 -SEV385^5 -SEV043^5 -SEV200^5 -SEV314^5 -SEV112^5 -SEV277^5 -SEV411^5 -SEV012^5 -SEV089^5 -SEV105^5 -SEV184^5 -SEV381^5 -SEV204^5 -SEV169^5 -SEV223^5 -SEV086^5 -SEV024^5 -SEV106^5 -SEV285^5 -SEV097^5 -SEV374^5 -SEV230^5 -SEV003^5 -SEV328^5 -SEV075^5 -SEV333^5 -SEV146^5 -SEV396^5 -SEV389^5 -SEV181^5 -SEV103^5 -SEV196^5 -SEV408^5 -SEV340^5 -SEV274^5 -SEV409^5 -SEV203^5 -SEV087^5 -SEV282^5 -SEV407^5 -SEV353^5 -SEV168^5 -SEV249^5 -SEV096^5 -SEV133^5 -SEV125^5 -SEV379^5 -SEV199^5 -SEV067^5 -SEV362^5 -SEV350^5 -SEV404^5 -SEV010^5 -SEV365^5 -SEV352^5 -SEV098^5 -SEV026^5 -SEV084^5 -SEV078^5 -SEV158^5 -SEV419^5 -SEV153^5 -SEV161^5 -SEV113^5 -SEV191^5 -SEV190^5 -SEV017^5 -SEV056^5 -SEV307^5 -SEV412^5 -SEV013^5 -SEV394^5 -SEV318^5 -SEV111^5 -SEV058^5 -SEV349^5 -SEV167^5 -SEV361^5 -SEV369^5 -SEV388^5 -SEV150^5 -SEV085^5 -SEV052^5 -SEV242^5 -SEV046^5 -SEV330^5 -SEV382^5 -SEV192^5 -SEV239^5 -SEV118^5 -SEV320^5 -SEV417^5 -SEV027^5 -SEV391^5 -SEV093^5 -SEV183^5 -SEV127^5 -SEV176^5 -SEV212^5 -SEV050^5 -SEV004^5 -SEV015^5 -SEV081^5 -SEV235^5 -SEV261^5 -SEV370^5 -SEV141^5 -SEV185^5 -SEV259^5 -SEV163^5 -SEV025^5 -SEV187^5 -SEV000^5 -SEV238^5 -SEV080^5 -SEV315^5 -SEV278^5 -SEV031^5 -SEV301^5 -SEV297^5 -SEV250^5 -SEV332^5 -SEV363^5 -SEV364^5 -SEV170^5 -SEV326^5 -SEV228^5 -SEV155^5 -SEV030^5 -SEV130^5 -SEV267^5 -SEV205^5 -SEV064^5 -SEV289^5 -SEV042^5 -SEV092^5 -SEV231^5 -SEV159^5 -SEV132^5 -SEV095^5 -SEV401^5 -SEV254^5 -SEV292^5 -SEV291^5 -SEV110^5 -SEV128^5 -SEV107^5 -SEV211^5 -SEV041^5 -SEV247^5 -SEV372^5 -SEV045^5 -SEV109^5 -SEV257^5 -SEV376^5 -SEV225^5 -SEV321^5 -SEV279^5 -SEV039^5 -SEV268^5 -SEV240^5 -SEV386^5 -SEV378^5 -SEV327^5 -SEV313^5 -SEV104^5 -SEV154^5 -SEV393^5 -SEV305^5 -SEV222^5 -SEV368^5 -SEV116^5 -SEV255^5 -SEV177^5 -SEV217^5 -SEV260^5 -SEV182^5 -SEV123^5 -SEV136^5 -SEV002^5 -SEV101^5 -SEV284^5 -SEV220^5 -SEV148^5 -SEV032^5 -SEV322^5 -SEV244^5 -SEV117^5 -SEV053^5 -SEV324^5 -SEV276^5 -SEV248^5 -SEV172^5 -SEV149^5 -SEV054^5 -SEV346^5 -SEV357^5 -SEV348^5 -SEV021^5 -SEV405^5 -SEV384^5 -SEV232^5 -SEV029^5 -SEV308^5 -SEV383^5 -SEV270^5 -SEV072^5 -SEV088^5 -SEV144^5 -SEV359^5 -SEV160^5 -SEV180^5 -SEV237^5 -SEV173^5 -SEV224^5 -SEV266^5 -SEV269^5 -SEV214^5 -SEV367^5 -SEV076^5 -SEV336^5 -SEV022^5 -SEV194^5 -SEV063^5 -SEV038^5 -SEV398^5 -SEV215^5 -SEV351^5 -SEV264^5 -SEV174^5 -SEV082^5 -SEV415^5 -SEV009^5 -SEV164^5 -SEV399^5 -SEV347^5 -SEV213^5 -SEV189^5 -SEV049^5 -SEV335^5 -SEV005^5 -SEV037^5 -SEV366^5 -SEV302^5 -SEV416^5 -SEV300^5 -SET171^3 -SET612^3 -SET587^5 -SET008^5 -SET636^5 -SET683^3 -SET647^3 -SET624^5 -SET621^5 -SET604^5 -SET557^1 -SET585^5 -SET606^5 -SET616^5 -SET027^5 -SET657^3 -SET200^5 -SET753^4 -SET586^5 -SET593^5 -SET063^5 -SET605^5 -SET680^3 -SET615^5 -SET613^5 -SET589^5 -SET724^4 -SET582^5 -SET629^5 -SET557^5 -SET618^5 -SET591^5 -SET014^4 -SET598^5 -SET592^5 -SET171^5 -SET185^5 -SET628^5 -SET609^5 -SET594^5 -SET606^3 -SET199^5 -SET615^3 -SET162^5 -SET066^1 -SET044^5 -SET011^5 -SET631^5 -SET614^3 -SET580^5 -SET752^4 -SET619^5 -SET143^5 -SET611^3 -SET067^1 -SET599^5 -SET196^5 -SET183^5 -SET603^5 -SET086^1 -SET669^3 -SET580^3 -SET009^5 -SET596^5 -SET673^3 -SET590^5 -SET622^5 -SET610^5 -SET194^5 -SET635^5 -SET595^5 -SET608^5 -SET607^5 -SET716^4 -SET169^5 -SET741^4 -SET624^3 -SET626^5 -SET201^5 -SET588^5 -SET634^5 -SET640^3 -SET601^5 -SET764^4 -SET649^3 -SET017^1 -SET614^5 -SET648^3 -SET607^3 -SET625^5 -SET630^3 -SET175^5 -SET627^5 -SET671^3 -SET143^3 -SET584^5 -SET043^5 -SET623^5 -SET646^3 -SET620^5 -SET623^3 -SET747^4 -SET597^5 -SET062^5 -SET096^1 -SET010^5 -SET173^5 -SET076^1 -SET014^5 -SET633^5 -SET651^3 -SET144^5 -SET159^5 -SET045^5 -SET672^3 -SET632^5 -SET670^3 -SET617^5 -SET630^5 -SET638^5 -SET600^5 -SET684^3 -SET609^3 -SET046^5 -SET601^3 -SET612^5 -SET611^5 -COM024^5 -GRA039^2 -GRA032^1 -GRA062^2 -GRA065^1 -GRA059^2 -GRA039^1 -GRA073^1 -GRA037^1 -GRA068^2 -GRA048^1 -GRA057^2 -GRA060^1 -GRA036^1 -GRA032^2 -GRA043^1 -GRA070^1 -GRA067^1 -GRA051^1 -GRA051^2 -GRA046^1 -GRA050^1 -GRA055^2 -GRA073^2 -GRA033^2 -GRA053^2 -GRA041^2 -GRA044^2 -GRA064^1 -GRA074^1 -GRA068^1 -GRA057^1 -GRA049^2 -GRA041^1 -GRA028^1 -GRA045^2 -GRA048^2 -GRA031^2 -GRA038^1 -GRA058^1 -GRA074^2 -GRA058^2 -GRA047^1 -GRA049^1 -GRA072^1 -GRA063^1 -GRA044^1 -GRA030^1 -GRA027^1 -GRA035^2 -GRA064^2 -GRA038^2 -GRA052^1 -GRA033^1 -GRA071^1 -GRA047^2 -GRA052^2 -GRA063^2 -GRA071^2 -GRA069^2 -GRA070^2 -GRA043^2 -GRA062^1 -GRA037^2 -GRA059^1 -GRA065^2 -GRA042^1 -GRA050^2 -GRA034^1 -GRA031^1 -GRA029^2 -GRA029^1 -GRA061^2 -GRA040^2 -GRA054^2 -GRA034^2 -GRA046^2 -GRA072^2 -GRA040^1 -GRA056^2 -GRA066^2 -GRA060^2 -GRA056^1 -GRA066^1 -GRA055^1 -GRA053^1 -GRA036^2 -GRA061^1 -GRA035^1 -GRA042^2 -GRA045^1 -GRA054^1 -GRA067^2 -GRA069^1 -PUZ096^5 -PUZ120^5 -PUZ110^5 -PUZ125^5 -PUZ090^5 -PUZ093^5 -PUZ111^5 -PUZ122^5 -PUZ099^5 -PUZ081^3 -PUZ109^5 -PUZ082^1 -PUZ085^1 -PUZ083^1 -PUZ117^5 -PUZ102^5 -PUZ105^5 -PUZ113^5 -PUZ091^5 -PUZ108^5 -PUZ097^5 -PUZ047^5 -PUZ094^5 -PUZ081^2 -PUZ106^5 -PUZ101^5 -PUZ112^5 -PUZ031^5 -PUZ118^5 -PUZ100^5 -PUZ124^5 -PUZ123^5 -PUZ116^5 -PUZ126^5 -PUZ103^5 -PUZ127^5 -PUZ089^5 -PUZ114^5 -PUZ119^5 -PUZ081^1 -PUZ088^5 -PUZ115^5 -PUZ087^1 -PUZ098^5 -PUZ092^5 -PUZ086^1 -PUZ095^5 -PUZ104^5 -PUZ084^1 -PUZ121^5 -PUZ107^5 -SEU546^1 -SEU666^2 -SEU918^5 -SEU543^2 -SEU659^2 -SEU819^2 -SEU852^5 -SEU929^5 -SEU873^5 -SEU965^5 -SEU949^5 -SEU732^1 -SEU713^2 -SEU490^1 -SEU778^2 -SEU975^5 -SEU560^1 -SEU663^1 -SEU673^1 -SEU787^1 -SEU957^5 -SEU741^2 -SEU629^2 -SEU792^1 -SEU684^2 -SEU553^2 -SEU854^5 -SEU800^1 -SEU470^1 -SEU790^2 -SEU974^5 -SEU888^5 -SEU552^1 -SEU832^5 -SEU700^1 -SEU591^2 -SEU587^1 -SEU771^2 -SEU952^5 -SEU712^1 -SEU608^2 -SEU784^2 -SEU579^1 -SEU718^2 -SEU827^1 -SEU656^1 -SEU697^1 -SEU660^1 -SEU637^1 -SEU594^1 -SEU791^1 -SEU548^2 -SEU665^1 -SEU495^1 -SEU865^5 -SEU472^1 -SEU740^2 -SEU463^1 -SEU904^5 -SEU502^2 -SEU499^1 -SEU970^5 -SEU546^2 -SEU513^1 -SEU512^1 -SEU548^1 -SEU634^1 -SEU761^2 -SEU921^5 -SEU619^1 -SEU588^1 -SEU571^1 -SEU740^1 -SEU706^1 -SEU769^1 -SEU989^5 -SEU871^5 -SEU695^1 -SEU642^2 -SEU526^1 -SEU824^2 -SEU465^1 -SEU759^1 -SEU953^5 -SEU513^2 -SEU643^1 -SEU503^2 -SEU645^2 -SEU684^1 -SEU569^2 -SEU452^1 -SEU799^2 -SEU928^5 -SEU651^2 -SEU968^5 -SEU916^5 -SEU702^2 -SEU863^5 -SEU644^2 -SEU917^5 -SEU774^2 -SEU940^5 -SEU461^1 -SEU464^1 -SEU670^2 -SEU743^1 -SEU650^1 -SEU663^2 -SEU543^1 -SEU922^5 -SEU826^1 -SEU609^2 -SEU747^2 -SEU582^1 -SEU942^5 -SEU931^5 -SEU550^1 -SEU941^5 -SEU920^5 -SEU626^1 -SEU605^2 -SEU950^5 -SEU770^2 -SEU717^2 -SEU607^2 -SEU466^1 -SEU818^2 -SEU788^2 -SEU530^2 -SEU563^2 -SEU866^5 -SEU633^1 -SEU596^1 -SEU807^1 -SEU848^5 -SEU597^2 -SEU725^2 -SEU535^1 -SEU685^2 -SEU676^2 -SEU615^2 -SEU935^5 -SEU884^5 -SEU653^1 -SEU696^2 -SEU673^2 -SEU655^1 -SEU721^2 -SEU558^2 -SEU575^2 -SEU640^1 -SEU521^1 -SEU804^1 -SEU875^5 -SEU741^1 -SEU514^1 -SEU674^1 -SEU664^1 -SEU788^1 -SEU593^2 -SEU487^1 -SEU575^1 -SEU913^5 -SEU812^2 -SEU523^2 -SEU946^5 -SEU705^2 -SEU674^2 -SEU841^5 -SEU905^5 -SEU629^1 -SEU619^2 -SEU693^1 -SEU512^2 -SEU579^2 -SEU462^1 -SEU493^1 -SEU627^2 -SEU500^2 -SEU577^1 -SEU699^1 -SEU767^1 -SEU885^5 -SEU803^1 -SEU565^2 -SEU816^1 -SEU820^2 -SEU793^2 -SEU760^2 -SEU783^1 -SEU816^2 -SEU892^5 -SEU707^1 -SEU881^5 -SEU622^2 -SEU563^1 -SEU644^1 -SEU606^2 -SEU855^5 -SEU765^1 -SEU636^1 -SEU507^2 -SEU769^2 -SEU776^1 -SEU668^1 -SEU723^2 -SEU744^2 -SEU582^2 -SEU497^1 -SEU843^5 -SEU677^1 -SEU692^1 -SEU610^1 -SEU786^1 -SEU688^2 -SEU636^2 -SEU600^2 -SEU577^2 -SEU726^2 -SEU906^5 -SEU992^5 -SEU901^5 -SEU625^2 -SEU574^2 -SEU589^1 -SEU737^1 -SEU479^1 -SEU539^2 -SEU729^1 -SEU729^2 -SEU511^1 -SEU638^2 -SEU880^5 -SEU555^1 -SEU939^5 -SEU998^5 -SEU504^2 -SEU679^1 -SEU823^1 -SEU701^1 -SEU710^2 -SEU768^2 -SEU573^2 -SEU525^1 -SEU648^2 -SEU786^2 -SEU558^1 -SEU706^2 -SEU510^2 -SEU712^2 -SEU976^5 -SEU926^5 -SEU652^1 -SEU990^5 -SEU822^2 -SEU962^5 -SEU637^2 -SEU635^2 -SEU753^2 -SEU853^5 -SEU477^1 -SEU584^1 -SEU590^2 -SEU640^2 -SEU800^2 -SEU567^2 -SEU986^5 -SEU802^1 -SEU574^1 -SEU569^1 -SEU538^2 -SEU993^5 -SEU724^1 -SEU762^1 -SEU628^2 -SEU655^2 -SEU641^2 -SEU654^1 -SEU494^1 -SEU604^2 -SEU676^1 -SEU578^2 -SEU623^2 -SEU625^1 -SEU956^5 -SEU780^1 -SEU778^1 -SEU744^1 -SEU724^2 -SEU524^2 -SEU459^1 -SEU478^1 -SEU908^5 -SEU847^5 -SEU669^1 -SEU987^5 -SEU588^2 -SEU810^1 -SEU509^1 -SEU639^1 -SEU481^1 -SEU523^1 -SEU981^5 -SEU647^2 -SEU995^5 -SEU626^2 -SEU671^1 -SEU802^2 -SEU787^2 -SEU750^2 -SEU603^1 -SEU586^2 -SEU882^5 -SEU687^1 -SEU711^2 -SEU638^1 -SEU609^1 -SEU585^2 -SEU746^2 -SEU831^5 -SEU733^1 -SEU742^2 -SEU710^1 -SEU766^1 -SEU809^2 -SEU564^2 -SEU912^5 -SEU680^1 -SEU507^1 -SEU476^1 -SEU948^5 -SEU611^1 -SEU622^1 -SEU678^1 -SEU570^1 -SEU836^5 -SEU780^2 -SEU639^2 -SEU624^1 -SEU878^5 -SEU902^5 -SEU654^2 -SEU483^1 -SEU988^5 -SEU814^2 -SEU890^5 -SEU667^1 -SEU945^5 -SEU934^5 -SEU782^1 -SEU595^1 -SEU551^1 -SEU489^1 -SEU704^2 -SEU969^5 -SEU746^1 -SEU821^1 -SEU725^1 -SEU534^1 -SEU496^1 -SEU554^1 -SEU757^1 -SEU977^5 -SEU618^1 -SEU947^5 -SEU565^1 -SEU549^1 -SEU506^2 -SEU595^2 -SEU803^2 -SEU685^1 -SEU606^1 -SEU594^2 -SEU698^1 -SEU761^1 -SEU732^2 -SEU642^1 -SEU616^1 -SEU840^5 -SEU797^2 -SEU527^1 -SEU469^1 -SEU933^5 -SEU722^2 -SEU943^5 -SEU547^1 -SEU653^2 -SEU659^1 -SEU615^1 -SEU628^1 -SEU717^1 -SEU796^1 -SEU571^2 -SEU966^5 -SEU752^1 -SEU893^5 -SEU783^2 -SEU541^1 -SEU735^1 -SEU756^1 -SEU500^1 -SEU822^1 -SEU869^5 -SEU518^1 -SEU561^1 -SEU475^1 -SEU651^1 -SEU883^5 -SEU728^1 -SEU754^2 -SEU899^5 -SEU515^2 -SEU891^5 -SEU508^2 -SEU667^2 -SEU566^1 -SEU657^1 -SEU503^1 -SEU806^1 -SEU731^1 -SEU598^1 -SEU557^1 -SEU844^5 -SEU996^5 -SEU486^1 -SEU682^1 -SEU779^2 -SEU658^2 -SEU567^1 -SEU610^2 -SEU887^5 -SEU781^1 -SEU596^2 -SEU613^2 -SEU647^1 -SEU568^2 -SEU868^5 -SEU824^3 -SEU815^1 -SEU897^5 -SEU811^2 -SEU605^1 -SEU752^2 -SEU549^2 -SEU796^2 -SEU509^2 -SEU751^1 -SEU485^1 -SEU896^5 -SEU664^2 -SEU620^1 -SEU932^5 -SEU773^2 -SEU680^2 -SEU576^1 -SEU851^5 -SEU833^5 -SEU745^2 -SEU919^5 -SEU508^1 -SEU601^1 -SEU691^1 -SEU856^5 -SEU617^2 -SEU618^2 -SEU799^1 -SEU559^2 -SEU614^2 -SEU791^2 -SEU645^1 -SEU620^2 -SEU689^2 -SEU562^2 -SEU727^1 -SEU694^1 -SEU805^1 -SEU879^5 -SEU776^2 -SEU775^1 -SEU709^2 -SEU818^1 -SEU656^2 -SEU458^1 -SEU978^5 -SEU529^2 -SEU536^2 -SEU747^1 -SEU551^2 -SEU474^1 -SEU621^2 -SEU603^2 -SEU544^2 -SEU795^1 -SEU755^1 -SEU999^5 -SEU792^2 -SEU900^5 -SEU937^5 -SEU737^2 -SEU665^2 -SEU699^2 -SEU708^1 -SEU972^5 -SEU817^1 -SEU814^1 -SEU719^1 -SEU556^1 -SEU789^1 -SEU867^5 -SEU915^5 -SEU601^2 -SEU535^2 -SEU482^1 -SEU612^2 -SEU515^1 -SEU504^1 -SEU456^1 -SEU798^1 -SEU911^5 -SEU714^1 -SEU963^5 -SEU984^5 -SEU714^2 -SEU672^2 -SEU617^1 -SEU820^1 -SEU745^1 -SEU774^1 -SEU672^1 -SEU795^2 -SEU514^2 -SEU669^2 -SEU521^2 -SEU849^5 -SEU516^1 -SEU632^2 -SEU692^2 -SEU681^2 -SEU696^1 -SEU997^5 -SEU960^5 -SEU580^1 -SEU764^2 -SEU522^1 -SEU602^2 -SEU964^5 -SEU528^1 -SEU789^2 -SEU707^2 -SEU708^2 -SEU804^2 -SEU924^5 -SEU604^1 -SEU683^2 -SEU661^1 -SEU785^2 -SEU631^2 -SEU537^2 -SEU484^1 -SEU501^2 -SEU516^2 -SEU686^1 -SEU677^2 -SEU860^5 -SEU632^1 -SEU909^5 -SEU573^1 -SEU607^1 -SEU813^1 -SEU510^1 -SEU695^2 -SEU755^2 -SEU581^2 -SEU529^1 -SEU821^2 -SEU592^1 -SEU794^1 -SEU748^1 -SEU688^1 -SEU834^5 -SEU506^1 -SEU679^2 -SEU562^1 -SEU734^1 -SEU790^1 -SEU566^2 -SEU467^1 -SEU641^1 -SEU511^2 -SEU693^2 -SEU591^1 -SEU817^2 -SEU502^1 -SEU734^2 -SEU537^1 -SEU621^1 -SEU815^2 -SEU793^1 -SEU536^1 -SEU797^1 -SEU726^1 -SEU488^1 -SEU690^2 -SEU733^2 -SEU643^2 -SEU608^1 -SEU697^2 -SEU526^2 -SEU683^1 -SEU650^2 -SEU738^2 -SEU675^2 -SEU578^1 -SEU570^2 -SEU798^2 -SEU825^3 -SEU771^1 -SEU611^2 -SEU649^2 -SEU839^5 -SEU961^5 -SEU531^2 -SEU480^1 -SEU775^2 -SEU662^1 -SEU715^2 -SEU750^1 -SEU801^2 -SEU552^2 -SEU473^1 -SEU525^2 -SEU630^1 -SEU772^1 -SEU808^1 -SEU877^5 -SEU614^1 -SEU613^1 -SEU824^1 -SEU547^2 -SEU652^2 -SEU991^5 -SEU808^2 -SEU805^2 -SEU561^2 -SEU973^5 -SEU876^5 -SEU903^5 -SEU857^5 -SEU716^2 -SEU646^2 -SEU460^1 -SEU498^1 -SEU660^2 -SEU735^2 -SEU557^2 -SEU823^2 -SEU730^2 -SEU720^2 -SEU634^2 -SEU731^2 -SEU925^5 -SEU980^5 -SEU813^2 -SEU612^1 -SEU874^5 -SEU686^2 -SEU898^5 -SEU568^1 -SEU736^1 -SEU739^1 -SEU597^1 -SEU532^2 -SEU661^2 -SEU592^2 -SEU930^5 -SEU586^1 -SEU763^1 -SEU627^1 -SEU907^5 -SEU955^5 -SEU539^1 -SEU709^1 -SEU914^5 -SEU718^1 -SEU553^1 -SEU861^5 -SEU758^1 -SEU671^2 -SEU864^5 -SEU728^2 -SEU759^2 -SEU540^1 -SEU738^1 -SEU517^1 -SEU550^2 -SEU542^1 -SEU895^5 -SEU845^5 -SEU770^1 -SEU784^1 -SEU657^2 -SEU951^5 -SEU690^1 -SEU777^1 -SEU519^2 -SEU687^2 -SEU545^2 -SEU635^1 -SEU703^2 -SEU772^2 -SEU468^1 -SEU648^1 -SEU700^2 -SEU983^5 -SEU649^1 -SEU520^1 -SEU705^1 -SEU703^1 -SEU542^2 -SEU527^2 -SEU538^1 -SEU593^1 -SEU518^2 -SEU572^2 -SEU519^1 -SEU689^1 -SEU630^2 -SEU505^1 -SEU631^1 -SEU944^5 -SEU850^5 -SEU810^2 -SEU560^2 -SEU678^2 -SEU564^1 -SEU819^1 -SEU682^2 -SEU580^2 -SEU894^5 -SEU721^1 -SEU828^1 -SEU524^1 -SEU958^5 -SEU829^1 -SEU530^1 -SEU938^5 -SEU730^1 -SEU982^5 -SEU454^1 -SEU794^2 -SEU698^2 -SEU716^1 -SEU623^1 -SEU701^2 -SEU491^1 -SEU501^1 -SEU533^1 -SEU675^1 -SEU858^5 -SEU959^5 -SEU711^1 -SEU985^5 -SEU492^1 -SEU751^2 -SEU455^1 -SEU781^2 -SEU779^1 -SEU979^5 -SEU872^5 -SEU782^2 -SEU545^1 -SEU846^5 -SEU599^1 -SEU589^2 -SEU505^2 -SEU722^1 -SEU471^1 -SEU602^1 -SEU801^1 -SEU662^2 -SEU694^2 -SEU749^1 -SEU540^2 -SEU760^1 -SEU715^1 -SEU576^2 -SEU719^2 -SEU809^1 -SEU599^2 -SEU811^1 -SEU633^2 -SEU994^5 -SEU886^5 -SEU531^1 -SEU768^1 -SEU583^1 -SEU704^1 -SEU743^2 -SEU764^1 -SEU528^2 -SEU584^2 -SEU756^2 -SEU757^2 -SEU835^5 -SEU559^1 -SEU581^1 -SEU889^5 -SEU923^5 -SEU727^2 -SEU587^2 -SEU773^1 -SEU910^5 -SEU691^2 -SEU600^1 -SEU544^1 -SEU646^1 -SEU666^1 -SEU541^2 -SEU532^1 -SEU807^2 -SEU927^5 -SEU658^1 -SEU681^1 -SEU859^5 -SEU720^1 -SEU749^2 -SEU534^2 -SEU742^1 -SEU777^2 -SEU517^2 -SEU572^1 -SEU723^1 -SEU739^2 -SEU499^2 -SEU585^1 -SEU590^1 -SEU812^1 -SEU762^2 -SEU670^1 -SEU785^1 -SEU754^1 -SEU862^5 -SEU954^5 -SEU837^5 -SEU842^5 -SEU522^2 -SEU533^2 -SEU457^1 -SEU758^2 -SEU702^1 -SEU753^1 -SEU936^5 -SEU668^2 -SEU736^2 -SEU967^5 -SEU971^5 -SEU806^2 -SEU453^1 -SEU713^1 -SEU598^2 -MSC021^5 -MSC020^5 -NUM661^1 -NUM728^1 -NUM697^1 -NUM653^1 -NUM790^1 -NUM772^1 -NUM637^2 -NUM833^5 -NUM792^1 -NUM815^5 -NUM016^5 -NUM678^1 -NUM726^1 -NUM648^1 -NUM676^1 -NUM801^1 -NUM754^1 -NUM756^1 -NUM799^1 -NUM702^1 -NUM708^1 -NUM677^1 -NUM727^1 -NUM663^1 -NUM021^1 -NUM765^1 -NUM814^5 -NUM773^1 -NUM758^1 -NUM724^1 -NUM689^1 -NUM691^1 -NUM684^1 -NUM780^1 -NUM742^1 -NUM710^1 -NUM664^1 -NUM639^1 -NUM686^1 -NUM636^2 -NUM646^1 -NUM734^1 -NUM642^1 -NUM020^1 -NUM746^1 -NUM774^1 -NUM695^1 -NUM744^1 -NUM709^1 -NUM782^1 -NUM701^1 -NUM812^5 -NUM660^1 -NUM643^1 -NUM798^1 -NUM688^1 -NUM636^3 -NUM652^1 -NUM740^1 -NUM644^1 -NUM671^1 -NUM669^1 -NUM749^1 -NUM681^1 -NUM690^1 -NUM737^1 -NUM797^1 -NUM820^5 -NUM721^1 -NUM760^1 -NUM757^1 -NUM764^1 -NUM821^5 -NUM739^1 -NUM771^1 -NUM818^5 -NUM803^5 -NUM656^1 -NUM636^1 -NUM649^1 -NUM692^1 -NUM730^1 -NUM743^1 -NUM768^1 -NUM826^5 -NUM417^1 -NUM675^1 -NUM419^1 -NUM418^1 -NUM732^1 -NUM791^1 -NUM723^1 -NUM805^5 -NUM637^1 -NUM645^1 -NUM729^1 -NUM647^1 -NUM787^1 -NUM680^1 -NUM806^5 -NUM770^1 -NUM788^1 -NUM670^1 -NUM733^1 -NUM722^1 -NUM786^1 -NUM716^1 -NUM731^1 -NUM785^1 -NUM828^5 -NUM682^1 -NUM717^1 -NUM635^1 -NUM685^1 -NUM635^2 -NUM831^5 -NUM816^5 -NUM703^1 -NUM767^1 -NUM783^1 -NUM650^1 -NUM659^1 -NUM651^1 -NUM641^1 -NUM795^1 -NUM662^1 -NUM715^1 -NUM683^1 -NUM705^1 -NUM657^1 -NUM810^5 -NUM699^1 -NUM811^5 -NUM696^1 -NUM673^1 -NUM658^1 -NUM694^1 -NUM822^5 -NUM830^5 -NUM415^1 -NUM781^1 -NUM638^1 -NUM763^1 -NUM800^1 -NUM804^5 -NUM707^1 -NUM777^1 -NUM809^5 -NUM769^1 -NUM719^1 -NUM759^1 -NUM824^5 -NUM666^1 -NUM784^1 -NUM700^1 -NUM687^1 -NUM668^1 -NUM766^1 -NUM735^1 -NUM796^1 -NUM819^5 -NUM755^1 -NUM654^1 -NUM750^1 -NUM693^1 -NUM667^1 -NUM808^5 -NUM751^1 -NUM829^5 -NUM827^5 -NUM665^1 -NUM747^1 -NUM779^1 -NUM736^1 -NUM825^5 -NUM679^1 -NUM711^1 -NUM789^1 -NUM807^5 -NUM794^1 -NUM776^1 -NUM761^1 -NUM672^1 -NUM775^1 -NUM713^1 -NUM706^1 -NUM748^1 -NUM655^1 -NUM720^1 -NUM416^1 -NUM741^1 -NUM762^1 -NUM793^1 -NUM753^1 -NUM714^1 -NUM718^1 -NUM752^1 -NUM674^1 -NUM823^5 -NUM802^5 -NUM712^1 -NUM640^1 -NUM698^1 -NUM738^1 -NUM832^5 -NUM704^1 -NUM745^1 -NUM834^5 -NUM817^5 -NUM725^1 -NUM813^5 -NUM778^1 diff --git a/matita/components/tptp_grafite/tptp2grafite.ml b/matita/components/tptp_grafite/tptp2grafite.ml deleted file mode 100644 index 2e1bb9bce..000000000 --- a/matita/components/tptp_grafite/tptp2grafite.ml +++ /dev/null @@ -1,468 +0,0 @@ -module GA = GrafiteAst;; -module LA = LexiconAst;; -module PT = CicNotationPt;; -module A = Ast;; - -type sort = Prop | Univ;; - -let floc = HExtlib.dummy_floc;; - - -let paramod_timeout = ref 600;; -let depth = ref 10;; - -let universe = "Univ" ;; -let prop = "Prop";; - -let kw = [ - "and","myand" -];; - -let mk_ident s = - PT.Ident ((try List.assoc s kw with Not_found -> s),None) -;; - -let rec collect_arities_from_term = function - | A.Constant name -> [name,(0,Univ)] - | A.Variable name -> [name,(0,Univ)] - | A.Function (name,l) -> - (name,(List.length l,Univ)):: - List.flatten (List.map collect_arities_from_term l) -;; - -let rec collect_fv_from_term = function - | A.Constant name -> [] - | A.Variable name -> [name] - | A.Function (_,l) -> - List.flatten (List.map collect_fv_from_term l) -;; - -let collect_arities_from_atom a = - let aux = function - | A.Proposition name -> [name,(0,Prop)] - | A.Predicate (name,args) -> - (name,(List.length args,Prop)) :: - (List.flatten (List.map collect_arities_from_term args)) - | A.True -> [] - | A.False -> [] - | A.Eq (t1,t2) -> - collect_arities_from_term t1 @ collect_arities_from_term t2 - | A.NotEq (t1,t2) -> - collect_arities_from_term t1 @ collect_arities_from_term t2 - in - HExtlib.list_uniq (List.sort compare (List.flatten (List.map aux a))) -;; - -let collect_fv_from_atom a = - let aux = function - | A.Proposition name -> [name] - | A.Predicate (name,args) -> - name :: List.flatten (List.map collect_fv_from_term args) - | A.True -> [] - | A.False -> [] - | A.Eq (t1,t2) -> collect_fv_from_term t1 @ collect_fv_from_term t2 - | A.NotEq (t1,t2) -> collect_fv_from_term t1 @ collect_fv_from_term t2 - in - let rec aux2 = function - | [] -> [] - | hd::tl -> aux hd @ aux2 tl - in - HExtlib.list_uniq (List.sort compare (aux2 a)) -;; - -let rec collect_fv_from_formulae = function - | A.Disjunction (a,b) -> - collect_fv_from_formulae a @ collect_fv_from_formulae b - | A.NegAtom a - | A.Atom a -> collect_fv_from_atom [a] -;; - -let rec convert_term = function - | A.Variable x -> mk_ident x - | A.Constant x -> mk_ident x - | A.Function (name, args) -> - PT.Appl (mk_ident name :: List.map convert_term args) -;; - -let rec atom_of_formula neg pos = function - | A.Disjunction (a,b) -> - let neg, pos = atom_of_formula neg pos a in - atom_of_formula neg pos b - | A.NegAtom a -> a::neg, pos - | A.Atom (A.NotEq (a,b)) -> (A.Eq (a,b) :: neg), pos - | A.Atom a -> neg, a::pos -;; - -let atom_of_formula f = - let neg, pos = atom_of_formula [] [] f in - neg @ pos -;; - -let rec mk_arrow component tail = function - | 0 -> begin - match tail with - | Prop -> mk_ident prop - | Univ -> mk_ident universe - end - | n -> - PT.Binder - (`Forall, - ((mk_ident "_"),Some (mk_ident component)), - mk_arrow component tail (n-1)) -;; - -let build_ctx_for_arities univesally arities t = - let binder = if univesally then `Forall else `Exists in - let rec aux = function - | [] -> t - | (name,(nargs,sort))::tl -> - PT.Binder - (binder, - (mk_ident name,Some (mk_arrow universe sort nargs)), - aux tl) - in - aux arities -;; - -let convert_atom universally a = - let aux = function - | A.Proposition p -> mk_ident p - | A.Predicate (name,params) -> - PT.Appl ((mk_ident name) :: (List.map convert_term params)) - | A.True -> mk_ident "True" - | A.False -> mk_ident "False" - | A.Eq (l,r) - | A.NotEq (l,r) -> (* removes the negation *) - PT.Appl [mk_ident "eq";mk_ident universe;convert_term l;convert_term r] - in - let rec aux2 = function - | [] -> assert false - | [x] -> aux x - | he::tl -> - if universally then - PT.Binder (`Forall, (mk_ident "_", Some (aux he)), aux2 tl) - else - PT.Appl [mk_ident "And";aux he;aux2 tl] - in - let arities = collect_arities_from_atom a in - let fv = collect_fv_from_atom a in - build_ctx_for_arities universally - (List.filter - (function (x,(0,Univ)) -> List.mem x fv | _-> false) - arities) - (aux2 a) -;; - -let collect_arities atom ctx = - let atoms = atom@(List.flatten (List.map atom_of_formula ctx)) in - collect_arities_from_atom atoms -;; - -let collect_arities_from_formulae f = - let rec collect_arities_from_formulae = function - | A.Disjunction (a,b) -> - collect_arities_from_formulae a @ collect_arities_from_formulae b - | A.NegAtom a - | A.Atom a -> collect_arities_from_atom [a] - in - HExtlib.list_uniq (List.sort compare (collect_arities_from_formulae f)) -;; - -let is_formulae_1eq_negated f = - let atom = atom_of_formula f in - match atom with - | [A.NotEq (l,r)] -> true - | _ -> false -;; - -let collect_fv_1stord_from_formulae f = - let arities = collect_arities_from_formulae f in - let fv = collect_fv_from_formulae f in - List.map fst - (List.filter (function (x,(0,Univ)) -> List.mem x fv | _-> false) arities) -;; - -let rec convert_formula fv no_arities context f = - let atom = atom_of_formula f in - let t = convert_atom (fv = []) atom in - let rec build_ctx n = function - | [] -> t - | hp::tl -> - PT.Binder - (`Forall, - (mk_ident ("H" ^ string_of_int n), - Some (convert_formula [] true [] hp)), - build_ctx (n+1) tl) - in - let arities = if no_arities then [] else collect_arities atom context in - build_ctx_for_arities true arities (build_ctx 0 context) -;; - -let check_if_atom_is_negative = function - | A.True -> false - | A.False -> true - | A.Proposition _ -> false - | A.Predicate _ -> false - | A.Eq _ -> false - | A.NotEq _ -> true -;; - -let rec check_if_formula_is_negative = function - | A.Disjunction (a,b) -> - check_if_formula_is_negative a && check_if_formula_is_negative b - | A.NegAtom a -> not (check_if_atom_is_negative a) - | A.Atom a -> check_if_atom_is_negative a -;; - -let ng_generate_tactics fv ueq_case context arities = - [ GA.Executable(floc,GA.NTactic(floc, - [GA.NIntro (floc,"Univ") ; GA.NDot(floc)])) ] - @ - (HExtlib.list_mapi - (fun (name,_) _-> - GA.Executable(floc,GA.NTactic(floc, - [GA.NIntro (floc,(try List.assoc name kw with Not_found -> name)); - GA.NDot(floc)]))) - arities) - @ - (HExtlib.list_mapi - (fun _ i-> - GA.Executable(floc,GA.NTactic(floc, - [GA.NIntro (floc,"H"^string_of_int i);GA.NDot(floc)]))) - context) - @ -(if fv <> [] then - (List.flatten - (List.map - (fun _ -> - [GA.Executable(floc,GA.NTactic(floc, - [GA.NApply (floc, - PT.Appl - [mk_ident "ex_intro";PT.Implicit `JustOne;PT.Implicit `JustOne; - PT.Implicit `JustOne;PT.Implicit `JustOne]);GA.NBranch floc])); - GA.Executable(floc,GA.NTactic(floc, - [GA.NPos (floc,[2])]))]) - fv)) - else [])@ - [GA.Executable(floc,GA.NTactic(floc, [ - if (*ueq_case*) true then - GA.NAuto (floc,(Some - HExtlib.list_mapi - (fun _ i -> - mk_ident ("H" ^ string_of_int i)) - context - ,[])) - else - GA.NAuto (floc,(None,[ - "depth",string_of_int 5; - "width",string_of_int 5; - "size",string_of_int 20; - "timeout",string_of_int 10; - ])) - ; - GA.NSemicolon(floc)])); -(* - GA.Executable(floc,GA.NTactic(floc, Some (GA.Try(floc, - GA.Assumption floc)), GA.Dot(floc))) -*) - ]@ -(if fv <> [] then - (List.flatten - (List.map - (fun _ -> - [GA.Executable(floc,GA.NTactic(floc, [GA.NShift floc; - GA.NSkip floc; GA.NMerge floc]))]) - fv)) - else [])@ - [GA.Executable(floc,GA.NTactic(floc,[GA.NTry(floc, GA.NAssumption(floc)); - GA.NSemicolon(floc)]))]@ - [GA.Executable(floc,GA.NCommand(floc, GA.NQed(floc)))] -;; - -let generate_tactics fv ueq_case = - [GA.Executable(floc,GA.Tactic(floc, Some - (GA.Intros (floc,(None,[]))),GA.Dot(floc)))] @ -(if fv <> [] then - (List.flatten - (List.map - (fun _ -> - [GA.Executable(floc,GA.Tactic(floc, Some - (GA.Exists floc),GA.Branch floc)); - GA.Executable(floc,GA.Tactic(floc, None, - (GA.Pos (floc,[2]))))]) - fv)) - else [])@ - [GA.Executable(floc,GA.Tactic(floc, Some ( - if true (*ueq_case*) then - GA.AutoBatch (floc,(None,["paramodulation",""; - "timeout",string_of_int !paramod_timeout])) - else - GA.AutoBatch (floc,(None,[ - "depth",string_of_int 5; - "width",string_of_int 5; - "size",string_of_int 20; - "timeout",string_of_int 10; - ])) - ), - GA.Semicolon(floc))); - GA.Executable(floc,GA.Tactic(floc, Some (GA.Try(floc, - GA.Assumption floc)), GA.Dot(floc))) - ]@ -(if fv <> [] then - (List.flatten - (List.map - (fun _ -> - [GA.Executable(floc,GA.Tactic(floc, None, GA.Shift floc)); - GA.Executable(floc,GA.NonPunctuationTactical(floc, GA.Skip floc, - (GA.Merge floc)))]) - fv)) - else [])@ - [GA.Executable(floc,GA.Command(floc, GA.Print(floc,"proofterm"))); - GA.Executable(floc,GA.Command(floc, GA.Qed(floc)))] -;; - -let convert_ast ng statements context = function - | A.Comment s -> - let s = String.sub s 1 (String.length s - 1) in - let s = - if s.[String.length s - 1] = '\n' then - String.sub s 0 (String.length s - 1) - else - s - in - statements @ [GA.Comment (floc,GA.Note (floc,s))], - context - | A.Inclusion (s,_) -> - statements @ [ - GA.Comment ( - floc, GA.Note ( - floc,"Inclusion of: " ^ s))], context - | A.AnnotatedFormula (name,kind,f,_,_) -> - match kind with - | A.Axiom - | A.Hypothesis -> - statements, f::context - | A.Negated_conjecture when not (check_if_formula_is_negative f) -> - statements, f::context - | A.Negated_conjecture -> - let ueq_case = is_formulae_1eq_negated f in - let fv = collect_fv_1stord_from_formulae f in - let old_f = f in - let f = - PT.Binder - (`Forall, - (mk_ident universe,Some (PT.Sort (`Type (CicUniv.fresh ())))), - convert_formula fv false context f) - in - let o = PT.Theorem (`Theorem,name,f,None,`Regular) in - (statements @ - [ GA.Executable(floc,GA.Command(floc, - (*if ng then GA.NObj (floc,o) else*) GA.Obj(floc,o))); ] @ - if ng then - ng_generate_tactics fv ueq_case context - (let atom = atom_of_formula old_f in collect_arities atom context) - else generate_tactics fv ueq_case), - context - | A.Definition - | A.Lemma - | A.Theorem - | A.Conjecture - | A.Lemma_conjecture - | A.Plain - | A.Unknown -> assert false -;; - -(* HELPERS *) -let resolve ~tptppath s = - let resolved_name = - if Filename.check_suffix s ".p" then - (assert (String.length s > 5); - let prefix = String.sub s 0 3 in - tptppath ^ "/Problems/" ^ prefix ^ "/" ^ s) - else - tptppath ^ "/" ^ s - in - if HExtlib.is_regular resolved_name then - resolved_name - else - begin - prerr_endline ("Unable to find " ^ s ^ " (" ^ resolved_name ^ ")"); - exit 1 - end -;; - -(* MAIN *) -let tptp2grafite ?(timeout=600) ?(def_depth=10) ?raw_preamble ~tptppath ~filename ~ng () = - paramod_timeout := timeout; - depth := def_depth; - let rec aux = function - | [] -> [] - | ((A.Inclusion (file,_)) as hd) :: tl -> - let file = resolve ~tptppath file in - let lexbuf = Lexing.from_channel (open_in file) in - let statements = Parser.main Lexer.yylex lexbuf in - hd :: aux (statements @ tl) - | hd::tl -> hd :: aux tl - in - let statements = aux [A.Inclusion (filename,[])] in - let grafite_ast_statements,_ = - List.fold_left - (fun (st, ctx) f -> - let newst, ctx = convert_ast ng st ctx f in - newst, ctx) - ([],[]) statements - in - let pp t = - (* ZACK: setting width to 80 will trigger a bug of BoxPp.render_to_string - * which will show up using the following command line: - * ./tptp2grafite -tptppath ~tassi/TPTP-v3.1.1 GRP170-1 *) - let width = max_int in - let term_pp prec content_term = - let pres_term = TermContentPres.pp_ast content_term in - let lookup_uri = fun _ -> None in - let markup = CicNotationPres.render ~lookup_uri ~prec pres_term in - let s = BoxPp.render_to_string List.hd width markup ~map_unicode_to_tex:false in - Pcre.substitute - ~rex:(Pcre.regexp ~flags:[`UTF8] "∀[Ha-z][a-z0-9_]*") ~subst:(fun x -> "\n" ^ x) - s - in - CicNotationPp.set_pp_term (term_pp 90); - let lazy_term_pp = fun x -> assert false in - let obj_pp = CicNotationPp.pp_obj CicNotationPp.pp_term in - Pcre.replace ~pat:"theorem" ~templ:"ntheorem" - (GrafiteAstPp.pp_statement - ~map_unicode_to_tex:false ~term_pp:(term_pp 19) ~lazy_term_pp ~obj_pp t) - in - let buri = Pcre.replace ~pat:"\\.p$" ("cic:/matita/TPTP/" ^ filename) in - let extra_statements_start = [ - (*GA.Executable(floc,GA.Command(floc, - GA.Set(floc,"baseuri",buri)))*)] - in - let preamble = - match raw_preamble with - | None -> - pp - (GA.Executable(floc, - GA.Command(floc,GA.Include(floc,true,`OldAndNew,"logic/equality.ma")))) - | Some s -> s buri - in - let extra_statements_end = [] in - let aliases = [] - (*[("eq","cic:/Coq/Init/Logic/eq.ind#xpointer(1/1)"); - ("trans_eq","cic:/Coq/Init/Logic/trans_eq.con"); - ("eq_ind_r","cic:/Coq/Init/Logic/eq_ind_r.con"); - ("eq_ind","cic:/Coq/Init/Logic/eq_ind.con"); - ("sym_eq","cic:/Coq/Init/Logic/sym_eq.con"); - ("refl_equal","cic:/Coq/Init/Logic/eq.ind#xpointer(1/1/1)")] *) - in - let s1 = List.map pp extra_statements_start in - let s2 = - List.map - (fun (n,s) -> - LexiconAstPp.pp_command (LA.Alias(floc, LA.Ident_alias(n,s))) ^ ".") - aliases - in - let s3 = List.map pp grafite_ast_statements in - let s4 = List.map pp extra_statements_end in - String.concat "\n" (s1@[preamble]@s2@s3@s4) -;; diff --git a/matita/components/tptp_grafite/tptp2grafite.mli b/matita/components/tptp_grafite/tptp2grafite.mli deleted file mode 100644 index 0096f7804..000000000 --- a/matita/components/tptp_grafite/tptp2grafite.mli +++ /dev/null @@ -1,31 +0,0 @@ -(* 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 tptp2grafite: - ?timeout:int -> - ?def_depth:int -> - ?raw_preamble:(string -> string) -> - tptppath:string -> filename:string -> ng:bool -> unit -> - string diff --git a/matita/components/tptp_grafite/unit_equality_problems b/matita/components/tptp_grafite/unit_equality_problems deleted file mode 100644 index 60cb9fbbd..000000000 --- a/matita/components/tptp_grafite/unit_equality_problems +++ /dev/null @@ -1,1038 +0,0 @@ -ALG005-1 -ALG006-1 -ALG007-1 -ALG235-1 -ALG236-1 -ALG237-1 -ALG238-1 -ALG239-1 -ALG240-1 -ALG241-1 -ALG242-1 -ALG243-1 -ALG244-1 -ALG245-1 -ALG246-1 -BOO001-1 -BOO002-1 -BOO002-2 -BOO003-2 -BOO003-4 -BOO004-2 -BOO004-4 -BOO005-2 -BOO005-4 -BOO006-2 -BOO006-4 -BOO007-2 -BOO007-4 -BOO008-2 -BOO008-4 -BOO009-2 -BOO009-4 -BOO010-2 -BOO010-4 -BOO011-2 -BOO011-4 -BOO012-2 -BOO012-4 -BOO013-2 -BOO013-4 -BOO014-2 -BOO014-4 -BOO015-2 -BOO015-4 -BOO016-2 -BOO017-2 -BOO018-4 -BOO019-1 -BOO021-1 -BOO022-1 -BOO023-1 -BOO024-1 -BOO025-1 -BOO026-1 -BOO027-1 -BOO028-1 -BOO029-1 -BOO030-1 -BOO031-1 -BOO032-1 -BOO033-1 -BOO034-1 -BOO036-1 -BOO037-2 -BOO037-3 -BOO067-1 -BOO068-1 -BOO069-1 -BOO070-1 -BOO071-1 -BOO072-1 -BOO073-1 -BOO074-1 -BOO075-1 -BOO076-1 -BOO077-1 -BOO078-1 -BOO079-1 -BOO080-1 -BOO081-1 -BOO082-1 -BOO083-1 -BOO084-1 -BOO085-1 -BOO086-1 -BOO087-1 -BOO088-1 -BOO089-1 -BOO090-1 -BOO091-1 -BOO092-1 -BOO093-1 -BOO094-1 -BOO095-1 -BOO096-1 -BOO097-1 -BOO098-1 -BOO099-1 -BOO100-1 -BOO101-1 -BOO102-1 -BOO103-1 -BOO104-1 -BOO105-1 -BOO106-1 -BOO107-1 -BOO108-1 -COL001-1 -COL001-2 -COL002-1 -COL002-4 -COL002-5 -COL003-1 -COL003-12 -COL003-13 -COL003-14 -COL003-15 -COL003-16 -COL003-17 -COL003-18 -COL003-19 -COL003-20 -COL004-1 -COL004-3 -COL005-1 -COL006-1 -COL006-5 -COL006-6 -COL006-7 -COL007-1 -COL008-1 -COL009-1 -COL010-1 -COL011-1 -COL012-1 -COL013-1 -COL014-1 -COL015-1 -COL016-1 -COL017-1 -COL018-1 -COL019-1 -COL020-1 -COL021-1 -COL022-1 -COL023-1 -COL024-1 -COL025-1 -COL026-1 -COL027-1 -COL029-1 -COL030-1 -COL031-1 -COL032-1 -COL033-1 -COL034-1 -COL035-1 -COL036-1 -COL037-1 -COL038-1 -COL039-1 -COL041-1 -COL042-1 -COL042-6 -COL042-7 -COL042-8 -COL042-9 -COL043-1 -COL043-3 -COL044-1 -COL044-6 -COL044-7 -COL044-8 -COL044-9 -COL045-1 -COL046-1 -COL047-1 -COL048-1 -COL049-1 -COL050-1 -COL051-1 -COL052-1 -COL053-1 -COL056-1 -COL057-1 -COL058-1 -COL058-2 -COL058-3 -COL059-1 -COL060-1 -COL060-2 -COL060-3 -COL061-1 -COL061-2 -COL061-3 -COL062-1 -COL062-2 -COL062-3 -COL063-1 -COL063-2 -COL063-3 -COL063-4 -COL063-5 -COL063-6 -COL064-1 -COL064-2 -COL064-3 -COL064-4 -COL064-5 -COL064-6 -COL064-7 -COL064-8 -COL064-9 -COL064-10 -COL064-11 -COL065-1 -COL066-1 -COL066-2 -COL066-3 -COL067-1 -COL068-1 -COL069-1 -COL070-1 -COL071-1 -COL073-1 -COL075-2 -COL083-1 -COL084-1 -COL085-1 -COL086-1 -COL087-1 -COM010-2 -GRP001-2 -GRP001-4 -GRP002-2 -GRP002-3 -GRP002-4 -GRP010-4 -GRP011-4 -GRP012-4 -GRP014-1 -GRP022-2 -GRP023-2 -GRP024-5 -GRP114-1 -GRP115-1 -GRP116-1 -GRP117-1 -GRP118-1 -GRP119-1 -GRP120-1 -GRP121-1 -GRP122-1 -GRP136-1 -GRP137-1 -GRP138-1 -GRP139-1 -GRP140-1 -GRP141-1 -GRP142-1 -GRP143-1 -GRP144-1 -GRP145-1 -GRP146-1 -GRP147-1 -GRP148-1 -GRP149-1 -GRP150-1 -GRP151-1 -GRP152-1 -GRP153-1 -GRP154-1 -GRP155-1 -GRP156-1 -GRP157-1 -GRP158-1 -GRP159-1 -GRP160-1 -GRP161-1 -GRP162-1 -GRP163-1 -GRP164-1 -GRP164-2 -GRP165-1 -GRP165-2 -GRP166-1 -GRP166-2 -GRP166-3 -GRP166-4 -GRP167-1 -GRP167-2 -GRP167-3 -GRP167-4 -GRP167-5 -GRP168-1 -GRP168-2 -GRP169-1 -GRP169-2 -GRP170-1 -GRP170-2 -GRP170-3 -GRP170-4 -GRP171-1 -GRP171-2 -GRP172-1 -GRP172-2 -GRP173-1 -GRP174-1 -GRP175-1 -GRP175-2 -GRP175-3 -GRP175-4 -GRP176-1 -GRP176-2 -GRP177-1 -GRP177-2 -GRP178-1 -GRP178-2 -GRP179-1 -GRP179-2 -GRP179-3 -GRP180-1 -GRP180-2 -GRP181-1 -GRP181-2 -GRP181-3 -GRP181-4 -GRP182-1 -GRP182-2 -GRP182-3 -GRP182-4 -GRP183-1 -GRP183-2 -GRP183-3 -GRP183-4 -GRP184-1 -GRP184-2 -GRP184-3 -GRP184-4 -GRP185-1 -GRP185-2 -GRP185-3 -GRP185-4 -GRP186-1 -GRP186-2 -GRP186-3 -GRP186-4 -GRP187-1 -GRP188-1 -GRP188-2 -GRP189-1 -GRP189-2 -GRP190-1 -GRP190-2 -GRP191-1 -GRP191-2 -GRP192-1 -GRP193-1 -GRP193-2 -GRP195-1 -GRP196-1 -GRP200-1 -GRP201-1 -GRP202-1 -GRP203-1 -GRP204-1 -GRP205-1 -GRP206-1 -GRP207-1 -GRP393-2 -GRP394-3 -GRP399-1 -GRP403-1 -GRP404-1 -GRP405-1 -GRP406-1 -GRP407-1 -GRP408-1 -GRP409-1 -GRP410-1 -GRP411-1 -GRP412-1 -GRP413-1 -GRP414-1 -GRP415-1 -GRP416-1 -GRP417-1 -GRP418-1 -GRP419-1 -GRP420-1 -GRP421-1 -GRP422-1 -GRP423-1 -GRP424-1 -GRP425-1 -GRP426-1 -GRP427-1 -GRP428-1 -GRP429-1 -GRP430-1 -GRP431-1 -GRP432-1 -GRP433-1 -GRP434-1 -GRP435-1 -GRP436-1 -GRP437-1 -GRP438-1 -GRP439-1 -GRP440-1 -GRP441-1 -GRP442-1 -GRP443-1 -GRP444-1 -GRP445-1 -GRP446-1 -GRP447-1 -GRP448-1 -GRP449-1 -GRP450-1 -GRP451-1 -GRP452-1 -GRP453-1 -GRP454-1 -GRP455-1 -GRP456-1 -GRP457-1 -GRP458-1 -GRP459-1 -GRP460-1 -GRP461-1 -GRP462-1 -GRP463-1 -GRP464-1 -GRP465-1 -GRP466-1 -GRP467-1 -GRP468-1 -GRP469-1 -GRP470-1 -GRP471-1 -GRP472-1 -GRP473-1 -GRP474-1 -GRP475-1 -GRP476-1 -GRP477-1 -GRP478-1 -GRP479-1 -GRP480-1 -GRP481-1 -GRP482-1 -GRP483-1 -GRP484-1 -GRP485-1 -GRP486-1 -GRP487-1 -GRP488-1 -GRP489-1 -GRP490-1 -GRP491-1 -GRP492-1 -GRP493-1 -GRP494-1 -GRP495-1 -GRP496-1 -GRP497-1 -GRP498-1 -GRP499-1 -GRP500-1 -GRP501-1 -GRP502-1 -GRP503-1 -GRP504-1 -GRP505-1 -GRP506-1 -GRP507-1 -GRP508-1 -GRP509-1 -GRP510-1 -GRP511-1 -GRP512-1 -GRP513-1 -GRP514-1 -GRP515-1 -GRP516-1 -GRP517-1 -GRP518-1 -GRP519-1 -GRP520-1 -GRP521-1 -GRP522-1 -GRP523-1 -GRP524-1 -GRP525-1 -GRP526-1 -GRP527-1 -GRP528-1 -GRP529-1 -GRP530-1 -GRP531-1 -GRP532-1 -GRP533-1 -GRP534-1 -GRP535-1 -GRP536-1 -GRP537-1 -GRP538-1 -GRP539-1 -GRP540-1 -GRP541-1 -GRP542-1 -GRP543-1 -GRP544-1 -GRP545-1 -GRP546-1 -GRP547-1 -GRP548-1 -GRP549-1 -GRP550-1 -GRP551-1 -GRP552-1 -GRP553-1 -GRP554-1 -GRP555-1 -GRP556-1 -GRP557-1 -GRP558-1 -GRP559-1 -GRP560-1 -GRP561-1 -GRP562-1 -GRP563-1 -GRP564-1 -GRP565-1 -GRP566-1 -GRP567-1 -GRP568-1 -GRP569-1 -GRP570-1 -GRP571-1 -GRP572-1 -GRP573-1 -GRP574-1 -GRP575-1 -GRP576-1 -GRP577-1 -GRP578-1 -GRP579-1 -GRP580-1 -GRP581-1 -GRP582-1 -GRP583-1 -GRP584-1 -GRP585-1 -GRP586-1 -GRP587-1 -GRP588-1 -GRP589-1 -GRP590-1 -GRP591-1 -GRP592-1 -GRP593-1 -GRP594-1 -GRP595-1 -GRP596-1 -GRP597-1 -GRP598-1 -GRP599-1 -GRP600-1 -GRP601-1 -GRP602-1 -GRP603-1 -GRP604-1 -GRP605-1 -GRP606-1 -GRP607-1 -GRP608-1 -GRP609-1 -GRP610-1 -GRP611-1 -GRP612-1 -GRP613-1 -GRP614-1 -GRP615-1 -GRP616-1 -GRP661-1 -GRP662-1 -GRP663-1 -GRP666-2 -GRP666-3 -GRP666-4 -GRP666-5 -GRP667-2 -GRP667-3 -GRP667-4 -GRP667-5 -GRP668-1 -GRP669-1 -GRP670-1 -GRP671-1 -GRP675-1 -GRP676-1 -GRP677-1 -GRP678-1 -GRP679-1 -GRP680-1 -GRP681-1 -GRP684-1 -GRP686-1 -GRP687-1 -GRP688-1 -GRP689-1 -GRP690-1 -GRP691-1 -GRP692-1 -GRP693-1 -GRP694-1 -GRP695-1 -GRP696-1 -GRP697-1 -GRP698-1 -GRP699-1 -GRP701-1 -GRP705-1 -GRP706-1 -GRP707-1 -GRP708-1 -GRP709-1 -GRP712-1 -GRP713-1 -GRP714-1 -GRP716-1 -GRP717-1 -GRP718-1 -GRP719-1 -GRP720-2 -GRP721-1 -GRP722-1 -GRP723-1 -GRP724-1 -GRP725-1 -GRP726-1 -GRP727-1 -GRP728-1 -GRP729-1 -GRP730-1 -GRP731-1 -GRP732-1 -GRP735-1 -GRP736-1 -GRP737-1 -GRP738-1 -GRP739-1 -GRP740-1 -GRP741-1 -GRP742-1 -GRP743-1 -GRP744-1 -GRP749-1 -GRP750-1 -GRP751-1 -GRP752-1 -GRP753-1 -GRP754-1 -GRP756-1 -HWC004-1 -HWC004-2 -LAT006-1 -LAT007-1 -LAT008-1 -LAT009-1 -LAT010-1 -LAT011-1 -LAT012-1 -LAT013-1 -LAT014-1 -LAT016-1 -LAT017-1 -LAT018-1 -LAT019-1 -LAT020-1 -LAT021-1 -LAT022-1 -LAT023-1 -LAT024-1 -LAT025-1 -LAT026-1 -LAT027-1 -LAT028-1 -LAT031-1 -LAT032-1 -LAT033-1 -LAT034-1 -LAT038-1 -LAT039-1 -LAT039-2 -LAT040-1 -LAT042-1 -LAT043-1 -LAT044-1 -LAT045-1 -LAT046-1 -LAT047-1 -LAT048-1 -LAT049-1 -LAT050-1 -LAT051-1 -LAT052-1 -LAT053-1 -LAT054-1 -LAT055-2 -LAT059-1 -LAT060-1 -LAT061-1 -LAT062-1 -LAT063-1 -LAT070-1 -LAT071-1 -LAT072-1 -LAT073-1 -LAT074-1 -LAT075-1 -LAT076-1 -LAT077-1 -LAT078-1 -LAT079-1 -LAT080-1 -LAT081-1 -LAT082-1 -LAT083-1 -LAT084-1 -LAT085-1 -LAT086-1 -LAT087-1 -LAT088-1 -LAT089-1 -LAT090-1 -LAT091-1 -LAT092-1 -LAT093-1 -LAT094-1 -LAT095-1 -LAT096-1 -LAT097-1 -LAT098-1 -LAT099-1 -LAT100-1 -LAT101-1 -LAT102-1 -LAT103-1 -LAT104-1 -LAT105-1 -LAT106-1 -LAT107-1 -LAT108-1 -LAT109-1 -LAT110-1 -LAT111-1 -LAT112-1 -LAT113-1 -LAT114-1 -LAT115-1 -LAT116-1 -LAT117-1 -LAT118-1 -LAT119-1 -LAT120-1 -LAT121-1 -LAT122-1 -LAT123-1 -LAT124-1 -LAT125-1 -LAT126-1 -LAT127-1 -LAT128-1 -LAT129-1 -LAT130-1 -LAT131-1 -LAT132-1 -LAT133-1 -LAT134-1 -LAT135-1 -LAT136-1 -LAT137-1 -LAT138-1 -LAT139-1 -LAT140-1 -LAT141-1 -LAT142-1 -LAT143-1 -LAT144-1 -LAT145-1 -LAT146-1 -LAT147-1 -LAT148-1 -LAT149-1 -LAT150-1 -LAT151-1 -LAT152-1 -LAT153-1 -LAT154-1 -LAT155-1 -LAT156-1 -LAT157-1 -LAT158-1 -LAT159-1 -LAT160-1 -LAT161-1 -LAT162-1 -LAT163-1 -LAT164-1 -LAT165-1 -LAT166-1 -LAT167-1 -LAT168-1 -LAT169-1 -LAT170-1 -LAT171-1 -LAT172-1 -LAT173-1 -LAT174-1 -LAT175-1 -LAT176-1 -LAT177-1 -LAT389-1 -LAT390-1 -LAT391-1 -LAT392-1 -LCL109-2 -LCL109-6 -LCL110-2 -LCL111-2 -LCL112-2 -LCL113-2 -LCL114-2 -LCL115-2 -LCL116-2 -LCL132-1 -LCL133-1 -LCL134-1 -LCL135-1 -LCL136-1 -LCL137-1 -LCL138-1 -LCL139-1 -LCL140-1 -LCL141-1 -LCL153-1 -LCL154-1 -LCL155-1 -LCL156-1 -LCL157-1 -LCL158-1 -LCL159-1 -LCL160-1 -LCL161-1 -LCL162-1 -LCL163-1 -LCL164-1 -LCL165-1 -LCL407-1 -LCL407-2 -LCL409-1 -LCL410-1 -LDA001-1 -LDA002-1 -LDA007-3 -REL001-1 -REL002-1 -REL004-1 -REL004-2 -REL004-3 -REL005-1 -REL005-3 -REL006-1 -REL007-1 -REL008-1 -REL008-3 -REL010-1 -REL010-2 -REL011-1 -REL011-2 -REL012-1 -REL012-2 -REL014-1 -REL015-1 -REL016-1 -REL016-3 -REL017-1 -REL017-3 -REL018-1 -REL019-1 -REL019-2 -REL020-1 -REL020-2 -REL021-1 -REL021-2 -REL022-1 -REL022-2 -REL023-1 -REL023-2 -REL024-1 -REL024-2 -REL025-1 -REL026-1 -REL026-3 -REL027-1 -REL027-3 -REL028-1 -REL028-2 -REL029-1 -REL029-3 -REL030-1 -REL030-3 -REL031-1 -REL031-2 -REL032-1 -REL032-2 -REL033-1 -REL033-3 -REL034-1 -REL034-2 -REL035-1 -REL035-2 -REL036-1 -REL036-2 -REL037-1 -REL037-2 -REL038-1 -REL039-1 -REL040-1 -REL040-3 -REL041-1 -REL041-2 -REL042-1 -REL042-2 -REL043-1 -REL043-2 -REL044-1 -REL044-2 -REL045-1 -REL045-2 -REL047-1 -REL049-1 -REL050-1 -REL050-3 -RNG007-4 -RNG008-3 -RNG008-4 -RNG008-7 -RNG009-5 -RNG009-7 -RNG010-5 -RNG010-6 -RNG010-7 -RNG011-5 -RNG012-6 -RNG013-6 -RNG014-6 -RNG015-6 -RNG016-6 -RNG017-6 -RNG018-6 -RNG019-6 -RNG019-7 -RNG020-6 -RNG020-7 -RNG021-6 -RNG021-7 -RNG023-6 -RNG023-7 -RNG024-6 -RNG024-7 -RNG025-4 -RNG025-5 -RNG025-6 -RNG025-7 -RNG025-8 -RNG025-9 -RNG026-6 -RNG026-7 -RNG027-5 -RNG027-7 -RNG027-8 -RNG027-9 -RNG028-5 -RNG028-7 -RNG028-8 -RNG028-9 -RNG029-5 -RNG029-6 -RNG029-7 -RNG030-6 -RNG030-7 -RNG031-6 -RNG031-7 -RNG032-6 -RNG032-7 -RNG033-6 -RNG033-7 -RNG033-8 -RNG033-9 -RNG035-7 -RNG036-7 -RNG042-2 -RNG042-3 -RNG043-1 -ROB001-1 -ROB002-1 -ROB003-1 -ROB004-1 -ROB005-1 -ROB006-1 -ROB006-2 -ROB007-1 -ROB007-2 -ROB008-1 -ROB009-1 -ROB010-1 -ROB013-1 -ROB020-1 -ROB020-2 -ROB022-1 -ROB023-1 -ROB024-1 -ROB026-1 -ROB027-1 -ROB028-1 -ROB030-1 -ROB031-1 -ROB032-1 -SWV243-2 -SWV262-2 -SYN080-1 -SYN083-1 -SYN305-1 -SYN552-1 \ No newline at end of file