quot.map

Map a function f : α β such that ra x y implies rb (f x) (f y) to a map quot ra quot rb.

quot.map_right

If ra is a subrelation of ra', then we have a natural map quot ra quot ra'.

quotient.map

Map a function f : α β that sends equivalent elements to equivalent elements to a function quotient sa quotient sb. Useful to define unary operations on quotients.

quotient.map₂

Map a function f : α β γ that sends equivalent elements to equivalent elements to a function f : quotient sa quotient sb quotient sc. Useful to define binary operations on quotients.

quotient.map₂'

A version of quotient.map₂ using curly braces and unification.

quot.out

Choose an element of the equivalence class using the axiom of choice. Sound but noncomputable.

quot.unquot

Unwrap the VM representation of a quotient to obtain an element of the equivalence class. Computable but unsound.

quotient.out

Choose an element of the equivalence class using the axiom of choice. Sound but noncomputable.

trunc

trunc α is the quotient of α by the always-true relation. This is related to the propositional truncation in HoTT, and is similar in effect to nonempty α, but unlike nonempty α, trunc α is data, so the VM representation is the same as α, and so this can be used to maintain computability.

trunc.mk

Constructor for trunc α

trunc.lift

Any constant function lifts to a function out of the truncation

trunc.out

Noncomputably extract a representative of trunc α (using the axiom of choice).