Packages

  • package root
    Definition Classes
    root
  • package info
    Definition Classes
    root
  • package kwarc
    Definition Classes
    info
  • package mmt
    Definition Classes
    kwarc
  • package MitM
    Definition Classes
    mmt
  • 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 argsemcomp
    Definition Classes
    mmt
  • package concepts
    Definition Classes
    mmt
  • package coq
    Definition Classes
    mmt
  • package doc
    Definition Classes
    mmt
  • package frameit
    Definition Classes
    mmt
  • package glf
    Definition Classes
    mmt
  • package got
    Definition Classes
    mmt
  • package imps
    Definition Classes
    mmt
  • package intellij
    Definition Classes
    mmt
  • package interviews
    Definition Classes
    mmt
  • package isabelle_dummy
    Definition Classes
    mmt
  • package itp
    Definition Classes
    mmt
  • package jedit
    Definition Classes
    mmt
  • package jeditsetup
    Definition Classes
    mmt
  • package latex
    Definition Classes
    mmt
  • package lf
    Definition Classes
    mmt
  • package lsp
    Definition Classes
    mmt
  • package mathhub
    Definition Classes
    mmt
  • package mathscheme
    Definition Classes
    mmt
  • package metamath
    Definition Classes
    mmt
  • package mizar
    Definition Classes
    mmt
  • package moduleexpressions
    Definition Classes
    mmt
  • package odk
    Definition Classes
    mmt
  • package oeis
    Definition Classes
    mmt
  • package openmath
    Definition Classes
    mmt
  • package owl
    Definition Classes
    mmt
  • package planetary
    Definition Classes
    mmt
  • package pvs
    Definition Classes
    mmt
  • package python
    Definition Classes
    mmt
  • package refactoring
    Definition Classes
    mmt
  • package reflection
    Definition Classes
    mmt
  • package repl
    Definition Classes
    mmt
  • package sequences
    Definition Classes
    mmt
  • Association
  • Bool
  • BoundedSemilattice
  • ContractRep
  • EllipsisEqualityCheck
  • EllipsisInfer
  • EllipsisInjective
  • EllipsisTypeCheck
  • ExpandEllipsis
  • ExpandRep
  • FlatSeqInfer
  • FlatseqInjective
  • FlexaryApply
  • FlexaryComposition
  • FlexaryCompositionInfer
  • FlexaryLambda
  • FlexaryPi
  • FoldLeft
  • FoldLeftType
  • IndexCompute
  • IndexInfer
  • LFS
  • Length
  • LengthAwareApplyTerm
  • LengthAwareArgumentChecker
  • LengthAwareBeta
  • Monoid
  • NTypeTerm
  • Nat
  • NatRules
  • NoSeqs
  • RepEqualityCheck
  • RepTypeCheck
  • Semilattice
  • SequenceEqualityCheck
  • SequenceTypeCheck
  • Sequences
  • SolveArity
  • UniverseNType
  • package specware
    Definition Classes
    mmt
  • package sql
    Definition Classes
    mmt
  • package stex
    Definition Classes
    mmt
  • package test
    Definition Classes
    mmt
  • package tps
    Definition Classes
    mmt
  • package tptp
    Definition Classes
    mmt
  • package twelf
    Definition Classes
    mmt
p

info.kwarc.mmt

sequences

package sequences

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. class Association extends ParametricRule

    takes flexary composition operator op: {n} a^n -> a and implements associativity and related simplifications

  2. class ExpandEllipsis extends ComputationRule

    the beta-style rule [E(i)]_{i=1}^n ---> E(1),...,E(n)

    the beta-style rule [E(i)]_{i=1}^n ---> E(1),...,E(n)

    The rule is applied only in argument sequences and contexts. In contexts, it is only applied if the sequence variable occurs only with literal indices, in which case each x.1 is replaced with x/"1" etc. If the sequence variable occurs in any other way (e.g., as x or x.n), it is not expanded.

    It would be easier to use the substitution x->Sequence(x/"1",...,x/"n"), but that is not possible because we avoid concatenation here. Typically, sequence variables occur with indices that are index variables of ellipses. Those ellipses must have been previously simplified.

  3. class SequenceEqualityCheck extends ExtensionalityRule

    component-wise equality-checking of sequences

    component-wise equality-checking of sequences

    |s| = |t| = |a| |- s.i = t.i : a.i for all i=1,...,n-1 -------------------------------------- |- s=t : a

    applicable only if |a| simplifies to a literal

  4. class SequenceTypeCheck extends TypingRule

    component-wise type-checking of a sequence

    component-wise type-checking of a sequence

    |t| = |a| |- t.i : a.i for all i=0,...,n-1 --------------------------------- |- t : a

    applicable only if |a| simplifies to a literal

Value Members

  1. object Bool
  2. object BoundedSemilattice extends Association

    combines monoid and semilattice laws

  3. object ContractRep extends ComplificationRule

    inverse of ExpandRep, useful for complification

  4. object EllipsisEqualityCheck extends SequenceEqualityCheck
  5. object EllipsisInfer extends InferenceRule

    i, i/up |- t(i) : a_i : type ---> |- [t(i)] i=0n : [a_i] i=0n i, i/up |- t(i) : type ---> |- [t(i)] i=0n : typen

  6. object EllipsisInjective extends CongruenceRule
  7. object EllipsisTypeCheck extends SequenceTypeCheck
  8. object ExpandEllipsis
  9. object ExpandRep extends ComputationRule

    an ---> [a]i=0n for fresh i

  10. object FlatSeqInfer extends InferenceRule

    ...

    ... t_i : A_i ... for i = 1,...,n ---------------------------------- t_1,...,t_n : A_1,...,A_n

  11. object FlatseqInjective extends CongruenceRule
  12. object FlexaryApply extends ExpandEllipsis

    expands ellipses in the arguments of an apply

  13. object FlexaryComposition extends ExpandEllipsis

    expands ellipses in the arguments of a composition

  14. object FlexaryCompositionInfer extends InferenceRule

    s.i : A.i -> B.i for i=0,...,n A_{i+1} = B.i for i=0,...,n-1 ------------------------------ comp(s) : A.0 -> B.n

  15. object FlexaryLambda extends ExpandEllipsis

    expands ellipses in the arguments of a lambda

  16. object FlexaryPi extends ExpandEllipsis with PiOrArrowRule

    expands ellipses in the arguments of a Pi

  17. object FoldLeft extends FouraryConstantScala
  18. object FoldLeftType extends InferenceRule
  19. object IndexCompute extends ComputationRule

    ([a(i)] i=1n).k ----> a(k) (an).i ----> a (a_1,...,a_n).k ----> a_k if k literal a.0 ----> a if |a|=1 // every plain term can be seen as a sequence of length 1

  20. object IndexInfer extends InferenceRule

    |- s : a |- i < |a| ------------- |- s.i : a.i

  21. object LFS
  22. object Length

    auxiliary functions for length-based operations on sequences

  23. object LengthAwareApplyTerm extends GenericApplyTerm
  24. object LengthAwareArgumentChecker extends ArgumentChecker

    Restriction of StandardArgumentChecker that requires that expected and provided length agree

  25. object LengthAwareBeta extends GenericBeta
  26. object Monoid extends Association

    additionally takes a neutral element

  27. object NTypeTerm extends InferenceRule

    |- type ^ n : kind

  28. object Nat
  29. object NatRules
  30. object NoSeqs

    matches argument list without sequences preceded by a NatLit

  31. object RepEqualityCheck extends SequenceEqualityCheck
  32. object RepTypeCheck extends SequenceTypeCheck
  33. object Semilattice extends Association

    eliminates duplicates among the arguments

  34. object Sequences
  35. object SolveArity extends InferenceRule

    matches an operator that expects sequence arguments against an argument sequence

    matches an operator that expects sequence arguments against an argument sequence

    this rule is called before ApplyTerm, solves unknown arity arguments, then fails once the arities are solved, ApplyTerm can do the rest

  36. object UniverseNType extends UniverseRule

    |- type^n UNIV

Ungrouped