168 |
168 |
169 /* resulting sessions */ |
169 /* resulting sessions */ |
170 |
170 |
171 def make_session( |
171 def make_session( |
172 selected_sessions: List[String], |
172 selected_sessions: List[String], |
173 pure: Boolean = false, |
173 session_logic: String = logic, |
174 record_proofs: Boolean = false): List[Session] = |
174 record_proofs: Boolean = false): List[Session] = |
175 { |
175 { |
176 if (selected_sessions.isEmpty) Nil |
176 if (selected_sessions.isEmpty) Nil |
177 else { |
177 else List(new Session(context, session_logic, log, selected_sessions, record_proofs)) |
178 val session_logic = if (pure) isabelle.Thy_Header.PURE else logic |
|
179 List(new Session(context, session_logic, log, selected_sessions, record_proofs)) |
|
180 } |
|
181 } |
178 } |
182 |
179 |
183 val base = |
180 val base = |
184 if (logic == isabelle.Thy_Header.PURE) Nil |
181 if (logic == isabelle.Thy_Header.PURE) Nil |
185 else make_session(base_sessions, pure = true) |
182 else make_session(base_sessions, session_logic = isabelle.Thy_Header.PURE) |
186 |
183 |
187 val main = |
184 val main = |
188 make_session( |
185 make_session( |
189 session_graph.topological_order.filterNot(name => |
186 session_graph.topological_order.filterNot(name => |
190 afp_sessions.contains(name) || |
187 afp_sessions.contains(name) || |
191 base_sessions.contains(name) || |
188 base_sessions.contains(name) || |
192 proof_sessions.contains(name))) |
189 proof_sessions.contains(name))) |
193 |
190 |
194 val proofs = |
191 val proofs = |
195 make_session(proof_sessions, pure = true, record_proofs = true) |
192 make_session(proof_sessions, session_logic = isabelle.Thy_Header.PURE, record_proofs = true) |
196 |
193 |
197 val afp = |
194 val afp = |
198 if (afp_sessions.isEmpty) Nil |
195 if (afp_sessions.isEmpty) Nil |
199 else { |
196 else { |
200 val (part1, part2) = |
197 val (part1, part2) = |