pub struct WalkingCategory();Expand description
The walking category as a VDC.
The walking category is the simplest example of a virtual double category that
has units (and in fact all composites). Specifically, the walking category
is the unital VDC freely generated by a single object, here called ().
The concept of a category can be interpreted in any virtual double category: a category object** in a VDC is a functor from the walking category into that VDC. In particular, a category object in spans is a category in the ordinary sense.
Trait Implementations§
Source§impl VDCWithComposites for WalkingCategory
impl VDCWithComposites for WalkingCategory
Source§fn composite_ext(&self, path: Path<Self::Ob, Self::Pro>) -> Option<Self::Cell>
fn composite_ext(&self, path: Path<Self::Ob, Self::Pro>) -> Option<Self::Cell>
In the walking category, every cell is an extension.
Source§fn through_composite(
&self,
n: Self::Cell,
range: Range<usize>,
) -> Option<Self::Cell>
fn through_composite( &self, n: Self::Cell, range: Range<usize>, ) -> Option<Self::Cell>
Factorizes a cell through a composite of proarrows. Read more
Source§fn has_composite(&self, path: &Path<Self::Ob, Self::Pro>) -> bool
fn has_composite(&self, path: &Path<Self::Ob, Self::Pro>) -> bool
Does the path of proarrows have a chosen composite? Read more
Source§fn composite2_ext(&self, m: Self::Pro, n: Self::Pro) -> Option<Self::Cell>
fn composite2_ext(&self, m: Self::Pro, n: Self::Pro) -> Option<Self::Cell>
Gets the chosen cell witnessing a composite of two proarrows, if there is one.
Source§fn composite(&self, path: Path<Self::Ob, Self::Pro>) -> Option<Self::Pro>
fn composite(&self, path: Path<Self::Ob, Self::Pro>) -> Option<Self::Pro>
Gets the chosen composite for a path of proarrows, if there is one. Read more
Source§fn composite2(&self, m: Self::Pro, n: Self::Pro) -> Option<Self::Pro>
fn composite2(&self, m: Self::Pro, n: Self::Pro) -> Option<Self::Pro>
Gets the chosen composite for a pair of consecutive proarrows, if there is one.
Source§fn unit_ext(&self, x: Self::Ob) -> Option<Self::Cell>
fn unit_ext(&self, x: Self::Ob) -> Option<Self::Cell>
Gets the chosen extension cell for an object, if there is one. Read more
Source§fn unit(&self, x: Self::Ob) -> Option<Self::Pro>
fn unit(&self, x: Self::Ob) -> Option<Self::Pro>
Gets the chosen unit for an object, if there is one. Read more
Source§impl VDblCategory for WalkingCategory
impl VDblCategory for WalkingCategory
Source§fn has_proarrow(&self, _: &Self::Pro) -> bool
fn has_proarrow(&self, _: &Self::Pro) -> bool
Does the proarrow belong to the VDC?
Source§fn cell_dom(&self, n: &Self::Cell) -> Path<Self::Ob, Self::Pro>
fn cell_dom(&self, n: &Self::Cell) -> Path<Self::Ob, Self::Pro>
Gets the domain of a cell, a path of proarrows.
Source§fn cell_cod(&self, _: &Self::Cell) -> Self::Pro
fn cell_cod(&self, _: &Self::Cell) -> Self::Pro
Gets the codomain of a cell, a single proarrow.
Source§fn compose(&self, _: Path<Self::Ob, Self::Arr>) -> Self::Arr
fn compose(&self, _: Path<Self::Ob, Self::Arr>) -> Self::Arr
Composes a path of arrows in the VDC.
Source§fn compose_cells(
&self,
tree: DblTree<Self::Arr, Self::Pro, Self::Cell>,
) -> Self::Cell
fn compose_cells( &self, tree: DblTree<Self::Arr, Self::Pro, Self::Cell>, ) -> Self::Cell
Composes a tree of cells in the VDC.
Source§fn compose2(&self, f: Self::Arr, g: Self::Arr) -> Self::Arr
fn compose2(&self, f: Self::Arr, g: Self::Arr) -> Self::Arr
Composes a pair of arrows with compatible (co)domains.
Source§fn compose_cells2(
&self,
αs: impl IntoIterator<Item = Self::Cell>,
β: Self::Cell,
) -> Self::Cellwhere
Self: Sized,
fn compose_cells2(
&self,
αs: impl IntoIterator<Item = Self::Cell>,
β: Self::Cell,
) -> Self::Cellwhere
Self: Sized,
Composes a two-layer pasting of cells.
Auto Trait Implementations§
impl Freeze for WalkingCategory
impl RefUnwindSafe for WalkingCategory
impl Send for WalkingCategory
impl Sync for WalkingCategory
impl Unpin for WalkingCategory
impl UnwindSafe for WalkingCategory
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.