ไม่มีที่ใหนที่เหมาะสมกับจากจบหนังสือที่เกี่ยวกับทฤษฎีcategory ได้มีสิ่งใหม่ที่ต้องเรียนรู้ตลอดเวลา ทฤษฎีcategoryเป็นวิชาที่กว้าง ในเวลาเดียวกันมันชัดเจนว่ามีธีม แนวคิดและรูปแบบเดียวกันได้โผล่ออกมาหลายต่อหลายครัง ได้มีคำกล่าวว่าทุกๆแนวคิดคือแนวคิดทั้งหมดคือส่วนขยายKan และแน่นอนว่าคุณสามารถใช้ส่วนขยายKanในการได้มาซึ่งlimits, colimits, adjunctions, monads, Yoneda lemmaและอื่นๆ ความเป็นcategoryมันเองโผล่มาในทุกระดับของabstraction และแนวคิดของmonoidและmonadก็เช่นกัน แล้วอะไรคือสิ่งที่พื้นฐานที่สุดละ? มันกลับมาเป็นว่าพวกมันนั้นมีความสัมพันธ์ระหว่างกัน สิ่งหนึ่งนำไปยังอีกสิ่งหนึ่งในวงจรที่ไม่มีที่สิ้นสุดของการabstractions ผมตัดสินใจว่าการแสดงความสัมพันธ์ระหว่างกันเหล่านี้อาจจะเป็นวิธีที่ดีในการจบหนังสือเล่มนี้
Bicategories
หนึ่งในด้านที่ยากที่สุดของทฤษฎีcategoryนั้นคือการเปลี่ยนมุมมองไปมา ลองนำcategoryของsetเป็นตัวอย่าง เราได้ใช้ในการนิยามsetในรูปแบบของสมาชิก setว่างนั้นไปมีสมาชิก setที่มีสมาชิกเดียวก็มีสมาชิกเดียว productแบบCartesianของสองsetคือsetของคู่และอื่นๆ แต่ในตอนที่เราพูดเกี่ยวกับcategory ผมของให้คุณได้ลืมเกี่ยวกับเนื้อหาของsetและหันมาสนใจบนmorphisms(ลูกศร)ระหว่างพวกมัน คุณนั้นได้รับอณุญาติ ในบางเวลาในการส่องเข้าไปภายใต้สิ่งคลุมอยู่ในการดูว่าการสร้างแบบสากลบางประเภทในถูกอธิบายในรูปแบบของสมาชิกต่างๆ วัตถุสุดท้ายกลายมาเป็นsetที่มีสมาชิกเดียวและอื่นๆ แต่สิ่งเหล่านี้เป็นแค่การตรวจสอบให้มั่นใจ
functorถูกนิยามในฐานะการโยงของcategoryต่างๆ มันเป็นธรรมชาติในการพิจารณาการโยงในฐานะmorphismในcategory functorกลายมาเป็นmorphismในcategoryของcategoryต่างๆ(categoryขนาดเล็ก ถ้าเราต้องการที่จะหลีกหนีเกี่ยวกับขนาด) โดนการมองfunctorในฐานะลูกศร เราละทิ้งข้อมูลเกี่ยวกับการกระทำของมันบนส่วนที่อยู่ข้างในของcategory(นั้นคือวัตถุและmorphisms)แค่เหมือนกับการที่เราละทิ้งข้อมูลเกี่ยวกับการกระทำของfunctionบนสมาชิกของsetในตอนที่เรามองมันในฐานะลูกศรใน แต่functorระหว่างสองcategoryใดๆก็ตามก็ก่อให้เกิดcategory ในเวลานี้คุณถูกถามในการพิจารณาบางอย่างที่เคยเป็นลูกศรในcategoryหนึ่งในการเป็นวัตถุของอีกตัวหนึ่ง ในcategoryแบบfunctor functorคือวัตถุและการแปลแบบธรรมชาติคือmorphisms เราได้ค้นพบว่าสิ่งเดียวกันสามารถเป็นลูกศรในcategoryหนึ่งและเป็นวัตถุในอีกตัวหนึ่ง มุมมองแบบตรงๆของวัตถุในฐานะคำนามและลูกศรในฐานะคำกริยาไม่ถูกต้องอีกแล้ว
แทนที่จะสลับระหว่างสองมุมมอง เราสามารถพยายามในการรวมพวกมันไปเป็นตัวหนึ่ง นี้คือวิธีการที่เราจะได้มาซึ่งแนวคิดของ-categoryที่วัตถุนั้นถูกเรียกว่า-cell morphismคือ-cellsและmorphismระหว่างmorphismsคือ-cells
categoryของcategory นั้นคือตัวอย่างที่ชัดเจน เรามีcategoryในฐานะ-cell functorในฐานะ-cell และการแปลงแบบธรรมชาติในฐานะ-cell กฎต่างๆของ-categoryบอกเราว่า-cellระหว่างสอง-cellไดๆก็ตามก่อให้เกิดcategory(ในอีกความหมายหนึ่งคือhom-categoryแทนที่จะเป็นhom-set) สิ่งนี้เข้ากันได้ดีกับเงื่อยไขของเราก่อนหน้านี้ที่functorระหว่างสองcategoryใดๆก็ตามก่อให้เกิดcategoryแบบfunctor
โดยเฉพาะเช่น -cellจาก-cellsใดๆก็ตามกลับไปหาตนเองก็ก่อให้เกิดcategory hom-category แต่categoryนั้นมีโครงสร้างมากกว่า สมาชิกของสามารถถูกมองในฐานะลูกศรในหรือในฐานะวัตถุใน ในฐานะลูกศร พวกมันสามารถถูกประกอบในระหว่างตัวมันเอง แต่ในตอนที่เรามองของพวกมันในฐานะวัตถุ การประกอบกันกลายมาเป็นการโยงระหว่างคู่ของวัตถุไปยังวัตถุ ในความเป็นจริงมันดูเหมือนอย่างมากกับproduct (ถ้าให้แม่นยำมันคือเป็นproductแบบtensor) productแบบtensorนี้มีunitคือ-cellที่เป็นidentity มันกลับมาเป็นว่าใน-category hom-category นั้นคือcategoryแบบmonoidโดยอัตโนมัติกับproductแบบtensorนิยามในฐานะการประกอบกันของ-cell กฏการสลับหมู่และunitก็ตามมาจากกฏของcategoryที่เป็นคู่กัน
เรามาดูว่าสิ่งนี้หมายความว่าอะไรในตัวอย่างมาตราฐานของ-category hom-category คือcategoryของendofunctorsบน การปรพะอบกันของendofunctorsมีบทบาทของproductแบบtensorในมัน functor identityคือunitของproductนี้ เราได้เห็นมาก่อนหน้านี้ว่าendofunctorก็ให้เกิดcategoryแบบmonoid(เราฝช้ความจริงในนิยามของmonad) แต่ในตอนนี้เราเห็นว่านี้คือปรากฏการณ์ที่ทั่วไปมากกว่านี้คือ endo-1-cellsใน-categoryใดๆก็ตามก่อให้เกิดcategoryแบบmonoid เราจะกลับมากันในสิ่งนี้ในภายหลังในตอนที่เราได้วางนียแบบทั่วไปของmonad
คุณอาจจะจำได้ว่าในcategoryแบบmonoidทั่วไป เราไม่ได้ย้ำถึงกฏของmonoidที่ถูกบรรลุแบบตรงๆ มันนั้นมักจะเพียงพอแล้วสำหรับกฏของunitและกฏการสลับกลุ่มในการที่จะถูกบรรลุจนไปถึงisomorphism ในง-category กฏทางmonoidในตามมาจากกฎการประกอบกันของสำหรับ-cell กฏเหล่านี้นั้นเคร่งครัด ดังนั้นเราจะได้มาซึ่งcategoryแบบmonoidที่เคร่งครัดโดยตรอด แต่มันนั้นเป็นไปได้ในการผ่อนกฏเหล่านี้ไปด้วยกัน ตัวอย่างเช่นเราสามารถพูดได้ว่าการประกอบกันของ-cell identity กับอีก-cellนั้นisomorphicแทนที่จะเท่ากับ isomorphismของ-cellนั้นถูกนิยามโดยการใช้-cell ในอีกความหมายหนึ่งได้มี-cellอย่าง
ที่มีinverse
เราสามารถทำแบบเดียวกันสำหรับidentityด้านช้ายและกฏการสลับกลุ่ม -category ที่ไม่เคร่งครัดมากถูกเรียกว่าbicategory(ได้มีกฏความสอดคล้องกันที่ผมจะละเว้นไว้ในที่นี้)
ในการที่คาดไว้ endo--cellในbicategoryก่อให้เกิดcategoryแบบmonoidทั่วไปที่มีกฏที่ไม่เคร่งครัด
ตังอย่างที่สำคัญของbicategoryคือcategoryของspan spanระหว่างสองวัตถุและคือวัตถุและคู่ของmorphisms
คุณอาจจะจำได้ว่าเราได้ใช้spanในนิยามของproductแบบcategory ในที่นี้เราต้องการที่จะมองในที่spansในฐานะ-cellในbicategory เริ่มแรกคือการนิยามการประกอบกันของspans
การประกอบกันควรที่จะเป็นspanที่สมากับบางยอด ตัวเลือกที่เป็นธรรมชาติที่สุดสำหรับมันคือpullbackของกับ จำได้ว่าpullbackคือวัตถุคู่กับสองmorphismsอย่าง
ในการที่ว่า
ที่เป็นสากลกับวัตถุทั้งหมดแบบนี้
ต่อจากนี้เรามาเพ่งเล็งไปยังspansบนcategoryของset ในกรณีนี้ pullbackคือแค่setของคู่จากproductแบบCartesian ในแบบที่ว่า
morphismระหว่างสองspanที่มีด้านจบเดียวกันนั้นถูกนิยามในฐานะmorphismระหว่างปลายของมัน ในการที่ว่าtriangleที่เหมาะสมcommuteกัน
โดยสรุปแล้วในbicategory -cellคือset -cellsคือspan -cellคือmorphismของspan -cell identityคือspanแบบลดรูป(degenerate)ที่ทั้งสมวัตถุนั้นคือตัวเดียวกันและสองmorphismคือidentity
เราได้เห็นอีกตัวอย่างหนึ่งของbicategoryก่อนหน้านี้คือbicategoryของprofunctiosที่ -cellคือcategory -cellคือprofunctorและ-cellคือการแปลงแบบธรรมชาติ การประกอบกันของprofunctorนั้นให้มาโดยcoend
Monads
จนถึงตอนนี้คุณควรที่จะมีความคุ้นชินกับนิยามของmonadในฐานะmonoidในcategoryของendofunctors เรากลับมาหานิยามนี้อีกครั้งกับความเข้าใจใหม่ว่าcategoryของendofunctorsคือแค่hom-categoryขนาดเล็กหนึ่งของendo-1-cells ในbicategoryเรารู้ว่ามันคือcategoryแบบmonoidที่productแบบtensorมาจากการประกอบกันของendofunctor monoidนั้นถูกนิยามในฐานะวัตถุในcategoryแบบmonoid(ในที่นี้คือก็จะเป็นendofunctor)คู่กับmorphismสองตัว morphismsระหว่างendofunctorต่างๆนั้นคือการแปลงแบบธรรมชาติ morphismหนึ่งโยงunitแบบmonoid (ที่คือendofunctor identity)ไปยัง
morphismที่สองโยงproductแบบtensor ไปยัง productแบบtensorนั้นให้มาโดยการประกอบกันของendofunctor ดังนั้นเราได้
เราสังเกตสิ่งนี้ในฐานะสองoperationsทำการนิยามmonad(พวกมันถูกเรียกว่าreturn
และjoin
ในHaskell)และเรารู้ว่ากฎmonoidเปลี่ยนไปเป็นกฏของmonad
ในตอนนี้เรามามำสิ่งที่พูดถึงendofunctorออกทั้งหมดจากนิยามนี้ เราเริ่มด้วยbicategoryและเลือก-cellในมัน ในการที่เราได้เหห็นก่อนหน้านี้hom-categoryคือcategoryแบบmonoid ดังนั้นเราสามารถนิยามmonoidในโดยการเลือก1-cellและ-cellอย่าง
ที่บรรลุกฏของmonoid เราเรียกสิ่งนี้ว่าmonad
นั้นคือนิยามที่กว้างที่สุดของmonadโดยการใช้แค่-cell -cellและ-cell มันลดไปยังmonadทั่วๆไปในตอนที่ใช้มันกับbicategory แต่เรามาดูว่าเกิดอะไรขึ้นในbicategoriesอื่นๆ
เรามาสร้างmonadใน เราเลือก-cellที่คือsetที่ ในสำหรับเหตุผลที่จะชัดเจนมากขึ้นหลังจากนี้ ผมจะเรียกว่า ต่อมาเราเลือก endo-1-cellที่คือspanจากไปยัง มันมีsetที่จุดยอดที่ผมจะเรียกว่าร่วมกับสองfunctionsอย่าง
เราจะเรียกสมาชิกของsetว่า”ลูกศร(arrows)” ถ้าผมก็จะบอกคุณให้เรียกสมาชิกของว่า”วัตถุ(object)“คุณอาจจะได้คำใบ้ว่าสิ่งนี้จะนำไปสู่อะไร สองfunctionsและกำหนดdomainและcodomainไปยัง”ลูกศร”
ในการทำให้spanของเราไปยังmonad เราต้องการสอง-cell และ unitแบบmonoidในกรณีนี้คือspanแบบตรงไปตรงมาจากไปยังกับจุดยอดที่และสองfunctions identity -cell คือfunctionระหว่างปลายและ ในอีกความหมายหนึ่งกำหนด”ลูกศร”ไปยังทุกๆ”วัตถุ” -cellในต้องบรรลุเงื่อนไขการสลับหมู่ในกรณีนี้
ในส่วนประกอบนี้แล้วสิ่งนี้กลายมาเป็น
ที่คือ”วัตถุ“ใน ในอีกความหมายหนึ่งกำหนดไปยังทุกๆ”วัตถุ“และ”ลูกศร”ที่domainและcodomainคือ”วัตถุ“นั้น เราจะเรียก”ลูกศร”พิเศษนี้ว่า”ลูกศรidentity”
-cellตัวที่สองกรระทำบนการประกอบกันของspanกับตัวมันเอง การประกอบกันนั้นถูกนิยามในฐานะpullback ดังนั้นสมาชิกของมันคือคู่ของสมาชิกจาก(คู่ของ”ลูกศรต่างๆ”) เงื่อนไขจของpullbackคือ
เราเรียกว่าและว่า”ประกอบได้“เพราะว่าdomainของตัวหนึ่งคือcodomainของอีกตัวหนึ่ง
-cell คือfunctionที่โยงคู่ของลูกศรที่สามารถประกอบกันได้ไปยังลูกศรเดี่ยวจาก ในอีกความหมายหนึ่งนิยามการประกอบกันของลูกศร
มันง่ายที่จะตรวจสอบว่ากฏmonadคู่กับidentityและกฏการสลับหมู่ตรงกับลูกศร เราได่แค่นิยามcategory(ย้ำว่าcategoryขนาดเล็กในที่วัตถุและลูกศรก่อให้เกิดset)
ดังนั้นโดยสรุป categoryคือแค่monadในbicategoryของspans
สิ่งที่สุดยอดเกี่ยวกับผลลัพธ์นี้คือว่ามันวางcategoryในระดับเดียวกันกับโครงสร้างทางพีชคณิตอย่างmonadและmonoids ได้ไม่มีความพิเศษเกี่ยวกับการเป็นcategory มันคือสองsetและสี่function ในความเป็นจริงแล้วเราไม่ต้องการsetแยกสำหรับวัตถุ เพราะว่าวัตถุสามารถถูกนิยามด้วยarrow identity(พวกมันตรงกับแบบหนึ่งต่อหนึ่ง) ดังนั้นมันคือแค่setและบางfunction เมื่อพิจารณาถึงบทบาทที่สำคัญของทฤษฎีcategoryในคณิตศาสตร์ทั้งหมด มันเป็นความเข้าใจที่ถ่อมตน
โจทย์ท้าทาย
- ลองสร้างกฏunitและการสลับหมู่สำหรับproductแบบtensorที่ถูกนิยามในฐานะการประกอบกันของendo-1-cellsในbicategory
- ลองทดสอบว่ากฏของmonadสำหรับmonadในตรงกับกฏunitและการสลับหมู่ในcategoryที่ได้มา
- ลองแสดงว่าmonadในคือfunctor identityบนวัตถุ
- อะไรคือalgebraแบบmonadสำหรับmonadใน