equal
deleted
inserted
replaced
173 eqs |
173 eqs |
174 end |
174 end |
175 |
175 |
176 fun contains_recursive_type_under_function_types xs = |
176 fun contains_recursive_type_under_function_types xs = |
177 exists (fn (_, (_, _, cs)) => cs |> exists (snd #> exists (fn dT => |
177 exists (fn (_, (_, _, cs)) => cs |> exists (snd #> exists (fn dT => |
178 (case Datatype_Aux.strip_dtyp dT of (_ :: _, Datatype.DtRec _) => true | _ => false)))) xs |
178 (case Datatype_Aux.strip_dtyp dT of (_ :: _, Datatype_Aux.DtRec _) => true | _ => false)))) xs |
179 |
179 |
180 fun instantiate_narrowing_datatype config descr vs tycos prfx (names, auxnames) (Ts, Us) thy = |
180 fun instantiate_narrowing_datatype config descr vs tycos prfx (names, auxnames) (Ts, Us) thy = |
181 let |
181 let |
182 val _ = Datatype_Aux.message config "Creating narrowing generators ..."; |
182 val _ = Datatype_Aux.message config "Creating narrowing generators ..."; |
183 val narrowingsN = map (prefix (narrowingN ^ "_")) (names @ auxnames); |
183 val narrowingsN = map (prefix (narrowingN ^ "_")) (names @ auxnames); |