let regexp we_have = "we" utf8_blank+ "have"
let regexp let_rec = "let" utf8_blank+ "rec"
let regexp let_corec = "let" utf8_blank+ "corec"
-let regexp nlet_rec = "nlet" utf8_blank+ "rec"
-let regexp nlet_corec = "nlet" utf8_blank+ "corec"
let regexp ident_decoration = '\'' | '?' | '`'
let regexp ident_cont = ident_letter | xml_digit | '_'
let regexp ident_start = ident_letter
lexer
| let_rec -> return lexbuf ("LETREC","")
| let_corec -> return lexbuf ("LETCOREC","")
- | nlet_rec -> return lexbuf ("NLETREC","")
- | nlet_corec -> return lexbuf ("NLETCOREC","")
| we_proved -> return lexbuf ("WEPROVED","")
| we_have -> return lexbuf ("WEHAVE","")
| utf8_blank+ -> ligatures_token level2_ast_token lexbuf
(String.concat "," (List.map NotationPp.pp_term l)) ^
String.concat " " (List.map (fun a,b -> a ^ "=" ^ b) flgs)
| NCases (_,what,where) -> "ncases " ^ NotationPp.pp_term what ^
- assert false ^ " " ^ assert false
+ "...to be implemented..." ^ " " ^ "...to be implemented..."
| NConstructor (_,None,l) -> "@ " ^
String.concat " " (List.map NotationPp.pp_term l)
| NConstructor (_,Some x,l) -> "@" ^ string_of_int x ^ " " ^
String.concat " " (List.map NotationPp.pp_term l)
| NCase1 (_,n) -> "*" ^ n ^ ":"
- | NChange (_,what,wwhat) -> "nchange " ^ assert false ^
+ | NChange (_,what,wwhat) -> "nchange " ^ "...to be implemented..." ^
" with " ^ NotationPp.pp_term wwhat
| NCut (_,t) -> "ncut " ^ NotationPp.pp_term t
(*| NDiscriminate (_,t) -> "ndiscriminate " ^ NotationPp.pp_term t
| NSubst (_,t) -> "nsubst " ^ NotationPp.pp_term t *)
| NDestruct (_,dom,skip) -> "ndestruct ..."
| NElim (_,what,where) -> "nelim " ^ NotationPp.pp_term what ^
- assert false ^ " " ^ assert false
+ "...to be implemented..." ^ " " ^ "...to be implemented..."
| NId _ -> "nid"
| NIntro (_,n) -> "#" ^ n
+ | NIntros (_,l) -> "#" ^ String.concat " " l
| NInversion (_,what,where) -> "ninversion " ^ NotationPp.pp_term what ^
assert false ^ " " ^ assert false
| NLApply (_,t) -> "lapply " ^ NotationPp.pp_term t
(match dir with `LeftToRight -> ">" | `RightToLeft -> "<") ^
" " ^ NotationPp.pp_term n ^ " " ^ pp_tactic_pattern where
| NReduce _ | NGeneralize _ | NLetIn _ | NAssert _ -> "TO BE IMPLEMENTED"
- | NDot _ -> "##."
- | NSemicolon _ -> "##;"
- | NBranch _ -> "##["
- | NShift _ -> "##|"
- | NPos (_, l) -> "##" ^String.concat "," (List.map string_of_int l)^ ":"
- | NPosbyname (_, s) -> "##" ^ s ^ ":"
- | NWildcard _ -> "##*:"
- | NMerge _ -> "##]"
+ | NDot _ -> "."
+ | NSemicolon _ -> ";"
+ | NBranch _ -> "["
+ | NShift _ -> "|"
+ | NPos (_, l) -> String.concat "," (List.map string_of_int l)^ ":"
+ | NPosbyname (_, s) -> s ^ ":"
+ | NWildcard _ -> "*:"
+ | NMerge _ -> "]"
| NFocus (_,l) ->
- Printf.sprintf "##focus %s"
+ Printf.sprintf "focus %s"
(String.concat " " (List.map string_of_int l))
- | NUnfocus _ -> "##unfocus"
- | NSkip _ -> "##skip"
+ | NUnfocus _ -> "unfocus"
+ | NSkip _ -> "skip"
| NTry (_,tac) -> "ntry " ^ pp_ntactic ~map_unicode_to_tex tac
| NAssumption _ -> "nassumption"
| NBlock (_,l) ->
| _ -> obj_kind
in
let obj = uri,height,[],[],obj_kind in
- prerr_endline ("pp new obj \n"^NCicPp.ppobj obj);
let old_status = status in
let status = NCicLibrary.add_obj status obj in
let index_obj =
if nstatus#ng_mode <> `CommandMode then
begin
(*HLog.warn "error in generating projection/eliminator";*)
+ assert(status#ng_mode = `CommandMode);
status, uris
end
else
SYMBOL <:unicode<vdash>>;
concl = tactic_term -> (List.rev hyps,concl) ] ->
G.NTactic(loc,[G.NAssert (loc, seqs)])
- | IDENT "auto"; params = auto_params ->
- G.NTactic(loc,[G.NAuto (loc, params)])
+ (*| IDENT "auto"; params = auto_params ->
+ G.NTactic(loc,[G.NAuto (loc, params)])*)
| SYMBOL "/"; num = OPT NUMBER ;
- params = nauto_params; SYMBOL "/" ;
- just = OPT [ IDENT "by"; by =
- [ univ = tactic_term_list1 -> `Univ univ
- | SYMBOL "{"; SYMBOL "}" -> `EmptyUniv
- | SYMBOL "_" -> `Trace ] -> by ] ->
+ just_and_params = auto_params; SYMBOL "/" ->
+ let just,params = just_and_params in
let depth = match num with Some n -> n | None -> "1" in
(match just with
| None ->
- G.NTactic(loc,
- [G.NAuto(loc,(None,["slir","";"depth",depth]@params))])
+ G.NTactic(loc,
+ [G.NAuto(loc,(None,["depth",depth]@params))])
| Some (`Univ univ) ->
- G.NTactic(loc,
- [G.NAuto(loc,(Some univ,["slir","";"depth",depth]@params))])
+ G.NTactic(loc,
+ [G.NAuto(loc,(Some univ,["depth",depth]@params))])
| Some `EmptyUniv ->
- G.NTactic(loc,
- [G.NAuto(loc,(Some [],["slir","";"depth",depth]@params))])
+ G.NTactic(loc,
+ [G.NAuto(loc,(Some [],["depth",depth]@params))])
| Some `Trace ->
- G.NMacro(loc,
- G.NAutoInteractive (loc, (None,["slir","";"depth",depth]@params))))
+ G.NMacro(loc,
+ G.NAutoInteractive (loc, (None,["depth",depth]@params))))
| IDENT "intros" -> G.NMacro (loc, G.NIntroGuess loc)
| IDENT "check"; t = term -> G.NMacro(loc,G.NCheck (loc,t))
| IDENT "screenshot"; fname = QSTRING ->
i = auto_fixed_param -> i,""
| i = auto_fixed_param ; SYMBOL "="; v = [ v = int ->
string_of_int v | v = IDENT -> v ] -> i,v ];
- tl = OPT [ IDENT "by"; tl = tactic_term_list1 -> tl] -> tl,
- (* (match tl with Some l -> l | None -> []), *)
- params
- ]
-];
- nauto_params: [
- [ params =
- LIST0 [
- i = auto_fixed_param -> i,""
- | i = auto_fixed_param ; SYMBOL "="; v = [ v = int ->
- string_of_int v | v = IDENT -> v ] -> i,v ] ->
- params
+ just = OPT [ IDENT "by"; by =
+ [ univ = tactic_term_list1 -> `Univ univ
+ | SYMBOL "{"; SYMBOL "}" -> `EmptyUniv
+ | SYMBOL "_" -> `Trace ] -> by ] -> just,params
]
];
oldstatus#set_status s
in
let s = up_to depth depth in
- print (print_stat statistics);
+ debug_print (print_stat statistics);
debug_print(lazy
("TIME ELAPSED:"^string_of_float(Unix.gettimeofday()-.initial_time)));
debug_print(lazy
left associative with precedence 55
for @{ 'module $a $b }.
-notation "a \frac b"
+notation < "a \frac b"
non associative with precedence 90
for @{ 'divide $a $b }.