Packages

class RuleBasedSimplifier extends ObjectSimplifier

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.

Self Type
RuleBasedSimplifier
Source
RuleBasedSimplifier.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RuleBasedSimplifier
  2. ObjectSimplifier
  3. Extension
  4. Logger
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RuleBasedSimplifier()

Type Members

  1. case class LocalError(s: String) extends ExtensionError with Product with Serializable

    a custom error class for this extension

    a custom error class for this extension

    Definition Classes
    Extension

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 apply(obj: Obj, su: SimplificationUnit, rules: RuleSet): ThisType

    the main simplification method

    the main simplification method

    obj

    the object to simplify

    su

    additional arguments

    rules

    rules to use (precomputed for efficiency)

    returns

    the simplified Term (if a sensible collection of rules is used that make this method terminate) The input term must be fully strictified, and so will be the output term. Applicability of rules is determined based on the pragmatic form (using StrictOMA). Rules are passed strict terms and are expected to return strict terms. The code uses Simple and SimplificationResult to remember whether a term has been simplified. Therefore, structure sharing or multiple calls to this method do not cause multiple traversals.

    Definition Classes
    RuleBasedSimplifierObjectSimplifier
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def catchErrors[A](msg: String, recoverWith: ⇒ A)(code: ⇒ A): A

    like its partner but with return value

    like its partner but with return value

    Attributes
    protected
    Definition Classes
    Extension
  7. def catchErrors(msg: String)(code: ⇒ Unit): Unit

    convenience method for wrapping code in error handler that throws LocalError

    convenience method for wrapping code in error handler that throws LocalError

    Attributes
    protected
    Definition Classes
    Extension
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  9. val controller: Controller

    the controller that this extension is added to; only valid after creation of the extension, i.e., will return null if used in a non-lazy val-field

    the controller that this extension is added to; only valid after creation of the extension, i.e., will return null if used in a non-lazy val-field

    Attributes
    protected
    Definition Classes
    Extension
  10. lazy val defaultPrefix: String
    Definition Classes
    Extension
  11. def destroy: Unit

    extension-specific cleanup (override as needed, empty by default)

    extension-specific cleanup (override as needed, empty by default)

    Extensions may create persistent data structures and threads, but they must clean up after themselves in this method

    Definition Classes
    Extension
  12. def destroyWhenRemainingTasksFinished: Unit

    convenience for calling waitUntilRemainingTasksFinished and then destroy

    convenience for calling waitUntilRemainingTasksFinished and then destroy

    Definition Classes
    Extension
  13. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  15. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  16. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  17. def getFromFirstArgOrEnvvar(args: List[String], name: String, default: String = ""): String
    Attributes
    protected
    Definition Classes
    Extension
  18. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  19. def initOther(e: Extension): Unit

    any extension can initialize other extensions if those are not meant to be added to the ExtensionManager

    any extension can initialize other extensions if those are not meant to be added to the ExtensionManager

    Attributes
    protected
    Definition Classes
    Extension
  20. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  21. def log(e: Error): Unit

    logs an error - always logged

    logs an error - always logged

    Attributes
    protected
    Definition Classes
    Logger
  22. def log(s: ⇒ String, subgroup: Option[String] = None): Unit

    logs a message with this logger's logprefix

    logs a message with this logger's logprefix

    Attributes
    protected
    Definition Classes
    Logger
  23. def logError(s: ⇒ String): Unit

    log as an error message

    log as an error message

    Attributes
    protected
    Definition Classes
    Logger
  24. def logGroup[A](a: ⇒ A): A

    wraps around a group to create nested logging

    wraps around a group to create nested logging

    Attributes
    protected
    Definition Classes
    Logger
  25. val logPrefix: String

    the prefix used to identify this extension for logging, by default the class name

    the prefix used to identify this extension for logging, by default the class name

    Definition Classes
    RuleBasedSimplifierExtensionLogger
  26. def logTemp(s: ⇒ String): Unit

    temporary logging - always logged

    temporary logging - always logged

    Attributes
    protected
    Definition Classes
    Logger
  27. def makeErrorThrower(msg: String): ErrorHandler

    an ErrorHandler that wraps an error in a LocalError and throws it

    an ErrorHandler that wraps an error in a LocalError and throws it

    Attributes
    protected
    Definition Classes
    Extension
  28. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  29. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  30. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  31. val report: Report
    Attributes
    protected
    Definition Classes
    ExtensionLogger
  32. def start(args: List[String]): Unit

    extension-specific initialization (override as needed, empty by default)

    extension-specific initialization (override as needed, empty by default)

    Definition Classes
    Extension
  33. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  34. def toString(): String
    Definition Classes
    AnyRef → Any
  35. def toTranslator(rules: RuleSet, expDef: Boolean): UniformTranslator
    Definition Classes
    ObjectSimplifier
  36. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  37. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  39. def waitUntilRemainingTasksFinished: Unit

    extensions that process tasks in separate threads should override this and wait until those threads are done

    extensions that process tasks in separate threads should override this and wait until those threads are done

    Definition Classes
    Extension

Inherited from ObjectSimplifier

Inherited from Extension

Inherited from Logger

Inherited from AnyRef

Inherited from Any

Ungrouped