src/Pure/Isar/locale.ML
changeset 68861 2d99562a7fe2
parent 68856 e5097a5b2e58
child 68862 47e9912c53c3
equal deleted inserted replaced
68859:9207ada0ca31 68861:2d99562a7fe2
    51   val params_of: theory -> string -> ((string * typ) * mixfix) list
    51   val params_of: theory -> string -> ((string * typ) * mixfix) list
    52   val intros_of: theory -> string -> thm option * thm option
    52   val intros_of: theory -> string -> thm option * thm option
    53   val axioms_of: theory -> string -> thm list
    53   val axioms_of: theory -> string -> thm list
    54   val instance_of: theory -> string -> morphism -> term list
    54   val instance_of: theory -> string -> morphism -> term list
    55   val specification_of: theory -> string -> term option * term list
    55   val specification_of: theory -> string -> term option * term list
       
    56   val hyp_spec_of: theory -> string -> Element.context_i list
    56 
    57 
    57   (* Storing results *)
    58   (* Storing results *)
    58   val add_facts: string -> string -> Attrib.fact list -> Proof.context -> Proof.context
    59   val add_facts: string -> string -> Attrib.fact list -> Proof.context -> Proof.context
    59   val add_declaration: string -> bool -> declaration -> Proof.context -> Proof.context
    60   val add_declaration: string -> bool -> declaration -> Proof.context -> Proof.context
    60 
    61 
    82   val activate_fragment: registration -> local_theory -> local_theory
    83   val activate_fragment: registration -> local_theory -> local_theory
    83   val registrations_of: Context.generic -> string -> (string * morphism) list
    84   val registrations_of: Context.generic -> string -> (string * morphism) list
    84   val add_dependency: string -> registration -> theory -> theory
    85   val add_dependency: string -> registration -> theory -> theory
    85 
    86 
    86   (* Diagnostic *)
    87   (* Diagnostic *)
    87   val hyp_spec_of: theory -> string -> Element.context_i list
       
    88   val print_locales: bool -> theory -> unit
    88   val print_locales: bool -> theory -> unit
    89   val print_locale: theory -> bool -> xstring * Position.T -> unit
    89   val print_locale: theory -> bool -> xstring * Position.T -> unit
    90   val print_registrations: Proof.context -> xstring * Position.T -> unit
    90   val print_registrations: Proof.context -> xstring * Position.T -> unit
    91   val print_dependencies: Proof.context -> bool -> morphism -> (string * morphism) list -> unit
    91   val print_dependencies: Proof.context -> bool -> morphism -> (string * morphism) list -> unit
    92   val pretty_locale: theory -> bool -> string -> Pretty.T list
    92   val pretty_locale: theory -> bool -> string -> Pretty.T list
   218 fun instance_of thy name morph = params_of thy name |>
   218 fun instance_of thy name morph = params_of thy name |>
   219   map (Morphism.term morph o Free o #1);
   219   map (Morphism.term morph o Free o #1);
   220 
   220 
   221 fun specification_of thy = #spec o the_locale thy;
   221 fun specification_of thy = #spec o the_locale thy;
   222 
   222 
   223 fun dependencies_of thy name = the_locale thy name |>
   223 fun hyp_spec_of thy = #hyp_spec o the_locale thy;
   224   #dependencies;
   224 
       
   225 fun dependencies_of thy = #dependencies o the_locale thy;
   225 
   226 
   226 fun mixins_of thy name serial = the_locale thy name |>
   227 fun mixins_of thy name serial = the_locale thy name |>
   227   #mixins |> lookup_mixins serial;
   228   #mixins |> lookup_mixins serial;
   228 
   229 
   229 (* FIXME unused!? *)
   230 (* FIXME unused!? *)
   691     "back-chain all introduction rules of locales");
   692     "back-chain all introduction rules of locales");
   692 
   693 
   693 
   694 
   694 (*** diagnostic commands and interfaces ***)
   695 (*** diagnostic commands and interfaces ***)
   695 
   696 
   696 fun hyp_spec_of thy = #hyp_spec o the_locale thy;
       
   697 
       
   698 fun print_locales verbose thy =
   697 fun print_locales verbose thy =
   699   Pretty.block
   698   Pretty.block
   700     (Pretty.breaks
   699     (Pretty.breaks
   701       (Pretty.str "locales:" ::
   700       (Pretty.str "locales:" ::
   702         map (Pretty.mark_str o #1)
   701         map (Pretty.mark_str o #1)