case class ProdTyp[U <: Term with Subs[U], V <: Term with Subs[V]](first: Typ[U], second: Typ[V]) extends Typ[PairTerm[U, V]] with AbsPair[Typ[U], Typ[V]] with Subs[ProdTyp[U, V]] with Product with Serializable
The product type A times B
- first
the first component
- second
the second component
- Self Type
- ProdTyp[U, V]
- Alphabetic
- By Inheritance
- ProdTyp
- Serializable
- Product
- Equals
- AbsPair
- Typ
- Term
- Subs
- AnyRef
- Any
- by RichTerm
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
Type Members
- case class InducFn[W <: Term with Subs[W]](targetFmly: Func[U, Func[V, Typ[W]]], data: FuncLike[U, FuncLike[V, W]]) extends InducFuncLike[PairTerm[U, V], W] with Product with Serializable
Inductive definition
Inductive definition
- targetFmly
type family for the Pi-type dependent codomain
- data
definition data
- type Obj = PairTerm[U, V]
scala type of objects with this HoTT-type (refining
U
) - case class RecFn[W <: Term with Subs[W]](codom: Typ[W], data: Func[U, Func[V, W]]) extends RecFunc[PairTerm[U, V], W] with Product with Serializable
Recursion function from product type
Recursion function from product type
- codom
the codomain
- data
the definition data
Value Members
- def !:(term: Term): PairTerm[U, V]
checks term is of this type and returns it; useful for documentation.
checks term is of this type and returns it; useful for documentation.
- Definition Classes
- Typ
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def &&[UU >: PairTerm[U, V] <: Term with Subs[UU], V <: Term with Subs[V]](that: Typ[V]): ProdTyp[UU, V]
returns product type, mainly to use for "and" for structures
returns product type, mainly to use for "and" for structures
- Definition Classes
- Typ
- def &:[UU >: PairTerm[U, V] <: Term with Subs[UU], V <: Term with Subs[V]](variable: V): SigmaTyp[V, UU]
- Definition Classes
- Typ
- def +(other: String): String
- def ++[UU >: Typ[PairTerm[U, V]] <: Typ[Term] with Subs[UU], VV <: Term with Subs[VV], V <: Typ[VV] with Subs[V]](those: V): SigmaTyp[UU, VV]
returns Sigma-Type, mainly to use as "such that", for example a group type is this with product etc.
returns Sigma-Type, mainly to use as "such that", for example a group type is this with product etc. dependent on this.
- Definition Classes
- Typ
- def ->[B](y: B): (ProdTyp[U, V], B)
- def ->:[W <: Term with Subs[W], UU >: PairTerm[U, V] <: Term with Subs[UU]](that: Typ[W]): FuncTyp[W, UU]
function type:
this -> that
function type:
this -> that
- Definition Classes
- Typ
- def :->[V <: Term with Subs[V]](that: V): Func[ProdTyp[U, V], V]
constructor for (pure) lambda functions, see lmbda
- def ::(name: String): PairTerm[U, V]
symbolic object with given name
symbolic object with given name
- Definition Classes
- Typ
- def :~>[V <: Term with Subs[V]](that: V): FuncLike[ProdTyp[U, V], V]
constructor for (in general dependent) lambda functions, see lambda
- def =:=(rhs: ProdTyp[U, V]): IdentityTyp[ProdTyp[U, V]]
equality type 'term = rhs'
equality type 'term = rhs'
- Implicit
- This member is added by an implicit conversion from ProdTyp[U, V] toRichTerm[ProdTyp[U, V]] performed by method RichTerm in provingground.HoTT.
- Definition Classes
- RichTerm
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def Var(implicit factory: NameFactory): PairTerm[U, V]
new variable from a factory.
new variable from a factory.
- Definition Classes
- Typ
- 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 dependsOn(that: Term): Boolean
returns whether
this
depends onthat
returns whether
this
depends onthat
- Definition Classes
- Term
- def ensuring(cond: (ProdTyp[U, V]) => Boolean, msg: => Any): ProdTyp[U, V]
- def ensuring(cond: (ProdTyp[U, V]) => Boolean): ProdTyp[U, V]
- def ensuring(cond: Boolean, msg: => Any): ProdTyp[U, V]
- def ensuring(cond: Boolean): ProdTyp[U, V]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- val first: Typ[U]
- def formatted(fmtstr: String): String
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def indepOf(that: Term): Boolean
returns whether
this
is independent ofthat
.returns whether
this
is independent ofthat
.- Definition Classes
- Term
- def induc[W <: Term with Subs[W]](targetFmly: Func[U, Func[V, Typ[W]]]): Func[FuncLike[U, FuncLike[V, W]], FuncLike[PairTerm[U, V], W]]
Inductively defined function to targetFmly
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def newobj: ProdTyp[U, V]
A new object with the same type, to be used in place of a variable to avoid name clashes.
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def obj: PairTerm[U, V]
factory for producing objects of the given type.
factory for producing objects of the given type. can use {{innervar}} if one wants name unchanged.
- Definition Classes
- Typ
- lazy val paircons: Func[U, Func[V, PairTerm[U, V]]]
Introduction rule for the product type
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- lazy val proj1: Func[PairTerm[U, V], U]
Projection from product
- lazy val proj2: Func[PairTerm[U, V], V]
Projection from product
- def rec[W <: Term with Subs[W]](target: Typ[W]): Func[Func[U, Func[V, W]], Func[PairTerm[U, V], W]]
recursive definition
recursive definition
- target
the codomain
- def refl: Refl[ProdTyp[U, V]]
reflexivity term
refl : term = term
reflexivity term
refl : term = term
- Implicit
- This member is added by an implicit conversion from ProdTyp[U, V] toRichTerm[ProdTyp[U, V]] performed by method RichTerm in provingground.HoTT.
- Definition Classes
- RichTerm
- def replace(x: Term, y: Term): ProdTyp[U, V] with Subs[ProdTyp[U, V]]
refine substitution so if x and y are both of certain forms such as pairs or formal applications, components are substituted.
refine substitution so if x and y are both of certain forms such as pairs or formal applications, components are substituted.
- Definition Classes
- Subs
- val second: Typ[V]
- def subs(x: Term, y: Term): ProdTyp[U, V]
substitute x by y recursively in
this
. - def sym(implicit name: sourcecode.Name): PairTerm[U, V]
shortcut for symbolic object
shortcut for symbolic object
- Definition Classes
- Typ
- def symbObj(name: AnySym): PairTerm[U, V] with Subs[PairTerm[U, V]]
A symbolic object with this HoTT type, and with scala-type Obj
A symbolic object with this HoTT type, and with scala-type Obj
- Definition Classes
- Typ
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AbsPair → AnyRef → Any
- lazy val typ: Universe
type of a type is a universe.
- lazy val typlevel: Int
- Definition Classes
- Typ
- def usesVar(t: Term): Boolean
returns whether the variable
t
is used as a variable in a lambda definition.returns whether the variable
t
is used as a variable in a lambda definition.- Definition Classes
- Term
- def variable(name: AnySym): Obj
A symbolic object with this HoTT type, and with scala-type Obj
- 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 ||[UU >: PairTerm[U, V] <: Term with Subs[UU], V <: Term with Subs[V]](that: Typ[V]): PlusTyp[UU, V]
returns coproduct type, mainly to use for "or".
returns coproduct type, mainly to use for "or".
- Definition Classes
- Typ
- def ~>:[UU >: PairTerm[U, V] <: Term with Subs[UU], V <: Term with Subs[V]](variable: V): GenFuncTyp[V, UU]
dependent function type (Pi-Type) define by a lambda:
this
depends on thevariable
, which hence gives a type family; note that a new variable is created and substituted inthis
to avoid name clashes.dependent function type (Pi-Type) define by a lambda:
this
depends on thevariable
, which hence gives a type family; note that a new variable is created and substituted inthis
to avoid name clashes.- Definition Classes
- Typ
- object Elem
Pattern for element of the given type.
Pattern for element of the given type.
- Definition Classes
- Typ
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
- def →[B](y: B): (ProdTyp[U, V], B)
- Implicit
- This member is added by an implicit conversion from ProdTyp[U, V] toArrowAssoc[ProdTyp[U, V]] 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.