Packages

object Isabelle

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

Type Members

  1. final case class DInt(int: Long) extends Data with Product with Serializable
  2. final case class DList(list: Data*) extends Data with Product with Serializable
  3. final case class DObject(id: ID) extends Data with Product with Serializable
  4. final case class DString(string: String) extends Data with Product with Serializable
  5. sealed trait Data extends AnyRef

    An algebraic datatype that allows to encode trees of data containing integers (DInt), strings (DString), and IDs of objects (DObject) in the object store of the Isabelle process.

    An algebraic datatype that allows to encode trees of data containing integers (DInt), strings (DString), and IDs of objects (DObject) in the object store of the Isabelle process. A constructor DList is used to create a tree structure.

    No particular semantics is given to these trees, their purpose is to be a sufficiently flexible datatype to be able to encode arbitrary data types for transfer.

    A corresponding datatype is defined in the Control_Isabelle ML structure in the Isabelle process:

    datatype data = DString of string | DInt of int | DList of data list | DObject of exn

    Note that while DObject on the Scala side contains an ID of an object, on the ML side we instead directly have the object that is references (of type exn). Serialization and deserialization creates and dereferences object IDs as needed.

    The data that can be stored in these trees is subject to the following additional limitations:

    • Strings must be ASCII (non-ASCII characters will be replaced by default characters).
    • Integers must be 64bit signed integers (this is enforced in Scala due to the size of the type Long but ML integers have no size limit (like BigInt)). Larger integers will be truncated to 64 bits.
    • Strings must be at most 67.108.856 characters long (String.maxSize in ML). Otherwise there an exception is raised in the Isabelle process
    See also

    applyFunction for details how to use this type to transfer data

  6. final class ID extends AnyRef

    An ID referencing an object in the object store (see the description of Isabelle).

    An ID referencing an object in the object store (see the description of Isabelle). If this ID is not referenced any more, the referenced object will be garbage collected in the Isabelle process, too.

  7. case class Setup(isabelleHome: Path, logic: String = "HOL", userDir: Option[Path] = None, workingDirectory: Path = Paths.get(""), sessionRoots: Seq[Path] = Nil, build: Boolean = true, isabelleCommandHandler: (Data) => Unit = Isabelle.defaultCommandHandler) extends SetupGeneral with Product with Serializable

    Configuration for initializing an Isabelle instance.

    Configuration for initializing an Isabelle instance.

    (The fields of this class are documents in the source code. I am not sure why they do not occur in the generated API doc.)

    isabelleHome

    Path to the Isabelle distribution

    logic

    Heap image to load in Isabelle (e.g., HOL, HOL-Analysis, etc.)

    userDir

    User configuration directory for Isabelle. Must end in /.isabelle if provided. None (default) means to let Isabelle chose the default location. Here Isabelle stores user configuration and heap images (unless the location of the heap images is configured differently, see the Isabelle system manual)

    workingDirectory

    Working directory in which the Isabelle process should run. (Default: working directory of the Scala process.) All other paths described below are interpreted relative to workingDirectory (unless they are absolute).

    sessionRoots

    Additional session directories in which Isabelle will search for sessions (must contain ROOT files and optionally ROOTS files, see the Isabelle system manual). Default: no additional session directories

    build

    Whether to build the Isabelle heap before running Isabelle. If false, the heap will never be built. (This means changes in the Isabelle theories will not be reflected. And if the heap was never built, the Isabelle process fails.) If true, the Isabelle build command will be invoked. That command automatically checks for changed dependencies but may add a noticable delay even if the heap was already built.

    isabelleCommandHandler

    see SetupGeneral.isabelleCommandHandler

  8. sealed trait SetupGeneral extends AnyRef

    Parent trait for different kinds of configuration for Isabelle.

    Parent trait for different kinds of configuration for Isabelle. See in particular Setup.

  9. case class SetupRunning(inputPipe: Path, outputPipe: Path, isabelleCommandHandler: (Data) => Unit = Isabelle.defaultCommandHandler) extends SetupGeneral with Product with Serializable

    Configuration for connecting to an already running Isabelle process.

    Configuration for connecting to an already running Isabelle process. The Isabelle process must load control_isabelle.ml (available as a resource in this package) and invoke Control_Isabelle.handleLines ().

    Before loading control_isabelle.ml, the values COMMUNICATION_STREAMS and SECRETS need to be initialized in ML. SECRETS needs to be initialized with the secrets use in the communication with the Isabelle process. These values are currently chosen by the Isabelle class itself, making it currently impossible to use SetupRunning.

    inputPipe

    the path of a named pipe for the protocol messages sent to the Isabelle process (corresponding to first component of COMMUNICATION_STREAMS)

    outputPipe

    the path of a named pipe for the protocol messages sent by the Isabelle process (corresponding to second component of COMMUNICATION_STREAMS)

    isabelleCommandHandler

    see SetupGeneral.isabelleCommandHandler

    Annotations
    @Experimental()

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. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def buildSession(setup: Setup): Unit

    Runs the Isabelle build process to build the session heap image setup.logic

    Runs the Isabelle build process to build the session heap image setup.logic

    This is done automatically by the constructors of Isabelle unless build=false.

    setup

    Configuration of Isabelle.

  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  7. def defaultCommandHandler(data: Data): Unit
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. def jedit(setup: Setup, files: Seq[Path]): Unit

    Starts Isabelle/jEdit (interactive editing of theories) with the given Isabelle configuration.

    Starts Isabelle/jEdit (interactive editing of theories) with the given Isabelle configuration.

    setup

    Isabelle configuration

    files

    Files to open in jEdit

    Exceptions thrown

    IsabelleJEditException if jEdit fails (returns return code ≠0)

  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  17. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

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

Inherited from AnyRef

Inherited from Any

Ungrouped