368 | reverts (Abs (x, T, t)) = Abs (x, T, reverts t) |
368 | reverts (Abs (x, T, t)) = Abs (x, T, reverts t) |
369 | reverts a = a; |
369 | reverts a = a; |
370 in reverts end; |
370 in reverts end; |
371 |
371 |
372 |
372 |
|
373 (* default token translations *) |
|
374 |
|
375 local |
|
376 |
|
377 fun free_or_skolem ctxt x = (* FIXME revert skolem *) |
|
378 (case try Name.dest_skolem x of |
|
379 NONE => Pretty.mark Markup.free (Pretty.str x) |
|
380 | SOME x' => Pretty.mark Markup.skolem (Pretty.str x')) |
|
381 |> Pretty.mark (if Variable.is_fixed ctxt x then Markup.fixed x else Markup.hilite); |
|
382 |
|
383 fun var_or_skolem _ s = |
|
384 (case Lexicon.read_variable s of |
|
385 SOME (x, i) => |
|
386 (case try Name.dest_skolem x of |
|
387 NONE => Pretty.mark Markup.var (Pretty.str s) |
|
388 | SOME x' => Pretty.mark Markup.skolem |
|
389 (Pretty.str (setmp show_question_marks true Term.string_of_vname (x', i)))) |
|
390 | NONE => Pretty.mark Markup.var (Pretty.str s)); |
|
391 |
|
392 fun class_markup _ c = (* FIXME authentic name *) |
|
393 Pretty.mark (Markup.classN, []) (Pretty.str c); |
|
394 |
|
395 fun plain_markup m _ s = Pretty.mark m (Pretty.str s); |
|
396 |
|
397 val token_trans = |
|
398 Syntax.tokentrans_mode "" |
|
399 [("class", class_markup), |
|
400 ("tfree", plain_markup Markup.tfree), |
|
401 ("tvar", plain_markup Markup.tvar), |
|
402 ("free", free_or_skolem), |
|
403 ("bound", plain_markup Markup.bound), |
|
404 ("var", var_or_skolem), |
|
405 ("num", plain_markup Markup.num), |
|
406 ("xnum", plain_markup Markup.xnum), |
|
407 ("xstr", plain_markup Markup.xstr)]; |
|
408 |
|
409 in val _ = Context.>> (Context.map_theory (Sign.add_tokentrfuns token_trans)) end; |
|
410 |
|
411 |
373 |
412 |
374 (** prepare terms and propositions **) |
413 (** prepare terms and propositions **) |
375 |
414 |
376 (* inferred types of parameters *) |
415 (* inferred types of parameters *) |
377 |
416 |