equal
deleted
inserted
replaced
104 (dom_eqn : typ * (binding * (bool * binding option * typ) list * mixfix) list) |
104 (dom_eqn : typ * (binding * (bool * binding option * typ) list * mixfix) list) |
105 (thy : theory) = |
105 (thy : theory) = |
106 let |
106 let |
107 |
107 |
108 val _ = message ("Proving isomorphism properties of domain "^dname^" ..."); |
108 val _ = message ("Proving isomorphism properties of domain "^dname^" ..."); |
109 val map_tab = Domain_Isomorphism.get_map_tab thy; |
109 val map_tab = Domain_Take_Proofs.get_map_tab thy; |
110 |
110 |
111 |
111 |
112 (* ----- getting the axioms and definitions --------------------------------- *) |
112 (* ----- getting the axioms and definitions --------------------------------- *) |
113 |
113 |
114 local |
114 local |
137 |
137 |
138 val rep_const = Const(dname^"_rep", lhsT ->> rhsT); |
138 val rep_const = Const(dname^"_rep", lhsT ->> rhsT); |
139 |
139 |
140 val abs_const = Const(dname^"_abs", rhsT ->> lhsT); |
140 val abs_const = Const(dname^"_abs", rhsT ->> lhsT); |
141 |
141 |
142 val iso_info : Domain_Isomorphism.iso_info = |
142 val iso_info : Domain_Take_Proofs.iso_info = |
143 { |
143 { |
144 absT = lhsT, |
144 absT = lhsT, |
145 repT = rhsT, |
145 repT = rhsT, |
146 abs_const = abs_const, |
146 abs_const = abs_const, |
147 rep_const = rep_const, |
147 rep_const = rep_const, |
227 pat_rews @ dist_les @ dist_eqs) |
227 pat_rews @ dist_les @ dist_eqs) |
228 end; (* let *) |
228 end; (* let *) |
229 |
229 |
230 fun comp_theorems (comp_dnam, eqs: eq list) thy = |
230 fun comp_theorems (comp_dnam, eqs: eq list) thy = |
231 let |
231 let |
232 val map_tab = Domain_Isomorphism.get_map_tab thy; |
232 val map_tab = Domain_Take_Proofs.get_map_tab thy; |
233 |
233 |
234 val dnames = map (fst o fst) eqs; |
234 val dnames = map (fst o fst) eqs; |
235 val conss = map snd eqs; |
235 val conss = map snd eqs; |
236 val comp_dname = Sign.full_bname thy comp_dnam; |
236 val comp_dname = Sign.full_bname thy comp_dnam; |
237 |
237 |