case class FineDeducer(applnWeight: Double = 0.1, lambdaWeight: Double = 0.1, piWeight: Double = 0.1, varWeight: Double = 0.3, unifyWeight: Double = 0.5) extends FineEvolver with Product with Serializable
A refined deducer, i.e., evolution of terms and derivatives of evolution. 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.
- varWeight
weight of a variable inside a lambda
- Self Type
- FineDeducer
- Alphabetic
- By Inheritance
- FineDeducer
- Serializable
- Product
- Equals
- FineEvolver
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new FineDeducer(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
- def DevolvFuncs(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[SomeFunc]
derivative of evolution of functions (adding components)
- def DevolvTypFamilies(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[SomeFunc]
derivative of evolution of type families (adding components) FIXME the lambda terms should be specific to type families.
- def Devolve(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Term]
derivative of evolution evolve of terms
- def DevolveTyp(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Term]
derivative of evolution of types
- def DevolveWithType(tp: Typ[Term])(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Term]
derivative of evolution of terms with a fixed type
- def DlambdaTypVal(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Option[Term]]
- def DlambdaTypVar(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Option[Term]]
- def DlambdaVal(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Option[Term]]
partial derivative of lambda islands with resepect to the value exported
- def DlambdaVar(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Option[Term]]
partial derivative of lambda islands with respect to the weight of the variable (really the type)
- def DpiVal(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Option[Term]]
partial derivative of pi islands with resepect to the value exported
- def DpiVar(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Option[Term]]
partial derivative of pi islands with resepect to the weight of the variable (really the type)
- def DsimpleApplnArg(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Term]
partial derivative of function application without unification with respect to arguments.
- def DsimpleApplnFunc(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Term]
partial derivative of function application (without unification) with respect to functions
- def DsimpleApplnTypArg(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Term]
partial derivative of function application without unification for type families with respect to arguments.
- def DsimpleApplnTypFamilies(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Term]
partial derivative of function application without unification for type families with respect to type families
- def DunifApplnArg(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Option[Term]]
partial derivative of unified function application with respect to arguments.
- def DunifApplnFunc(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Option[Term]]
partial derivative of unified function application with respect to the function term.
- def DunifApplnTypArg(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Option[Term]]
partial derivative of unified function application for type families with respect to arguments
- def DunifApplnTypFamilies(fd: FiniteDistribution[Term], tang: FiniteDistribution[Term]): ProbabilityDistribution[Option[Term]]
partial derivative of unified function application for type families with respect to type families
- val applnWeight: Double
- def evolvFuncs(fd: FiniteDistribution[Term]): ProbabilityDistribution[SomeFunc]
evolution of functions, used for function application.
evolution of functions, used for function application.
- Definition Classes
- FineEvolver
- 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.
- Definition Classes
- FineEvolver
- def evolve(fd: FiniteDistribution[Term]): ProbabilityDistribution[Term]
evolution of terms, by combining various operations and islands
evolution of terms, by combining various operations and islands
- Definition Classes
- FineEvolver
- def evolveTyp(fd: FiniteDistribution[Term]): ProbabilityDistribution[Term]
evolution of types
evolution of types
- Definition Classes
- FineEvolver
- def evolveWithTyp(tp: Typ[Term])(fd: FiniteDistribution[Term]): ProbabilityDistribution[Term]
evolution of a term with a given type
evolution of a term with a given type
- Definition Classes
- FineEvolver
- val lambdaWeight: Double
- val piWeight: Double
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- val unifyWeight: Double
- lazy val varScaled: FineDeducer
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.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.- Definition Classes
- FineDeducer → FineEvolver
- val varWeight: Double