case class FuncConsShape[HS <: HList, H <: Term with Subs[H], HC <: Term with Subs[HC], F <: Term with Subs[F]](tail: IterFuncShape[H, F], head: ConstructorShape[HS, H, HC]) extends ConstructorShape[::[FuncConsShape.type, HS], H, Func[F, HC]] with Product with Serializable
ConstructorShape corresponding to an introduction rule of the form
(.. -> W) -> head
- Alphabetic
- By Inheritance
- FuncConsShape
- Serializable
- Product
- Equals
- ConstructorShape
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new FuncConsShape(tail: IterFuncShape[H, F], head: ConstructorShape[HS, H, HC])
Value Members
- def -->:(that: IdShape.type): FuncConsShape[::[FuncConsShape.type, HS], H, Func[F, HC], H]
returns shape
that -> this' where
thatmust be the shape for inductive type
Wreturns shape
that -> this' where
thatmust be the shape for inductive type
W- Definition Classes
- ConstructorShape
- def -->:[F <: Term with Subs[F]](that: IterFuncShape[H, F]): FuncConsShape[::[FuncConsShape.type, HS], H, Func[F, HC], F]
returns shape
that -> this' where
thatis of the form
W,
A -> Wetc; invoking this is an error if we
thatis independent of
Wreturns shape
that -> this' where
thatis of the form
W,
A -> Wetc; invoking this is an error if we
thatis independent of
W- Definition Classes
- ConstructorShape
- def ->:[T <: Term with Subs[T]](tail: Typ[T]): CnstFuncConsShape[::[FuncConsShape.type, HS], H, Func[F, HC], T, Nothing]
returns shape
tail ->: this
where tail must be independent of the inductive typeW
being defined.returns shape
tail ->: this
where tail must be independent of the inductive typeW
being defined.- Definition Classes
- ConstructorShape
- def apply(tp: Typ[H]): FuncTyp[F, HC]
returns HoTT type of the introduction rule given the (inductive) type W (to be the head).
returns HoTT type of the introduction rule given the (inductive) type W (to be the head).
- Definition Classes
- FuncConsShape → ConstructorShape
- val head: ConstructorShape[HS, H, HC]
- val introArgs: Int
- Definition Classes
- FuncConsShape → ConstructorShape
- def lift[Cod <: Term with Subs[Cod], RecDataType <: Term with Subs[RecDataType], InducDataType <: Term with Subs[InducDataType]](implicit mp: ConstructorPatternMapper[::[FuncConsShape.type, HS], Cod, Func[F, HC], H, RecDataType, InducDataType]): ConstructorPatternMap[Cod, Func[F, HC], H, RecDataType, InducDataType]
lift to ConstructorPatternMap using an implicit ConstructorPatternMapper, which could from the mapper method.
lift to ConstructorPatternMap using an implicit ConstructorPatternMapper, which could from the mapper method.
- Definition Classes
- ConstructorShape
- def mapped[Cod <: Term with Subs[Cod]]: ConstructorPatternMap[Cod, Func[F, HC], H, RecDataType, InducDataType] forSome {type RecDataType <: Term with Subs[RecDataType], type InducDataType <: Term with Subs[InducDataType]}
lift to ConstructorPatternMap using the result of the mapper method.
lift to ConstructorPatternMap using the result of the mapper method.
- Definition Classes
- ConstructorShape
- def mapper[C <: Term with Subs[C]]: ConstructorPatternMapper[::[FuncConsShape.type, HS], C, Func[F, HC], H, RecDataType, InducDataType] forSome {type RecDataType <: Term with Subs[RecDataType], type InducDataType <: Term with Subs[InducDataType]}
helper to give ConstructorPatternMap when scala type of codomain is specified.
helper to give ConstructorPatternMap when scala type of codomain is specified.
- Definition Classes
- FuncConsShape → ConstructorShape
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def subs(x: Term, y: Term): FuncConsShape[HS, H, HC, F]
- Definition Classes
- FuncConsShape → ConstructorShape
- def symbcons(name: AnySym, tp: Typ[H]): ConstructorShape.symbcons._1.type.Obj with Subs[ConstructorShape.symbcons._1.type.Obj] forSome {val _1: Typ[Func[F, HC]]}
returns term giving introduction rule given inductive type and name
returns term giving introduction rule given inductive type and name
- Definition Classes
- ConstructorShape
- val tail: IterFuncShape[H, F]
- def ~>:[T <: Term with Subs[T]](tailVar: T): CnstDepFuncConsShape[::[FuncConsShape.type, HS], H, Func[F, HC], T, Nothing]
returns dependent shape
tail ~>: this
where tail must be independent of the inductive typeW
being defined.returns dependent shape
tail ~>: this
where tail must be independent of the inductive typeW
being defined.- Definition Classes
- ConstructorShape