two-sided bar construction

#Contents#
* automatic table of contents goes here
{:toc}

## Idea ##

A two-sided bar construction is a [[simplicial object]] associated with the data of a left [[module]] and right module over a [[monad]].

## Definition ##

### Left and right modules ###

Let $\mathbf{B}$ be a [[2-category]], and let $M: B \to B$ be a monad with multiplication $m: M M \to M$ and unit $u: 1_B \to M$. Recall that a **left module** over $M$ consists of a 1-cell $X: A \to B$ and a 2-cell $\alpha: M X \to X$ such that the diagrams

$$\array{
M M X & \stackrel{M\alpha}{\to} & M X & & & X & \stackrel{1_X}{\to} & X \\
m X \downarrow & & \downarrow \alpha & & & u X \downarrow & & \downarrow 1_X\\
M X & \underset{\alpha}{\to} & X & & & M X & \underset{\alpha}{\to} & X
}$$

commute. A **right module** over $M$ consists of a 1-cell $Y: B \to C$ and a 2-cell $\beta: Y M \to Y$ such that the diagrams

$$\array{
Y M M & \stackrel{\beta M}{\to} & Y M & & & Y & \stackrel{1_Y}{\to} & Y \\
Y m \downarrow & & \downarrow \beta & & & Y u \downarrow & & \downarrow 1_Y\\
Y M & \underset{\beta}{\to} & Y & & & Y M & \underset{\beta}{\to} & Y
}$$

commute.

### Initial structure ###

With the aid of string diagrams, one may easily visualize the structure $\mathbf{I}$ that is initial amongst 2-categories equipped with the data of monad and left and right modules over the monad. The 2-category has three 0-cells $0$, $1$, and $2$, 1-cells which are of the form

$$m^{\circ n}: 1 \to 1 \qquad y m^{\circ n}: 1 \to 2 \qquad m^{\circ n} x: 0 \to 1 \qquad y m^{\circ n} x: 0 \to 2,$$

and the nonempty hom-categories $hom(i, j) = \mathbf{I}(i, j)$ may be described as follows:

* $hom(1, 1)$ is isomorphic to the "algebraist's $\Delta_a$" (see [[simplex category]]): the category of finite ordinals and order-preserving maps;

* $hom(1, 2)$ is isomorphic to $\Delta_{\bot}$: the category of nonempty finite ordinals and order-preserving maps that preserve the bottom element;

* $hom(0, 1)$ is isomorphic to $\Delta_{\top}$: the category of nonempty finite ordinals and order-preserving maps that preserve the top element;

* $hom(0, 2)$ is isomorphic to the "topologist's $\Delta^{op}$" (the usual simplex category), which is isomorphic to the category $\Delta_{\top, \bottom}$ of **finite intervals**, whose objects are finite ordinals with at least two elements, and whose morphisms are order-preserving maps that preserve both top and bottom.

Note that the structure of $hom(1, 1)$ simply recapitulates the universal property of the algebraist's $\Delta_a$, as initial among strict monoidal categories equipped with a monoid $M$. This result is most easily understood in terms of string diagrams, and the structure of the other
hom-categories is guided by similar string diagram considerations.

### Two-sided bar construction ###

Now we give the definition. Suppose given a 2-category $\mathbf{B}$ together with a monad $M: B \to B$ in $\mathbf{B}$, together with a left module $X: A \to B$ and a right module $Y: B \to C$. There is a unique 2-functor

$$\mathbf{I} \to \mathbf{B}$$

which preserves the monad and module structures, and this induces a functor

$$\Delta^{op} \cong \mathbf{I}(0, 2) \to \mathbf{B}(A, C)$$

This functor is the **two-sided bar construction**, denoted $B(Y, M, X)$.

The structure of the two-sided bar construction may be given more concretely as follows:

* The $n$-dimensional component of $B(Y, M, X)$ is
$$B(Y, M, X)_n = Y M^{\circ n} X$$

* The $n+2$ face maps
$$d_{n}^{i}: Y M^{n+1} X \to Y M^n X$$
are $\beta M^n X$ ($i = 0$), $Y M^{i-1} m M^{n-i} X$ ($1 \leq i \leq n$), and $Y M^n \alpha$ ($i = n+1$).

* The $n+1$ degeneracy maps
$$s_{n}^{i}: Y M^n X \to Y M^{n+1} X$$
are $Y M^i u M^{n-i} X$ ($0 \leq i \leq n$).

## Examples ##

Two-sided bar constructions encapsulate a surprising number of constructions, a few of which follow.

### Classifying bundle ###

Consider the cartesian monoidal category $Top$ as a 1-object bicategory $\Sigma Top$ (which we may strictify to a 2-category). A topological [[monoid]] $M$ is the same as a monad in $\Sigma Top$, and the usual meaning of left and right $M$-modules is preserved by thinking of them as modules over the monad.

In particular, $M$ may be regarded as a left or right $M$-module, and the 1-point space $1$ carries a unique structure of left or right $M$-module. As a result we may consider the simplicial space

$$B M = B(1, M, 1)$$

as base space, and the simplicial space

$$E M = B(M, M, 1)$$

as total space, of a simplicial fibration

$$B(\pi, M, 1): B(M, M, 1) \to B(1, M, 1)$$

induced by the unique left module map $\pi: M \to 1$. This is the [[classifying bundle]] of the monoid $M$.

### Cofibrant replacement ###

If $M$ is a monad and $(X, \alpha: M X \to X)$ is a (left-sided) $M$-algebra, then with $M$ acting upon itself on the right, there is a simplicial object

$$B(M, M, X)$$

which may be regarded as a _cofibrant replacement_ of $X$, a simplicial $M$-algebra which as a simplicial object is homotopy-equivalent to the constant simplicial object at $X$. (More should be added here.) See also [[bar construction]].

Rather more generally, if in addition $(Y, \beta: Y M \to Y$ is a right $M$-module, we may denote the coequalizer of the pair

$$Y M X \stackrel{\overset{\beta X}{\to}}{\underset{Y \alpha}{\to}} Y X$$

(if it exists) by $Y \circ_M X$, and think of it as the _tensor product_ (over $M$) of $Y$ and $X$. The general principle is that the simplicial object $B(Y, M, X)$ is canonically augmented by $Y \circ_M X$, and serves as a cofibrant replacement of $Y \circ_M X$ when the latter is regarded as a constant simplicial object. See also homotopy colimits, below.

### Canonical two-sided bar construction of an adjunction ###

Suppose given any [[adjoint pair]] $(F: B \to A) \dashv (U: A \to B)$ in a 2-category $\mathbf{B}$, with counit $\varepsilon: F U \to 1_A$. There is an associated monad $M = U F: B \to B$, and a canonical left $M$-action on $U$:

$$\alpha = U \varepsilon: U F U \to U,$$

and a canonical right $M$-action on $F$:

$$\beta = \varepsilon F: F U F \to F.$$

We may then form the canonical simplicial object $B(F, M, U)$. By general abstract nonsense, the tensor product $F \circ_M U$ is $1_A$, so if we regard $1_A$ as a constant simplicial object $\Delta^{op} \to \mathbf{B}(A, A)$, the cofibrant replacement result above specializes as follows.

+-- {: .un_prop}
######Proposition
The canonical simplicial map $B(F, M, U) \to 1_A$ is a simplicial [[homotopy equivalence]].
=--

#### Delooping machines ####

The classic application of this two-sided bar construction was given by Peter May, after work of Jon Beck. Let $\Omega = Top_{*}(S^1, -): Top_{*} \to Top_{*}$ be the loop space functor on pointed spaces, with left adjoint the suspension functor $S = S^1 \wedge -: Top_{*} \to Top_{*}$. For each $n \geq 1$, the adjunction $S^n \dashv \Omega^n$ induces a monad $\Omega^n S^n$ which acts (on the left) on $n$-fold loop spaces $\Omega^n X$, and acts on the right on $S^n$.

+-- {: .un_prop}
######Proposition
The canonical simplicial map $B(S^n, \Omega^n S^n, \Omega^n X) \to X$ is a simplicial [[homotopy equivalence]].
=--

So if $Y$ is an $n$-fold loop space, the two-sided bar construction $B(S^n, \Omega^n S^n, Y)$ provides its $n$-fold delooping.

Continuing this train of thought: suppose given a monad $C_n$ equipped with a monad map $\phi: C_n \to \Omega^n S^n$ (which is [[mate]]d to an action $C_n \Omega^n \to \Omega^n$) such that $\phi$ is objectwise a homotopy equivalence. Then $\phi$ induces a homotopy equivalence

$$B(S^n, \phi, \Omega^n): B(S^n, C_n, \Omega^n) \to B(S^n, \Omega^n S^n, \Omega^n)$$

The classic example of this is where $C_n$ is the little $n$-cubes operad, which acts canonically on $\Omega^n = Top_{*}(S^n, -)$. The advantage is that the monad $C_n$ is much more tractable than $\Omega^n S^n$.

Continuing this thought still further, we have the following recognition theorem of May:

+-- {: .un_thm}
######Theorem
Suppose $Y$ is a connected space with a $C_n$-action. Then $Y$ is homotopy equivalent to an $n$-fold loop space, and indeed there is a canonical span
$$\Omega^n B(S^n, C_n, Y) \leftarrow B(\Omega^n S^n, C_n, Y) \to B(\Omega^n S^n, \Omega^n S^n, Y) \simeq Y$$
where each of the arrows is a homotopy equivalence.
=--

+--{.query}
I'm going on sheer memory here of May's Geometry of Iterated Loop Spaces, and it's quite possible that I'm missing hypotheses in some directions and that hypotheses could be weakened in other directions, e.g., replacing the connectedness assumption with a group completion assumption. This is in need of expert attention.

[[JCMcKeown]] : Hi, Todd (five years later); hmm. The first thing that comes to mind is that $C_n$ the monad-of-the-operad $E_{(n)}$ of little-$n$-cubes isn't objectwise homotopy-equivalent to $\Omega^n S^n$; it's a big wedge, rather: $C_n X = \bigvee_k E^{k}_{(n)}((X^k))$ for some sensible idea of $E^k_{(n)}((-))$.  The idea one gets from trying to read May is that: the particular operad/monad/algebraic theory doesn't matter, so long as it has the right category of Algebras --- and in this light, it may help that little-$n$-cubes is closely related to the Snaith Splitting: $S^n \Omega^n S^n$ *is* a big wedge of decorated configuration spaces.  But I don't really understand all the mechanics involved.  Will Keep Thinking.
=--

### Homotopy colimits ###

Suppose that $C$ is a small category and $F: C \to Top$ is a functor. We may regard $C$ as a monad $C: C_0 \to C_0$ in the bicategory of [[span]]s in $Top$, where $C_0$ is the set of objects with the discrete category, and we may regard $F$ as a left module over the monad $C$.

As always, the terminal object $1$ carries a unique right module structure. The usual colimit, $colim F$, may be described as the tensor product

$$colim F \cong 1 \circ_C F$$

As a result, we have the cofibrant replacement $B(1, C, F)$ of $colim F$. The geometric realization of the simplicial space $B(1, C, F)$ is none other than the **[[homotopy colimit]]** of $F$.

[[!redirects two-sided bar constructions]]
[[!redirects two sided bar construction]]
[[!redirects two sided bar constructions]]


two-sided fibration

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Category theory
+--{: .hide}
[[!include category theory - contents]]
=--
#### 2-category theory
+--{: .hide}
[[!include 2-category theory - contents]]
=--
=--
=--

* table of contents
{:toc}

## Two-sided fibrations

### Idea

Recall that a [[functor]] $E \to B$ is called a *[[fibration]]* if its [[fibres]] $E_b$ vary ([[pseudofunctor|pseudo-]])[[functor|functorially]] in $b$.  Taking here _fibre_ to mean _strict fibre_ results in the notion of [[Grothendieck fibration]], while taking it to mean [[essential fibre]] gives the notion of [[Street fibration]].

Similarly, a *two-sided fibration* $A \leftarrow E \to B$ is a [[span]] of functors whose joint fibres $E(a,b)$ vary functorially in both $a$ and $b$ ([[contravariant functor|contravariantly]] in one and [[covariant functor|covariantly]] in the other).

This notion should not be confused with a [[bifibration]], which is a functor that is both a [[fibration]] and a [[cofibration]].

### Definition

Let $K$ be a [[bicategory]] with finite [[2-limits]], and recall that [[fibration in a 2-category|fibrations]] in $K$ may be defined in any of several ways.  Each of these has an analogous version for two-sided fibrations.

#### In terms of 2-monads

Recall that (cloven) fibrations $E \to B$ in $K$ are the (pseudo)algebras for a (pseudo) 2-monad $L$ on $K/B$.  For a morphism $p \colon E \to A$ in $K$, $L p$ is given by composing the [[span]] $A \overset{p}{\leftarrow} E \to 1$ with the canonical span $\Phi A = A \overset{dom}{\leftarrow} A^{\mathbf{2}} \overset{cod}{\to} A$, so that $L p \colon E/p \to A$ is the canonical projection.  This can equivalently be described as the [[comma object]] $(1_A/p)$.  This 2-monad is [[lax-idempotent 2-monad|lax-idempotent]], so that $p\colon E\to B$ is a fibration if and only if the unit $p\to L p$ has a left adjoint with invertible counit.

More generally, the same construction gives a 2-monad $L$ on $Span K(B,A)$, whose algebras we call **left fibrations**.  In [[Cat]], a span $C \overset{p}{\leftarrow} H \overset{q}{\to} D$ is a left fibration if $p$ is a cloven fibration whose chosen cartesian lifts are $q$-vertical.  (Since we are working bicategorically, "$q$-vertical" means that they map to isomorphisms under $q$.)

Dually, there is a colax-idempotent 2-monad $R$ on each $Span K(B,A)$ whose algebras
are called **right fibrations**, the special case of $Span Cat(D,1)$ yielding cloven opfibrations.

There is then a composite 2-monad $M$ that takes a span $E$ from $B$ to $A$ to $M E = \Phi A \circ E \circ \Phi B$, and $M$-algebras are called **two-sided fibrations**.  Although $M$ is neither lax- nor colax-idempotent, it is still [[property-like 2-monad|property-like]].

+-- {: .num_prop #TwoSidedFibrationsInCat}
###### Proposition

A two-sided Street fibration from $B$ to $A$ in $Cat$ is given by a span $p \colon E \to A$, $q \colon E \to B$ such that

1. each $i \colon a \to p x$ in $A$ has a $p$-[[cartesian morphism|cartesian]] lift $\kappa_i \colon i^* x \to x$ in $E$ that is $q$-vertical (that is, $E$ is a left fibration)

1. each $j \colon q x \to b$ in $B$ has a $q$-opcartesian lift $\kappa^j \colon x \to j_! x$ in $E$ that is $p$-vertical ($E$ is a right fibration)

1. for every cartesian--opcartesian composite $i^* x \to x \to j_! x$ in $E$, the canonical morphism $j_! i^* x \to i^* j_! x$ is an [[isomorphism]].
=--

+-- {: .proof}
###### Proof

By the usual theory of [[distributive laws]], an $M$-algebra $m \colon M E \to E$ gives rise to $L$- and $R$-algebras $m \cdot (\Phi A \circ \eta^R_E)$ and $m \cdot (\eta^L_E \circ \Phi B)$, and conversely an $L$-algebra $\ell$ and an $R$-algebra $r$ underlie an $M$-algebra if and only if there is an isomorphism $r \cdot (\ell \circ \Phi B) \cong \ell \cdot (\Phi A \circ r)$ that makes $r$ a morphism of $L$-algebras.

Now given $\ell$ and $r$, because $L$ is [[colax-idempotent]], there is a unique 2-cell $\bar r \colon r \cdot (\ell \circ \Phi B) \Rightarrow \ell \cdot (\Phi A \circ r)$ that makes $r$ a colax morphism of $L$-algebras.  So we want to show that in the case of $Cat$, the components of this natural transformation are the canonical morphisms of (3).

The 2-cell $\bar r$ is given by $\ell \cdot (\Phi A \circ r) \cdot (\epsilon \circ \Phi B)$, where $\epsilon$ is the counit of the adjunction $\eta^L_E \dashv \ell$.  Its components are thus given, for each $i \colon a \to p x$ in $A$ and $j \colon p x \to b$ in $B$, by first factoring $\kappa^j \kappa_i$ through the opcartesian $i^* x \to j_! i^* x$ and then factoring the result through the cartesian $i^* j_! x  \to j_! x$, to obtain exactly the canonical morphism $j_! i^* x \to i^* j_! x$.

=--

If $A \overset{p}{\leftarrow} E \overset{q}{\to} B$ is a two-sided fibration, then the operation sending $(a,b)$ to the corresponding (essential) fiber of $(p,q)$ defines a pseudofunctor $A^{op}\times B \to Cat$.  The third condition in Proposition \ref{TwoSidedFibrationsInCat} corresponds to the "interchange" equality $(\alpha,1)(1,\beta) = (1,\beta)(\alpha,1)$ in $A^{op}\times B$.  We write $Fib(B,A)$ for the 2-category of two-sided fibrations from $B$ to $A$.

#### A representable definition

Another definition of internal fibration is that a (cloven) fibration in $K$ is a morphism $p\colon E\to B$ such that $K(X,p)\colon K(X,E)\to K(X,B)$ is a (cloven) fibration in $Cat$, for any $X\in K$, and for any $X\to Y$ the corresponding square is a morphism of fibrations in $Cat$.  To adapt this definition to two-sided fibrations, we therefore need only to say what is a two-sided fibration in $Cat$.  For this we can use the characterization of Proposition \ref{TwoSidedFibrationsInCat}.

#### As iterated fibrations

Let $Fib(A) = Fib_K(A)$ denote the 2-category of fibrations over $A\in K$.  It is a well-known fact (apparently due to Benabou) that a morphism in $Fib(A)$ is a fibration in $Fib(A)$ if and only if its underlying morphism in $K$ is a fibration.  See [[fibration in a 2-category]].  Thus, for any fibration $r\colon C\to A$, we have $Fib_{Fib_K(A)}(r) \simeq Fib_K(C)$.

Of course there is a dual result for opfibrations: for any opfibration $r\colon C\to A$ we have $Opf_{Opf_K(A)}(r) \simeq Opf_K(C)$.  When we combine variance of iteration, however, we obtain two-sided fibrations.

+--{: .un_theorem}
###### Theorem
A span $A \overset{p}{\leftarrow} E \overset{q}{\to} B$ is a two-sided fibration from $B$ to $A$ if and only if

1. $p\colon E\to A$ is a fibration and

1. $(p,q)\colon E\to A\times B$ is an opfibration in $Fib(A)$.
=--

+--{: .proof}
###### Proof
Recall that the projection $A\times B \to A$ is a fibration (and also an opfibration, although that is irrelevant here), and the cartesian 2-cells are precisely those whose component in $B$ is an isomorphism.  Therefore, saying that $(p,q)$ is a _morphism_ in $Fib(A)$, i.e. that it preserves cartesian 2-cells, says precisely that $q$ takes $p$-cartesian 2-cells to isomorphisms.

Now $q$ is an opfibration in $K$ iff $E\to (q/1_B)$ has a left adjoint with invertible counit in $K/B$, and $(p,q)$ is an opfibration in $Fib(A)$ iff $E\to ((p,q)/1_{A\times B})$ has a left adjoint with invertible counit in $Fib(A)/(A\times B)$.  Of crucial importance is that here $((p,q)/1_{A\times B})$ denotes the comma object calculated _in the 2-category $Fib(A)$_, or equivalently in $K/A$ (since monadic forgetful functors create limits), and it is easy to check that this is in fact _equivalent_ to the comma object $(q/1_B)$ calculated in $K$.

Therefore, $(p,q)$ is an opfibration in $Fib(A)$ iff $q$ is an opfibration in $K$ and the left adjoint of $E\to (q/1_B)$ is a morphism in $Fib(A)$.  It is then easy to check that this left adjoint is a morphism in $K/A$ iff $p$ inverts $q$-opcartesian arrows, and that it is a morphism of fibrations iff the final condition in Proposition \ref{TwoSidedFibrationsInCat} is satisfied.
=--

In particular, we have $Fib(B,A) \simeq Opf_{Fib(A)}(A\times B)$.  By duality, $Fib(B,A) \simeq Fib_{Opf(B)}(A\times B)$, and therefore $Fib_{Opf(B)}(A\times B) \simeq Opf_{Fib(A)}(A\times B)$, a commutation result that is not immediately obvious.

This result appears in [Bourn--Penon](#BournPenon); it was noticed independently and recorded here by [[Mike Shulman]].

## Two-sided discrete fibrations

### Definition

A two-sided fibration $A \leftarrow E \to B$ in $K$ is **discrete** if it is [[discrete object|discrete]] as an object of $K/A \times B$.  Since discreteness is a limit construction, it is created by monadic forgetful functors; hence this is equivalent to being discrete as an object of the 2-category $Fib(A,B)$ of two-sided fibrations.

For Grothendieck fibrations in [[Cat]], this means the following.

+-- {: .un_defn}
###### Definition

A **two-sided discrete fibration** is a [[span]] $q \colon E \to A$, $p \colon E \to B$ of [[categories]] and [[functors]] such that

1. each $b \to p(e)$ in $B$ has a unique lift in $E$ that has codomain $e$ and is in the fiber over $q(e)$
1. each $q(e) \to a$ in $A$ has a unique lift in $E$ that has domain $e$ and is in the fiber over $p(e)$
1. for each $f\colon e \to e'$ in $E$, the codomain of the lift of $q(f)$ equals the domain of the lift of $p(f)$ and their composite is $f$.

=--

We write

$$
  DFib(A,B) \subset Span(A,B)
$$

for the full [[subcategory]] on the 2-category $Span K(A,B)$ of [[span]]s on the 2-sided discrete fibrations.  Since a morphism of spans between discrete fibrations is automatically a morphism of fibrations, this is also the full sub-2-category of the 2-category of two-sided fibrations $Fib(A,B)$.  And since they are discrete objects, this 2-category is actually (equivalent to) a 1-category.

Note, though, that the two legs of a two-sided discrete fibration are not necessarily individually discrete as a fibration and an opfibration.

### Properties

#### Profunctors and collages

+-- {: .un_defn}
###### Definition

Given a profunctor $F : B^{op} \times A \to Set$,
its [[collage]] is the category $K_F$ over the [[interval category]]

$$
  p : K_F \to \Delta[1]
$$

With $p^{-1}(0) = B$, $p^{-1}(1) = A$, $K_F(b,a) = F(b,a)$
and $K_F(a,b) = \emptyset$ for all $b \in B$, $a \in A$, where

* the composite of $b \stackrel{e}{\to} a$ with $a \stackrel{f}{\to} a'$ is given by $F(b,f)(e)$;

* the composite of $b \stackrel{g}{\to} b'$ with $b' \stackrel{e'}{\to} a'$ is given by $F(g, a')(e')$.

=--

+-- {: .un_prop #EquivDFibWithProf}
###### Proposition

There is an [[equivalence of categories]]

$$
  [B^{op} \times A, Set]
    \stackrel{\simeq}{\to}
  DFib(A,B)
$$

$$
  F \mapsto E_F
  \,,
$$

[[pseudo-natural transformation|pseudo-natural]] in $A, B \in Cat$, between [[profunctor]]s in [[Set]] and two-sided discrete fibrations from $A$ to $B$, where $E_F$ is the category whose

* objects are [[section]]s $\sigma : \Delta[1] \to K_F$ of the [[collage]]
  $p : K_F \to \Delta[1]$

* morphisms are [[natural transformation]]s between such sections;

* the two projections $A \leftarrow E_F \to B$ are the two functors induced
  by restriction along $\{0\} \to \Delta[1] \leftarrow \{1\}$.

=--

+-- {: .proof}
###### Proof

First we write out $E_F$ in detail. In the following $b, b', \cdots \in B$
and $a,a', \dots \in A$.

The objects of $E_F$ are morphisms

$$
  \array{
    b
    \\
    {}^{\mathllap{e}}\downarrow
    \\
    a
  }
$$

in $K_F$, hence triples $(b \in B, a \in A, e \in F(b,a))$.

Morphisms are [[commuting diagram]]s

$$
  \array{
    b &\stackrel{g}{\to}& b'
    \\
    {}^{\mathllap{e}}\downarrow && \downarrow^{\mathrlap{e'}}
    \\
    a &\stackrel{f}{\to}& a'
  }
$$

in $K_F$. We may identify these with pairs $((b \stackrel{g}{\to}b') \in B,(a \stackrel{f}{\to} a') \in A)$ such that

$$
  F(g,a')(e') = F(b,f)(e)
  \,.
$$

We check that this construction yields a two-sided fibration. The three conditions are

1. For

   $$
     \array{
        b
        \\
        {}^{\mathllap{e}}\downarrow
        \\
        a
     }
   $$

   an object of $E_F$ and $a \stackrel{f}{\to} a'$ a morphism in $A$,
   we have that

   $$
     \array{
        b &\stackrel{Id}{\to}& b
        \\
        {}^{\mathllap{e}}\downarrow
        & &
        \downarrow^{\mathrlap{f e}}
        \\
        a &\underset{f}{\to}& a'
     }
   $$

   is the unique lift to a morphism in $E$ that maps to $Id_b$.

1. Analogously, for

   $$
     \array{
        b'
        \\
        {}^{\mathllap{e'}}\downarrow
        \\
        a'
     }
   $$

   an object of $E_F$ and $b \stackrel{g}{\to} b'$ a morphism in $B$,
   we have that

   $$
     \array{
        b &\stackrel{g}{\to}& b'
        \\
        {}^{\mathllap{e' g}}\downarrow
        & &
        \downarrow^{\mathrlap{e'}}
        \\
        a' &\underset{id}{\to}& a'
     }
   $$

   is the unique lift to a morphism in $E$ that maps to $Id_{a'}$.

1. For

   $$
     \array{
        b &\stackrel{g}{\to}& b'
        \\
        {}^{\mathllap{e}}\downarrow &&
        \downarrow^{\mathrlap{e'}}
        \\
        a &\underset{f}{\to}& a'
     }
   $$

   an arbitrary morphism in $E_F$, these two unique lifts of its $A$- and its
   $B$-projection, respectively, are

   $$
     \array{
        b &\stackrel{Id}{\to}& b
        \\
        {}^{\mathllap{e}}\downarrow
        & &
        \downarrow^{\mathrlap{f e}}
        \\
        a &\underset{f}{\to}& a'
     }
   $$

   and

   $$
     \array{
        b &\stackrel{g}{\to}& b'
        \\
        {}^{\mathllap{e' g}}\downarrow & &
        \downarrow^{\mathrlap{e'}}
        \\
        a' &\underset{Id}{\to}& a'
     }
     \,.
   $$

   The codomain and domain do match, since $f e = e' g$   by the
   existence of the original morphism, and their composite is the original
   morphism

   $$
     \array{
        b &\stackrel{Id}{\to}& b &\stackrel{g}{\to}& b
        \\
        {}^{\mathllap{e}}\downarrow
        & &
        {}^{\mathllap{f e}}\downarrow^{\mathrlap{e' g}}
         &&
         \downarrow^{\mathrlap{e'}}
        \\
        a &\underset{f}{\to}& a' &\stackrel{Id}{\to}& a'
     }
     \,.
   $$

To see that this construction indeed yields an equivalence of categories, define a functor $(A\leftarrow E \to B) \mapsto (F_E : B^{op} \times A \to Set)$ by setting

* $F_E(b,a) := E_{b,a}$;

* for a morphism $b \stackrel{g}{\to} b'$ let $F_E(g,a') : F_E(b',a') \to F_E(b,a')$ be the function that sends $b' \stackrel{e'}{\to} a'$ to the domain of the unique lift of $b \stackrel{g}{\to} b'$ with this codomain and mapping to $Id_{a'}$;

* for a morphism $a \stackrel{f}{\to} a'$ let $F_E(b,f) : F_E(b,a) \to F_E(b,a')$ be the function that sends $b \stackrel{e}{\to} a$ to the codomain of the unique lift of $a \stackrel{f}{\to} a'$ with this domain and mapping to $Id_{b}$;.

One checks that this yields an equivalence of categories.

=--

\begin{remark}
The category $E_F$ is equivalently characterized as being the [[comma category]] of the diagram $B \to K_F \leftarrow A$.
\end{remark}

Note that profunctors can also be characterized by their collages, these being the two-sided [[codiscrete cofibrations]]; and the collage corresponding to a two-sided fibration is its [[cocomma object]].

### Relation to distributive laws

Fibrations and opfibrations on a category $C$ (or more generally an object of a suitable 2-category) are the algebras for a pair of pseudomonads.  If $C$ has pullbacks, there is a [[pseudo-distributive law]] between these pseudomonads, whose joint algebras are the two-sided fibrations satisfying the [[Beck-Chevalley condition]]; see [von Glehn (2015)](#vonGlehn).

## Related concepts

* [[Grothendieck fibration]],

 * [[Street fibration]],

* [[discrete fibration]],

*  [[fibration in a 2-category]],

*  **two-sided fibration**,

*  [[Conduche functor]]

* [[Cartesian fibration]]

## References

An early reference is the notion of "regular span" on page 535 of:

* [[Nobuo Yoneda]], *On ext and exact sequences* (PhD thesis), Journal of the Faculty of Science, Section I. **8** University of Tokyo (1960) 507–576 [[pdf](http://alpha.math.uga.edu/~lorenz/YonedaExtExactSequences.pdf), [CiNii:naid/500000325773](https://ci.nii.ac.jp/naid/500000325773)]

Original discussion:

* [[Ross Street]]. _Fibrations and Yoneda's lemma in a 2-category_. In Category Seminar (Proc. Sem., Sydney, 1972/1973), pages 104  133. Lecture Notes in Math., Vol. 420. Springer, Berlin, 1974.

* [[Ross Street]], _Fibrations in bicategories_. Cahiers Topologie Géom. Différentielle,
21(2):111--160, 1980. (Corrections in 28(1):53--56, 1987)

Further discussion of discrete fibrations

* {#BournPenon} [[Dominique Bourn]], [[Jacques Penon]],  _2-catégories réductibles_.  Preprint, University of Amiens Department of Mathematics, 1978.  Reprinted as _TAC Reprints_ no. 19, 2010 ([link](http://www.tac.mta.ca/tac/reprints/articles/19/tr19abs.html)).

Useful reviews are in

* [[Emily Riehl]], _Two-sided discrete fibrations in 2-categories and bicategories_ 2010 ([pdf](https://math.jhu.edu/~eriehl/fibrations.pdf))
{#Riehl}

* [[Fosco Loregian]] and [[Emily Riehl]], _Categorical notions of fibration_, [arxiv](https://arxiv.org/abs/1806.06129)

In relation to [[categorical semantics of dependent types]]:

* {#vonGlehn2015} [[Tamara von Glehn]], *Polynomials and models of type theory*, PhD thesis (2015) [[doi10.17863/CAM.16245](https://doi.org/10.17863/CAM.16245)]

[[!redirects two-sided fibrations]]
[[!redirects two-sided discrete fibration]]
[[!redirects two-sided discrete fibrations]]

[[!redirects 2-sided fibration]]
[[!redirects 2-sided fibrations]]
[[!redirects 2-sided discrete fibration]]
[[!redirects 2-sided discrete fibrations]]


two-sorted set theory

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Foundations
+-- {: .hide}
[[!include foundations - contents]]
=--
=--
=--

# Two-sorted set theory
* table of contents
{: toc}

## Overview

There are a number of ways to present a [[set theory]]; one of the most basic decisions when it comes to presenting a set theory is whether the probable [[sets]] and probable [[elements]] should be regarded as the same kind of objects, as in [[unsorted set theory]], or as fundamentally different objects, as in [[two-sorted set theory]]. In the former, there is a global membership relation $\in$ which is defined on the entire [[domain of discourse]]. In the latter, there are two domains of discourse, one representing the probable sets and the other representing the probable elements or atoms, and for the membership relation $a \in b$, $a$ is required to be a probable element and $b$ is required to be a probable set.

In contrast to [[unsorted set theory]], there is no global equality predicate in a two-sorted set theory. Instead, there are separate equality predicates for sets and elements, whereby it is meaningful to ask, given any two elements, whether those two elements are equal, and likewise, given any two set, whether those two sets are equal. Additionally, a set's identity here is determined by its elements, in other words the [[axiom of weak extensionality]] holds for the membership relation with respect to the equality relation of sets.

Two-sorted set theories come in both [[material set theory]] and [[structural set theory]] flavors. For example, [[ZFC]], [[ZFA]], and [[New Foundations]] are could all be presented as two-sorted [[material set theories]], while [[ETCS]] can be presented as a two-sorted [[structural set theory]].

## Notions of sets and elements

We work in a two-sorted first order theory, where $S$ represents the type of probable sets, and $E$ represents the type of probable elements. Then,

\begin{definition}
A notion of set and element in a two-sorted first-order theory with sorts $S$ and $E$ consists of:

* A binary predicate in $S$, $(-)=_S(-)$, called *equality of sets*

* A binary predicate in $E$, $(-)=_E(-)$, called *equality of elements*

* A unary predicate in $S$, $\mathrm{set}(-)$, called *being a set*

* A unary predicate in $E$, $\mathrm{element}(-)$, called *being an element*

* A binary predicate in $E$ on the left and $S$ on the right, $(-)\in(-)$, called *membership*

such that

* $(-)=_E(-)$ is an [[equivalence relation]]

* if $a \in b$, then $a$ is an element and $b$ is a set

$$\forall a:E.\forall b:S.(a \in b) \to \mathrm{element}(a) \wedge \mathrm{set}(b)$$

* weak extensionality for sets and elements: for all $a:S$ and for all $b:S$, if a and b are sets, then $a =_S b$ if and only if, for all $c:E$, if $c$ is an element, then $c \in a$ if and only if $c \in b$

$$\forall a:S.\forall b:S.(\mathrm{set}(a) \wedge \mathrm{set}(b)) \implies ((a =_S b) \iff \forall c:E.(\mathrm{element}(c) \implies ((c \in a) \iff (c \in b))))$$
\end{definition}

## Element reflection and set reflection

In two-sorted set theories, sets are not literally elements. Instead, to represent that sets are elements and vice versa, one could add reflection rules and axioms to the set theory, which say that for every set, there is a corresponding element, and vice versa.

In two-sorted set theory, **element reflection** is the statement that for all sets $A$, there is an element $\mathrm{asElem}(A)$, or equivalently, that there is a function $\mathrm{asElem}:S \to E$ in the set theory. Similarly, **set reflection** is the statement that for all elements $a$, there is a set $\mathrm{asSet}(A)$, or equivalently, that there is a function $\mathrm{asSet}:E \to S$ in the set theory.

For any two-sorted set theory with element reflection, it is possible to define a membership relation on the elements alone which behaves like a global membership relation in [[unsorted set theory]], as follows
$$a \in_E A \coloneqq \exists A':S.A =_E \mathrm{asElem}(A') \wedge a \in A'$$
Similarly, for any two-sorted set theory with set reflection, it is possible to define a membership relation on the sets alone which behaves like a global membership relation in [[unsorted set theory]], as follows
$$a \in_S A \coloneqq \exists a':E.a =_S \mathrm{asSet}(a') \wedge a' \in A$$

## Examples

### Pure set theories

A two-sorted set theory with element reflection and set reflection is a [[pure set]] theory if $\mathrm{set}(A)$ and $\mathrm{element}(a)$ are both $\top$ for all $A:S$ and $a:E$, and set and element reflection are inverses of each other: $\mathrm{asElem}(\mathrm{asSet}(A)) =_S A$ and $\mathrm{asElem}(\mathrm{asSet}(a)) =_E a$. The induced membership relations $\in_E$ and $\in_S$ both behave as the global membership relation in an [[unsorted set theory]], so one could work entirely in $E$ or in $S$.

### Set theories with urelements

A two-sorted set theory with element reflection is a [[material set theory]] with [[urelements]] if $\mathrm{set}(A)$ and $\mathrm{element}(a)$ are both $\top$ for all $A:S$ and $a:E$, and element reflection is an injection, $A =_S B$ only if $\mathrm{asElem}(A) =_E \mathrm{asElem}(B)$. The [[atoms]] or [[urelements]] are the elements which are not contained in the [[image]] of $\mathrm{asElem}$. The induced membership relation $\in_E$ behaves as the global membership relation in an [[unsorted set theory]], so one could work entirely in $E$.

### Categorical set theories

There are also two-sorted categorical set theories, such as the presentation of ETCS. In ETCS, there are two types, a set $Set$ and a set $Func$ representing sets and functions respectively, with functions $\mathrm{dom}:Func \to Set$ and $\mathrm{codom}:Func \to Set$ representing the domain and codomain of the function. (there might be a fiberwise set-truncation necessary in this definition) There is a set $1:Set$ representing the [[singleton]], the [[terminal object]] in $Set$. $\mathrm{set}(A)$ is true for all $A:Set$, but $\mathrm{element}(a)$ is only true for those functions whose source is the singleton terminal object $\mathrm{dom}(a) =_{Set} 1$. We define the membership relation $a \in A$ to be
$$a \in A \coloneqq \mathrm{element}(a) \wedge \mathrm{set}(A) \wedge \mathrm{codom}(a) = A$$

Furthermore, there are multiple possible functions which could act as element reflections in categorical set theories, three of which are

* the [[identity functions]] of sets $A$, $\mathrm{asElem}(A) \coloneqq \mathrm{id}(A)$

* the unique [[function]] into the [[singleton]] and out of $A$, due to the [[universal property]] of the singleton, $\mathrm{asElem}(A) \coloneqq u(A)$, where $\mathrm{codom}(u(A)) = 1$ and $\mathrm{dom}(u(A)) = A$

* the unique [[function]] out of the [[empty set]] into $A$, due to the [[universal property]] of the empty set, $\mathrm{asElem}(A) \coloneqq v(A)$, where $\mathrm{dom}(v(A)) = \emptyset$ and $\mathrm{codom}(v(A)) = A$

This in turn induces the following definitions of sets in $Func$ itself:

* sets as [[identity functions]] $\mathrm{set}'(a) \coloneqq \mathrm{dom}(a) = a$ or $\mathrm{set}'(a) \coloneqq \mathrm{codom}(a) = a$

* sets as [[functions]] into the [[singleton]] $\mathrm{set}'(a) \coloneqq (\mathrm{codom}(a) = 1)$

* sets as functions out of the [[empty set]] ($\mathrm{set}'(a) \coloneqq (\mathrm{dom}(a) = 0)$).

and the following definitions of membership relations on $Func$ itself:

* for sets as identity functions, the membership relation is defined as
$$a \in_{Func} b \coloneqq \mathrm{element}(a) \wedge \mathrm{set}'(b) \wedge \mathrm{codom}(a) = b$$

* for sets as functions into the singleton, the membership relation is defined as
$$a \in_{Func} b \coloneqq \mathrm{element}(a) \wedge \mathrm{set}'(b) \wedge \mathrm{codom}(a) = \mathrm{dom}(b)$$

* for sets as functions out of the empty set, the membership relation is defined as
$$a \in_{Func} b \coloneqq \mathrm{element}(a) \wedge \mathrm{set}'(b) \wedge \mathrm{codom}(a) = \mathrm{codom}(b)$$

For the first two membership relations $\in_{Func}$, the identity morphism of the singleton $1$ is a [[Quine atom]], and any identity morphism of any set in bijection with $1$ is a [[Quine atom]]. For the third membership relation, there are no [[Quine atoms]]. While all the membership relations defined above are [[weakly extensional relations]], all three membership relations defined above could be proven not to be [[strongly extensional relations]], which means that the [[axiom of foundation]] fails in any of the three unsorted presentations of categorical set theory.

### Allegorical set theories

## See also

* [[unsorted set theory]]
* [[two-sorted set theory]]
* [[three-sorted set theory]]
* [[dependently sorted set theory]]

* [[structural set theory]]
* [[material set theory]]
* [[structurally presented set theory]]

[[!redirects two-sorted set theory]]
[[!redirects two-sorted set theories]]

[[!redirects element reflection]]
[[!redirects set reflection]]


two-type identity type

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Equality and Equivalence
+--{: .hide}
[[!include equality and equivalence - contents]]
=--
#### Type theory
+-- {: .hide}
[[!include type theory - contents]]
=--
#### Induction
+-- {: .hide}
[[!include induction - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

In [[dependent type theory]], a version of the [[identity type]] where elements from two different types can be compared for equality. Given types $A$ and $B$ and an [[equivalence of types]] $e:A \simeq B$, the two-type identity type between two elements $x:A$ and $y:B$ is a type $\mathrm{Id}_{A,B}(e, x, y)$ whose elements witness that $x$ and $y$ are "equal" over or modulo the equivalence $e$.

The phrase “two-type identity type” is a placeholder name for a concept which may or may not have another name in the type theory literature. The idea however is that two-type identity types are the "non-dependent" versions of [[dependent identity types]] in that it directly compares elements between two equivalent types, rather than between a family of dependent types which are equivalent via [[transport]] across an [[identification]] in the index type.

## Definition

Given types $A$ and $B$, two-type identity types are an [[inductive family]] of [[types]]

$$e:A \simeq B, x:A, y:B \vdash \mathrm{Id}_{A, B}(e, x, y)$$

generated by the family of elements

$$x:A \vdash \mathrm{trefl}_{A}(x):\mathrm{Id}_{A, A}(\mathrm{id}_A, x, x)$$

where $\mathrm{id}_A$ is the [[identity equivalence]] on $A$.

### Inference rules

The inference rules for forming two-type identity types and terms are as follows.  First the inference rule that defines the two-type identity type itself, as a [[dependent type]], in some [[context]] $\Gamma$.

Formation rule for two-type identity types:
$$\frac{\Gamma \vdash A \; \mathrm{type} \quad \Gamma \vdash B \; \mathrm{type} \quad \Gamma \vdash e:A \simeq B \quad \Gamma \vdash x:A \quad \Gamma \vdash y:B}{\Gamma \vdash \mathrm{Id}_{A, B}(e, a, b) \; \mathrm{type}}$$

Now the basic "introduction" rule, which says that everything is equal to itself in a canonical way.

Introduction rule for two-type identity types:
$$\frac{\Gamma \vdash A \; \mathrm{type} \quad \Gamma \vdash x:A}{\Gamma \vdash \mathrm{trefl}_{A}(x):\mathrm{Id}_{A, A}(\mathrm{id}_A, x, x)}$$

Next we have the "elimination" rule:

Elimination rule for two-type identity types:
$$\frac{
    \begin{array}{l}
      \Gamma \vdash A \; \mathrm{type} \quad \Gamma \vdash B \; \mathrm{type} \\
      \Gamma, e:A \simeq B, x:A, y:B, q:\mathrm{Id}_{A, B}(e, x, y) \vdash C(e, x, y, q) \; \mathrm{type} \\
      \Gamma \vdash t:\prod_{x:A} C(\mathrm{Id}_A, x, x, \mathrm{trefl}_{A, A}(x)) \\
      \Gamma \vdash e:A \simeq B \quad \Gamma \vdash x:A \quad \Gamma \vdash y:B \quad \Gamma \vdash q:\mathrm{Id}_{A, B}(e, x, y, q)
    \end{array}
  }{\Gamma \vdash \mathrm{ind}_{\mathrm{Id}_{A, B}}(t, e, x, y, q):C(e, x, y, q)}$$

The elimination rule then says that if:

1. for any equivalence $e:A \simeq B$, any elements $x:A$ and $y:B$, and any two-type identification $q:\mathrm{Id}_{A, B}(e, x, y)$ we have a type $C(e, x, y, q)$, and
1. we have a specified dependent function
$$t:\prod_{x:A} C(\mathrm{id}_A,x,x,\mathrm{trefl}_{A, A}(x))$$

then we can construct a canonically defined term called the *eliminator*
$$\mathrm{ind}_{\mathrm{Id}_{A, B}}(t,e,x,y,q):C(e,x,y,q)$$
for *any* $e$, $x$, $y$, and $q$.

Then, we have the [[computation rule]] or [[beta-reduction]] rule. This says that for all elements $x:A$, substituting the dependent function $t:\prod_{x:A} C(\mathrm{id}_A,x,x,\mathrm{trefl}_{A,A}(x))$ into the eliminator along the constructor for $x$ yields an element equal to $t(x)$ itself.  Normally "equal" here means [[judgmental equality]] (a.k.a. definitional equality), but it is also possible for it to mean [[propositional equality]] (a.k.a. typal equality), so there are two possible computation rules

Computation rules for two-type identity types:

* Judgmental computational rule
$$\frac{
    \begin{array}{l}
      \Gamma \vdash A \; \mathrm{type} \quad \Gamma \vdash B \; \mathrm{type} \\
      \Gamma, e:A \simeq B, x:A, y:B, q:\mathrm{Id}_{A, B}(e, x, y) \vdash C(e, x, y, q) \; \mathrm{type} \\
      \Gamma \vdash t:\prod_{x:A} C(\mathrm{id}_A, x, x, \mathrm{trefl}_{A, B}(x)) \quad \Gamma \vdash x:A
    \end{array}
  }{\Gamma \vdash \mathrm{ind}_{\mathrm{Id}_{A, B}}(t, \mathrm{id}_A, x, x, \mathrm{trefl}_{A, B}(x)) \equiv t(x):C(\mathrm{id}_A, x, x, \mathrm{trefl}_{A, B}(x))}$$

* Propositional computational rule
$$\frac{
    \begin{array}{l}
      \Gamma \vdash A \; \mathrm{type} \quad \Gamma \vdash B \; \mathrm{type} \\
      \Gamma, e:A \simeq B, x:A, y:B, q:\mathrm{Id}_{A, B}(e, x, y) \vdash C(e, x, y, q) \; \mathrm{type} \\
      \Gamma \vdash t:\prod_{x:A} C(\mathrm{id}_A, x, x, \mathrm{trefl}_{A, B}(x)) \quad \Gamma \vdash x:A
    \end{array}
  }{\Gamma \vdash \beta_{\mathrm{Id}_{A, B}}(t, x):\mathrm{Id}_{C(\mathrm{id}_A, x, x, \mathrm{trefl}_{A, B}(x))}(\mathrm{ind}_{\mathrm{Id}_{A, B}}(t, \mathrm{id}_A, x, x, \mathrm{trefl}_{A, B}(x), t(x))}$$

Finally, one might consider a [[uniqueness rule]] or [[eta-conversion]] rule.  But similar to the case for [[identity types]], a judgmental uniqueness rule for two-type identity types implies that the type theory is an [[extensional type theory]], in which case there is not much need for two-type identity types, so such a rule is almost never written down.  And as for identity types and other inductive types, the propositional/typal uniqueness rule is provable from the other four inference rules, so we don't write it out explicitly.

### Dependent universal property

The elimination, typal computation, and typal uniqueness rules for two-type identity types state that two-type identity types satisfy the **dependent universal property of two-type identity types**. With the [[uniqueness quantifier]], the dependent universal property of two-type identity types could be simplified to the following rule:

$$\frac{
    \begin{array}{l}
      \Gamma \vdash A \; \mathrm{type} \quad \Gamma \vdash B \; \mathrm{type} \\
      \Gamma, e:A \simeq B, x:A, y:B, q:\mathrm{Id}_{A,B}(e, x, y) \vdash C(e, x, y, q) \; \mathrm{type} \\
      \Gamma \vdash t:\prod_{x:A} C(\mathrm{id}_A, x, x, \mathrm{trefl}_{A}(x)) \quad \Gamma \vdash x:A
    \end{array}
  }{\Gamma \vdash \mathrm{up}_{\mathrm{Id}_{A, B}}(t, x):
\begin{array}{c}
\exists!J:\left(\prod_{x:A} C(\mathrm{id}_A, x, x, \mathrm{trefl}_{A}(x))\right) \\
\to \left(\prod_{e:A \simeq B} \prod_{a:A} \prod_{b:B} \prod_{s:\mathrm{Id}_{A, B}(e, a, b)} C(e, a, b, s)\right) \\
.\mathrm{Id}_{C(\mathrm{id}_A, x, x)}(J(t, \mathrm{id}_A, x, x, \mathrm{trefl}_{A}(x)), t(x))
\end{array}
}$$

In natural language this states that given types $A$ and $B$, and given a type family $C(e, x, y, q)$ indexed by elements $e:A \simeq B$, $x:A$, $y:B$, and $q:\mathrm{Id}_{A, B}(e, x, y)$, for all elements $t:\prod_{x:A} C(\mathrm{id}_A, x, x, \mathrm{trefl}_{A}(x))$ and $x:A$, there exists a unique function $J$ with domain
$$\prod_{x:A} C(\mathrm{id}_A, x, x, \mathrm{trefl}_{A}(x))$$
and codomain
$$\prod_{e:A \simeq B} \prod_{a:A} \prod_{b:B} \prod_{s:\mathrm{Id}_{A, B}(e, a, b)} C(e, a, b, s)$$
such that $J(t, \mathrm{id}_A, x, x, \mathrm{trefl}_{A}(x))$ is equal to $t(x)$ in the type $C(\mathrm{id}_A, x, x, \mathrm{trefl}_{A}(x))$.

## Properties

### Relation with identity types

One could then show that there exist equivalences between identity types and two-type identity types

$$\mathrm{Id}_{A, B}(e, x, y) \simeq \mathrm{Id}_{B}(e(x), y)$$

and

$$\mathrm{Id}_{A, B}(e, x, y) \simeq \mathrm{Id}_{A}(x, e^{-1}(y))$$

for all $e:A \simeq B$, $x:A$, and $y:B$.

### Relation with dependent identity types

Dependent identity types $\mathrm{hId}_{x:A.B(x)}(a, b, p, y, z)$ are two-type identity type for which the equivalence used is [[transport]] $\mathrm{transport}_{x:A.B(x)}(a, b, p):B(a) \simeq B(b)$ across the given identification $p:a =_A b$:

$$\mathrm{hId}_{x:A.B(x)}(a, b, p, y, z) \coloneqq \mathrm{Id}_{B(a), B(b)}(\mathrm{transport}_{x:A.B(x)}(a, b, p), y, z)$$

On the other hand, every two-type identity type $\mathrm{Id}_{A, B}(e, x, y)$ can be made into a dependent identity type. We first define a dependent type from the [[interval type]] $x:\mathbb{I} \vdash C(x)$ defined as

* $C(\mathrm{left}) \equiv A$,

* $C(\mathrm{right}) \equiv B$, and

* $\mathrm{transport}_{x:\mathbb{I}.C(x)}(\mathrm{left}, \mathrm{right}, \mathrm{segment}) \equiv e$

Then,

$$\mathrm{hId}_{x:\mathbb{I}.C(x)}(\mathrm{left}, \mathrm{right}, \mathrm{segment}, x, y) \simeq \mathrm{Id}_{A, B}(e, y, z)$$

#### Universes

Given a [[Tarski universe]] $(U, T)$, there is an equivalence

$$\mathrm{Id}_{T(A), T(B)}(\mathrm{transport}_U(A, B, p), x, y) \simeq \mathrm{hId}_{X:U.T(X)}(A, B, p, x, y)$$

One could treat [[Russell universes]] as a [[Tarski universe]] whose type family is represented by the zero-width whitespace instead of $T$, yielding

$$\mathrm{hId}_{X:U.(X)}(A, B, p, x, y)$$

for the dependent identity type and

$$\mathrm{Id}_{A, B}(\mathrm{idtoequiv}_U(A, B, p), x, y) \simeq \mathrm{hId}_{X:U.(X)}(A, B, p, x, y)$$

for the equivalence.

Given a [[Tarski universes]] $(U, T)$, if $U$ is univalent with [[equivalence]]

$$\mathrm{ua}_U(A, B):(A =_U B) \simeq (T(A) \simeq T(B))$$

then there is an equivalence of types

$$\mathrm{Id}_{T(A), T(B)}(e, x, y) \simeq \mathrm{hId}_{X:U.T(X)}(A, B, \mathrm{ua}_U(A, B)^{-1}(e), x, y)$$

for $U$-small types $A:U$ and $B:U$ and equivalence $e:A \simeq B$

For Russell universes $U$, the [[univalence axiom]] is represented by

$$\mathrm{ua}_U(A, B):(A =_U B) \simeq (A \simeq B)$$

and the above equivalence is represented by

$$\mathrm{Id}_{A, B}(e, x, y) \simeq \mathrm{hId}_{A, B}(\mathrm{ua}_U(A, B)^{-1}(e), x, y)$$

for the equivalence.

### One-to-one correspondence structure

Two-type identity types are [[one-to-one correspondences]]. Given an equivalence $e:A \simeq B$,

* for all elements $y:B$, there exists a unique element $x:A$ such that $\mathrm{Id}_{A, B}(e, x, y)$; the witness is given by the right projection function of the equivalence $e:A \simeq B$

$$\pi_2(e):\prod_{y:B} \exists!x:A.\mathrm{Id}_{A, B}(e, x, y)$$

* for all elements $x:A$, there exists a unique element $y:B$ such that $\mathrm{Id}_{A, B}(e, x, y)$; the witness is given by the right projection function of the inverse equivalence $e^{-1}:B \simeq A$

$$\pi_2(e^{-1}):\prod_{x:A} \exists!y:B.\mathrm{Id}_{A, B}(e, x, y)$$

## Related concepts

* [[identity type]]

* [[dependent identity type]]

[[!redirects two-type identity type]]
[[!redirects two-type identity types]]

[[!redirects two-type path type]]
[[!redirects two-type path types]]

[[!redirects two-type identification type]]
[[!redirects two-type identification types]]

[[!redirects two-type equality type]]
[[!redirects two-type equality types]]


two-valued logic

# Two-valued logic
* table of contents
{: toc}

## Definitions

Classically, a [[logic]] is __two-valued__ if every [[proposition]] (without free variables) is either true or false and none is both; that is, the logic is [[consistent theory|consistent]] and every proposition is [[decidable proposition|decidable]].  Being two-valued logic is a key feature of [[classical logic]]; any logic that is not two-valued is ipso facto nonclassical.

We do not expect that a [[predicate]] (a statement with free variables) is either true or false (although it will become true or false if applied to a term with no free variables).  We can call a [[context]] __two-valued__ if every proposition in that context (every predicate with free variables as given in that context) is either true or false; a logic is two-valued iff its global context is two-valued.

Famously, [[intuitionistic logic]] is not two-valued, although it may be two-valued in a weaker sense.  Let a logic be __intuitionistically two-valued__ if every proposition is false if and only if it is not true.  On the other hand, we can call a logic __paraconsistently two-valued__ if every proposition is true if and only if it is not false.

Applying [[topos theory]] to logic, we call a [[topos]] __two-valued__ if every [[global element]] of its [[subobject classifier]] is false if and only if it is not true.  More generally, any [[coherent category]] (just how general can we make this?) is __two-valued__ if every [[subterminal object]] is [[initial object|initial]] if and only if it is not [[terminal object|terminal]].  Note that we have phrased the definition in the intuitionistic fashion; that way, the theorem that a [[well-pointed topos]] is two-valued survives even in [[constructive mathematics]].

## Two-valued vs boolean

Although being two-valued and being boolean are both key features of [[classical logic]] and are closely related, they are not the same thing.  It is easy to find multi-valued logics which are boolean in that they satisfy the law of [[excluded middle]]; indeed, any [[boolean algebra]] provides a model.  Conversely, a logic may be two-valued in an external sense without being able to prove it of itself.

Similarly, a topos may be two-valued without being [[Boolean topos|Boolean]], and for purposes of doing mathematics in the topos it is the latter property which determines whether the [[internal logic]] satisfies [[excluded middle]].  However, a [[well-pointed topos]] (even working in a constructive metatheory, where such toposes might not be boolean or two-valued) is two-valued (in the strong classical sense) if and only if it is boolean.

Generally speaking, two-valuedness is an external property, and booleanness is an internal property.

## Related entries

* [[two-valued topos]]

* [[well-pointed topos]]

[[!redirects Two-valued logic]]
[[!redirects two-valued context]]
[[!redirects two-valued category]]


two-valued topos

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Topos Theory
+--{: .hide}
[[!include topos theory - contents]]
=--
=--
=--

# Contents
* automatic table of contents goes here
{:toc}

## Idea

A **two-valued topos** is a topos with exactly two [[truth value|truth values]].

## Definition

A topos $\mathcal{E}$ is called _two-valued_ if its [[subobject classifier]] $\Omega$ is [[two-valued object|two-valued]], with precisely two global elements $1\overset{true}{\to}\Omega$ and $1\overset{false}{\to}\Omega$.

## Properties

* In particular, a two-valued topos $\mathcal{E}$ is consistent i.e. $\mathcal{E}\neq 1$.

* Since $\Omega$ classifies subobjects $X\subseteq 1$, these correspond precisely to global elements $1\overset{\chi_X}{\to}\Omega$ whence a topos $\mathcal{E}$ is two-valued precisely if the [[terminal object]] $1$ has exactly the two subobjects $0$ and $1$.

* Two-valued toposes are [[connected topos|connected]] i.e. $0\neq 1$ and $U\coprod V\cong 1$ implies $U\cong 1$ and $V\cong 0$ or vice versa. This holds because $U$, $V$ are disjoint subobjects of $U\coprod V\cong 1$ but $1$ has only the two trivial subobjects.

* Let $\mathbb{T}$ be a [[geometric theory]] over the signature $\Sigma$. Then $\mathbb{T}$ is called [[complete theory|complete]] if every geometric sentence $\varphi$ over $\Sigma$ is $\mathbb{T}$-provably equivalent to either $\top$ or $\bottom\; ,$ but not both. A geometric theory $\mathbb{T}$ is complete precisely iff its [[classifying topos]] $Set[\mathbb{T}]$ is two-valued (Caramello [2012](#Ca12), remark 2.5).

* Being two-valued is different from saying that $\Omega\cong 1\coprod 1$: The latter property characterizes [[Boolean topos|Boolean toposes]] but a Boolean topos is not necessarily two-valued - the easiest consistent example possibly being $Set\times Set$ which is four-valued, more complicated ones often arising in intermediates steps in set-theoretic [[forcing]] (cf. [[continuum hypothesis]]). There exists a general _filter quotient construction_ turning a Boolean topos into a two-valued Boolean topos (cf. Mac Lane-Moerdijk [1994](#MM94), pp.256ff, 274).

## Examples

* Though the  forcing models resulting from the above mentioned filter-quotient construction provide a plethora of examples of Boolean two-valued toposes other than $Set$, two-valued toposes are by no means bound to be Boolean.

* In fact, there exists a rich supply of two-valued toposes that are not Boolean provided by the **toposes of actions of monoids** $M$:  Since the underlying set of $\Omega$ consists of all right ideals of $M$ with $m\in M$ acting on a right ideal $I$ by mapping it to $I\cdot m=\{x\in M|m\cdot x\in I\}\;,$ a global element picks out a right ideal $J$ that satisfies $J\cdot y= J$ for all $y\in M$, inheriting by equivariance the triviality of the action on $1$ with underlying set a singleton, which implies $J=\empty$ or $J=M$, the latter since $j\in J$ entails $1\in J\cdot j=J\;.$ Whence $Set^{M^{op}}$ is two-valued but it is a well known excercise that $Set^{M^{op}}$ is Boolean precisely iff $M$ is a group.

## Related entries

* [[two-valued object]], [[two-valued logic]]

* [[well-pointed topos]]

* [[Boolean topos]]

* [[continuum hypothesis]]

* [[Deligne completeness theorem]]

## References

* {#Ca12}[[Olivia Caramello]], _Atomic toposes and countable categoricity_ , Appl. Cat. Struc. **20** no. 4 (2012) pp.379-391. ([arXiv:0811.3547](http://arxiv.org/abs/0811.3547))

* {#MM94} [[Saunders Mac Lane]], [[Ieke Moerdijk]], _[[Sheaves in Geometry and Logic]]_ , Springer Heidelberg 1994.

[[!redirects Two-valued topos]]
[[!redirects two valued topos]]
[[!redirects Two valued topos]]
[[!redirects Two-valued topos]]


two-variable adjunction

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Category theory
+-- {: .hide}
[[!include category theory - contents]]
=--
#### 2-Category theory
+--{: .hide}
[[!include 2-category theory - contents]]
=--
=--
=--

# Two-variable and $n$-variable adjunctions
* table of contents
{: toc}

## Idea

The notion of _adjunction of two variables_ is a natural  generalization of both that of:

1. [[internal homs]] in a [[biclosed monoidal category]]

2. $V$-[[enriched categories]] having [[powers]] and [[copowers]].

## Definition

Let $C$, $D$ and $E$ be [[categories]]. An **adjunction of two variables** or **two-variable adjunction**

$$
 (\otimes, hom_l, hom_r)
 \,\colon\,
  C \times D \longrightarrow E
$$

consists of [[bifunctors]] of this form

$$
\begin{aligned}
  \otimes & \colon C \times D \longrightarrow E
  \\
  hom_l & \colon C^{op} \times E \longrightarrow D
  \\
  hom_r & \colon D^{op} \times E \longrightarrow C
\end{aligned}
$$

together with [[natural isomorphism]] of this form:

$$
  c \in C,\, d \in D,\, e \in E
  \;\;\;\;\;\;\;
  \vdash
  \;\;\;\;\;\;\;
  E\big(c \otimes d,\, e\big)
  \;\simeq\;
  D\big(d,\, hom_l(c,e)\big)
  \;\simeq\;
  C\big(c,\, hom_r(d,e)\big)
  \,.
$$

## Cyclicity

If $(\otimes, hom_l, hom_r) : C \times D \to E$ is a two-variable adjunction, then so are
$$
 (hom_l^{op}, \otimes^{op}, hom_r) : E^{op} \times C \to D^{op}
$$
and
$$
 (hom_r^{op}, hom_l, \otimes^{op}) : D\times E^{op} \to C^{op}.
$$
giving an action of the [[cyclic group]] of order 3.  This can be made to look more symmetrical by regarding the original two-variable adjunction as a "two-variable left adjunction" $C\times D \to E^{op}$; see [Cheng-Gurski-Riehl](#CGR).

## Adjunctions of $n$ variables

There is a straightforward generalization to an adjunction of $n$ variables, which involves $n+1$ categories and $n+1$ functors.  Adjunctions of $n$ variables assemble into a 2-[[multicategory]].  They also have a corresponding notion of [[mates]]; see [Cheng-Gurski-Riehl](#CGR).

This 2-multicategory can also be promoted to a 2-[[polycategory]]; see [Shulman](#Shulman).

## Related concepts

* [[adjoint functor]]

* [[Quillen bifunctor]]

## References

Under the name "*adjunction with a parameter*" the concept appears in p. 102 of:

* {#MacLane71} [[Saunders MacLane]], §IV.7, Thm. 3 (p. 100) of: _[[Categories Work|Categories for the working mathematician]]_, Graduate Texts in Mathematics, Springer (1971) [[doi:10.1007/978-1-4757-4721-8](https://link.springer.com/book/10.1007/978-1-4757-4721-8)]

Under the name "*THC-situation*" the concept is discussed in:

* [[John Gray]], Def. 1.1 in: *Closed categories, lax limits and homotopy limits*. J. Pure Appl. Algebra **19** (1980) 127 - 158 [doi:10.1016/0022-4049(80)90098-5]

The terminology *adjunction of two variables* is used in:

* {#Hovey99} [[Mark Hovey]], Def. 4.1.12 in: *[[Model Categories]]*, Mathematical Surveys and Monographs, **63** AMS (1999) [[ISBN:978-0-8218-4361-1](https://bookstore.ams.org/surv-63-s), [doi:10.1090/surv/063](https://doi.org/http://dx.doi.org/10.1090/surv/063), [pdf](https://people.math.rochester.edu/faculty/doug/otherpapers/hovey-model-cats.pdf), [Google books](http://books.google.co.uk/books?id=Kfs4uuiTXN0C&printsec=frontcover)]

and:

* [[Emily Riehl]], Def. 4.3.7 in: _[[Category Theory in Context]]_, Dover Publications (2017)

Generalization to $n$-variable adjunctions:

* {#CGR} [[Eugenia Cheng]], [[Nick Gurski]], [[Emily Riehl]], "Multivariable adjunctions and mates" [[arXiv:1208.4520](http://arxiv.org/abs/1208.4520)]

* [[Rene Guitart]], *Trijunctions and triadic Galois connections*. Cah. Topol. Géom. Différ. Catég. 54 (2013), no. 1, 13-27

* {#Shulman} [[Mike Shulman]], *The 2-Chu-Dialectica construction and the polycategory of multivariable adjunctions*, [arxiv:1806.06082](https://arxiv.org/abs/1806.06082), [blog post](https://golem.ph.utexas.edu/category/2017/11/the_polycategory_of_multivaria.html)

[[!redirects two-variable adjunction]]
[[!redirects two-variable adjunctions]]
[[!redirects 2-variable adjunction]]
[[!redirects 2-variable adjunctions]]
[[!redirects adjunction of two variables]]
[[!redirects adjunctions of two variables]]
[[!redirects adjunction of 2 variables]]
[[!redirects adjunctions of 2 variables]]
[[!redirects n-variable adjunction]]
[[!redirects n-variable adjunctions]]
[[!redirects adjunction of n variables]]
[[!redirects adjunctions of n variables]]
[[!redirects multivariable adjunction]]
[[!redirects multivariable adjunctions]]
[[!redirects multi-variable adjunction]]
[[!redirects multi-variable adjunctions]]

[[!redirects THC-situation]]
[[!redirects THC situation]]
[[!redirects THC-situations]]
[[!redirects THC situations]]

[[!redirects trijunction]]
[[!redirects trijunctions]]

[[!redirects adjunction with a parameter]]
[[!redirects adjunctions with a parameter]]


twosets20170617

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   viewBox="0 0 278.03085 216.18143"
   height="216.18143"
   width="278.03085"
   xml:space="preserve"
   version="1.1"
   id="svg2"><metadata
     id="metadata8"><rdf:RDF><cc:Work
         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
     id="defs6"><clipPath
       id="clipPath20"
       clipPathUnits="userSpaceOnUse"><path
         id="path22"
         d="m 0,0 5669.291,0 0,5669.291 L 0,5669.291 0,0 Z" /></clipPath><clipPath
       id="clipPath226"
       clipPathUnits="userSpaceOnUse"><path
         id="path228"
         d="m 0,0 176.703,0 0,329.068 L 0,329.068 0,0 Z" /></clipPath><clipPath
       id="clipPath562"
       clipPathUnits="userSpaceOnUse"><path
         id="path564"
         d="m 0,0 176.703,0 0,329.068 L 0,329.068 0,0 Z" /></clipPath></defs><g
     transform="matrix(1.25,0,0,-1.25,-20.899523,748.47938)"
     id="g10"><g
       transform="scale(0.10796,0.10796)"
       id="g12"><g
         id="g14"><g
           id="g16"><g
             clip-path="url(#clipPath20)"
             id="g18"><text
               id="text24"
               style="font-variant:normal;font-weight:normal;font-size:6.97380018px;font-family:CMR7;-inkscape-font-specification:CMR7;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
               transform="matrix(1,0,0,-1,5523.588,5654.893)"><tspan
                 id="tspan26"
                 y="0"
                 x="0">7</tspan></text>
<g
               transform="translate(162.456,5504.757)"
               id="g28"><g
                 id="g30"><g
                   id="g32" /><g
                   transform="matrix(19.28668,0,0,19.28668,138.7477,-760.52298)"
                   id="g34"><g
                     id="g36"><g
                       transform="matrix(0.5,0,0,0.5,-3.735,-1.272)"
                       id="g38"><g
                         id="g40"><g
                           transform="translate(-158.721,-5503.485)"
                           id="g42"><text
                             id="text44"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             transform="matrix(1,0,0,-1,158.721,5503.485)"><tspan
                               id="tspan46"
                               y="0"
                               x="0">{</tspan></text>
<text
                             id="text48"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:SFRM1000;-inkscape-font-specification:SFRM1000;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             transform="matrix(1,0,0,-1,163.701,5503.485)"><tspan
                               id="tspan50"
                               y="0"
                               x="0">∗</tspan></text>
<text
                             id="text52"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             transform="matrix(1,0,0,-1,168.681,5503.485)"><tspan
                               id="tspan54"
                               y="0"
                               x="0">}</tspan></text>
<g
                             transform="translate(158.721,5503.485)"
                             id="g56" /></g></g><g
                         transform="translate(3.735,1.272)"
                         id="g58" /></g></g><g
                     id="g60"><g
                       transform="matrix(0.5,0,0,0.5,51.075,-1.272)"
                       id="g62"><g
                         id="g64"><g
                           transform="translate(-213.531,-5503.485)"
                           id="g66"><text
                             id="text68"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             transform="matrix(1,0,0,-1,213.531,5503.485)"><tspan
                               id="tspan70"
                               y="0"
                               x="0">{</tspan></text>
<text
                             id="text72"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             transform="matrix(1,0,0,-1,218.511,5503.485)"><tspan
                               id="tspan74"
                               y="0"
                               x="0 4.6704669 8.9125423">s,t</tspan></text>
<text
                             id="text76"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             transform="matrix(1,0,0,-1,231.022,5503.485)"><tspan
                               id="tspan78"
                               y="0"
                               x="0">}</tspan></text>
<g
                             transform="translate(213.531,5503.485)"
                             id="g80" /></g></g><g
                         transform="translate(-51.075,1.272)"
                         id="g82" /></g></g><g
                     id="g84"><path
                       id="path86"
                       style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                       d="M 5.49503,-1.3729 C 28.3468,-7.08669 28.3468,-7.08669 49.07433,-1.90369" /><g
                       transform="matrix(0.97014,0.24257,-0.24257,0.97014,49.19511,-1.87349)"
                       id="g88"><g
                         id="g90"><path
                           id="path92"
                           style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                           d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244" /></g></g><g
                       id="g94"><g
                         id="g96" /><g
                         transform="matrix(0.4,0,0,0.4,23.752,-6.942)"
                         id="g98"><g
                           id="g100"><g
                             transform="translate(-186.208,-5497.815)"
                             id="g102"><text
                               id="text104"
                               style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:SFRM1000;-inkscape-font-specification:SFRM1000;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                               transform="matrix(1,0,0,-1,186.208,5497.815)"><tspan
                                 id="tspan106"
                                 y="0"
                                 x="0">∗</tspan></text>
<text
                               id="text108"
                               style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                               transform="matrix(1,0,0,-1,193.647,5497.815)"><tspan
                                 id="tspan110"
                                 y="0"
                                 x="0">↦</tspan></text>
<text
                               id="text112"
                               style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                               transform="matrix(1,0,0,-1,204.407,5497.815)"><tspan
                                 id="tspan114"
                                 y="0"
                                 x="0">t</tspan></text>
<g
                               transform="translate(186.208,5497.815)"
                               id="g116" /></g></g><g
                           transform="translate(-23.752,6.942)"
                           id="g118" /></g></g></g><g
                     id="g120"><path
                       id="path122"
                       style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                       d="M 49.31593,0 C 28.3468,0 28.3468,0 5.7441,0" /><g
                       transform="matrix(-1,0,0,-1,5.61955,0)"
                       id="g124"><g
                         id="g126"><path
                           id="path128"
                           style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                           d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244" /></g></g><g
                       id="g130"><g
                         id="g132" /><g
                         transform="matrix(0.4,0,0,0.4,19.992,-0.996)"
                         id="g134"><g
                           id="g136"><g
                             transform="translate(-182.448,-5503.761)"
                             id="g138"><text
                               id="text140"
                               style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMR10;-inkscape-font-specification:CMR10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                               transform="matrix(1,0,0,-1,182.448,5503.761)"><tspan
                                 id="tspan142"
                                 y="0"
                                 x="0">!</tspan></text>
<text
                               id="text144"
                               style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                               transform="matrix(1,0,0,-1,187.675,5503.761)"><tspan
                                 id="tspan146"
                                 y="0"
                                 x="0">∶</tspan></text>
<text
                               id="text148"
                               style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                               transform="matrix(1,0,0,-1,192.332,5503.761)"><tspan
                                 id="tspan150"
                                 y="0"
                                 x="0 4.6704669 8.9125423">s,t</tspan></text>
<text
                               id="text152"
                               style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                               transform="matrix(1,0,0,-1,207.302,5503.761)"><tspan
                                 id="tspan154"
                                 y="0"
                                 x="0">↦</tspan></text>
<text
                               id="text156"
                               style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:SFRM1000;-inkscape-font-specification:SFRM1000;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                               transform="matrix(1,0,0,-1,218.062,5503.761)"><tspan
                                 id="tspan158"
                                 y="0"
                                 x="0">∗</tspan></text>
<g
                               transform="translate(182.448,5503.761)"
                               id="g160" /></g></g><g
                           transform="translate(-19.992,0.996)"
                           id="g162" /></g></g></g><g
                     id="g164"><path
                       id="path166"
                       style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                       d="M 5.49503,1.3729 C 28.3468,7.08669 28.3468,7.08669 49.07433,1.90369" /><g
                       transform="matrix(0.97014,-0.24257,0.24257,0.97014,49.19511,1.87349)"
                       id="g168"><g
                         id="g170"><path
                           id="path172"
                           style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                           d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244" /></g></g><g
                       id="g174"><g
                         id="g176" /><g
                         transform="matrix(0.4,0,0,0.4,23.537,4.79)"
                         id="g178"><g
                           id="g180"><g
                             transform="translate(-185.993,-5509.547)"
                             id="g182"><text
                               id="text184"
                               style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:SFRM1000;-inkscape-font-specification:SFRM1000;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                               transform="matrix(1,0,0,-1,185.993,5509.547)"><tspan
                                 id="tspan186"
                                 y="0"
                                 x="0">∗</tspan></text>
<text
                               id="text188"
                               style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                               transform="matrix(1,0,0,-1,193.433,5509.547)"><tspan
                                 id="tspan190"
                                 y="0"
                                 x="0">↦</tspan></text>
<text
                               id="text192"
                               style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                               transform="matrix(1,0,0,-1,204.192,5509.547)"><tspan
                                 id="tspan194"
                                 y="0"
                                 x="0">s</tspan></text>
<g
                               transform="translate(185.993,5509.547)"
                               id="g196" /></g></g><g
                           transform="translate(-23.537,-4.79)"
                           id="g198" /></g></g></g><g
                     id="g200"><path
                       id="path202"
                       style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                       d="m -4.24901,-4.24998 c -4.25511,-4.25414 -4.25511,12.7541 -0.177,8.67691" /><g
                       transform="matrix(0.71065,-0.71046,0.71046,0.71065,-4.33751,4.33846)"
                       id="g204"><g
                         id="g206"><path
                           id="path208"
                           style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                           d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244" /></g></g><g
                       id="g210"><g
                         id="g212" /><g
                         transform="matrix(0.4,0,0,0.4,-7.44,0)"
                         id="g214"><g
                           id="g216" /><g
                           transform="translate(7.44,0)"
                           id="g218" /></g></g></g><g
                     id="g220"><g
                       transform="translate(-37.115,-164.534)"
                       id="g222"><g
                         id="g224" /><g
                         id="g230"><g
                           id="g232"
                           clip-path="url(#clipPath226)"><g
                             id="g234"
                             transform="translate(37.115,164.534)"><g
                               id="g236"><path
                                 id="path238"
                                 style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                 d="m 60.94263,-4.24998 c 4.25511,-4.25414 4.25511,12.7541 0.177,8.67691" /><g
                                 id="g240"
                                 transform="matrix(-0.71065,-0.71046,0.71046,-0.71065,61.03113,4.33846)"><g
                                   id="g242"><path
                                   id="path244"
                                   style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                   d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244" /></g></g><g
                                 id="g246"><g
                                   id="g248" /><g
                                   id="g250"
                                   transform="matrix(0.4,0,0,0.4,64.133,0)"><g
                                   id="g252" /><g
                                   id="g254"
                                   transform="translate(-64.133,0)" /></g></g></g><g
                               id="g256"><path
                                 id="path258"
                                 style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                 d="m 58.39229,-4.24998 c 11.90753,-29.7661 11.90753,38.26606 0.0925,8.73121" /><g
                                 id="g260"
                                 transform="matrix(-0.37143,-0.92847,0.92847,-0.37143,58.43854,4.3656)"><g
                                   id="g262"><path
                                   id="path264"
                                   style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                   d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244" /></g></g><g
                                 id="g266"><g
                                   id="g268" /><g
                                   id="g270"
                                   transform="matrix(0,0.4,-0.4,0,68.16,-11.435)"><g
                                   id="g272"><g
                                   id="g274"
                                   transform="translate(-105.275,-5493.322)"><text
                                   id="text276"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,105.275,5493.322)"><tspan
                                   id="tspan278"
                                   y="0"
                                   x="0">s</tspan></text>
<text
                                   id="text280"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,112.404,5493.322)"><tspan
                                   id="tspan282"
                                   y="0"
                                   x="0">↦</tspan></text>
<text
                                   id="text284"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,123.164,5493.322)"><tspan
                                   id="tspan286"
                                   y="0"
                                   x="0 3.5974948 17.80217">t,t</tspan></text>
<text
                                   id="text288"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,147.024,5493.322)"><tspan
                                   id="tspan290"
                                   y="0"
                                   x="0">↦</tspan></text>
<text
                                   id="text292"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,157.783,5493.322)"><tspan
                                   id="tspan294"
                                   y="0"
                                   x="0">s</tspan></text>
<g
                                   id="g296"
                                   transform="translate(105.275,5493.322)" /></g></g><g
                                   id="g298"
                                   transform="translate(-68.16,11.435)" /></g></g></g><g
                               id="g300"><path
                                 id="path302"
                                 style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                 d="m 58.39229,-4.24998 c 30.04928,-75.12116 30.04928,83.62112 0.0925,8.73121" /><g
                                 id="g304"
                                 transform="matrix(-0.37141,-0.92847,0.92847,-0.37141,58.43854,4.3656)"><g
                                   id="g306"><path
                                   id="path308"
                                   style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                   d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244" /></g></g><g
                                 id="g310"><g
                                   id="g312" /><g
                                   id="g314"
                                   transform="matrix(0,0.4,-0.4,0,81.766,-11.65)"><g
                                   id="g316"><g
                                   id="g318"
                                   transform="translate(-118.881,-5493.107)"><text
                                   id="text320"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,118.881,5493.107)"><tspan
                                   id="tspan322"
                                   y="0"
                                   x="0">s</tspan></text>
<text
                                   id="text324"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,126.01,5493.107)"><tspan
                                   id="tspan326"
                                   y="0"
                                   x="0">↦</tspan></text>
<text
                                   id="text328"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,136.77,5493.107)"><tspan
                                   id="tspan330"
                                   y="0"
                                   x="0 4.6704669 18.875141">s,t</tspan></text>
<text
                                   id="text332"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,161.702,5493.107)"><tspan
                                   id="tspan334"
                                   y="0"
                                   x="0">↦</tspan></text>
<text
                                   id="text336"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,172.462,5493.107)"><tspan
                                   id="tspan338"
                                   y="0"
                                   x="0">s</tspan></text>
<g
                                   id="g340"
                                   transform="translate(118.881,5493.107)" /></g></g><g
                                   id="g342"
                                   transform="translate(-81.766,11.65)" /></g></g></g><g
                               id="g344"><path
                                 id="path346"
                                 style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                 d="m 58.38696,-4.24998 c 52.73171,-131.81478 52.73171,140.31474 0.09282,8.73201" /><g
                                 id="g348"
                                 transform="matrix(-0.3727,-0.93166,0.93166,-0.3727,58.43336,4.36601)"><g
                                   id="g350"><path
                                   id="path352"
                                   style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                   d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244" /></g></g><g
                                 id="g354"><g
                                   id="g356" /><g
                                   id="g358"
                                   transform="matrix(0,0.4,-0.4,0,98.772,-11.221)"><g
                                   id="g360"><g
                                   id="g362"
                                   transform="translate(-135.887,-5493.536)"><text
                                   id="text364"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,135.887,5493.536)"><tspan
                                   id="tspan366"
                                   y="0"
                                   x="0">s</tspan></text>
<text
                                   id="text368"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,143.017,5493.536)"><tspan
                                   id="tspan370"
                                   y="0"
                                   x="0">↦</tspan></text>
<text
                                   id="text372"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,153.776,5493.536)"><tspan
                                   id="tspan374"
                                   y="0"
                                   x="0 3.5974948 17.80217">t,t</tspan></text>
<text
                                   id="text376"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,177.636,5493.536)"><tspan
                                   id="tspan378"
                                   y="0"
                                   x="0">↦</tspan></text>
<text
                                   id="text380"
                                   style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                                   transform="matrix(1,0,0,-1,188.396,5493.536)"><tspan
                                   id="tspan382"
                                   y="0"
                                   x="0">t</tspan></text>
<g
                                   id="g384"
                                   transform="translate(135.887,5493.536)" /></g></g><g
                                   id="g386"
                                   transform="translate(-98.772,11.221)" /></g></g></g></g></g></g></g></g></g></g></g></g></g></g></g></g></svg>