nLab setoid

Setoids

Context

Category theory

Relations

Constructivism, Realizability, Computability

Type theory

natural deduction metalanguage, practical foundations

  1. type formation rule
  2. term introduction rule
  3. term elimination rule
  4. computation rule

type theory (dependent, intensional, observational type theory, homotopy type theory)

syntax object language

computational trinitarianism =
propositions as types +programs as proofs +relation type theory/category theory

logicset theory (internal logic of)category theorytype theory
propositionsetobjecttype
predicatefamily of setsdisplay morphismdependent type
proofelementgeneralized elementterm/program
cut rulecomposition of classifying morphisms / pullback of display mapssubstitution
introduction rule for implicationcounit for hom-tensor adjunctionlambda
elimination rule for implicationunit for hom-tensor adjunctionapplication
cut elimination for implicationone of the zigzag identities for hom-tensor adjunctionbeta reduction
identity elimination for implicationthe other zigzag identity for hom-tensor adjunctioneta conversion
truesingletonterminal object/(-2)-truncated objecth-level 0-type/unit type
falseempty setinitial objectempty type
proposition, truth valuesubsingletonsubterminal object/(-1)-truncated objecth-proposition, mere proposition
logical conjunctioncartesian productproductproduct type
disjunctiondisjoint union (support of)coproduct ((-1)-truncation of)sum type (bracket type of)
implicationfunction set (into subsingleton)internal hom (into subterminal object)function type (into h-proposition)
negationfunction set into empty setinternal hom into initial objectfunction type into empty type
universal quantificationindexed cartesian product (of family of subsingletons)dependent product (of family of subterminal objects)dependent product type (of family of h-propositions)
existential quantificationindexed disjoint union (support of)dependent sum ((-1)-truncation of)dependent sum type (bracket type of)
logical equivalencebijection setobject of isomorphismsequivalence type
support setsupport object/(-1)-truncationpropositional truncation/bracket type
n-image of morphism into terminal object/n-truncationn-truncation modality
equalitydiagonal function/diagonal subset/diagonal relationpath space objectidentity type/path type
completely presented setsetdiscrete object/0-truncated objecth-level 2-type/set/h-set
setset with equivalence relationinternal 0-groupoidBishop set/setoid with its pseudo-equivalence relation an actual equivalence relation
equivalence class/quotient setquotientquotient type
inductioncolimitinductive type, W-type, M-type
higher inductionhigher colimithigher inductive type
-0-truncated higher colimitquotient inductive type
coinductionlimitcoinductive type
presettype without identity types
set of truth valuessubobject classifiertype of propositions
domain of discourseuniverseobject classifiertype universe
modalityclosure operator, (idempotent) monadmodal type theory, monad (in computer science)
linear logic(symmetric, closed) monoidal categorylinear type theory/quantum computation
proof netstring diagramquantum circuit
(absence of) contraction rule(absence of) diagonalno-cloning theorem
synthetic mathematicsdomain specific embedded programming language

homotopy levels

semantics

Graph theory

Foundations

foundations

The basis of it all

 Set theory

set theory

Foundational axioms

foundational axioms

Removing axioms

Setoids

Idea

A setoid is a set equipped with a pseudo-equivalence relation. In the same way that magmoids are the raw structure used to build semicategories and pseudo-prosets are the raw structure used to build categories, setoids are the raw structure used to build dagger categories and groupoids (i.e. a groupoid without associativity, unital laws, and inverse laws). Setoids are also sometimes used in “impoverished” foundations of mathematics that lack a primitive notion of quotient set; see for instance Bishop set.

Note on terminology

Sometimes, the term “setoid” is used in the mathematics literature for a set equipped with an equivalence relation, rather than a set equipped with a pseudo-equivalence relation. However, in the nLab we shall by default take setoids as those sets equipped with a pseudo-equivalence relation, which is required for the category SetoidSetoid to be the ex/lex completion of SetSet.

Definition

With a set and a family of sets

Using graph theoretic terminology, a setoid is a loop directed pseudograph, a set VV of vertices with a family of sets E(a,b)E(a, b) of edges for each vertex aAa \in A and bAb \in A, which comes with the following additional structure

  • for each vertex aAa \in A a family of edges

    refl(a)E(a,a)\mathrm{refl}(a) \in E(a, a)
  • for each vertex aAa \in A and bAb \in A a family of functions

    sym(a,b):E(a,b)E(b,a)\mathrm{sym}(a, b):E(a, b) \to E(b, a)
  • for each vertex aAa \in A, bAb \in A, and cAc \in A, a family of functions

    trans(a,b,c):(E(a,b)×E(b,c))E(a,c)\mathrm{trans}(a, b, c):(E(a, b) \times E(b, c)) \to E(a, c)

The edge family (E,refl,sym,trans)(E, \mathrm{refl}, \mathrm{sym}, \mathrm{trans}) is called a pseudo-equivalence relation.

With two sets

A setoid is a set VV with a set EE and functions s:EVs:E \to V, t:EVt:E \to V (a loop directed pseudograph), with with functions refl:VE\mathrm{refl}:V \to E, sym:EE\mathrm{sym}:E \to E, and

trans:{(f,g)E×E|t(f)= Vs(g)}E\mathrm{trans}:\{(f,g) \in E \times E \vert t(f) =_V s(g)\} \to E

such that

  • for every aVa \in V, s(refl(a))= Eas(\mathrm{refl}(a)) =_E a
  • for every aVa \in V, t(refl(a))= Eat(\mathrm{refl}(a)) =_E a
  • for every fEf \in E, s(f)= Vt(sym(f))s(f) =_V t(\mathrm{sym}(f))
  • for every fEf \in E, t(f)= Vs(sym(f))t(f) =_V s(\mathrm{sym}(f))
  • for every fEf \in E and gEg \in E such that t(f)= Vs(g)t(f) =_V s(g), s(trans(f,g))= Es(f)s(\mathrm{trans}(f,g)) =_E s(f)
  • for every fEf \in E and gEg \in E such that t(f)= Vs(g)t(f) =_V s(g), t(trans(f,g))= Et(g)t(\mathrm{trans}(f,g)) =_E t(g)

The structure (E,s,t,refl,sym,trans)(E, s, t, \mathrm{refl}, \mathrm{sym}, \mathrm{trans}) is called a pseudo-equivalence relation.

Extensional functions, dagger functors, and isomorphisms

We define an extensional function f:ABf:A \to B between two setoids A=(V A,E A,refl A,sym A,trans A)A = (V_A, E_A, \mathrm{refl}_A, \mathrm{sym}_A, \mathrm{trans}_A) and B=(V B,E B,refl B,sym B,trans B)B = (V_B, E_B, \mathrm{refl}_B, \mathrm{sym}_B, \mathrm{trans}_B) to be a function f V:V AV Bf_V:V_A \to V_B and a family of functions f E(a,b):E A(a,b)E B(f V(a),f V(b))f_E(a, b):E_A(a, b) \to E_B(f_V(a), f_V(b))

Composition of extensional functions is defined as composition of the vertex function and of each edge function.

An extensional function between two setoids is full if every edge function f E(a,b):E A(a,b)E B(f V(a),f V(b))f_E(a, b):E_A(a, b) \to E_B(f_V(a), f_V(b)) is a surjection, and an extensional function is faithful if every edge function is an injection. An extensional function is injective-on-objects? if the vertex function f V:V AV Bf_V:V_A \to V_B is an injection, surjective-on-objects if the vertex function is a surjection, and bijective-on-objects if the vertex function is a bijection.

An extensional function is a dagger functor if additionally it preserves the functions refl\mathrm{refl}, sym\mathrm{sym}, trans\mathrm{trans}

f E(a,a)(refl A(a))=refl B(f V(a))f_E(a, a)(\mathrm{refl}_A(a)) = \mathrm{refl}_B(f_V(a))
f E(a,b)(sym A(a,b)(f))=sym B(f V(a),f V(b))(f E(a,b)(f))f_E(a, b)(\mathrm{sym}_A(a, b)(f)) = \mathrm{sym}_B(f_V(a), f_V(b))(f_E(a, b)(f))
f E(a,c)(trans A(f,g))=trans B(f E(a,b)(f),f E(b,c)(g)f_E(a, c)(\mathrm{trans}_A(f,g)) = \mathrm{trans}_B(f_E(a, b)(f), f_E(b, c)(g)

An isomorphism of setoids is a full and faithful bijective-on-objects dagger functor.

Equivalence of definitions

Given a one-set-of-edges setoid EVE\rightrightarrows V, we define a family-of-sets-of-edges setoid by taking E(x,y)E(x,y) to be the preimage of (x,y)(x,y) under the function (s,t):EV×V(s,t):E \to V\times V. Conversely, given a family-of-sets-of-edges setoid we define a one-set-of-edges setoid by taking EE to be the disjoint union of the families of edges E= x,yVE(x,y)E = \coprod_{x,y\in V} E(x,y).

Examples

Every category with a contravariant endofunctor that is the identity-on-objects is a setoid where

  • for every vertex aVa \in V, bVb \in V, cVc \in V, and dVd \in V and edge fE(a,b)f \in E(a, b), gE(b,c)g \in E(b, c), and hE(c,d)h \in E(c, d)

    trans(a,b,d)(f,trans(b,c,d)(g,h))=trans(a,c,d)(trans(a,b,c)(f,g),h)\mathrm{trans}(a, b, d)(f, \mathrm{trans}(b, c, d)(g, h)) = \mathrm{trans}(a, c, d)(\mathrm{trans}(a, b, c)(f, g), h)
  • for every vertex aVa \in V, bVb \in V and edge fE(a,b)f \in E(a, b)

    trans(a,b,b)(f,refl(b))=f\mathrm{trans}(a, b, b)(f, \mathrm{refl}(b)) = f
  • for every vertex aVa \in V, bVb \in V and edge fE(a,b)f \in E(a, b)

    trans(a,a,b)(refl(a),f)=f\mathrm{trans}(a, a, b)(\mathrm{refl}(a), f) = f

This includes dagger categories, where additionally

  • for every vertex aVa \in V, bVb \in V and edge fE(a,b)f \in E(a, b)

    sym(a,b)(sym(b,a)(f))=f\mathrm{sym}(a, b)(\mathrm{sym}(b, a)(f)) = f
  • for every vertex aVa \in V, bVb \in V, cVc \in V and edge fE(a,b)f \in E(a, b), gE(b,c)g \in E(b, c)

    sym(a,c)(trans(a,b,c)(f,g))=trans(c,b,a)(sym(a,b)(f),sym(b,c)(g))\mathrm{sym}(a, c)(\mathrm{trans}(a, b, c)(f, g)) = \mathrm{trans}(c, b, a)(\mathrm{sym}(a, b)(f), \mathrm{sym}(b, c)(g))
  • for every vertex aVa \in V

    sym(a,a)(refl(a))=refl(a)\mathrm{sym}(a, a)(\mathrm{refl}(a)) = \mathrm{refl}(a)

and groupoids, where

  • for every vertex aVa \in V, bVb \in V and edge fE(a,b)f \in E(a, b)

    trans(a,b,a)(f,sym(a,b)(f))=refl(a)\mathrm{trans}(a, b, a)(f, \mathrm{sym}(a, b)(f)) = \mathrm{refl}(a)
  • for every vertex aVa \in V, bVb \in V and edge f:E(a,b)f:E(a, b)

    trans(b,a,b)(sym(a,b)(f),f)=refl(b)\mathrm{trans}(b, a, b)(\mathrm{sym}(a, b)(f), f) = \mathrm{refl}(b)

Additionally, a setoid with one vertex is equivalent to a pointed magma with an endofunction.

Thin setoids

Recall in graph theory that a loop directed pseudograph is simple or a loop digraph if for every vertex aVa \in V and bVb \in V, the set of edges E(a,b)E(a, b) is a subsingleton: for every edge fE(a,b)f \in E(a, b) and gE(a,b)g \in E(a, b), f=gf = g. In the other definition, a loop directed pseudograph is a loop digraph if the functions s:EVs:E \to V and t:EVt:E \to V are jointly monic.

A setoid is thin or simple if its underlying loop directed pseudograph is a loop digraph. In both cases, the pseudo-equivalence relation becomes an equivalence relation. The term “thin” originates from category theory, while the term “simple” originates from graph theory.

A thin setoid is equivalently a thin dagger category, or a dagger category enriched in truth values. A thin setoid is also a thin groupoid, or a groupoid enriched in truth values.

Sometimes in the mathematical literature, setoids are thin by default.

Core of a setoid

For any setoid AA, the core of AA is defined as the maximal subgroupoid? Core(A)\mathrm{Core}(A) of AA.

More specifically, a subsetoid GG of a setoid AA is a setoid GG with an faithful injective-on-objects dagger functor f:GAf:G \to A. A subsetoid GG of AA is a subgroupoid if the pseudo-equivalence relation of GG additionally satisfy the groupoid equational axioms:

  • for every vertex aV Ga \in V_G, bV Gb \in V_G, cV Gc \in V_G, and dV Gd \in V_G and edge fE G(a,b)f \in E_G(a, b), gE G(b,c)g \in E_G(b, c), and hE G(c,d)h \in E_G(c, d)

    trans(a,b,d)(f,trans(b,c,d)(g,h))=trans(a,c,d)(trans(a,b,c)(f,g),h)\mathrm{trans}(a, b, d)(f, \mathrm{trans}(b, c, d)(g, h)) = \mathrm{trans}(a, c, d)(\mathrm{trans}(a, b, c)(f, g), h)
  • for every vertex aV Ga \in V_G, bV Gb \in V_G and edge fE G(a,b)f \in E_G(a, b)

    trans(a,b,b)(f,refl(b))=f\mathrm{trans}(a, b, b)(f, \mathrm{refl}(b)) = f
  • for every vertex aV Ga \in V_G, bV Gb \in V_G and edge fE G(a,b)f \in E_G(a, b)

    trans(a,a,b)(refl(a),f)=f\mathrm{trans}(a, a, b)(\mathrm{refl}(a), f) = f
  • for every vertex aV Ga \in V_G, bV Gb \in V_G and edge fE G(a,b)f \in E_G(a, b)

    trans(a,b,a)(f,sym(a,b)(f))=refl(a)\mathrm{trans}(a, b, a)(f, \mathrm{sym}(a, b)(f)) = \mathrm{refl}(a)
  • for every vertex aV Ga \in V_G, bV Gb \in V_G and edge f:E G(a,b)f:E_G(a, b)

    trans(b,a,b)(sym(a,b)(f),f)=refl(b)\mathrm{trans}(b, a, b)(\mathrm{sym}(a, b)(f), f) = \mathrm{refl}(b)

A subgroupoid GG of a setoid AA is a maximal subgroupoid if the dagger functor f:GAf:G \to A is bijective-on-objects, and additionally if, for every other subgroupoid HH of AA with faithful injective-on-objects dagger functor g:HAg:H \to A, there is a unique faithful injective-on-objects dagger functor h:HGh:H \to G such that hf=gh \circ f = g.

Category of setoids

Let the category Set Set be defined as a category that is finitely complete and well-pointed (i.e. whose terminal object is a extremal generating object). This category of sets is not even a regular category, let alone an exact category, as can happen in certain foundations of mathematics, such as bare set-level Martin-Löf type theory, or ZFC and ETCS without the powerset axiom. The category SetoidSetoid of setoids is then the ex/lex completion of Set.

More specifically, using the definition of setoid with two sets: if (s R,t R):RX(s_R, t_R):R\rightrightarrows X and (s S,t S):SY(s_S, t_S):S\rightrightarrows Y are two setoids, a morphism between them in SetoidSetoid is defined to be a function f:XYf:X\to Y with functions f 1:RSf_1:R \to S with s Sf 1=fs Rs_S \circ f_1 = f \circ s_R and t Sf 1=ft Rt_S \circ f_1 = f \circ t_R. Moreover, we declare two such functions f,g:XYf,g:X\to Y to be equal if there exists a function h:XSh:X\to S such that sh=fs \circ h = f and th=gt \circ h = g. Because (s S,t S):SY(s_S, t_S):S\rightrightarrows Y is a pseudo-equivalence relation, this defines an actual equivalence relation on the morphisms f:XYf:X\to Y, which is compatible with composition; thus we have a well-defined category SetoidSetoid of setoids, which is the ex/lex completion of SetSet.

We have a full and faithful functor SetSetoidSet\to Setoid sending an object XX to the pseudo-equivalence relation (s X,t X):XX(s_X, t_X):X\rightrightarrows X. One can then verify directly that SetoidSetoid is exact, that this embedding preserves finite limits, and that it is universal with respect to lex functors from SetSet into exact categories.

If the presentation axiom (a weak form of the full axiom of choice) holds in SetSet, as a subcategory of SetoidSetoid, SetSet could be thought of as the category of completely presented sets, the category of sets with a projective presentation. If the axiom of choice holds in SetSet, then SetSet is equivalent to SetoidSetoid, as the axiom of choice implies that SetSet is its own free exact completion, and SetSet is equivalent to SetoidSetoid because the free functor from SetSet to SetoidSetoid is an equivalence of categories.

This construction could be generalized to any finitely complete category CC, from which the category of setoid objects of CC is the ex/lex completion of CC, and denoted as C ex/lexC_{ex/lex}. If every epimorphism in CC is additionally a split epimorphism, then CC is its own free exact completion.

In type theory

Many set-level type theories use types which are 0-truncated and thus h-sets by default because of the inclusion of uniqueness of identity proofs or axiom K to the rule system of the type theory. Sometimes, these type theories do not have quotients and image factorizations, and as a result, setoids are used instead of the native h-sets.

In homotopy type theory, and more generally in any intensional type theory where not all types are h-sets, such as in a type theory without uniqueness of identity proofs or axiom K, the notion of “setoid” bifurcates into multiple distinct notions. In analogy with category, the definitions used above in this article could be called a strict setoid. When the vertex types are only required to be a type rather than a set, then this defines a presetoid. There is also the notion of a univalent setoid, where equality of vertices is isomorphism of vertices in the core of a presetoid.

Applications

In constructive mathematics, we want the real numbers to form a linearly ordered Heyting field RR with completeness for located Dedekind cuts. Using power sets and a set NN of natural numbers, one may form RR directly as a subset of 𝒫N\mathcal{P}N (or something equivalent), but what if you wish to be (at least weakly) predicative? Using function sets, one may form the Cauchy reals as a subquotient of N NN^N, but these are complete in the desired sense only if a weak form of countable choice (which follows from either the presentation axiom or excluded middle) holds. (Essentially, there may not be enough sequences of natural numbers.) Alternatively, if you have them, you can use prefunction sets and form RR as a subquotient of the set of presequences of natural numbers.

The construction of RR above may also be done with entire relations if the axiom of fullness holds (see also real numbers object). Conversely, the axiom of fullness follows from the existence of sets of prefunctions; in addition to defining a functional entire prerelation, a prefunction between sets also defines an entire relation, and the set of these satisfies fullness. (This is related to the idea that prefunctions between sets may be formalised as entire relations.)

See also the discussion at net about how to force the domain of a net to be partial order, by using either entire relations or prefunctions as nets.

Fixing inadequate foundations

Sometimes one finds a foundation of predicative mathematics in which it appears to be impossible to construct quotient sets, leading to much hand-wringing. (For a simple example, simply remove the axiom of power sets from ZFC as normally presented.)

Assuming (as usual) that the original foundation had equality relations on its sets, there will be identity prerelations on the presets, leading to a special class of sets which we may again call the completely presented sets.

When you do this, the new kind of set is called a setoid, and then there may be hand-wringing about the need to use setoids instead of sets as one would like. But if you didn't have quotient sets originally, then you shouldn't have been talking about ‘sets’ in the first place; theories of sets without quotient sets are really theories of presets.

Some foundations also adopt an axiom of choice for functions which do not preserve the equivalence relation that, together with the identity relations, proves the presentation axiom for general sets, which means that free sets are completely presented sets.

If you are willing to accept the presentation axiom, then you can define a notion of setoid internal to a given theory of sets: as a projective set. (With the full axiom of choice, therefore, a setoid is simply a set.) Alternatively, you might forgo setoid as such but define a prefunction between sets to be an entire relation.

A similar result holds for SEAR+ ϵ \epsilon .

See also

algebraic structureoidification
magmamagmoid
pointed magma with an endofunctionsetoid/Bishop set
unital magmaunital magmoid
quasigroupquasigroupoid
looploopoid
semigroupsemicategory
monoidcategory
anti-involutive monoiddagger category
associative quasigroupassociative quasigroupoid
groupgroupoid
flexible magmaflexible magmoid
alternative magmaalternative magmoid
absorption monoidabsorption category
cancellative monoidcancellative category
rigCMon-enriched category
nonunital ringAb-enriched semicategory
nonassociative ringAb-enriched unital magmoid
ringringoid
nonassociative algebralinear magmoid
nonassociative unital algebraunital linear magmoid
nonunital algebralinear semicategory
associative unital algebralinear category
C-star algebraC-star category
differential algebradifferential algebroid
flexible algebraflexible linear magmoid
alternative algebraalternative linear magmoid
Lie algebraLie algebroid
monoidal poset2-poset
strict monoidal groupoid?strict (2,1)-category
strict 2-groupstrict 2-groupoid
strict monoidal categorystrict 2-category
monoidal groupoid(2,1)-category
2-group2-groupoid/bigroupoid
monoidal category2-category/bicategory

computational trinitarianism =
propositions as types +programs as proofs +relation type theory/category theory

logicset theory (internal logic of)category theorytype theory
propositionsetobjecttype
predicatefamily of setsdisplay morphismdependent type
proofelementgeneralized elementterm/program
cut rulecomposition of classifying morphisms / pullback of display mapssubstitution
introduction rule for implicationcounit for hom-tensor adjunctionlambda
elimination rule for implicationunit for hom-tensor adjunctionapplication
cut elimination for implicationone of the zigzag identities for hom-tensor adjunctionbeta reduction
identity elimination for implicationthe other zigzag identity for hom-tensor adjunctioneta conversion
truesingletonterminal object/(-2)-truncated objecth-level 0-type/unit type
falseempty setinitial objectempty type
proposition, truth valuesubsingletonsubterminal object/(-1)-truncated objecth-proposition, mere proposition
logical conjunctioncartesian productproductproduct type
disjunctiondisjoint union (support of)coproduct ((-1)-truncation of)sum type (bracket type of)
implicationfunction set (into subsingleton)internal hom (into subterminal object)function type (into h-proposition)
negationfunction set into empty setinternal hom into initial objectfunction type into empty type
universal quantificationindexed cartesian product (of family of subsingletons)dependent product (of family of subterminal objects)dependent product type (of family of h-propositions)
existential quantificationindexed disjoint union (support of)dependent sum ((-1)-truncation of)dependent sum type (bracket type of)
logical equivalencebijection setobject of isomorphismsequivalence type
support setsupport object/(-1)-truncationpropositional truncation/bracket type
n-image of morphism into terminal object/n-truncationn-truncation modality
equalitydiagonal function/diagonal subset/diagonal relationpath space objectidentity type/path type
completely presented setsetdiscrete object/0-truncated objecth-level 2-type/set/h-set
setset with equivalence relationinternal 0-groupoidBishop set/setoid with its pseudo-equivalence relation an actual equivalence relation
equivalence class/quotient setquotientquotient type
inductioncolimitinductive type, W-type, M-type
higher inductionhigher colimithigher inductive type
-0-truncated higher colimitquotient inductive type
coinductionlimitcoinductive type
presettype without identity types
set of truth valuessubobject classifiertype of propositions
domain of discourseuniverseobject classifiertype universe
modalityclosure operator, (idempotent) monadmodal type theory, monad (in computer science)
linear logic(symmetric, closed) monoidal categorylinear type theory/quantum computation
proof netstring diagramquantum circuit
(absence of) contraction rule(absence of) diagonalno-cloning theorem
synthetic mathematicsdomain specific embedded programming language

References

The notion of “Bishop sets” goes to back the definition of sets in constructive mathematics/constructive analysis according to:

The connection to dependent type theory and the term setoid is due to

Survey of further developments:

  • Gilles Barthe, Venanzio Capretta, Olivier Pons, Setoids in type theory, Journal of Functional Programming 13 2 (2003) 261-293 [doi:10.1017/S0956796802004501]

Last revised on February 9, 2023 at 08:21:16. See the history of this page for a list of all contributions to it.