src/HOL/Tools/Quotient/quotient_info.ML
changeset 45272 5995ab88a00f
parent 42361 23f352990944
child 45273 728ed9d28c63
equal deleted inserted replaced
45271:8f204549c2a5 45272:5995ab88a00f
    18   val maps_update: string -> maps_info -> Proof.context -> Proof.context
    18   val maps_update: string -> maps_info -> Proof.context -> Proof.context
    19   val print_mapsinfo: Proof.context -> unit
    19   val print_mapsinfo: Proof.context -> unit
    20 
    20 
    21   type quotdata_info = {qtyp: typ, rtyp: typ, equiv_rel: term, equiv_thm: thm}
    21   type quotdata_info = {qtyp: typ, rtyp: typ, equiv_rel: term, equiv_thm: thm}
    22   val transform_quotdata: morphism -> quotdata_info -> quotdata_info
    22   val transform_quotdata: morphism -> quotdata_info -> quotdata_info
    23   val quotdata_lookup_raw: theory -> string -> quotdata_info option
    23   val quotdata_lookup: theory -> string -> quotdata_info option
    24   val quotdata_lookup: theory -> string -> quotdata_info     (* raises NotFound *)
       
    25   val quotdata_update_thy: string -> quotdata_info -> theory -> theory
    24   val quotdata_update_thy: string -> quotdata_info -> theory -> theory
    26   val quotdata_update_gen: string -> quotdata_info -> Context.generic -> Context.generic
    25   val quotdata_update_gen: string -> quotdata_info -> Context.generic -> Context.generic
    27   val quotdata_dest: Proof.context -> quotdata_info list
    26   val quotdata_dest: Proof.context -> quotdata_info list
    28   val print_quotinfo: Proof.context -> unit
    27   val print_quotinfo: Proof.context -> unit
    29 
    28 
   134   {qtyp = Morphism.typ phi qtyp,
   133   {qtyp = Morphism.typ phi qtyp,
   135    rtyp = Morphism.typ phi rtyp,
   134    rtyp = Morphism.typ phi rtyp,
   136    equiv_rel = Morphism.term phi equiv_rel,
   135    equiv_rel = Morphism.term phi equiv_rel,
   137    equiv_thm = Morphism.thm phi equiv_thm}
   136    equiv_thm = Morphism.thm phi equiv_thm}
   138 
   137 
   139 fun quotdata_lookup_raw thy str = Symtab.lookup (QuotData.get thy) str
   138 fun quotdata_lookup thy str = Symtab.lookup (QuotData.get thy) str
   140 
       
   141 fun quotdata_lookup thy str =
       
   142   case Symtab.lookup (QuotData.get thy) str of
       
   143     SOME qinfo => qinfo
       
   144   | NONE => raise NotFound
       
   145 
   139 
   146 fun quotdata_update_thy str qinfo = QuotData.map (Symtab.update (str, qinfo))
   140 fun quotdata_update_thy str qinfo = QuotData.map (Symtab.update (str, qinfo))
   147 fun quotdata_update_gen str qinfo = Context.mapping (quotdata_update_thy str qinfo) I
   141 fun quotdata_update_gen str qinfo = Context.mapping (quotdata_update_thy str qinfo) I
   148 
   142 
   149 fun quotdata_dest lthy =
   143 fun quotdata_dest lthy =