src/Pure/Tools/dump.scala
changeset 70862 a4ccd277e9c4
parent 70861 cb07f21c9916
child 70864 e94fec16bf50
equal deleted inserted replaced
70861:cb07f21c9916 70862:a4ccd277e9c4
   150 
   150 
   151       val afp_bulky_sessions =
   151       val afp_bulky_sessions =
   152         (for (name <- afp_sessions.iterator if deps.sessions_structure(name).is_afp_bulky)
   152         (for (name <- afp_sessions.iterator if deps.sessions_structure(name).is_afp_bulky)
   153           yield name).toList
   153           yield name).toList
   154 
   154 
   155       val base_sessions = session_graph.all_preds(List(logic)).reverse
   155       val base_sessions =
       
   156         session_graph.all_preds(List(logic).filter(session_graph.defined)).reverse
   156 
   157 
   157       val base =
   158       val base =
   158         if (logic == isabelle.Thy_Header.PURE) Nil
   159         if (logic == isabelle.Thy_Header.PURE || base_sessions.isEmpty) Nil
   159         else List(new Session(context, isabelle.Thy_Header.PURE, log, base_sessions))
   160         else List(new Session(context, isabelle.Thy_Header.PURE, log, base_sessions))
   160 
   161 
   161       val main =
   162       val main =
   162         new Session(context, logic, log,
   163         new Session(context, logic, log,
   163           session_graph.topological_order.filterNot(name =>
   164           session_graph.topological_order.filterNot(name =>
   167         if (afp_sessions.isEmpty) Nil
   168         if (afp_sessions.isEmpty) Nil
   168         else {
   169         else {
   169           val (part1, part2) =
   170           val (part1, part2) =
   170           {
   171           {
   171             val graph = session_graph.restrict(afp_sessions -- afp_bulky_sessions)
   172             val graph = session_graph.restrict(afp_sessions -- afp_bulky_sessions)
   172             val force_partition1 = AFP.force_partition1.filter(graph.defined(_))
   173             val force_partition1 = AFP.force_partition1.filter(graph.defined)
   173             val force_part1 = graph.all_preds(graph.all_succs(force_partition1)).toSet
   174             val force_part1 = graph.all_preds(graph.all_succs(force_partition1)).toSet
   174             graph.keys.partition(a => force_part1(a) || graph.is_isolated(a))
   175             graph.keys.partition(a => force_part1(a) || graph.is_isolated(a))
   175           }
   176           }
   176           for (part <- List(part1, part2, afp_bulky_sessions) if part.nonEmpty)
   177           for (part <- List(part1, part2, afp_bulky_sessions) if part.nonEmpty)
   177             yield new Session(context, logic, log, part)
   178             yield new Session(context, logic, log, part)