Package

info.hupel

isabelle

Permalink

package isabelle

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. isabelle
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait Codec[T] extends AnyRef

    Permalink

    A type class representing the ability to convert a type to and from an XML representation.

    A type class representing the ability to convert a type to and from an XML representation.

    For combinators to create codecs, refer to the companion object.

    Contract

    Instances of this class must satisfy the following contract: Decoding any value produced via encode must succeed, yielding the original value. The mlType field must contain a string representation of the corresponding type in Isabelle/ML.

    For the opposite direction, it is generally expected that a value which cannot be produced via encode should not decode cleanly. This is generally achieved by adding tags to the trees. For example, if the codec for type Foo for a given value would produce an XML document t before tagging, the XML document after tagging would be <tag name="foo">t</tag>. The tagged method transforms a raw codec into a tagged codec. Nested tags are allowed (for example, when chaining multiple calls of tagged), but produce additional overhead in the resulting XML documents.

  2. final case class DecodingException(msg: String, body: Body) extends RuntimeException with Product with Serializable

    Permalink

    Error case of XMLResult as an exception.

    Error case of XMLResult as an exception.

    When decoding an XML tree sent from the prover fails, this exception is fed into the corresponding observer.

  3. type HTML = TypedTag[String]

    Permalink
  4. sealed trait Instruction[A] extends AnyRef

    Permalink
  5. final case class Model(env: Environment, regions: Map[Path, Regions] = Map.empty) extends Product with Serializable

    Permalink
  6. sealed abstract class Observer[+T] extends AnyRef

    Permalink

    An iteratee-like structure consuming XML trees and eventually producing an output of type T, or an error.

    An iteratee-like structure consuming XML trees and eventually producing an output of type T, or an error.

    On a high level, this can be imagined like a function taking a list of trees as an argument. In most cases, user code does not care about the intermediate results. For that, combinators exist in the companion object and Operation.

    See also

    info.hupel.isabelle.Operation

    info.hupel.isabelle.System#invoke

  7. abstract class Operation[-I, +O] extends AnyRef

    Permalink

    Description of an atomic interaction with the prover.

    Description of an atomic interaction with the prover.

    An operation can be roughly seen as a remote procedure call: a method name, an input argument of type I and an output value of type O, potentially accompanied by a stream of auxiliary data. (For almost all use cases, the latter is irrelevant.)

    Data is transferred between JVM and the prover using XML trees. To convert between typed data and their XML representation, codecs may be used.

    In the most general case, an operation listens for a stream of output from the prover using an observer, comparable to iteratees.

    Operations can most easily be constructed with the implicitly combinator. That combinator will only wait for final results and ignore intermediate data.

    See also

    System#invoke

  8. type Program[A] = Free[Instruction, A]

    Permalink
  9. trait ProverResult[+T] extends AnyRef

    Permalink

    Result from the prover.

    Result from the prover.

    In the error case, a special ProverException will be provided.

    See also

    info.hupel.isabelle.System#invoke

  10. final case class Range(start: Int, end: Int) extends Product with Serializable

    Permalink
  11. final case class Region(range: Range, markup: Vector[Markup], body: Vector[Tree], subRegions: Regions = Regions.empty) extends Product with Serializable

    Permalink
  12. final case class Regions(items: List[Region]) extends Product with Serializable

    Permalink
  13. final case class Reports(items: Vector[Tree]) extends Product with Serializable

    Permalink
  14. final class System extends AnyRef

    Permalink

    A running instance of a prover.

    A running instance of a prover.

    This class is thread-safe, that is, running multiple operations at the same time is expected and safe.

    See also

    info.hupel.isabelle.setup.Setup

  15. type XMLResult[+A] = Either[(String, Body), A]

    Permalink

    The result type for decoding values from XML trees.

    The result type for decoding values from XML trees. Failure values should contain an error message and a list of erroneous trees.

Value Members

  1. object Codec

    Permalink

    Combinators for codecs.

  2. object Instruction

    Permalink
  3. object Observer

    Permalink

    Cases of observers and combinators.

  4. object Operation

    Permalink

    Combinators for creating operations and basic operations.

  5. object Program extends Serializable

    Permalink
  6. object ProverResult

    Permalink
  7. object Regions extends Serializable

    Permalink
  8. object Reports extends Serializable

    Permalink
  9. object System

    Permalink

    Functions to build and create systems.

  10. package hol

    Permalink
  11. package internal

    Permalink
  12. package japi

    Permalink
  13. package ml

    Permalink
  14. package pure

    Permalink

    Collection of standard types for communication with Isabelle.

Inherited from AnyRef

Inherited from Any

Ungrouped