Interface PreUniverse

All Superinterfaces:
CoreUniverse

public interface PreUniverse extends CoreUniverse
A PreUniverse provides most of the services of a SymbolicUniverse, but not those that require reasoning, specifically theorem proving and simplification. The functionality of a symbolic universe is partitioned in this way to provide a hierarchical design to SARL. The simplification/proving modules require the basic symbolic algebra services provided by a PreUniverse . A full SymbolicUniverse requires the simplification and proving modules. A hierarchy in the USES relation is achieved.
  • Method Details

    • charObject

      CharObject charObject(char value)
      Returns the charObject wrapping the given char value. These are SARL char, not Java char.
      Parameters:
      value - a SARL char
      Returns:
      the CharObject wrapping that char
    • incrementValidCount

      void incrementValidCount()
    • incrementProverValidCount

      void incrementProverValidCount()
    • typeSequence

      SymbolicTypeSequence typeSequence(Iterable<? extends SymbolicType> types)
      Given an iterable collection of SymbolicTypes, returns a SymbolicTypeSequence conatining those SymbolicTypes
      Parameters:
      SymbolicType - - types
      Returns:
      SymbolicTypeSequence of SymbolicType - types
    • objectFactory

      ObjectFactory objectFactory()
      Returns the ObjectFactory used by this universe. This is the factory used for producing SymbolicObjects and performing basic manipulations of them.
      Returns:
      the object factory used by this universe
    • typeFactory

      SymbolicTypeFactory typeFactory()
      Returns the SymbolicTypeFactory used by this universe. This is the factory used for producing SymbolicTypes and performing basic manipulations on them.
      Returns:
      the type factory used by this universe
    • cleanBoundVariables

      SymbolicExpression cleanBoundVariables(SymbolicExpression expr)
      Changes the names of the bound variables in the expression so that every bound variable has a unique name. The names will be unique among ALL bound variables ever encountered by this method in this preuniverse.
      Parameters:
      expr - a symbolic expressions
      Returns:
      a symbolic expression equivalent to expr but with the names of the bound variables possibly changed to be unique
    • newMinimalBoundCleaner

      UnaryOperator<SymbolicExpression> newMinimalBoundCleaner()
      Produces a new object for renaming bound variables in a minimal way. Bound variables will only be renamed if it is necessary to prevent conflict with a free variable.
      Returns:
      new bound cleaner with empty state
    • cloneBoundCleaner