Packages

object Theory extends OperationCollection

Source
Theory.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Theory
  2. OperationCollection
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. class Ops extends AnyRef
    Attributes
    protected[isabelle]

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def Ops(implicit isabelle: Isabelle, ec: ExecutionContext): Ops

    Returns an instance of type Ops.

    Returns an instance of type Ops. It is guaranteed that for each instance isabelle, exactly one instance of Obs is created (using the ec from the first such invocation). (If you see this doc string in a class different from OperationCollection but no definition of the class Ops, treat this function as if it was private.)

    Definition Classes
    OperationCollection
  5. def apply(path: Path)(implicit isabelle: Isabelle, ec: ExecutionContext): Theory

    Retrieves a theory located at the path path.

    Retrieves a theory located at the path path.

    The path is interpreted relative to the Isabelle working directory (Isabelle.Setup.workingDirectory).

    If path ends in X.thy, the theory will have the fully qualified name Draft.X.

    Unqualified imports of the theory X are searched for in the same directory. Qualified imports must be findable according to the rules specified in apply(String).

    The note about thread-safety from apply(String) applies for this function, too.

  6. def apply(name: String)(implicit isabelle: Isabelle, ec: ExecutionContext): Theory

    Retrieves a theory by its name.

    Retrieves a theory by its name. E.g., Theory("HOL-Analysis.Inner_Product").

    name must be the fully qualified name of the theory (with exception of "global theories" which have no qualifier, e.g., Pure, Main, Complex_Main, ...).

    For a theory to be found, it needs to be included in the current session image (specified via the logic parameter in Isabelle.Setup), or the directory containing its that theory's session must be configured via registerSessionDirectoriesNow. The same requirements apply to all theories imported by the theory name. (I.e., all theories required to execute name must be either in the session image or registered via registerSessionDirectoriesNow.) ROOT and ROOTS are not taken into account for finding the theories.

    Note: This function invokes Thy_Info.use_thy in the Isabelle process. That function is not thread-safe. Therefore separate invocations of apply will not be executed in parallel. (Locking happens on Isabelle side, thus this function returns immediately anyway.) If you want to invoke Thy_Info.use_thy or related functions yourself, please use Theory.mutex to avoid concurrent execution with this function.

  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  13. def init()(implicit isabelle: Isabelle, executionContext: ExecutionContext): Unit

    Makes sure an Ops instance for the instance isabelle is initialized.

    Makes sure an Ops instance for the instance isabelle is initialized. This is useful when code needs to be sure that the global initialization inside the Ops class has happened (e.g., declarations of ML types via Isabelle.executeMLCodeNow) even if it does not access any of the fields in the Ops class.

    Can safely be called several times with the same isabelle and/or executionContext.

    Definition Classes
    OperationCollection
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. def mergeTheories(theories: Theory*)(implicit isabelle: Isabelle, executionContext: ExecutionContext): Theory

    Same as mergeTheories(theories = theories).

  16. def mergeTheories(mergedName: String = null, endTheory: Boolean = true, theories: Seq[Theory])(implicit isabelle: Isabelle, executionContext: ExecutionContext): Theory

    Creates a new theory that imports several other theories.

    Creates a new theory that imports several other theories. (Equivalent to theory MergedTheoryName import Theory1 Theory2 Theory3 ... begin in Isabelle/Isar.)

    A typical use case would be to create a context that inherits from several theories at once, E.g., Context(Theory.mergeTheories(theories=List(theory1, theory2, theory3))). (Or shorter: Context(mergeTheories(theory1, theory2, theory3)).)

    mergedName

    The unqualified name of the new theory. The default is an autogenerated unique (randomized) name.

    endTheory

    Whether to the returned theory should be "finished" (analogue to the "end" command in Isabelle/Isar).

    theories

    The theories to import

    returns

    a theories inheriting from all theories theories

  17. def mutex(implicit isabelle: Isabelle, executionContext: ExecutionContext): Mutex

    A mutex (in the Isabelle process) for synchronizing non-threadsafe theory operations (e.g., Thy_Info.use_thy).

    A mutex (in the Isabelle process) for synchronizing non-threadsafe theory operations (e.g., Thy_Info.use_thy). This mutex is internally by operations in Theory. Use this mutex to avoid concurrent execution with the functions in Theory.

    See also

    Mutex.wrapWithMutex for a helper function to do locking with an Isabelle Mutex

  18. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. def newOps(implicit isabelle: Isabelle, ec: ExecutionContext): Ops

    Should construct an instance of type Ops

    Should construct an instance of type Ops

    Attributes
    protected
    Definition Classes
    TheoryOperationCollection
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  22. def registerSessionDirectories(paths: (String, Path)*)(implicit isabelle: Isabelle, ec: ExecutionContext): Future[Unit]

    Like registerSessionDirectoriesNow but returns a Future.

    Like registerSessionDirectoriesNow but returns a Future. Only once the future completes successfully, the session directories are guaranteed to have been registered.

  23. def registerSessionDirectoriesNow(paths: (String, Path)*)(implicit isabelle: Isabelle, ec: ExecutionContext): Unit

    Registers session directories.

    Registers session directories.

    Each Isabelle session (such as HOL, HOL-Library, FOL, ...) has one (or several) associated session directories that contain the theory files. (E.g., the session directory of HOL is .../src/HOL, and thus the theory HOL.List is found in .../src/HOL/List.thy.) The session directories are configured in Isabelle via the ROOT and ROOTS files. Currently, however, scala-isabelle cannot read the ROOT(S) files. Instead, session directories need to be registered with this function.

    More specifically:

    • When Isabelle loads a theory X.Y, and X.Y is in contained the session image (configured with Isabelle.Setup.logic), then the theory contained in the session image is used. (Conflicting session directory specifications will be ignored.)
    • Otherwise, the session directory D for X is looked up, and the file D/Y.thy is read.
    • Otherwise Y.thy in the current directory is opened.
    • When a theory file is read, resolution of the imports of that theory is done the same way.
    • One session can have several session directories, but one session directory must not be shared by several sessions
    paths

    Pairs (session, dir). Meaning that dir is a session directory for session.

    See also

    Theory.apply(String)

  24. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  25. def toString(): String
    Definition Classes
    AnyRef → Any
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  28. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  29. object TheoryConverter extends Converter[Theory]

    Representation of theories in ML.

    Representation of theories in ML. (See the general discussion of Context, the same things apply to Theory.)

    • ML type: theory
    • Representation of theory thy as an exception: E_Theory thy

    Available as an implicit value by importing de.unruh.isabelle.pure.Implicits._

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from OperationCollection

Inherited from AnyRef

Inherited from Any

Ungrouped