Packages

class FineEvolver extends AnyRef

A refined evolver, i.e., evolution of terms and subclasses such as types. Various evolutions are defined mutually recursively - of functions, of types, of terms of a type, of type families and of all terms. Derivatives are defined mutually recursively with the evolutions.

This is refined so that, for example, arguments are chosen conditionally from the domain of a function.

Self Type
FineEvolver
Linear Supertypes
AnyRef, Any
Known Subclasses
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. FineEvolver
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new FineEvolver(applnWeight: Double = 0.1, lambdaWeight: Double = 0.1, piWeight: Double = 0.1, varWeight: Double = 0.3, unifyWeight: Double = 0.5)

    varWeight

    weight of a variable inside a lambda

Value Members

  1. def evolvFuncs(fd: FiniteDistribution[Term]): ProbabilityDistribution[SomeFunc]

    evolution of functions, used for function application.

  2. def evolvTypFamilies(fd: FiniteDistribution[Term]): ProbabilityDistribution[SomeFunc]

    evolution of type families, to be used for function application to generate types.

    evolution of type families, to be used for function application to generate types. lambda evolution uses only types and type families as values.

  3. def evolve(fd: FiniteDistribution[Term]): ProbabilityDistribution[Term]

    evolution of terms, by combining various operations and islands

  4. def evolveTyp(fd: FiniteDistribution[Term]): ProbabilityDistribution[Term]

    evolution of types

  5. def evolveWithTyp(tp: Typ[Term])(fd: FiniteDistribution[Term]): ProbabilityDistribution[Term]

    evolution of a term with a given type

  6. lazy val varScaled: FineEvolver

    FineEvolver with varWeight rescaled so that the weight of different variables does not depend on the order in which they were introduced in lambda or pi islands.