src/HOL/Tools/Lifting/lifting_bnf.ML
changeset 58186 a6c3962ea907
parent 58179 2de7b0313de3
child 58191 b3c71d630777
equal deleted inserted replaced
58185:e6e3b20340be 58186:a6c3962ea907
     4 Setup for Lifting for types that are BNF.
     4 Setup for Lifting for types that are BNF.
     5 *)
     5 *)
     6 
     6 
     7 signature LIFTING_BNF =
     7 signature LIFTING_BNF =
     8 sig
     8 sig
       
     9   val lifting_interpretation: string
     9 end
    10 end
    10 
    11 
    11 structure Lifting_BNF : LIFTING_BNF =
    12 structure Lifting_BNF : LIFTING_BNF =
    12 struct
    13 struct
    13 
    14 
    14 open BNF_Util
    15 open BNF_Util
    15 open BNF_Def
    16 open BNF_Def
    16 open Transfer_BNF
    17 open Transfer_BNF
       
    18 
       
    19 val lifting_interpretation = "lifting"
    17 
    20 
    18 (* Quotient map theorem *)
    21 (* Quotient map theorem *)
    19 
    22 
    20 fun Quotient_tac bnf ctxt i =
    23 fun Quotient_tac bnf ctxt i =
    21   let
    24   let
   113         @ relator_distr bnf
   116         @ relator_distr bnf
   114     in
   117     in
   115       snd (Local_Theory.notes notes lthy)
   118       snd (Local_Theory.notes notes lthy)
   116     end
   119     end
   117 
   120 
   118 val _ = Theory.setup (bnf_interpretation
   121 val _ = Theory.setup (bnf_interpretation lifting_interpretation
   119   (bnf_only_type_ctr (map_local_theory o lifting_bnf_interpretation))
   122   (bnf_only_type_ctr (BNF_Util.map_local_theory o lifting_bnf_interpretation))
   120   (bnf_only_type_ctr lifting_bnf_interpretation))
   123   (bnf_only_type_ctr lifting_bnf_interpretation))
   121 
   124 
   122 end
   125 end