sealed trait ConstructorPattern[Cod <: Term with Subs[Cod], CnstrctrType <: Term with Subs[CnstrctrType], H <: Term with Subs[H]] extends AnyRef
A composite pattern for inductive types. Typically (A -> B -> W)-> C -> W -> (D -> W) -> W as a function of W May have Pi-types instead of function types Assumed to have fixed type for codomain X.
- Cod
scala type of objects in codomain for recursion and induction functions. The type of the codomain is needed as there are inner types for data for recursion and induction functions.
- CnstrctrType
scala type of a constructor corresponding to this pattern.
- H
scala type of the terms of the inductive type.
- Self Type
- ConstructorPattern[Cod, CnstrctrType, H]
- Alphabetic
- By Inheritance
- ConstructorPattern
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Type Members
- type ConstructorType = CnstrctrType
- type DomainType = H
- abstract type InducDataType <: Term with Subs[InducDataType]
(scala) type of data for recursion corresponding to the single constructor
- abstract type RecDataType <: Term with Subs[RecDataType]
(scala) type of data for recursion corresponding to the single constructor
Abstract Value Members
- abstract def apply(tp: Typ[H]): Typ[ConstructorType]
returns HoTT type corresponding to the pattern given the (inductive) type W (to be the head).
- abstract def inducDataTyp(w: Typ[H], xs: Func[H, Typ[Cod]])(cons: ConstructorType): Typ[InducDataType]
domain containing the induction data for the constructor, i.e., the HoTT type of the induction data.
- abstract def inducDefCase(cons: ConstructorType, data: InducDataType, f: => FuncLike[H, Cod]): (H) => Option[Cod]
given a term, matches to see if this is the image of a given (quasi)-constructor, with
this
constructor pattern.given a term, matches to see if this is the image of a given (quasi)-constructor, with
this
constructor pattern. optionally returns simplification (if the term matches).- cons
constructor, actually quasi-constructor, with which to match.
- data
definition data for the image of the constructor.
- f
the function being defined inductively, to be used recursively in definition.
- abstract def recDataTyp(w: Typ[H], x: Typ[Cod]): Typ[RecDataType]
domain containing the recursion data for the constructor, i.e., the HoTT type of recursion data.
- abstract def recDefCase(cons: ConstructorType, data: RecDataType, f: => Func[H, Cod]): (H) => Option[Cod]
given a term, matches to see if this is the image of a given (quasi)-constructor, with
this
constructor pattern.given a term, matches to see if this is the image of a given (quasi)-constructor, with
this
constructor pattern. optionally returns simplification (if the term matches), determined by the recursion data.- cons
constructor, actually quasi-constructor, with which to match.
- data
definition data for the image of the constructor.
- f
the function being defined recursively, to be used recursively in definition.
- abstract def subs(x: Term, y: Term): ConstructorPattern[Cod, CnstrctrType, H]
- abstract val univLevel: Int
- abstract def withCod[CC <: Term with Subs[CC]](w: Typ[H]): ConstructorPattern[CC, ConstructorType, H]
changes codomain and propagates changes to other types.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from ConstructorPattern[Cod, CnstrctrType, H] toany2stringadd[ConstructorPattern[Cod, CnstrctrType, H]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def -->:(that: IdW[_]): FuncPtn[Cod, H, CnstrctrType, H]
- def -->:[F <: Term with Subs[F]](that: IterFuncPtn[H, Cod, F]): FuncPtn[Cod, F, CnstrctrType, H]
function pattern.
- def ->[B](y: B): (ConstructorPattern[Cod, CnstrctrType, H], B)
- Implicit
- This member is added by an implicit conversion from ConstructorPattern[Cod, CnstrctrType, H] toArrowAssoc[ConstructorPattern[Cod, CnstrctrType, H]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- def ->:[T <: Term with Subs[T]](tail: Typ[T]): CnstFncPtn[T, Cod, CnstrctrType, H]
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def cons(tp: => Typ[H]): Constructor.ConstructorType
- def cons(tp: => Typ[H], name: AnySym): CnstrctrType
- def constructor(tp: => Typ[H], name: AnySym): ConstructorDefn[ConstructorType, Cod, H]
constructor for this pattern given inductive type and name.
- def ensuring(cond: (ConstructorPattern[Cod, CnstrctrType, H]) => Boolean, msg: => Any): ConstructorPattern[Cod, CnstrctrType, H]
- Implicit
- This member is added by an implicit conversion from ConstructorPattern[Cod, CnstrctrType, H] toEnsuring[ConstructorPattern[Cod, CnstrctrType, H]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (ConstructorPattern[Cod, CnstrctrType, H]) => Boolean): ConstructorPattern[Cod, CnstrctrType, H]
- Implicit
- This member is added by an implicit conversion from ConstructorPattern[Cod, CnstrctrType, H] toEnsuring[ConstructorPattern[Cod, CnstrctrType, H]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): ConstructorPattern[Cod, CnstrctrType, H]
- Implicit
- This member is added by an implicit conversion from ConstructorPattern[Cod, CnstrctrType, H] toEnsuring[ConstructorPattern[Cod, CnstrctrType, H]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): ConstructorPattern[Cod, CnstrctrType, H]
- Implicit
- This member is added by an implicit conversion from ConstructorPattern[Cod, CnstrctrType, H] toEnsuring[ConstructorPattern[Cod, CnstrctrType, H]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from ConstructorPattern[Cod, CnstrctrType, H] toStringFormat[ConstructorPattern[Cod, CnstrctrType, H]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def newconstructor(tp: Typ[H]): Constructor[Cod, H]
constructor for this pattern given inductive type, with a name symbol generated.
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def ~>:[T <: Term with Subs[T]](tailVar: T): CnstDepFuncPtn[T, (<refinement>.this)#RecDataType, (<refinement>.this)#InducDataType, Cod, CnstrctrType, H]
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
- def →[B](y: B): (ConstructorPattern[Cod, CnstrctrType, H], B)
- Implicit
- This member is added by an implicit conversion from ConstructorPattern[Cod, CnstrctrType, H] toArrowAssoc[ConstructorPattern[Cod, CnstrctrType, H]] 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.