Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
% This file: % http://angg.twu.net/LATEX/2022Cats6.lagda.tex.html % http://angg.twu.net/LATEX/2022Cats6.lagda.tex % (find-angg "LATEX/2022Cats6.lagda.tex") % Author: Eduardo Ochs <eduardoochs@gmail.com> % % (find-LATEX "2022Cats6.lagda.tex") % (code-eec-LATEX "2022Cats6") % (defun c () (interactive) (eec-agdalatex-sh "2022Cats6" "-record" :end)) % (defun C () (interactive) (eec-agdalatex-sh "2022Cats6" "" "Success!!!")) % (defun D () (interactive) (find-pdf-page "~/LATEX/2022Cats6.pdf")) % (defun d () (interactive) (find-pdftools-page "~/LATEX/2022Cats6.pdf")) % (defun e () (interactive) (find-angg "LATEX/2022Cats6.lagda.tex")) % (defun et () (interactive) (find-angg "LATEX/2022Cats6.tex")) % (defun a () (interactive) (find-angg "AGDA/2022Cats6.agda")) % (defun u () (interactive) (find-latex-upload-links "2022Cats6")) % (defun v () (interactive) (find-pdftoolsr-page "~/LATEX/2022Cats6.pdf")) % (defun v () (interactive) (find-2a '(e) '(d))) % (defun cv () (interactive) (C) (ee-kill-this-buffer) (v) (g)) % (defun d0 () (interactive) (find-ebuffer "2022Cats6.pdf")) % % (find-2a nil '(find-LATEX "2022template.lagda.tex")) % (find-dired-re "~/LATEX/" ".lagda.tex$") % (find-agdalatex-links "2022Cats6") % (find-agdafile-links "2022Cats6") % (find-lualatex-links "2022Cats6") \documentclass{article} \usepackage[colorlinks,citecolor=DarkRed,urlcolor=DarkRed]{hyperref} % (find-es "tex" "hyperref") \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{pict2e} \usepackage[x11names,svgnames]{xcolor} % (find-es "tex" "xcolor") % \usepackage{proof} % For derivation trees ("%:" lines) \input diagxy % For 2D diagrams ("%D" lines) \xyoption{curve} % For the ".curve=" feature in 2D diagrams % \usepackage{edrx21} % (find-LATEX "edrx21.sty") \input edrxaccents.tex % (find-LATEX "edrxaccents.tex") \input edrx21chars.tex % (find-LATEX "edrx21chars.tex") \input edrxheadfoot.tex % (find-LATEX "edrxheadfoot.tex") \input edrxgac2.tex % (find-LATEX "edrxgac2.tex") % \usepackage{agda} % (find-LATEX "agda.sty") \begin{document} \catcode`\^^J=10 \directlua{dofile "dednat6load.lua"} % (find-LATEX "dednat6load.lua") %D diagram Cat %D 2Dx 100 +20 +20 +20 %D 2D 100 A0 %D 2D +20 A1 %D 2D +20 A2 %D 2D +20 A3 %D 2D +15 B0 %D 2D %D ren A0 A1 A2 A3 ==> B C D E %D ren B0 ==> \catA %D %D (( A0 A1 -> .plabel= l f %D A1 A2 -> .plabel= l g %D A2 A3 -> .plabel= l h %D A1 loop (dr,ur) .plabel= r \id_C %D A2 loop (dr,ur) .plabel= r \id_D %D B0 place %D )) %D enddiagram %D %D diagram Fun %D 2Dx 100 +20 %D 2D 100 A0 - A1 %D 2D +20 A2 - A3 %D 2D +20 A4 - A5 %D 2D +20 A6 - A7 %D 2D +15 B0 - B1 %D 2D %D ren A0 A1 A2 A3 A4 A5 A6 A7 ==> C FC C FC D FD E FE %D ren B0 B1 ==> \catA \catB %D %D (( A0 A1 |-> %D A2 A3 |-> %D A4 A5 |-> %D A6 A7 |-> %D A0 A2 -> .plabel= l \id_C A1 A3 -> .plabel= r \sm{F\id_C\\=\id_{FC}} %D A2 A4 -> .plabel= l g A3 A5 -> .plabel= r Fg %D A4 A6 -> .plabel= l h A5 A7 -> .plabel= r Fh %D B0 B1 -> .plabel= a F %D )) %D enddiagram %D $$\pu \diag{Cat} \qquad \diag{Fun} $$ \begin{code} module 2022Cats6 where open import Level open import Relation.Binary.PropositionalEquality as Eq open Eq.≡-Reasoning record Cat {ℓ₀ ℓ₁ : Level} : Set (suc (ℓ₀ ⊔ ℓ₁)) where infix 10 _◦_ field Objs : Set ℓ₀ Hom : Objs → Objs → Set ℓ₁ id : {B : Objs} → (Hom B B) _◦_ : {B C D : Objs} → (g : Hom C D) → (f : Hom B C) → (Hom B D) idL : {C D : Objs} → (g : Hom C D) → (g ≡ g ◦ id) idR : {C D : Objs} → (g : Hom C D) → (g ≡ id ◦ g) assoc : {B C D E : Objs} → (f : Hom B C) → (g : Hom C D) → (h : Hom D E) → (h ◦ (g ◦ f) ≡ (h ◦ g) ◦ f) -- f≡f◦id : {C D : Objs} → {g : Hom C D} → g ≡ g ◦ id f≡f◦id {C} {D} {g} = idL g f≡id◦f : {C D : Objs} → {g : Hom C D} → g ≡ id ◦ g f≡id◦f {C} {D} {g} = idR g f◦id≡f : {C D : Objs} → {g : Hom C D} → g ◦ id ≡ g f◦id≡f {C} {D} {g} = sym (idL g) id◦f≡f : {C D : Objs} → {g : Hom C D} → id ◦ g ≡ g id◦f≡f {C} {D} {g} = sym (idR g) f◦[g◦h]≡[f◦g]◦h : {B C D E : Objs} → {f : Hom B C} → {g : Hom C D} → {h : Hom D E} → h ◦ (g ◦ f) ≡ (h ◦ g) ◦ f f◦[g◦h]≡[f◦g]◦h {B} {C} {D} {E} {f} {g} {h} = assoc f g h [f◦g]◦h≡f◦[g◦h] : {B C D E : Objs} → {f : Hom B C} → {g : Hom C D} → {h : Hom D E} → (h ◦ g) ◦ f ≡ h ◦ (g ◦ f) [f◦g]◦h≡f◦[g◦h] {B} {C} {D} {E} {f} {g} {h} = sym (assoc f g h) \end{code} % src : {D E : Objs} → (f : Hom D E) → Objs % src {D} {E} f = D % tgt : {D E : Objs} → (f : Hom D E) → Objs % tgt {D} {E} f = E % f◦id : {D E : Objs} → {f : Hom D E} → Hom D E % f◦id {D} {E} {f} = f ◦ id % id◦f : {D E : Objs} → {f : Hom D E} → Hom D E % id◦f {D} {E} {f} = id ◦ f \newpage \begin{code} record Functor {ℓ₀ ℓ₁ ℓ₂ ℓ₃ : Level} (catB : Cat {ℓ₀} {ℓ₁}) (catA : Cat {ℓ₂} {ℓ₃}) : Set (suc (ℓ₀ ⊔ ℓ₁ ⊔ ℓ₂ ⊔ ℓ₃)) where module A = Cat catA module B = Cat catB field ac0 : B.Objs → A.Objs ac1 : {C D : B.Objs} → (B.Hom C D) → (A.Hom (ac0 C) (ac0 D)) respids : {C : B.Objs} → (ac1 (B.id {C}) ≡ A.id {ac0 C}) respcomp : {C D E : B.Objs} → {f : B.Hom C D} → {g : B.Hom D E} → (ac1 (g B.◦ f) ≡ ((ac1 g) A.◦ (ac1 f))) -- id[FC]≡F[idC] : {C : B.Objs} → ac1 (B.id {C}) ≡ A.id {ac0 C} id[FC]≡F[idC] {C} = respids F[idC]≡id[FC] : {C : B.Objs} → A.id {ac0 C} ≡ ac1 (B.id {C}) F[idC]≡id[FC] {C} = sym respids F[g◦h]≡Fg◦Fh : {C D E : B.Objs} → {f : B.Hom C D} → {g : B.Hom D E} → (ac1 (g B.◦ f) ≡ ((ac1 g) A.◦ (ac1 f))) F[g◦h]≡Fg◦Fh {C} {D} {E} {f} {g} = respcomp Fg◦Fh≡F[g◦h] : {C D E : B.Objs} → {f : B.Hom C D} → {g : B.Hom D E} → ((ac1 g) A.◦ (ac1 f)) ≡ (ac1 (g B.◦ f)) Fg◦Fh≡F[g◦h] {C} {D} {E} {f} {g} = sym respcomp -- -- How to use it: -- R.ac0 C = RC -- R.ac1 {C} {D} f = R f -- R.respids {C} : R(id C) ≡ id(RC) -- R.respcomp {C} {D} {E} {f} {g} : R(g∘f) ≡ Rg∘Rf \end{code} % -- open A % -- open B \newpage \begin{code} catSet : Cat {suc zero} {zero} Cat.Objs catSet = Set Cat.Hom catSet A B = (A → B) Cat.id catSet {A} = (λ a → a) Cat._◦_ catSet g f = (λ a → g (f a)) Cat.idL catSet f = refl Cat.idR catSet f = refl Cat.assoc catSet f g h = refl catSetH : Cat {suc zero} {zero} Cat.Objs catSetH = Set Cat.Hom catSetH A B = (A → B) Cat.id catSetH {A} = (λ a → a) Cat._◦_ catSetH g f = (λ a → g (f a)) Cat.idL catSetH f = refl Cat.idR catSetH f = refl Cat.assoc catSetH f g h = refl \end{code} \GenericWarning{Success:}{Success!!!} % Used by `M-x cv' \end{document} * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) agda --latex --latex-dir=. 2022Cats6.lagda.tex laf 2022Cats6* cd ~/LATEX/ lualatex 2022Cats6.tex % (find-fline "~/AGDA/latex/") % (find-fline "~/AGDA/latex/Logic2.tex") % (find-agdausermanualpage (+ 4 195) "4.7 Generating LaTeX") % (find-agdausermanualtext (+ 4 195) "4.7 Generating LaTeX") % (find-agdausermanualpage (+ 4 95) "3.19.3 Literate Agda") % (find-agdausermanualtext (+ 4 95) "3.19.3 Literate Agda") % Local Variables: % coding: utf-8-unix % modes: (latex-mode agda2-mode) % End: