Packages

case class PiTerm(multElems: Map[LocalTerm, Int]) extends LocalTerm with FoldedTerm[LocalTerm] with Product with Serializable

A product of terms in normal form, i.e., * none of the terms is a sum * we have either at least two terms or a single term with exponent not 1, * no exponent is 0.

Linear Supertypes
Serializable, Product, Equals, FoldedTerm[LocalTerm], RepTerm[A], Term, Subs[RepTerm[A]], AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PiTerm
  2. Serializable
  3. Product
  4. Equals
  5. FoldedTerm
  6. RepTerm
  7. Term
  8. Subs
  9. AnyRef
  10. 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 PiTerm(multElems: Map[LocalTerm, Int])

Value Members

  1. def *:(y: LocalTerm): LocalTerm
  2. lazy val atomize: List[LocalTerm]
  3. def dependsOn(that: Term): Boolean

    returns whether this depends on that

    returns whether this depends on that

    Definition Classes
    Term
  4. val elems: Vector[LocalTerm]
    Definition Classes
    PiTermFoldedTerm
  5. def exponent(x: LocalTerm): Int
  6. lazy val head: LocalTerm
  7. def indepOf(that: Term): Boolean

    returns whether this is independent of that.

    returns whether this is independent of that.

    Definition Classes
    Term
  8. val isComposite: Boolean
  9. val multElems: Map[LocalTerm, Int]
  10. def newobj: LocalTerm

    A new object with the same type, to be used in place of a variable to avoid name clashes.

    A new object with the same type, to be used in place of a variable to avoid name clashes. Should throw exception when invoked for constants.

    Definition Classes
    PiTermSubs
  11. val op: prod.type
    Definition Classes
    PiTermFoldedTerm
  12. def productElementNames: Iterator[String]
    Definition Classes
    Product
  13. def replace(x: Term, y: Term): RepTerm[A] with Subs[RepTerm[A]]

    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
  14. def subs(x: Term, y: Term): LocalTerm

    substitute x by y recursively in this.

    substitute x by y recursively in this.

    Definition Classes
    PiTermSubs
  15. lazy val tail: LocalTerm
  16. def toString(): String
    Definition Classes
    PiTerm → AnyRef → Any
  17. val typ: LocalTyp.type

    the HoTT-type of the term

    the HoTT-type of the term

    Definition Classes
    PiTermRepTermTerm
  18. 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