diff -r 8737b866bd1c -r 67dbf5cdc056 src/Pure/Thy/sessions.scala --- a/src/Pure/Thy/sessions.scala Fri Sep 29 17:41:39 2017 +0200 +++ b/src/Pure/Thy/sessions.scala Fri Sep 29 20:49:42 2017 +0200 @@ -114,7 +114,7 @@ sealed case class Base( pos: Position.T = Position.none, global_theories: Map[String, String] = Map.empty, - loaded_theories: Set[String] = Set.empty, + loaded_theories: Graph[String, Outer_Syntax] = Graph.string, known: Known = Known.empty, keywords: Thy_Header.Keywords = Nil, syntax: Outer_Syntax = Outer_Syntax.empty, @@ -126,9 +126,14 @@ def platform_path: Base = copy(known = known.platform_path) def standard_path: Base = copy(known = known.standard_path) - def loaded_theory(name: String): Boolean = loaded_theories.contains(name) + def loaded_theory(name: String): Boolean = loaded_theories.defined(name) def loaded_theory(name: Document.Node.Name): Boolean = loaded_theory(name.theory) + def loaded_theory_syntax(name: String): Option[Outer_Syntax] = + if (loaded_theory(name)) Some(loaded_theories.get_node(name)) else None + def loaded_theory_syntax(name: Document.Node.Name): Option[Outer_Syntax] = + loaded_theory_syntax(name.theory) + def known_theory(name: String): Option[Document.Node.Name] = known.theories.get(name)