\documentclass[12pt,titlepage]{article} \usepackage{amsmath} \usepackage{mathrsfs} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsthm} \usepackage{mathtools} \usepackage{graphicx} \usepackage{color} \usepackage{ucs} \usepackage[utf8x]{inputenc} \usepackage{xparse} \usepackage{hyperref} %----Macros---------- % % Unresolved issues: % % \righttoleftarrow % \lefttorightarrow % % \color{} with HTML colorspec % \bgcolor % \array with options (without options, it's equivalent to the matrix environment) % Of the standard HTML named colors, white, black, red, green, blue and yellow % are predefined in the color package. Here are the rest. \definecolor{aqua}{rgb}{0, 1.0, 1.0} \definecolor{fuschia}{rgb}{1.0, 0, 1.0} \definecolor{gray}{rgb}{0.502, 0.502, 0.502} \definecolor{lime}{rgb}{0, 1.0, 0} \definecolor{maroon}{rgb}{0.502, 0, 0} \definecolor{navy}{rgb}{0, 0, 0.502} \definecolor{olive}{rgb}{0.502, 0.502, 0} \definecolor{purple}{rgb}{0.502, 0, 0.502} \definecolor{silver}{rgb}{0.753, 0.753, 0.753} \definecolor{teal}{rgb}{0, 0.502, 0.502} % Because of conflicts, \space and \mathop are converted to % \itexspace and \operatorname during preprocessing. % itex: \space{ht}{dp}{wd} % % Height and baseline depth measurements are in units of tenths of an ex while % the width is measured in tenths of an em. \makeatletter \newdimen\itex@wd% \newdimen\itex@dp% \newdimen\itex@thd% \def\itexspace#1#2#3{\itex@wd=#3em% \itex@wd=0.1\itex@wd% \itex@dp=#2ex% \itex@dp=0.1\itex@dp% \itex@thd=#1ex% \itex@thd=0.1\itex@thd% \advance\itex@thd\the\itex@dp% \makebox[\the\itex@wd]{\rule[-\the\itex@dp]{0cm}{\the\itex@thd}}} \makeatother % \tensor and \multiscript \makeatletter \newif\if@sup \newtoks\@sups \def\append@sup#1{\edef\act{\noexpand\@sups={\the\@sups #1}}\act}% \def\reset@sup{\@supfalse\@sups={}}% \def\mk@scripts#1#2{\if #2/ \if@sup ^{\the\@sups}\fi \else% \ifx #1_ \if@sup ^{\the\@sups}\reset@sup \fi {}_{#2}% \else \append@sup#2 \@suptrue \fi% \expandafter\mk@scripts\fi} \def\tensor#1#2{\reset@sup#1\mk@scripts#2_/} \def\multiscripts#1#2#3{\reset@sup{}\mk@scripts#1_/#2% \reset@sup\mk@scripts#3_/} \makeatother % \slash \makeatletter \newbox\slashbox \setbox\slashbox=\hbox{$/$} \def\itex@pslash#1{\setbox\@tempboxa=\hbox{$#1$} \@tempdima=0.5\wd\slashbox \advance\@tempdima 0.5\wd\@tempboxa \copy\slashbox \kern-\@tempdima \box\@tempboxa} \def\slash{\protect\itex@pslash} \makeatother % math-mode versions of \rlap, etc % from Alexander Perlis, "A complement to \smash, \llap, and lap" % http://math.arizona.edu/~aprl/publications/mathclap/ \def\clap#1{\hbox to 0pt{\hss#1\hss}} \def\mathllap{\mathpalette\mathllapinternal} \def\mathrlap{\mathpalette\mathrlapinternal} \def\mathclap{\mathpalette\mathclapinternal} \def\mathllapinternal#1#2{\llap{$\mathsurround=0pt#1{#2}$}} \def\mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}} \def\mathclapinternal#1#2{\clap{$\mathsurround=0pt#1{#2}$}} % Renames \sqrt as \oldsqrt and redefine root to result in \sqrt[#1]{#2} \let\oldroot\root \def\root#1#2{\oldroot #1 \of{#2}} \renewcommand{\sqrt}[2][]{\oldroot #1 \of{#2}} % Manually declare the txfonts symbolsC font \DeclareSymbolFont{symbolsC}{U}{txsyc}{m}{n} \SetSymbolFont{symbolsC}{bold}{U}{txsyc}{bx}{n} \DeclareFontSubstitution{U}{txsyc}{m}{n} % Manually declare the stmaryrd font \DeclareSymbolFont{stmry}{U}{stmry}{m}{n} \SetSymbolFont{stmry}{bold}{U}{stmry}{b}{n} % Manually declare the MnSymbolE font \DeclareFontFamily{OMX}{MnSymbolE}{} \DeclareSymbolFont{mnomx}{OMX}{MnSymbolE}{m}{n} \SetSymbolFont{mnomx}{bold}{OMX}{MnSymbolE}{b}{n} \DeclareFontShape{OMX}{MnSymbolE}{m}{n}{ <-6> MnSymbolE5 <6-7> MnSymbolE6 <7-8> MnSymbolE7 <8-9> MnSymbolE8 <9-10> MnSymbolE9 <10-12> MnSymbolE10 <12-> MnSymbolE12}{} % Declare specific arrows from txfonts without loading the full package \makeatletter \def\re@DeclareMathSymbol#1#2#3#4{% \let#1=\undefined \DeclareMathSymbol{#1}{#2}{#3}{#4}} \re@DeclareMathSymbol{\neArrow}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\neArr}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\seArrow}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\seArr}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\nwArrow}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\nwArr}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\swArrow}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\swArr}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\nequiv}{\mathrel}{symbolsC}{46} \re@DeclareMathSymbol{\Perp}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\Vbar}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\sslash}{\mathrel}{stmry}{12} \re@DeclareMathSymbol{\bigsqcap}{\mathop}{stmry}{"64} \re@DeclareMathSymbol{\biginterleave}{\mathop}{stmry}{"6} \re@DeclareMathSymbol{\invamp}{\mathrel}{symbolsC}{77} \re@DeclareMathSymbol{\parr}{\mathrel}{symbolsC}{77} \makeatother % \llangle, \rrangle, \lmoustache and \rmoustache from MnSymbolE \makeatletter \def\Decl@Mn@Delim#1#2#3#4{% \if\relax\noexpand#1% \let#1\undefined \fi \DeclareMathDelimiter{#1}{#2}{#3}{#4}{#3}{#4}} \def\Decl@Mn@Open#1#2#3{\Decl@Mn@Delim{#1}{\mathopen}{#2}{#3}} \def\Decl@Mn@Close#1#2#3{\Decl@Mn@Delim{#1}{\mathclose}{#2}{#3}} \Decl@Mn@Open{\llangle}{mnomx}{'164} \Decl@Mn@Close{\rrangle}{mnomx}{'171} \Decl@Mn@Open{\lmoustache}{mnomx}{'245} \Decl@Mn@Close{\rmoustache}{mnomx}{'244} \makeatother % Widecheck \makeatletter \DeclareRobustCommand\widecheck[1]{{\mathpalette\@widecheck{#1}}} \def\@widecheck#1#2{% \setbox\z@\hbox{\m@th$#1#2$}% \setbox\tw@\hbox{\m@th$#1% \widehat{% \vrule\@width\z@\@height\ht\z@ \vrule\@height\z@\@width\wd\z@}$}% \dp\tw@-\ht\z@ \@tempdima\ht\z@ \advance\@tempdima2\ht\tw@ \divide\@tempdima\thr@@ \setbox\tw@\hbox{% \raise\@tempdima\hbox{\scalebox{1}[-1]{\lower\@tempdima\box \tw@}}}% {\ooalign{\box\tw@ \cr \box\z@}}} \makeatother % \mathraisebox{voffset}[height][depth]{something} \makeatletter \NewDocumentCommand\mathraisebox{moom}{% \IfNoValueTF{#2}{\def\@temp##1##2{\raisebox{#1}{$\m@th##1##2$}}}{% \IfNoValueTF{#3}{\def\@temp##1##2{\raisebox{#1}[#2]{$\m@th##1##2$}}% }{\def\@temp##1##2{\raisebox{#1}[#2][#3]{$\m@th##1##2$}}}}% \mathpalette\@temp{#4}} \makeatletter % udots (taken from yhmath) \makeatletter \def\udots{\mathinner{\mkern2mu\raise\p@\hbox{.} \mkern2mu\raise4\p@\hbox{.}\mkern1mu \raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern1mu}} \makeatother %% Fix array \newcommand{\itexarray}[1]{\begin{matrix}#1\end{matrix}} %% \itexnum is a noop \newcommand{\itexnum}[1]{#1} %% Renaming existing commands \newcommand{\underoverset}[3]{\underset{#1}{\overset{#2}{#3}}} \newcommand{\widevec}{\overrightarrow} \newcommand{\darr}{\downarrow} \newcommand{\nearr}{\nearrow} \newcommand{\nwarr}{\nwarrow} \newcommand{\searr}{\searrow} \newcommand{\swarr}{\swarrow} \newcommand{\curvearrowbotright}{\curvearrowright} \newcommand{\uparr}{\uparrow} \newcommand{\downuparrow}{\updownarrow} \newcommand{\duparr}{\updownarrow} \newcommand{\updarr}{\updownarrow} \newcommand{\gt}{>} \newcommand{\lt}{<} \newcommand{\map}{\mapsto} \newcommand{\embedsin}{\hookrightarrow} \newcommand{\Alpha}{A} \newcommand{\Beta}{B} \newcommand{\Zeta}{Z} \newcommand{\Eta}{H} \newcommand{\Iota}{I} \newcommand{\Kappa}{K} \newcommand{\Mu}{M} \newcommand{\Nu}{N} \newcommand{\Rho}{P} \newcommand{\Tau}{T} \newcommand{\Upsi}{\Upsilon} \newcommand{\omicron}{o} \newcommand{\lang}{\langle} \newcommand{\rang}{\rangle} \newcommand{\Union}{\bigcup} \newcommand{\Intersection}{\bigcap} \newcommand{\Oplus}{\bigoplus} \newcommand{\Otimes}{\bigotimes} \newcommand{\Wedge}{\bigwedge} \newcommand{\Vee}{\bigvee} \newcommand{\coproduct}{\coprod} \newcommand{\product}{\prod} \newcommand{\closure}{\overline} \newcommand{\integral}{\int} \newcommand{\doubleintegral}{\iint} \newcommand{\tripleintegral}{\iiint} \newcommand{\quadrupleintegral}{\iiiint} \newcommand{\conint}{\oint} \newcommand{\contourintegral}{\oint} \newcommand{\infinity}{\infty} \newcommand{\bottom}{\bot} \newcommand{\minusb}{\boxminus} \newcommand{\plusb}{\boxplus} \newcommand{\timesb}{\boxtimes} \newcommand{\intersection}{\cap} \newcommand{\union}{\cup} \newcommand{\Del}{\nabla} \newcommand{\odash}{\circleddash} \newcommand{\negspace}{\!} \newcommand{\widebar}{\overline} \newcommand{\textsize}{\normalsize} \renewcommand{\scriptsize}{\scriptstyle} \newcommand{\scriptscriptsize}{\scriptscriptstyle} \newcommand{\mathfr}{\mathfrak} \newcommand{\statusline}[2]{#2} \newcommand{\tooltip}[2]{#2} \newcommand{\toggle}[2]{#2} % Theorem Environments \theoremstyle{plain} \newtheorem{theorem}{Theorem} \newtheorem{lemma}{Lemma} \newtheorem{prop}{Proposition} \newtheorem{cor}{Corollary} \newtheorem*{utheorem}{Theorem} \newtheorem*{ulemma}{Lemma} \newtheorem*{uprop}{Proposition} \newtheorem*{ucor}{Corollary} \theoremstyle{definition} \newtheorem{defn}{Definition} \newtheorem{example}{Example} \newtheorem*{udefn}{Definition} \newtheorem*{uexample}{Example} \theoremstyle{remark} \newtheorem{remark}{Remark} \newtheorem{note}{Note} \newtheorem*{uremark}{Remark} \newtheorem*{unote}{Note} %------------------------------------------------------------------- \begin{document} %------------------------------------------------------------------- \section*{semilattice} \hypertarget{context}{}\subsubsection*{{Context}}\label{context} \hypertarget{category_theory}{}\paragraph*{{$(0,1)$-Category theory}}\label{category_theory} [[!include (0,1)-category theory - contents]] \hypertarget{contents}{}\section*{{Contents}}\label{contents} \noindent\hyperlink{definition}{Definition}\dotfill \pageref*{definition} \linebreak \noindent\hyperlink{BoundedAndPseudo}{Bounded semilattices and semipseudolattices}\dotfill \pageref*{BoundedAndPseudo} \linebreak \noindent\hyperlink{semilattice_homomorphisms}{Semilattice homomorphisms}\dotfill \pageref*{semilattice_homomorphisms} \linebreak \noindent\hyperlink{the_category_of_semilattices}{The category of semilattices}\dotfill \pageref*{the_category_of_semilattices} \linebreak \noindent\hyperlink{the_free_joinsemilattice_on_a_poset}{The free join-semilattice on a poset}\dotfill \pageref*{the_free_joinsemilattice_on_a_poset} \linebreak \noindent\hyperlink{examples}{Examples}\dotfill \pageref*{examples} \linebreak \hypertarget{definition}{}\subsection*{{Definition}}\label{definition} A \textbf{join-semilattice} is a [[poset]] which admits all [[finite set|finite]] [[join|joins]], or equivalently which admits a bottom element $\bot$ and binary joins $a\vee b$. If we think of a poset as a category, a join-semilattice is the same as a poset with finite colimits, or equivalently, a poset with finite coproducts. In a join-semilattice the binary join $\vee$ is commutative, associative, has $\bot$ as a unit, and is \textbf{idempotent}: $a\vee a =a$. And in fact, given any commutative and idempotent [[monoid]] $(A,\vee,\bot)$, we can define $a\le b$ to mean $a \vee b = b$ to make it into a poset with finite joins; thus we have an equivalent algebraic definition of a join-semilattice. Dually, a \textbf{meet-semilattice} is a poset which admits all finite [[meet|meets]], including a top element $\top$ and binary meets $\wedge$. Once again $\wedge$ is commutative, associative, unital for $\top$, and idempotent. Once again we can recover the order from it, but this time defining $a\le b$ to mean $a \wedge b = a$. If we think of a poset as a category, a meet-semilattice is the same as a poset with finite limits, or equivalently, a poset with finite products. If we treat join- and meet-semilattices purely algebraically there is no difference: they are both just idempotent commutative monoids. The difference comes in how we define the order starting the commutative monoid structure, or in the notation we use (just as we distinguish additive and multiplicative groups notationally). Since the opposite of a join-semilattice is a meet-semilattice, it would be possible to take one as standard and call the other a \emph{cosemilattice} (compare [[direction|directed]] and [[codirection|codirected]] sets), but this may not have ever been done. If a poset is both a join- \emph{and} a meet-semilattice, then we call it a [[lattice]]. \hypertarget{BoundedAndPseudo}{}\subsection*{{Bounded semilattices and semipseudolattices}}\label{BoundedAndPseudo} Traditionally, a semilattice need have only finite [[inhabited set|inhabited]] meets/joins; that is, it need not have a top/bottom element. Algebraically, this means that a semilattice need not be a monoid, but is any commutative idempotent [[semigroup]]. One might call a semilattice that does have a top/bottom element a \textbf{bounded semilattice}; the problem with this is that a [[bounded poset]] already means a poset that has both top \emph{and} bottom elements, whereas here we really only want to require one. Another approach is to define a semilattice, as above, to require a top/bottom element and then use the term \textbf{pseudosemilattice} or \textbf{semipseudolattice} to allow for the possibility that it might not. See [[lattice]] for more discussion of this issue. \hypertarget{semilattice_homomorphisms}{}\subsection*{{Semilattice homomorphisms}}\label{semilattice_homomorphisms} A homomorphism of join-semilattices $f: A \to B$ is a function that preserves finite joins, or equivalently: \begin{displaymath} f(x \vee y) = f(x) \vee f(y),\; f(\bot) = \bot . \end{displaymath} Note that such a homomorphism is necessarily a [[monotone function]], but the converse fails. Thus, a semilattice is a poset with [[property-like structure]]. A homomorphism of meet-semilattices is defined in an analogous (i.e., dual) way. In what follows we take join-semilattices as the default, but all results apply to meet-semilattices with slight modifications. \hypertarget{the_category_of_semilattices}{}\subsection*{{The category of semilattices}}\label{the_category_of_semilattices} Semilattices and semilattice homomorphims form a [[concrete category]] [[SemiLat]]. By the remarks above, this is equivalent to the category of commutative idempotent monoids. Since these are algebras of a [[Lawvere theory]], or equivalently a [[finitary monad]] on $Set$, the category $Semi Lat$ has all the properties that [[algebraic category|finitary monadic categories]] enjoy. The poset $\{F,T\}$ where $F \le T$ becomes a commutative [[rig]] with $\vee$ and meet $\wedge$ as addition and multiplication, respectively; let us call this rig $Bool$. We can define a module of a rig much as we define a module of a ring, but with the module's underlying abelian group generalized to be a commutative monoid (thus eliminating the need for negatives). The underlying commutative monoid of a $Bool$-module is idempotent because, writing addition in this monoid as $+$, we have $a + a = (T \vee T)a = T a = a$. Conversely, any idempotent commutative monoid becomes a $Bool$-module in a unique way. Thus, the category $Semi Lat$ is equivalent to the category of $Bool$-modules. \hypertarget{the_free_joinsemilattice_on_a_poset}{}\subsection*{{The free join-semilattice on a poset}}\label{the_free_joinsemilattice_on_a_poset} There a forgetful functor \begin{displaymath} U \colon SemiLat \to Poset \end{displaymath} This has a left adjoint \begin{displaymath} F \colon Poset \to SemiLat \end{displaymath} where for any poset $P$, the join-semilattice $F(P)$ is the poset of finitely generated downsets of $P$, ordered by inclusion. Here a \textbf{downset} of a poset $P$ is a subset $S \subseteq P$ such that \begin{displaymath} s \in S, s' \le s \quad \implies \quad s' \in S. \end{displaymath} This set of all downsets in $P$, say $\hat{P}$, is ordered by inclusion, and it's a [[suplattice]]: any union of downsets is a downset. There's an embedding of $P$ in $\hat{P}$ that sends each $p \in P$ to its \textbf{principal} downset $\{s \in P : \; s \le p \}$. A downset is \textbf{finitely generated} if it is the union of finitely many principal downsets. (To give a finitely generated downset is to give a finite [[antichain]], and so the free join-semilattice is sometimes described equivalently as the set of finite antichains in $P$ equipped with a certain partial order.) To understand this description of the free join-semilattice on a poset, some [[enriched category theory]] is useful. A [[preorder]] is the same as a $Bool$-enriched category, where now $Bool$ stands for the monoidal category with two objects $F$, $T$ and one nontrivial morphism $F \implies T$, its monoidal structure being ``and''. The downsets of a poset $P$ correspond in a one-to-one way with order-preserving maps $f \colon P^{op} \to Bool$, but in terms of enriched category theory these are precisely the $Bool$-enriched functors $f \colon P^{op} \to Bool$, just as presheaves on a category $C$ are functors $f \colon C^{op} \to Set$. Thus, the embedding $y \colon P \to \hat{P}$ that sends each $p \in P$ to its principal downset is the $Bool$-enriched version of the Yoneda embedding. So, just as the category of presheaves on a category $C$ is the [[free cocompletion|free cocomplete category]] on $C$, $\hat{P}$ is the free cocomplete $Bool$-enriched category on $P$. But a cocomplete $Bool$-enriched category that happens to be a poset (instead of a mere preorder) is the same as a suplattice. Thus, the free suplattice on $P$ is $\hat{P}$. Similarly, the free join-semilattice on a poset $P$ is the $Bool$-enriched analogue of the free \emph{finitely} cocomplete category on a category $C$, since objects in this category are presheaves that are finite colimits of representables. \hypertarget{examples}{}\subsection*{{Examples}}\label{examples} \begin{itemize}% \item [[semilattice of commutative subalgebras]] \item [[suplattice]] \end{itemize} [[!redirects meet-semilattice]] [[!redirects join-semilattice]] [[!redirects meet semilattice]] [[!redirects join semilattice]] [[!redirects cosemilattice]] [[!redirects bounded semilattice]] [[!redirects pseudosemilattice]] [[!redirects semipseudolattice]] [[!redirects semilattices]] [[!redirects meet-semilattices]] [[!redirects join-semilattices]] [[!redirects meet semilattices]] [[!redirects join semilattices]] [[!redirects cosemilattices]] [[!redirects bounded semilattices]] [[!redirects pseudosemilattices]] [[!redirects semipseudolattices]] \end{document}