Packages

  • package root
    Definition Classes
    root
  • package info
    Definition Classes
    root
  • package kwarc
    Definition Classes
    info
  • package mmt
    Definition Classes
    kwarc
  • package api

    This is the main package of the MMT API.

    This is the main package of the MMT API.

    It holds subpackages for all data structures, data containers, and the central algorithms and services.

    Classes directly defined in the package

    Some minor classes that are used throughout MMT are defined in this package, in particular:

    • MMT URIs in the class Path and Namespace
    • processing and content errors in the class Error

    The package also contains root classes for certain types that are subclassed throughout the package. Most importantly:

    • StructuralElement: structure-level (= named) parts in the data structures for the MMT language: documents, theories, constants, ...
    • MMTTask: tasks for a single object: parsing, checking, ...
    • Rule: object-level part of the MMT language that is written in Scala

    Subpackages

    Data structures for the MMT language

    The data structures for the MMT languages are defined in 4 packages corresponding to the 4 levels: - documents: Documents and all other NarrativeElements - modules: Modules (= the toplevel declarations), in particular Theorys and Views - symbols: all Declarations inside modules, in particular Constants - objects: all anonymous Objects (e.g., formulas, functions, etc.), in particular Contexts and Terms

    The former 3 levels are jointly called 'structural' levels. All elements subclass StructuralElement, have an MMT URI, and carry an MMT URI referring to their parent in the MMT abstract syntax tree.

    Structural elements are extensible (via DerivedModules and DerivedDeclarations), and the package patterns defines declaration patterns as a built-in extension.

    All structural elements are mutable and implement the ContainerElement interface for changing their children. Objects, by contrast, are represented as immutable inductive types.(except for carrying metadata.Metadata and objects.ClientProperties). The boundary between structural elements and objects is mediated by ComponentContainers: these are mutable, owned by structural elements, and maintain objects.

    A few auxiliary data structures shifted to separate packages: - opaque: external (i.e., informal, computation) content - informal: partially outdated informal data structures - metadata: metadata annotations to all structural elements or objects

    The MMT main class and its internal state

    The package frontend contains the class Controller, which owns all state relevant for running MMT. Typically, each application creates a single instance of this class. The package also defines several other essential classes, most importantly MMT's extension (=plug-in, add-on) interfaces via the Extension class.

    The package libraries maintains the instances of MMT language data structures, in particular the Library class. Controller owns a Library, which stores all structural elements that have been loaded into memory.

    User interfaces

    The package frontend also contains the main executable classes, in particular the Shell class.

    The package gui collects all classes for building graphical user interfaces. This includes auxiliary classes for use in IDE plugins.

    The package web collects all classes for the HTTP interface of MMT.

    Physical storage of the MMT language files

    The package archives defines MMT Archives (= projects) as well as classes for building and working with archives. The latter include in particular the BuildManager and BuildTarget. Build targets include Importers and [Exporter]]s that translate between MMT and other formats.

    The package backend defines classes for maintaining archives and translating between the MMT URIs of structural elements and their physical storage locations.

    The central algorithms for processing MMT content

    The processing model of MMT consists of several major algorithms. - parser: read strings into MMT data structures - checking: check and refine MMT data structures - uom: pure computation on MMT data structures - proving: theorem proving on MMT data structures (in very early state)) - execution: imperative computation (in very, very early state) - presentation: rendering MMT data structures in user-facing formats (including HTML+presentation MathML)

    All algorithms are defined in Extensions coupled with default implementations. Moreover, all algorithms are split into two separate levels, one for structural elements and objects. See LeveledExtension.

    The package notations maintains the common code for parsing and presentation.

    The package valuebases maintains mathematical databases as a part of MMT.

    Other algorithms on the MMT data structures

    The package ontology contains a relational, semantic web-style ontology and query engine for it.

    The package moc contains change management.

    The package refactoring contains refactoring principles.

    General purpose utility functions

    The package utils defines general purpose APIs for files, URIs, HTML building, etc.

    Definition Classes
    mmt
  • package archives

    This package holds all classes related to MMT Archives (= project).

    This package holds all classes related to MMT Archives (= project).

    The BuildManager allows defining BuildTargets to run on archives, including in particular Importers and Exporters.

    Most archives are stored in hub of git repositories such as and MathHub or GitHub. Such hubs are represented by the class LMHHub, which allows for cloning, etc. archives.

    The list of currently open archives (from which MMT will load content if needed) is maintained by the backend.Backend.

    Definition Classes
    api
  • package backend

    This package maintains the interface between MMT content in persistent physical storage and MMT content loaded into memory.

    This package maintains the interface between MMT content in persistent physical storage and MMT content loaded into memory.

    The class Storage is the interface for individual physical storage containers. Most of the time this corresponds to a folder containing an archives.Archive.

    Content is usually stored in OMDoc XML format, which is parsed by the XMLStreamer.

    The class Backend maintains the registered storages and performs conversion between logical MMT URIs and physical locations.

    The frontend.Controller owns an instance of Backend. Any referenced MMT URI is lazily and transparently loaded from the backend into memory and unloaded if MMT runs out of memory.

    Definition Classes
    api
  • package checking

    The algorithm for checking MMT content.

    The algorithm for checking MMT content. See api for an overview of the algorithms.

    The main interfaces are - Checker: the main interface for checkers (combining a structure and an object checker) - StructureChecker: checking structural elements - ObjectChecker: checking objects

    The main implementations are - MMTStructureChecker for structural elements - RuleBasedChecker for objects

    The latter creates a Solver for each judgment, which perform type reconstruction.

    Structure checking is not extensible except through DerivedElements. Object checking is extensible through Rules.

    Definition Classes
    api
  • package documents

    NarrativeElements are all elements that do not have a semantics of their own.

    NarrativeElements are all elements that do not have a semantics of their own.

    The most important case are Documents. Inside, documents a few other other documents may occur.

    Definition Classes
    api
  • package execution

    The algorithm for imperatively executing MMT content.

    The algorithm for imperatively executing MMT content. This is currently very young and immature.

    See api for an overview of the algorithms.

    Definition Classes
    api
  • package frontend

    This package defines several central classes: - Controller is the main MMT class.

    This package defines several central classes: - Controller is the main MMT class. - Shell is the main executable (which will create one controller). - MMTConfig is the MMT configuration data structure. A controller maintains one configuration. - Extension is the addon/plugin interface of MMT. Every extension has access to one controller instance. - Report handles logging, and every instance of Logger has access to a report instance.

    Definition Classes
    api
  • package gui

    GUIPanel and [GUIFrame]] maintain a swing-based graphical interface to the frontend.Controller and its children.

    GUIPanel and [GUIFrame]] maintain a swing-based graphical interface to the frontend.Controller and its children.

    Definition Classes
    api
  • package informal
    Definition Classes
    api
  • package libraries

    Library maintains the structural elements that have been loaded into memory.

    Library maintains the structural elements that have been loaded into memory. That includes the theory diagram and all documents.

    ImplicitGraph maintains the commutative sub-diagram of implicit morphisms.

    Definition Classes
    api
  • package metadata

    MetaDatum is the stateless class that represents metadata items.

    MetaDatum is the stateless class that represents metadata items.

    MetaData statefully maintains a set of MetaDatums.

    Elements that have metadata inherit from HasMetaData.

    Linker and Tagger make setting and getting metadata easier.

    Definition Classes
    api
  • package moc

    Change is the main class statelessly representing differences/changes.

    Change is the main class statelessly representing differences/changes.

    Differ is a differ for MMT data structures.

    Definition Classes
    api
  • package modules

    MMT Modules, i.e., Theorys and Views.

    MMT Modules, i.e., Theorys and Views.

    Link unifies Views and symbols.Structures, the two kinds of atomic theory morphisms.

    ModuleOrLink unifies the two. That class defines most of the state of a module, in particular the body.

    Definition Classes
    api
  • package notations

    This package maintains the common data structures for parsing and presentation.

    This package maintains the common data structures for parsing and presentation.

    TextNotation is the main notation class. It is similar to MMT objects, in particular it is stateless.

    NotationContainer statefully maintains the notations assigned to a declaration. These are owned by StructuralElements to carry notations, akin to how they carry type/definition.

    Definition Classes
    api
  • package objects

    MMT objects are

    MMT objects are

    AnonymousDiagram, AnonymousTheory, and AnonymousMorphism represent anonymous counterparts to libraries.Library modules.Module}.

    This package also contains various auxiliary classes: - Position defines paths within objects - SubstitutionApplier is the main interface for substitution strategies. - Matcher is a simple matcher.

    Definition Classes
    api
  • package ontology

    This package contains a relational ontology and a query engine for it.

    This package contains a relational ontology and a query engine for it.

    The main classes are: - RelationalElement defines the concepts and relation of the ontology (TBox) - RelationalManager extracts the ABox from MMT content - RelStore maintains the model of the ontology (ABox) - RelationGraphExporter allows exporting the ABox as a graph. - Query defines a query language for the ontology - Evaluator implements the query language for a given ABox. - Search maintains classes for faceted search, in particular the facet for MathWebSearch.

    Definition Classes
    api
  • package opaque

    Informal or unknown content that MMT does not process.

    Informal or unknown content that MMT does not process. The main classes are - OpaqueElement: such content - OpaqueElementInterpreter the abstract interface for extensions that interpret it

    Definition Classes
    api
  • package parser

    The algorithm for parsing MMT content (strings to MMT data structures).

    The algorithm for parsing MMT content (strings to MMT data structures). See api for an overview of the algorithms.

    The main interfaces are - Parser: the main interface for parser (combining a structure and an object parser) - StructureParser: parsing structural elements - ObjectParser: parsing objects

    The main implementations are - KeywordBasedParser for structural elements in .mmt files - NotationBasedParser for objects

    The latter creates a Scanner for each string, which applies notations to parse user-defined mixifx syntax.

    Structure parsing is extensible using ParserExtensions. Object parsing is extensible using notations or LexerExtensions.

    Definition Classes
    api
  • package patterns

    Declaration patterns in the sense of Horozal's PhD thesis, realized as two special cases of structural features: - Pattern for the patterns (elaborates to nothing) - Instance for the instances of patterns (elaborates by looking up the pattern)

    Declaration patterns in the sense of Horozal's PhD thesis, realized as two special cases of structural features: - Pattern for the patterns (elaborates to nothing) - Instance for the instances of patterns (elaborates by looking up the pattern)

    Definition Classes
    api
  • package presentation

    The algorithm for presenting MMT content (data structures to user-facing formats).

    The algorithm for presenting MMT content (data structures to user-facing formats). See api for an overview of the algorithms.

    The main interfaces are - Presenter: the main interface for parser (combining a structure and an object parser) - StructurePresenter: presenting structural elements - ObjectPresenter: presenting objects

    The main implementations are (in each case for structural elements and objects) - for OMDoc XML: OMDocPresenter resp. OpenMathPresenter - for plain strings (using the toString methods): TextPresenter resp. ObjectTextPresenter - for nice human-oriented strings: MMTStructurePresenter resp. NotationBasedParser - for HTML: HTMLPresenter resp. MathMLPresenter

    Definition Classes
    api
  • package proving

    The algorithm for proving theorems about MMT content.

    The algorithm for proving theorems about MMT content. This is very premature and experimental.

    See api for an overview of the algorithms.

    The main interfaces are - Prover: object level proving

    Structure level proving does not exist yet.

    The main implementations are - RuleBasedProver for object-level proving

    The latter creates a Searcher for each proving task, which applies search rules to find MMT objects.

    Definition Classes
    api
  • package refactoring
    Definition Classes
    api
  • package symbols

    MMT Declarations are the elements of Modules.

    MMT Declarations are the elements of Modules. The kinds of declarations are documented at Declaration.

    ObjContainer are owned by structural elements, in particular by declarations, to store objects.

    Definition Classes
    api
  • package uom

    The algorithm for immutably computing with MMT content, i.e., simplification (strings to MMT data structures).

    Simplification

    The algorithm for immutably computing with MMT content, i.e., simplification (strings to MMT data structures). See api for an overview of the algorithms.

    The main interfaces are - Simplifier: the main interface for parser (combining a structure and an object simplifier) - StructureSimplifier: simplifying structural elements - ObjectSimplifier: simplifying objects

    The main implementations are - ElaborationBasedSimplifier for structural elements - RuleBasedSimplifier for objects

    Structure simplification is extensible using derived elements. Object simplification is extensible using rules.

    Literals and semantic objects

    This package also contains the classes for using Scala objects as MMT literals.

    SemanticType defines types as sets of Scala objects. SemanticValue defines a distinguished element of such a type. SemanitcOperator defines functions on such types as Scala functions.

    Literals and operations on them are injected into the MMT language by declaring RealizedValue, RealizedType and RealizedOperator rules, which tie a syntactic type/operator (i.e., an MMT term) to a semantic counterpart.

    StandardLiterals defines semantic types for the most important types.

    RealizedTheory represents an MMT theory programmed in Scala, usually as a Scala class.

    Scala companion objects for MMT theories

    TheoryScala and ConstantScala are auxiliary classes that are useful when implementing MMT rules or other logic-specific algorithms.

    Definition Classes
    api
  • AbbrevRule
  • Arithmetic
  • Atomic
  • BinaryConstantScala
  • ByStructureSimplifier
  • CannotSimplify
  • ComplexRat
  • ComplificationRule
  • ConstantScala
  • DefinitionExpander
  • DefinitionsExpanded
  • DocumentScala
  • ElaboratedElement
  • ElaborationBasedSimplifier
  • ExtendedSimplificationEnvironment
  • FlexaryConstantScala
  • FouraryConstantScala
  • FunctionN
  • GenericScalaExporter
  • IntModulo
  • IntegerLiteral
  • IntegerRepresented
  • Integrator
  • InvFunctionN
  • InverseOperator
  • Invertible
  • KnownArg
  • ListType
  • MatchingSimplificationRule
  • OMLiteral
  • ObjectSimplifier
  • OpenMath
  • OpenMathScalaExporter
  • Product
  • Quotient
  • RList
  • RProduct
  • RQuotient
  • RSemanticType
  • RSubtype
  • RTuple
  • RealizationInScala
  • RealizedOperator
  • RealizedTheory
  • RealizedType
  • RealizedValue
  • Recurse
  • RecurseOnly
  • RepresentedRealizedType
  • RewriteRule
  • RuleBasedSimplifier
  • Scala
  • SemOpType
  • SemanticOperator
  • SemanticType
  • SemanticValue
  • Simplifiability
  • SimplificationEnvironment
  • SimplificationRule
  • SimplificationUnit
  • Simplifier
  • SimplifierRule
  • SimplifierState
  • Simplify
  • StandardBool
  • StandardDouble
  • StandardInt
  • StandardNat
  • StandardPositive
  • StandardRat
  • StandardString
  • StringOperations
  • StructureSimplifier
  • Subtype
  • SynOpType
  • TermLiteral
  • TermTransformationRule
  • TermTransformer
  • TernaryConstantScala
  • TheoryScala
  • TrivialSimplificationEnvironment
  • TupleType
  • URILiteral
  • UUIDLiteral
  • UnapplyArg
  • UnaryConstantScala
  • UnknownArg
  • ViewScala
  • package utils

    This package defines various MMT-independent high-level APIs.

    This package defines various MMT-independent high-level APIs. Various basic functions are declared directly in this package object in order to be easily available.

    Most other files in this package are self-contained and independent of the rest of MMT and each other. We describe them in groups below.

    Data structures*

    - Union disjoint union of Scala types - MyList extensions of Scala's lists (via implicit conversions) - HashRelation, HashMapToSet, and HashEquality: hash-related data structures for - While while loops that allow for break and continue

    General purpose utilities

    - Killable tasks that can be notified that they should be canceled. In particular, MMTTasks can be aborted without risking an inconsistent state. - Unparsed for simple parsing of strings - ScalaTo serialization helpers for Scala objects - ValueCache factory methods that introduce structure sharing by resuing previous pointers - XMLToScala framework for conveniently turning a set of case classes into an XML parser for the corresponding schema

    Wrappers for low-level APIs

    MMT provides various APIs that extend or simplify APIs provided Java or Scala: - File file paths and interacting with files - URI URIs - xml various helper function for working with XML and dereferencing URLs (not really a wrapper but fits best here) - ShellCommand commands executed on the system shell

    APIs for external languages

    - Dot the dot languages for graph layouting - JSON the JSON language - HTML API for building HTML pages programmatically

    Definition Classes
    api
  • package valuebases

    This package maintains databases of cocnrete mathematical objects.

    This package maintains databases of cocnrete mathematical objects.

    Concrete objects are special MMT Terms that can be represented as concrete database objects (e.g., JSON). The connection between the two is mediated by Codecs and CodecOerator. The codec-based translation is implemented in the Coder.

    Definition Classes
    api
  • package web

    Server maintains the HTTP interface of MMT.

    Server maintains the HTTP interface of MMT. The server is owned by the frontend.Controller.

    It can be customized by ServerExtensions.

    The REPLServer maintains a set of independent REPL loops for MMT content.

    Definition Classes
    api

package uom

Simplification

The algorithm for immutably computing with MMT content, i.e., simplification (strings to MMT data structures). See api for an overview of the algorithms.

The main interfaces are - Simplifier: the main interface for parser (combining a structure and an object simplifier) - StructureSimplifier: simplifying structural elements - ObjectSimplifier: simplifying objects

The main implementations are - ElaborationBasedSimplifier for structural elements - RuleBasedSimplifier for objects

Structure simplification is extensible using derived elements. Object simplification is extensible using rules.

Literals and semantic objects

This package also contains the classes for using Scala objects as MMT literals.

SemanticType defines types as sets of Scala objects. SemanticValue defines a distinguished element of such a type. SemanitcOperator defines functions on such types as Scala functions.

Literals and operations on them are injected into the MMT language by declaring RealizedValue, RealizedType and RealizedOperator rules, which tie a syntactic type/operator (i.e., an MMT term) to a semantic counterpart.

StandardLiterals defines semantic types for the most important types.

RealizedTheory represents an MMT theory programmed in Scala, usually as a Scala class.

Scala companion objects for MMT theories

TheoryScala and ConstantScala are auxiliary classes that are useful when implementing MMT rules or other logic-specific algorithms.

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

Type Members

  1. class AbbrevRule extends SimplificationRule

    An AbbrevRule expands a symbol into a term

  2. abstract class Atomic[V] extends SemanticType with RSemanticType[V]

    a type that is equal to an existing Scala type

  3. class BinaryConstantScala extends ConstantScala
  4. sealed abstract class CannotSimplify extends Simplifiability

    this rule cannot be applied to t at toplevel

  5. trait ComplificationRule extends TermTransformationRule

    the term transformation rules that should be used for complification

    the term transformation rules that should be used for complification

    separating these rules is important to avoid cycles during simplification

  6. trait ConstantScala extends AnyRef
  7. class DefinitionExpander extends StatelessTraverser

    traverses the syntax tree (depth first, argument order) and expands (only) the first defined constant it encounters

    traverses the syntax tree (depth first, argument order) and expands (only) the first defined constant it encounters

    does not expand in contexts and scopes at the moment

  8. trait DocumentScala extends AnyRef
  9. class ElaborationBasedSimplifier extends Simplifier with ChangeListener

    the primary class for all flattening, materialization, enriching of theories

    the primary class for all flattening, materialization, enriching of theories

    *internal* flattening of s: change the body of s by flattening all its components and children. *external* flattening of s: change the parent of s by adding all declarations induced by s. Internal flattening includes the recursive internal and external flattening of its children.

    Most declarations are subject to either internal (modules and links) or external (includes, structures, derived declarations) flattening. Only non-include structures are subject to both.

  10. case class ExtendedSimplificationEnvironment(se: SimplificationEnvironment, objectSimplifier: ObjectSimplifier, rules: RuleSet) extends scala.Product with Serializable
  11. class FlexaryConstantScala extends ConstantScala
  12. class FouraryConstantScala extends ConstantScala
  13. class FunctionN extends AnyRef

    a flexary function, used by RealizationInScala

  14. class GenericScalaExporter extends BuildTarget with Exporter

    This trait bundles auxiliary methods for exporting Scala code

  15. class IntModulo extends RQuotient[BigInt]

    standard integers modulo, i.e., a finite type of size modulus

  16. abstract class IntegerLiteral extends Atomic[BigInt] with IntegerRepresented

    bundles functions that are typically used when defining literals based on integers

  17. trait IntegerRepresented extends SemanticType with RSemanticType[BigInt]

    types whose underlying representation uses integers

  18. class InvFunctionN extends AnyRef

    inverse of a flexary function, used by RealizationInScala

  19. abstract class InverseOperator extends SimplifierRule

    counterpart to a RealizedOperator for the partial inverse This is also possible if head is injective.

    counterpart to a RealizedOperator for the partial inverse This is also possible if head is injective. See lf.SolutionRules for the non-injective case.

  20. trait Invertible extends AnyRef

    adds a Scala-style unapply method

  21. case class KnownArg(value: Any, pos: Int) extends UnapplyArg with scala.Product with Serializable
  22. case class ListType(over: SemanticType) extends SemanticType with scala.Product with Serializable
  23. abstract class MatchingSimplificationRule extends SimplifierRule

    rules for simplifying expressions

  24. trait ObjectSimplifier extends Extension

    simplifies/rewrites objects

  25. class OpenMathScalaExporter extends FoundedExporter
  26. case class Product(left: SemanticType, right: SemanticType) extends SemanticType with scala.Product with Serializable
  27. abstract class Quotient extends SemanticType
  28. class RList[U] extends ListType with RSemanticType[List[U]]
  29. class RProduct[U, V] extends Product with RSemanticType[(U, V)]
  30. abstract class RQuotient[V] extends Quotient with RSemanticType[V]
  31. trait RSemanticType[V] extends SemanticType

    a semantic type whose underlying representation type is made explicit

  32. abstract class RSubtype[U] extends Subtype with RSemanticType[U]
  33. class RTuple[U] extends TupleType with RSemanticType[List[U]]
  34. abstract class RealizationInScala extends RealizedTheory

    a model of an MMT theory written in Scala

  35. case class RealizedOperator(synOp: GlobalName, synTp: SynOpType, semOp: SemanticOperator, semTp: SemOpType) extends SimplificationRule with scala.Product with Serializable

    A RealizedOperator couples a syntactic function (a Constant) with a semantic function (a Scala function)

  36. abstract class RealizedTheory extends Theory with SemanticObject

    a theory written directly in Scala

  37. case class RealizedType(synType: Term, semType: SemanticType) extends SimplifierRule with scala.Product with Serializable

    A RealizedType couples a syntactic type (a Term) with a semantic type (a PER on the universe of Scala values).

  38. class RealizedValue extends AbbrevRule

    A RealizedOperator couples a syntactic constant (a Constant) with a semantic function (a Scala function)

  39. case class RecurseOnly(positions: List[Int]) extends CannotSimplify with scala.Product with Serializable

    this rule cannot become applicable unless a subterm in one of the given positions is simplified; the first argument has position 1

  40. class RepresentedRealizedType[V] extends RealizedType
  41. class RewriteRule extends TermTransformationRule

    a general rewrite rule

  42. class RuleBasedSimplifier extends ObjectSimplifier

    A RuleBasedSimplifier applies DepthRule's and BreadthRule's exhaustively to simplify a Term.

    A RuleBasedSimplifier applies DepthRule's and BreadthRule's exhaustively to simplify a Term.

    ### Invariants

    Simplifying transforms a welltyped term into another welltyped term. This especially means that rules have to retain the type.

    Only AbbrevRule rules will be applied on OMID (sub)terms. This makes sense given that OMIDs reference constants, for which other reference to other constants could never take place given the welltyping constraint above. The only way for an OMID to be rewritten is by definitorial expansion, which can be enabled in SimplificationUnit.

    TODO Add other invariants.

  43. case class SemOpType(args: List[SemanticType], ret: SemanticType) extends scala.Product with Serializable

    helper class to store the type of a SemanticOperators

  44. abstract class SemanticOperator extends SemanticObject

    a Scala-level function between SemanticTypes to be used in a RealizedOperator

  45. abstract class SemanticType extends SemanticObject

    A Scala-level type to be used in a RealizedType

    A Scala-level type to be used in a RealizedType

    See also SemanticOperator

    SemanticType's are closed under subtypes and quotients by using valid and normalform. In other words, the triple (U, valid, normalform) forms a partial equivalence relation on a Scala type U.

    For technical reasons, U is fixed as the type Any (Scala cannot type check enough to make the overhead worthwhile.) Instead, type-safety-supporting syntax is offered wherever reasonable, see also RSemanticType.

  46. case class SemanticValue(tp: SemanticType, value: Any) extends SemanticObject with scala.Product with Serializable

    a Scala-level value to be used in a RealizedValue

  47. sealed abstract class Simplifiability extends AnyRef

    return type of applying a simplification rule to a term t

  48. class SimplificationEnvironment extends AnyRef
  49. abstract class SimplificationRule extends MatchingSimplificationRule

    Special case for rules that do not need to know about other rules.

  50. case class SimplificationUnit(context: Context, expandDefinitions: Boolean, fullRecursion: Boolean, solverO: Option[Solver] = None) extends MMTTask with scala.Product with Serializable

    applies rules to simplify an object

    applies rules to simplify an object

    context

    the context of the object to simplify

    expandDefinitions

    if true, expand all definitions of constant (we speak of *deep* simplification)

    fullRecursion

    if false, only recurse into subexpressions that contribute to head-normalizations

  51. abstract class Simplifier extends StructureSimplifier with LeveledExtension

    the designated super class of all simplifiers

  52. trait SimplifierRule extends SyntaxDrivenRule

    super class of all rules used by simplification

  53. case class SimplifierState(t: Term, unit: SimplificationUnit, rules: RuleSet, path: List[Int]) extends scala.Product with Serializable
  54. case class Simplify(result: Term) extends Simplifiability with scala.Product with Serializable

    simplify t to result

  55. trait StructureSimplifier extends Extension

    simplifies/elaborates structural elements

  56. abstract class Subtype extends SemanticType
  57. case class SynOpType(under: List[GlobalName], args: List[Term], ret: Term) extends scala.Product with Serializable

    helper class to store the type of a RealizedOperators

    helper class to store the type of a RealizedOperators

    under

    HOAS application operators

    args

    argument types

    ret

    return type

  58. trait TermTransformationRule extends SimplifierRule

    general purpose transformation rule //TODO this is barely used and should be merged with SimplificationRule

  59. class TermTransformer extends StatelessTraverser with Logger

    exhaustively applies TermTransformationRules

    exhaustively applies TermTransformationRules

    will not traverse the same term multiple times if called multiple times

    preserves structure sharing

  60. class TernaryConstantScala extends ConstantScala
  61. trait TheoryScala extends AnyRef
  62. case class TupleType(over: SemanticType, dim: Int) extends SemanticType with scala.Product with Serializable
  63. sealed abstract class UnapplyArg extends AnyRef

    used to pass the arguments to the unapply method of a SemanticOperator

  64. class UnaryConstantScala extends ConstantScala
  65. class UnknownArg extends UnapplyArg

    an unknown argument that unapply must solve by calling solve

  66. trait ViewScala extends TheoryScala
  67. case class ByStructureSimplifier(home: Term, view: Term) extends Origin with scala.Product with Serializable

    used by MMTStructureSimplifier

    used by MMTStructureSimplifier

    Annotations
    @MMT_TODO( message = "needs review" )
    Deprecated

    needs review

Value Members

  1. object Arithmetic

    defines SemanticOperators for the standard arithmetic operations

  2. object ComplexRat extends RProduct[(BigInt, BigInt), (BigInt, BigInt)]

    rational complex numbers

  3. object ConstantScala
  4. object DefinitionsExpanded extends BooleanTermProperty

    UOM uses this to remember that all definitions inside a Term have been expanded to avoid recursing into it again

  5. object ElaboratedElement extends ClientProperty[StructuralElement, Int]

    information about elaboration status 0 or absent: no information, assume not elaborated 2: partially: header has been elaborated, some elements in body (e.g., new elements) body must still be elaborated 3: fully: applyElementEnd has been called -1: in progress, apply or applyElementBegin has been called -2: in progress and header already elaborated

  6. object FunctionN
  7. object GenericScalaExporter
  8. object Integrator
  9. object InvFunctionN
  10. object ListType extends Serializable
  11. object OMLiteral

    OpenMath's literals These should be moved to an OpenMath plugin, but they are used by the API, e.g., for metadata

  12. object OpenMath
  13. object Product extends Serializable
  14. object RealizedOperator extends Serializable
  15. object RealizedValue
  16. object Recurse extends CannotSimplify with scala.Product with Serializable

    this rule might become applicable if any subterm is simplified

    this rule might become applicable if any subterm is simplified

    this should be returned by default; it replaces the return value "None" from the previous ComputationRule.apply method that returned Option[Term]

  17. object RuleBasedSimplifier
  18. object Scala

    apply/unapply methods for the constructor Scala(code: String): Term to represent escaped Scala code in an MMT Term

  19. object SemanticOperator
  20. object SemanticType
  21. object Simplifiability
  22. object StandardBool extends Atomic[Boolean]
  23. object StandardDouble extends Atomic[Double]
  24. object StandardInt extends IntegerLiteral

    standard integer numbers

  25. object StandardNat extends RSubtype[BigInt]

    standard natural numbers

  26. object StandardPositive extends RSubtype[BigInt]

    standard positive natural numbers

  27. object StandardRat extends RQuotient[(BigInt, BigInt)]

    standard rational numbers

  28. object StandardString extends Atomic[String]
  29. object StringOperations
  30. object TermLiteral extends Atomic[Term]

    MMT terms as a semantic type, e.g., for reflection, quotation

  31. object TrivialSimplificationEnvironment extends SimplificationEnvironment
  32. object TupleType extends Serializable
  33. object URILiteral extends Atomic[URI]

    URI literals, concrete syntax is uri"..."

  34. object UUIDLiteral extends Atomic[UUID]

    UUIDs

Inherited from AnyRef

Inherited from Any

Ungrouped