148 val dtnvs' = |
148 val dtnvs' = |
149 map (fn (dname,vs,mx) => (Sign.full_name thy dname,vs)) dtnvs; |
149 map (fn (dname,vs,mx) => (Sign.full_name thy dname,vs)) dtnvs; |
150 val eqs' : ((string * typ list) * |
150 val eqs' : ((string * typ list) * |
151 (binding * (bool * binding option * typ) list * mixfix) list) list = |
151 (binding * (bool * binding option * typ) list * mixfix) list) list = |
152 check_and_sort_domain false dtnvs' cons'' thy; |
152 check_and_sort_domain false dtnvs' cons'' thy; |
153 val thy = thy |> Domain_Syntax.add_syntax false eqs'; |
153 val thy = Domain_Syntax.add_syntax eqs' thy; |
154 val dts = map (Type o fst) eqs'; |
154 val dts = map (Type o fst) eqs'; |
155 val new_dts = map (fn ((s,Ts),_) => (s, map (fst o dest_TFree) Ts)) eqs'; |
155 val new_dts = map (fn ((s,Ts),_) => (s, map (fst o dest_TFree) Ts)) eqs'; |
156 fun strip ss = drop (find_index (fn s => s = "'") ss + 1) ss; |
156 fun strip ss = drop (find_index (fn s => s = "'") ss + 1) ss; |
157 fun one_con (con,args,mx) = |
157 fun one_con (con,args,mx) = |
158 (Binding.name_of con, (* FIXME preverse binding (!?) *) |
158 (Binding.name_of con, (* FIXME preverse binding (!?) *) |
221 Domain_Isomorphism.domain_isomorphism |
221 Domain_Isomorphism.domain_isomorphism |
222 (map (fn ((vs, dname, mx, _), eq) => |
222 (map (fn ((vs, dname, mx, _), eq) => |
223 (map fst vs, dname, mx, mk_eq_typ eq, NONE)) |
223 (map fst vs, dname, mx, mk_eq_typ eq, NONE)) |
224 (eqs''' ~~ eqs')) |
224 (eqs''' ~~ eqs')) |
225 |
225 |
226 val thy = thy |> Domain_Syntax.add_syntax true eqs'; |
|
227 val dts = map (Type o fst) eqs'; |
226 val dts = map (Type o fst) eqs'; |
228 val new_dts = map (fn ((s,Ts),_) => (s, map (fst o dest_TFree) Ts)) eqs'; |
227 val new_dts = map (fn ((s,Ts),_) => (s, map (fst o dest_TFree) Ts)) eqs'; |
229 fun strip ss = drop (find_index (fn s => s = "'") ss + 1) ss; |
228 fun strip ss = drop (find_index (fn s => s = "'") ss + 1) ss; |
230 fun one_con (con,args,mx) = |
229 fun one_con (con,args,mx) = |
231 (Binding.name_of con, (* FIXME preverse binding (!?) *) |
230 (Binding.name_of con, (* FIXME preverse binding (!?) *) |