Packages

class TermGeneratorNodes[InitState] extends AnyRef

Combining terms and subclasses to get terms, types, functions etc; these are abstract specifications, to be used for generating distributions, obtaining equations etc.

InitState

the initial state for the dynamics, equations etc

Linear Supertypes
AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TermGeneratorNodes
  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 TermGeneratorNodes(appln: (ExstFunc, Term) => Term, unifApplnOpt: (ExstFunc, Term) => Option[Term], addVar: (Typ[Term]) => (InitState) => (Double) => (InitState, Term), getVar: (Typ[Term]) => Term, inIsle: (Term, InitState) => InitState)

    appln

    function application, assuming domain and type match

    unifApplnOpt

    unified application of functions

    addVar

    new state with a variable, of specified type, added

    getVar

    a variable of a specified type

Type Members

  1. case class FoldFuncTargetNode(typ: Typ[Term]) extends (Term) => Option[GeneratorNode[Term]] with Product with Serializable
  2. case class TargetInducFuncsFolded(target: Typ[Term]) extends (ExstInducDefn) => Option[GeneratorNode[Term]] with Product with Serializable

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from TermGeneratorNodes[InitState] toany2stringadd[TermGeneratorNodes[InitState]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (TermGeneratorNodes[InitState], B)
    Implicit
    This member is added by an implicit conversion from TermGeneratorNodes[InitState] toArrowAssoc[TermGeneratorNodes[InitState]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. val applnByArgNode: FiberProductMap[Term, ExstFunc, Typ[Term], Term]

    function application to get terms by choosing an argument and then a function with domain containing this.

  7. val applnNode: FiberProductMap[ExstFunc, Term, Typ[Term], Term]

    function application to get terms by choosing a function and then a term in its domain

  8. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  9. val backwardTypNodeFamily: BasePiOpt[::[Typ[Term], HNil], Term]

    nodes combining backward reasoning targeting types that are (dependent) function types, aggregated over all types

  10. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  11. val curryBackwardTypNodeFamily: BasePiOpt[::[Typ[Term], HNil], Term]

    nodes combining backward reasoning targeting types that are (dependent) function types, with domain product, sigma-types or co-products aggregated over all types

  12. def curryForTyp(typ: Typ[Term]): Option[GeneratorNode[Term]]

    node for targeting functions on products by currying, and also on sigma-types and co-products

  13. def ensuring(cond: (TermGeneratorNodes[InitState]) => Boolean, msg: => Any): TermGeneratorNodes[InitState]
    Implicit
    This member is added by an implicit conversion from TermGeneratorNodes[InitState] toEnsuring[TermGeneratorNodes[InitState]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. def ensuring(cond: (TermGeneratorNodes[InitState]) => Boolean): TermGeneratorNodes[InitState]
    Implicit
    This member is added by an implicit conversion from TermGeneratorNodes[InitState] toEnsuring[TermGeneratorNodes[InitState]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  15. def ensuring(cond: Boolean, msg: => Any): TermGeneratorNodes[InitState]
    Implicit
    This member is added by an implicit conversion from TermGeneratorNodes[InitState] toEnsuring[TermGeneratorNodes[InitState]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  16. def ensuring(cond: Boolean): TermGeneratorNodes[InitState]
    Implicit
    This member is added by an implicit conversion from TermGeneratorNodes[InitState] toEnsuring[TermGeneratorNodes[InitState]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  17. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  19. def foldFuncNode(t: Term, depth: Int): GeneratorNode[Term]

    Node for folding a function (or term) with a speficied number of arguments to get terms.

  20. def foldFuncTargetNode(t: Term, target: Typ[Term], output: RandomVar[Term]): Option[GeneratorNode[Term]]

    Node for folding a function (or term) with a speficied target type to optionally get terms with the target type.

  21. def foldTypFamily(w: Term): GeneratorNode[Typ[Term]]

    Node for fully folding a type family to get types

  22. def foldedTargetFunctionNode(typ: Typ[Term]): FlatMapOpt[Term, Term]

    Node for generating terms of a type (if possible) by multiple applications of functions tageting the type.

  23. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from TermGeneratorNodes[InitState] toStringFormat[TermGeneratorNodes[InitState]] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  24. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  25. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  26. def indexedInducIdNode(typF: Typ[Term]): Map[Typ[Term], Typ[Term]]

    Start of an indexed introduction rule by fully applying a type family

    Start of an indexed introduction rule by fully applying a type family

    typF

    the type family for the inductive type

    returns

    distribution of types

  27. def indexedIterFuncIsle(targetTyp: Term)(typ: Typ[Term]): Island[Typ[Term], InitState, Typ[Term], Term]

    Extending indexed introduction rule by an iterated function ending in the inductive type family fully applied.

    Extending indexed introduction rule by an iterated function ending in the inductive type family fully applied.

    typ

    the type by which we are extending

    returns

    distribution on types.

  28. def indexedIterFuncNode(targetTyp: Term): FlatMap[Typ[Term], Typ[Term]]

    Aggregating extending indexed introduction rule by iterated function type eding in fully applied inductive type family.

    Aggregating extending indexed introduction rule by iterated function type eding in fully applied inductive type family.

    returns

    distribution on types.

  29. def indexedIterHeadNode(inductiveTyp: Term): FlatMap[Typ[Term], Typ[Term]]

    Aggregating extending introduction types for indexed inductive types by iterated function types

    Aggregating extending introduction types for indexed inductive types by iterated function types

    inductiveTyp

    the indexed inductive types

  30. def indexedOtherHeadIsle(typF: Term)(typ: Typ[Term]): Island[Typ[Term], InitState, Typ[Term], Term]

    Extending an indexed introduction rule by a specific unrelated type

    Extending an indexed introduction rule by a specific unrelated type

    typF

    the indexed inductive type family

    typ

    the type by which to extends

    returns

    distribution on types

  31. def indexedOtherHeadNode(typF: Term): FlatMap[Typ[Term], Typ[Term]]

    aggregating extending introduction types for indexed inductive types by unrelated types

    aggregating extending introduction types for indexed inductive types by unrelated types

    typF

    the indexed type family

    returns

    distribution of terms

  32. def indexedSelfHeadNode(typF: Term): FlatMap[Typ[Term], Typ[Term]]

    Aggregating extending indexed introduction rule by fully applied inductive type family.

    Aggregating extending indexed introduction rule by fully applied inductive type family.

    typF

    the type family

    returns

    distribution on types.

  33. val inducFuncFoldedNode: GeneratorNode[Term]

    Node for recursive definitions given an inductive definition, generating a domain and invoking the node getting codomain and recursion data

  34. val inducFuncs: FlatMap[ExstInducStrucs, ExstFunc]

    aggregated induction functions from inductive types

  35. def inducFuncsFolded(ind: ExstInducDefn): GeneratorNode[Term]

    Inductive definitions from a given inductive definition by generating a domain and invoking the node getting codomain and recursion data

  36. def inducFuncsFoldedGivenDomNode(ind: ExstInducDefn, dom: Term): GeneratorNode[Term]

    Recursive definition given an inductive definition and a domain, i.e., recursion function with data of the right type folded in.

    Recursive definition given an inductive definition and a domain, i.e., recursion function with data of the right type folded in. Examples of domains are Nat, Vec(A) and Fin

  37. def inducFuncsForStruc(ind: ExstInducStrucs): ZipMapOpt[Typ[Term], Term, ExstFunc]

    induction function for a specific structure, picking the type family

    induction function for a specific structure, picking the type family

    ind

    the inductive structure

    returns

    distribution of functions

  38. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  39. def iterFuncIsle(targetTyp: Typ[Term])(typ: Typ[Term]): Island[Typ[Term], InitState, Typ[Term], Term]

    extending types of iterated functions targeting W by the type typ

    extending types of iterated functions targeting W by the type typ

    targetTyp

    the target type

    typ

    the type by which it is extended

    returns

    distribution of types

  40. def iterFuncNode(targetTyp: Typ[Term]): FlatMap[Typ[Term], Typ[Term]]

    aggregating extensions of iterated function types

    aggregating extensions of iterated function types

    targetTyp

    target type

    returns

    distribution of types

  41. def iterHeadNode(inductiveTyp: Typ[Term]): FlatMap[Typ[Term], Typ[Term]]

    extension of the introduction rule for an inductive type W by a type of the form eg A -> W

    extension of the introduction rule for an inductive type W by a type of the form eg A -> W

    inductiveTyp

    the inductive type W

    returns

    distribution of types

  42. def iteratedApply(f: Term): GeneratorNode[Term]

    node to generate partial applications of f from partial applications that are functions.

    node to generate partial applications of f from partial applications that are functions.

    f

    function to be applied

    returns

    distribution of terms

  43. val lambdaForFuncWithDomFamily: BasePi[::[Typ[Term], HNil], ExstFunc]

    nodes combining lambdas with given domain that are (dependent) function types, aggregated over all domains

  44. def lambdaIsle(typ: Typ[Term]): Island[Term, InitState, Term, Term]

    An island to generate lambda terms, i.e., terms are generated withing the island and exported as lambdas; the initial state of the island has a new variable mixed in.

    An island to generate lambda terms, i.e., terms are generated withing the island and exported as lambdas; the initial state of the island has a new variable mixed in.

    typ

    the domain of the lambda

  45. def lambdaIsleForFuncWithDomain(dom: Typ[Term]): Island[ExstFunc, InitState, Term, Term]

    lambda island for generating function with specified domain

    lambda island for generating function with specified domain

    dom

    the desired domain

    returns

    distribution of functions

  46. val lambdaNode: FlatMap[Typ[Term], Term]

    node combining lambda islands aggregated by type

  47. def lambdaTypFamilyIsle(typ: Typ[Term]): GeneratorNode[ExstFunc]

    An island to generate lambda terms that are type families, i.e., terms are generated withing the island and exported as lambdas; the initial state of the island has a new variable mixed in.

    An island to generate lambda terms that are type families, i.e., terms are generated withing the island and exported as lambdas; the initial state of the island has a new variable mixed in. Within the island types and type families are generated.

    typ

    the domain of the lambda

  48. val lambdaTypFamilyNode: FlatMap[Typ[Term], ExstFunc]

    node combining lambda islands targeting type families aggregated by type

  49. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  50. def nodeForTyp(typ: Typ[Term]): Option[GeneratorNode[Term]]

    A node for targeting a (dependent function) type, with variable of the domain generated and the co-domain type (more generally fibre) targeted within the island.

    A node for targeting a (dependent function) type, with variable of the domain generated and the co-domain type (more generally fibre) targeted within the island.

    typ

    the target type

    returns

    optional distribution.

  51. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  52. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  53. def otherHeadIsle(inductiveTyp: Typ[Term])(typ: Typ[Term]): Island[Typ[Term], InitState, Typ[Term], Term]

    extensions of the introduction rule types for an inductive type W by an unrelated type C; we may have a Pi-Type with domain C rather than a FuncTyp there is no assumption on how the head type typ is generated, so this is reusable if only that is changed.

    extensions of the introduction rule types for an inductive type W by an unrelated type C; we may have a Pi-Type with domain C rather than a FuncTyp there is no assumption on how the head type typ is generated, so this is reusable if only that is changed.

    inductiveTyp

    the inductive type W

    typ

    the type C by which we are extending the introduction rule type

    returns

    distribution of introduction rule types

  54. def otherHeadNode(inductiveTyp: Typ[Term]): FlatMap[Typ[Term], Typ[Term]]

    aggregating extensions of inductive types by unrelated types

    aggregating extensions of inductive types by unrelated types

    inductiveTyp

    the inductive type being generated

    returns

    distribution of introduction rule types.

  55. def partiallyApply(f: Term): Option[Map[Term, Term]]

    single function application to generate partial applications of f, if f is a function

    single function application to generate partial applications of f, if f is a function

    f

    the function to partially apply

    returns

    distribution of terms

  56. def piIsle(typ: Typ[Term]): Island[Typ[Term], InitState, Typ[Term], Term]

    island to generate Pi-Types by taking variables with specified domain, similar to lambdaIsle

    island to generate Pi-Types by taking variables with specified domain, similar to lambdaIsle

    typ

    the domain for

    returns

    distribution of types

  57. val piNode: FlatMap[Typ[Term], Typ[Term]]

    aggregate generation of Pi-types from islands

  58. val recFuncFoldedNode: GeneratorNode[Term]

    Node for recursive definitions picking an inductive definition, generating a domain and invoking the node getting codomain and recursion data

  59. val recFuncs: FlatMap[ExstInducStrucs, ExstFunc]

    aggregate recursion functions from inductive types

  60. def recFuncsFolded(ind: ExstInducDefn): GeneratorNode[Term]

    Recursive definitions from a given inductive definition by generating a domain and invoking the node getting codomain and recursion data

  61. def recFuncsFoldedGivenDomNode(ind: ExstInducDefn, dom: Term): GeneratorNode[Term]

    Recursive definition given an inductive definition and a domain, i.e., recursion function with data of the right type folded in.

    Recursive definition given an inductive definition and a domain, i.e., recursion function with data of the right type folded in. Examples of domains are Nat, Vec(A) and Fin

  62. def selfHeadNode(inductiveTyp: Typ[Term]): Island[Typ[Term], InitState, Typ[Term], Term]

    extend an introduction rule type for an inductive type W by W -> ...

    extend an introduction rule type for an inductive type W by W -> ...

    inductiveTyp

    the inductive type being defined

    returns

    distribution of types for introduction rules

  63. def sigmaIsle(typ: Typ[Term]): Island[Typ[Term], InitState, Typ[Term], Term]

    island to generate Sigma-Types by taking variables with specified domain, similar to lambdaIsle

    island to generate Sigma-Types by taking variables with specified domain, similar to lambdaIsle

    typ

    the domain for

    returns

    distribution of types

  64. val sigmaNode: FlatMap[Typ[Term], Typ[Term]]

    aggregate generation of Sigma-types from islands

  65. def simpleInductiveDefn(inductiveTyp: Typ[Term]): Map[Vector[Typ[Term]], ExstInducDefn]

    builds an inductive definition, i.e.

    builds an inductive definition, i.e. structure with type, from a bunch of introduction rules for a type inductiveTyp, we must separately specify how to build an introduction rules, as well as a vector of these.

    inductiveTyp

    the inductve type being defined

    returns

    distribution on existential inductive structures

  66. def simpleInductiveStructure(inductiveTyp: Typ[Term]): Map[Vector[Typ[Term]], ExstInducStrucs]

    builds an inductive structure from a bunch of introduction rules for a type inductiveTyp, we must separately specify how to build an introduction rules, as well as a vector of these.

    builds an inductive structure from a bunch of introduction rules for a type inductiveTyp, we must separately specify how to build an introduction rules, as well as a vector of these.

    inductiveTyp

    the inductve type being defined

    returns

    distribution on existential inductive structures

  67. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  68. def targetInducBackNode(typ: Typ[Term]): MapOpt[ExstInducDefn, Term]

    Node for recursive definitions targeting a specific type picking an inductive definition, generating a domain and invoking the node getting codomain; but not the recursion data here meant to be used for backward reasoning.

  69. def targetInducFuncsFolded(ind: ExstInducDefn, target: Typ[Term]): Option[GeneratorNode[Term]]

    Node for recursive definitions targeting a specific type picking an inductive definition, generating a domain and invoking the node getting codomain and recursion data

  70. def targetInducNode(typ: Typ[Term]): FlatMapOpt[ExstInducDefn, Term]

    Node for recursive definitions targeting a specific type picking an inductive definition, generating a domain and invoking the node getting codomain; but not the recursion data here

  71. val targetInducNodeFamily: BasePi[::[Typ[Term], HNil], Term]

    Family of nodes for recursive definitions targeting a specific type picking an inductive definition, generating a domain and invoking the node getting codomain; but not the recursion data here

  72. val termsByTyps: ZipFlatMap[Typ[Term], Term, Term]

    terms generated by first choosing type and then term with the type; a form of backward reasoning

  73. def toString(): String
    Definition Classes
    AnyRef → Any
  74. val typApplnBase: FiberProductMap[ExstFunc, Term, Typ[Term], Term]

    function application to get terms by choosing a type family and then a term in its domain, but without conditioning

  75. val typApplnNode: GeneratorNode[Typ[Term]]

    function application to get types by choosing a type family and then a term in its domain, but without conditioning

  76. val typAsCodNodeFamily: BasePi[::[Typ[Term], HNil], Term]

    Node for generating terms of a type (if possible) by multiple applications of functions targeting the type.

  77. val typFamilyApplnNode: GeneratorNode[ExstFunc]

    function application to get type families by choosing a type family and then a term in its domain, but without conditioning

  78. val typFamilyUnifApplnNode: GeneratorNode[ExstFunc]

    function application with unification starting with type families, with output conditioned to be a type family.

  79. val typFoldNode: FlatMap[ExstFunc, Typ[Term]]

    Node family for fully folding type families to get types

  80. def typFromFamily(typF: Term): MapOpt[Term, Typ[Term]]

    types from a type family by filtering partial applications to consider only types.

    types from a type family by filtering partial applications to consider only types.

    typF

    the type family

    returns

    distribution of types.

  81. val typUnifApplnBase: ZipMapOpt[ExstFunc, Term, Term]

    function application with unification starting with type families, but with output not conditioned.

  82. val typUnifApplnNode: GeneratorNode[Typ[Term]]

    function application with unification starting with type families, with output conditioned to be a type.

  83. val unifApplnNode: ZipMapOpt[ExstFunc, Term, Term]

    function application with unification node to get terms

  84. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  85. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  86. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  87. case object Appln extends (ExstFunc, Term) => Term with Product with Serializable

    Wrapper for application to allow equality and toString to work.

  88. case object CurryForTyp extends (::[Typ[Term], HNil]) => Option[GeneratorNode[Term]] with Product with Serializable
  89. case object FlipAppln extends (Term, ExstFunc) => Term with Product with Serializable

    Wrapper for flipped application to allow equality and toString to work.

  90. case object FoldTypFamily extends (ExstFunc) => GeneratorNode[Typ[Term]] with Product with Serializable
  91. case object FoldedTargetFunctionNode extends (::[Typ[Term], HNil]) => FlatMapOpt[Term, Term] with Product with Serializable
  92. case object InducFuncsFolded extends (ExstInducDefn) => GeneratorNode[Term] with Product with Serializable
  93. case object LambdaIsle extends (Typ[Term]) => Island[Term, InitState, Term, Term] with Product with Serializable

    Wrapper for lambda island to allow equality and toString to work.

  94. case object LambdaIsleForFuncWithDomain extends (::[Typ[Term], HNil]) => Island[ExstFunc, InitState, Term, Term] with Product with Serializable
  95. case object LambdaTypFamilyIsle extends (Typ[Term]) => GeneratorNode[ExstFunc] with Product with Serializable

    Wrapper for lambda island tageting type families to allow equality and toString to work.

  96. case object NodeForTyp extends (::[Typ[Term], HNil]) => Option[GeneratorNode[Term]] with Product with Serializable
  97. case object PiIsle extends (Typ[Term]) => Island[Typ[Term], InitState, Typ[Term], Term] with Product with Serializable
  98. case object RecFuncsFolded extends (ExstInducDefn) => GeneratorNode[Term] with Product with Serializable
  99. case object SigmaIsle extends (Typ[Term]) => Island[Typ[Term], InitState, Typ[Term], Term] with Product with Serializable
  100. case object TargetInducNode extends (::[Typ[Term], HNil]) => FlatMapOpt[ExstInducDefn, Term] with Product with Serializable
  101. case object UnifApplnOpt extends (ExstFunc, Term) => Option[Term] with Product with Serializable

    Wrapper for unified application to allow equality and toString to work.

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated
  2. def [B](y: B): (TermGeneratorNodes[InitState], B)
    Implicit
    This member is added by an implicit conversion from TermGeneratorNodes[InitState] toArrowAssoc[TermGeneratorNodes[InitState]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromTermGeneratorNodes[InitState] to any2stringadd[TermGeneratorNodes[InitState]]

Inherited by implicit conversion StringFormat fromTermGeneratorNodes[InitState] to StringFormat[TermGeneratorNodes[InitState]]

Inherited by implicit conversion Ensuring fromTermGeneratorNodes[InitState] to Ensuring[TermGeneratorNodes[InitState]]

Inherited by implicit conversion ArrowAssoc fromTermGeneratorNodes[InitState] to ArrowAssoc[TermGeneratorNodes[InitState]]

Ungrouped