equal
deleted
inserted
replaced
160 error ("no class: " ^ class); |
160 error ("no class: " ^ class); |
161 |
161 |
162 fun get_superclass_derivation thy (subclass, superclass) = |
162 fun get_superclass_derivation thy (subclass, superclass) = |
163 if subclass = superclass |
163 if subclass = superclass |
164 then SOME [subclass] |
164 then SOME [subclass] |
165 else case Graph.find_paths ((fst o fst o ClassData.get) thy) (subclass, superclass) |
165 else case Graph.irreducible_paths ((fst o fst o ClassData.get) thy) (subclass, superclass) |
166 of [] => NONE |
166 of [] => NONE |
167 | (p::_) => (SOME o filter (is_operational_class thy)) p; |
167 | (p::_) => (SOME o filter (is_operational_class thy)) p; |
168 |
168 |
169 fun the_ancestry thy classes = |
169 fun the_ancestry thy classes = |
170 let |
170 let |