equal
deleted
inserted
replaced
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 |