src/Pure/Isar/proof_context.ML
changeset 26705 334d3fa649ea
parent 26695 65106c87b688
child 26717 2e1c3a0e7308
equal deleted inserted replaced
26704:51ee753cc2e3 26705:334d3fa649ea
   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