src/Pure/Syntax/lexicon.ML
changeset 5286 cfb74a99182c
parent 5260 1835a591d3a7
child 5513 3896c7894a57
equal deleted inserted replaced
5285:2d1425492fb3 5286:cfb74a99182c
    23   val read_var: string -> term
    23   val read_var: string -> term
    24   val const: string -> term
    24   val const: string -> term
    25   val free: string -> term
    25   val free: string -> term
    26   val var: indexname -> term
    26   val var: indexname -> term
    27   val binding: string -> string
    27   val binding: string -> string
    28   val is_binding: string -> bool
    28   val dest_binding: string -> string
    29   val skolem: string -> string
    29   val skolem: string -> string
    30   val is_skolem: string -> bool
    30   val dest_skolem: string -> string
    31 end;
    31 end;
    32 
    32 
    33 signature LEXICON =
    33 signature LEXICON =
    34 sig
    34 sig
    35   include LEXICON0
    35   include LEXICON0
   325   end;
   325   end;
   326 
   326 
   327 
   327 
   328 (* variable kinds *)
   328 (* variable kinds *)
   329 
   329 
   330 fun binding x = x ^ "_";
   330 val binding = suffix "_BIND_";
   331 fun is_binding x = size x >= 1 andalso last_elem (explode x) = "_";
   331 val dest_binding = unsuffix "_BIND_";
   332 
   332 
   333 fun skolem x = x ^ "__";
   333 val skolem = suffix "__";
   334 fun is_skolem x = size x >= 2 andalso drop (size x - 2, explode x) = ["_", "_"];
   334 val dest_skolem = unsuffix "__";
   335 
   335 
   336 
   336 
   337 end;
   337 end;