src/HOL/ex/Numeral.thy
changeset 35430 df2862dc23a8
parent 35363 09489d8ffece
child 36176 3fe7e97ccca8
equal deleted inserted replaced
35429:afa8cf9e63d8 35430:df2862dc23a8
   325   fun num_tr' show_sorts T [n] =
   325   fun num_tr' show_sorts T [n] =
   326     let
   326     let
   327       val k = int_of_num' n;
   327       val k = int_of_num' n;
   328       val t' = Syntax.const @{syntax_const "_Numerals"} $ Syntax.free ("#" ^ string_of_int k);
   328       val t' = Syntax.const @{syntax_const "_Numerals"} $ Syntax.free ("#" ^ string_of_int k);
   329     in case T
   329     in case T
   330      of Type (@{type_syntax fun}, [_, T']) =>
   330      of Type (@{type_name fun}, [_, T']) =>
   331          if not (! show_types) andalso can Term.dest_Type T' then t'
   331          if not (! show_types) andalso can Term.dest_Type T' then t'
   332          else Syntax.const Syntax.constrainC $ t' $ Syntax.term_of_typ show_sorts T'
   332          else Syntax.const Syntax.constrainC $ t' $ Syntax.term_of_typ show_sorts T'
   333       | T' => if T' = dummyT then t' else raise Match
   333       | T' => if T' = dummyT then t' else raise Match
   334     end;
   334     end;
   335 in [(@{const_syntax of_num}, num_tr')] end
   335 in [(@{const_syntax of_num}, num_tr')] end