package coarse
an earlier implementation of induction, without clean separation of codomain scala types; use induction instead
- Alphabetic
- By Inheritance
- coarse
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- trait Constructor[Cod <: Term with Subs[Cod], H <: Term with Subs[H]] extends AnyRef
Constructor for an inductive type, with given scala type and poly-pattern of this type.
Constructor for an inductive type, with given scala type and poly-pattern of this type.
abstraction of ConstructorDefn mainly to allow different type parameters.
- case class ConstructorDefn[U <: Term with Subs[U], C <: Term with Subs[C], H <: Term with Subs[H]](pattern: ConstructorPattern[C, U, H], cons: U, W: Typ[H]) extends Constructor[C, H] with Product with Serializable
a constructor given by its parameters.
a constructor given by its parameters.
- U
scala type of polypattern.
- pattern
poly-pattern for the constructor.
- cons
constructor function.
- 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.
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.
- trait ConstructorSeq[C <: Term with Subs[C], H <: Term with Subs[H]] extends AnyRef
- case class ConstructorTyp[C <: Term with Subs[C], F <: Term with Subs[F], H <: Term with Subs[H]](pattern: ConstructorPattern[C, F, H], typ: Typ[H]) extends Product with Serializable
Constructor pattern with type, for convenient building.
- trait Curry[Iter <: Term with Subs[Term], Total <: Term with Subs[Total], Cod <: Term with Subs[Cod]] extends AnyRef
- sealed trait FmlyPtn[O <: Term with Subs[O], C <: Term with Subs[C], F <: Term with Subs[F]] extends AnyRef
A pattern for families, e.g.
A pattern for families, e.g. of inductive types to be defined for instance A -> B -> W, where W is the type to be defined; ends with the type with members.
given a codomain C, or a family of codomains, we can lift functions W -> C to functions on families.
- O
scala type of objects of W, i.e., members of the family.
- C
scala type of the codomain, needed to deduce types for induced functions. This is used in more than one way, which perhaps should be separated: for constructor types and for inductive families. Hence we need two kinds of induced functions, e.g., (A -> B -> W) -> (A -> B -> X) and (A -> B -> W -> X).
- F
scala type of sections, e.g. A -> B -> W
- class IndexedConstructorPatterns[C <: Term with Subs[C], H <: Term with Subs[H], F <: Term with Subs[F]] extends AnyRef
- trait InductiveTyp[C <: Term with Subs[C], H <: Term with Subs[H]] extends Typ[H]
- case class InductiveTypDefinition[C <: Term with Subs[C]](constructorDefs: List[(Typ[Term]) => Constructor[C, Term]]) extends InductiveTyp[C, Term] with Product with Serializable
Value Members
- object BaseConstructorTypes
- object Constructor
- object ConstructorPattern
- object ConstructorSeq
- object ConstructorTyp extends Serializable
- object Curry
- object FmlyPtn
- object Implicits
- object IndexedConstructorPatterns
- object InductiveTyp
- object IterFuncPattern