src/Pure/Isar/token.ML
changeset 61080 3bccde9cbb9d
parent 60211 c0f686b39ebb
child 61268 abe08fb15a12
equal deleted inserted replaced
61079:6a909ee1c2f0 61080:3bccde9cbb9d
    75   val map_value: (value -> value) -> T -> T
    75   val map_value: (value -> value) -> T -> T
    76   val reports_of_value: T -> Position.report list
    76   val reports_of_value: T -> Position.report list
    77   val map_values: (value -> value) -> src -> src
    77   val map_values: (value -> value) -> src -> src
    78   val declare_maxidx: T -> Proof.context -> Proof.context
    78   val declare_maxidx: T -> Proof.context -> Proof.context
    79   val declare_maxidx_src: src -> Proof.context -> Proof.context
    79   val declare_maxidx_src: src -> Proof.context -> Proof.context
       
    80   val map_facts: (thm list -> thm list) -> T -> T
       
    81   val map_facts_src: (thm list -> thm list) -> src -> src
    80   val transform: morphism -> T -> T
    82   val transform: morphism -> T -> T
    81   val transform_src: morphism -> src -> src
    83   val transform_src: morphism -> src -> src
    82   val init_assignable: T -> T
    84   val init_assignable: T -> T
    83   val init_assignable_src: src -> src
    85   val init_assignable_src: src -> src
    84   val assign: value option -> T -> unit
    86   val assign: value option -> T -> unit
   435         in Variable.declare_maxidx (Variable.maxidx_of ctxt') ctxt end)
   437         in Variable.declare_maxidx (Variable.maxidx_of ctxt') ctxt end)
   436   | _ => I)
   438   | _ => I)
   437 and declare_maxidx_src src = fold declare_maxidx (args_of_src src);
   439 and declare_maxidx_src src = fold declare_maxidx (args_of_src src);
   438 
   440 
   439 
   441 
       
   442 (* fact values *)
       
   443 
       
   444 fun map_facts f =
       
   445   map_value (fn v =>
       
   446     (case v of
       
   447       Source src => Source (map_facts_src f src)
       
   448     | Fact (a, ths) => Fact (a, f ths)
       
   449     | _ => v))
       
   450 and map_facts_src f = map_args (map_facts f);
       
   451 
       
   452 
   440 (* transform *)
   453 (* transform *)
   441 
   454 
   442 fun transform phi =
   455 fun transform phi =
   443   map_value (fn v =>
   456   map_value (fn v =>
   444     (case v of
   457     (case v of