├── cc-by-sa.pdf
├── cas.gst
├── latexmkrc
├── TO DO.md
├── history.tex
├── .github
└── workflows
│ └── latexmk.yml
├── Makefile
├── tikz-external-hash.sty
├── book.tex
├── .gitignore
├── README.md
├── tikzsetup.tex
├── cayley.jl
├── galois.tex
├── SymmetryBook.v
├── icosahedron.html
├── metamath.tex
├── choicefin.tex
├── marginfix.sty
├── LICENSE
├── intro.tex
├── symmetry.tex
└── fingp.tex
/cc-by-sa.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UniMath/SymmetryBook/HEAD/cc-by-sa.pdf
--------------------------------------------------------------------------------
/cas.gst:
--------------------------------------------------------------------------------
1 | %%%%% cas.gst makeindex glossary configuration file for cas book
2 | %%%%% Output style parameters
3 | preamble "\\begin{theglossary}"
4 | postamble "\n\\end{theglossary}\n"
5 | group_skip "\n"
6 | item_0 "\n\\glossitem"
7 | delim_0 "{\\memglonum{"
8 | encap_suffix "}}}"
9 | %%% Input style parameters
10 | keyword "\\glossaryentry"
11 |
12 |
--------------------------------------------------------------------------------
/latexmkrc:
--------------------------------------------------------------------------------
1 | $pdf_mode = 1;
2 |
3 | $pdflatex = "pdflatex -halt-on-error -synctex=1 --shell-escape -fmt macros %O %S";
4 |
5 | $success_cmd = 'cp %A.pdf bookview.pdf';
6 |
7 | @default_files = ("book");
8 |
9 | push @generated_exts, "glo", "gls";
10 |
11 | add_cus_dep("glo", "gls", 0, glo2gls);
12 |
13 | sub glo2gls {
14 | return system( "makeindex -s cas.gst -o \"$_[0].gls\" \"$_[0].glo\"" );
15 | }
16 |
--------------------------------------------------------------------------------
/TO DO.md:
--------------------------------------------------------------------------------
1 | # We'll start working on this bit:
2 |
3 | 1. Introduction [motivating examples]
4 | - Mathematical objects; no entity without identi(ty/fications)
5 | - Geometry and algebra united via symmetry (Erlangen Program)
6 | - Impossibility results: ruler+compass, root extraction
7 | 1. More modular arithmetic?
8 | 1. Cycle decomposition
9 | - [Random permutations](https://golem.ph.utexas.edu/category/2020/01/random_permutations_part_13.html)
10 | 1. More geometries: Affine, Projective, Similarity, etc.
11 |
12 | # Done:
13 |
14 | 1. Mathematical objects and constructions
15 | - types, Σ, Π, =, U, ℕ, Fin, ×, →
16 | - constructions, pair, λ, idp, 0, successor, etc.
17 | - equivalences, h-levels, truncation, propositions, sets
18 | - logic, ∧, ∨, ∃, ∀, →
19 | 1. Group theory
20 | - structure of identity types
21 | - automorphism 1-group = fundamental group (hint at higher groups)
22 | - homomorphisms induced by functions (early)
23 | - more examples: symmetric groups, integers, cyclic groups & modular arithmetic
24 | - group actions, orbits and fixed points
25 | - subgroups
26 | - Cayley's theorem
27 |
--------------------------------------------------------------------------------
/history.tex:
--------------------------------------------------------------------------------
1 | \chapter{Historical remarks}
2 | \label{ch:grouphistory}
3 |
4 | Here we briefly sketch some of the history of groups.
5 | See the book by \citeauthor{Wussing-genesis}\footcite{Wussing-genesis}
6 | for a detailed account,
7 | as well as the shorter survey by
8 | \citeauthor{Kleiner-group-survey}\footcite{Kleiner-group-survey}.
9 | There's also the book by \citeauthor{Yaglom1988}\footcite{Yaglom1988}.
10 |
11 | Some waypoints we might mention include:
12 | \begin{itemize}
13 | \item Early nineteenth century geometry,
14 | the rise of projective geometry, Möbius and Plücker
15 | \item Early group theory in number theory,
16 | forms, power residues, Euler and Gauss.
17 | \item Permutation groups, Lagrange and Cauchy,
18 | leading (via Ruffini) to Abel and Galois.
19 | \item Liouville and Jordan\footcite{Jordan} ruminating on Galois.
20 | \item Cayley, Klein and the Erlangen Program\footcite{Klein-EP-de}.
21 | \item Lie and differentiation.
22 | \item von~Dyck and Hölder.
23 | \item J.H.C.~Whitehead and crossed modules.
24 | \item Artin and Schreier theory.
25 | \item Algebraic groups (Borel and Chevalley et al.)
26 | \item Feit-Thompson and the classification of finite simple groups.
27 | \item Grothendieck and the homotopy hypothesis.
28 | \item Voevodsky and univalence.
29 | \end{itemize}
30 |
31 | %%% Local Variables:
32 | %%% mode: latex
33 | %%% fill-column: 144
34 | %%% latex-block-names: ("lemma" "theorem" "remark" "definition" "corollary" "fact" "properties" "conjecture" "proof" "question" "proposition")
35 | %%% TeX-master: "book"
36 | %%% End:
37 |
--------------------------------------------------------------------------------
/.github/workflows/latexmk.yml:
--------------------------------------------------------------------------------
1 | name: Build the book
2 | on: [push, pull_request]
3 | jobs:
4 | build_latex:
5 | runs-on: ubuntu-latest
6 | steps:
7 | - name: Set up Git repository
8 | uses: actions/checkout@v3
9 | - name: Create the directory figures/
10 | run: mkdir -p figures
11 | - name: Make version.tex
12 | run: make version.tex
13 | - name: Disable TikZ externalize
14 | run: echo "\newcommand{\OPTnotikzexternal}{true}" >> version.tex
15 | - name: Enable github specific flag
16 | run: echo "\newcommand{\OPTgithub}{true}" >> version.tex
17 | - name: Precompilation
18 | uses: dante-ev/latex-action@latest
19 | with:
20 | compiler: pdflatex
21 | args: -ini -jobname="macros"
22 | root_file: "&pdflatex macros.tex\\dump"
23 | - name: Compile LaTeX document
24 | uses: dante-ev/latex-action@latest
25 | with:
26 | args: -pdf -latexoption=-file-line-error -latexoption=-interaction=nonstopmode -latexoption=-shell-escape
27 | root_file: book.tex
28 | - name: Gather file in build directory
29 | run: |
30 | mkdir build
31 | cp icocayley.html icosahedron.html build/
32 | mv book.pdf build/
33 | - name: Check GitHub Pages status
34 | uses: crazy-max/ghaction-github-status@v3
35 | with:
36 | pages_threshold: major_outage
37 | - name: Publish to GitHub pages
38 | if: success() && github.ref == 'refs/heads/master'
39 | uses: crazy-max/ghaction-github-pages@v3
40 | with:
41 | target_branch: gh-pages
42 | build_dir: build/
43 | env:
44 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | MK = latexmk
2 |
3 | all: book.pdf TAGS
4 | book.pdf: always figures version.tex macros.fmt
5 | $(MK) -quiet book
6 | see-errors: figures version.tex macros.fmt
7 | $(MK) book
8 | one-by-one: figures version.tex macros.fmt
9 | pdflatex -halt-on-error --shell-escape -fmt macros book.tex
10 | makeindex book.idx
11 | biber book
12 | pdflatex -halt-on-error --shell-escape -fmt macros book.tex
13 | makeindex book.idx
14 | pdflatex -halt-on-error --shell-escape -fmt macros book.tex
15 | figures:
16 | mkdir $@
17 | macros.fmt: macros.tex tikzsetup.tex
18 | pdflatex -ini -jobname="macros" "&pdflatex macros.tex\dump"
19 | version.tex: .git/refs/heads/$(shell git branch --show-current)
20 | git log -1 --date=short \
21 | --pretty=format:'\newcommand{\OPTcommit}{%h}%n\newcommand{\OPTdate}{%ad}%n' \
22 | > version.tex
23 | clean:
24 | rm -rf *.aux *.fdb_latexmk *.fls *.log *.out *.toc *.brf *.blg *.bbl *.bcf \
25 | *.run.xml *.glo *.gls *.idx *.ilg *.ind \
26 | *.auxlock *.synctex.gz TAGS version.tex macros.fmt
27 | cleanall:
28 | rm -rf *.aux *.fdb_latexmk *.fls *.log *.out *.toc *.brf *.blg *.bbl *.bcf \
29 | *.run.xml *.glo *.gls *.idx *.ilg *.ind \
30 | book.pdf *.auxlock *.synctex.gz figures TAGS version.tex macros.fmt
31 | always:
32 |
33 | # This list should include all the tex files that go into the book, in the order they go.
34 | # Compare with the \include commands in book.tex
35 | BOOKFILES := \
36 | macros.tex \
37 | tikzsetup.tex \
38 | book.tex \
39 | intro.tex \
40 | intro-uf.tex \
41 | circle.tex \
42 | group.tex \
43 | actions.tex \
44 | absgroup.tex \
45 | congp.tex \
46 | subgroups.tex \
47 | symmetry.tex \
48 | fingp.tex \
49 | fggroups.tex \
50 | abelian.tex \
51 | fields.tex \
52 | geometry.tex \
53 | galois.tex \
54 | history.tex \
55 | metamath.tex \
56 | choicefin.tex
57 |
58 | TAGS : Makefile $(BOOKFILES)
59 | etags $(BOOKFILES)
60 |
--------------------------------------------------------------------------------
/tikz-external-hash.sty:
--------------------------------------------------------------------------------
1 | % Copyright (c) 2019 Takahiro Ueda
2 | %
3 | % This file may be distributed and/or modified under the conditions of
4 | % the LaTeX Project Public License (LPPL), either version 1.3c of this
5 | % license or (at your option) any later version. The latest version of
6 | % this license is in:
7 | %
8 | % http://www.latex-project.org/lppl.txt
9 | %
10 | \ProvidesPackage{tikz-external-hash}[2019/10/01 v0.1.1]
11 |
12 | % This style file replaces the \tikz command and the tikzpicture environment
13 | % in such a way that externalization uses hash values of picture contents as
14 | % the cache file names.
15 | %
16 | % Usage:
17 | % \usepackage{tikz}
18 | % \usetikzlibrary{external}
19 | % \usepackage{tikz-external-hash}% before \tikzexternalize
20 | % \tikzexternalize
21 | %
22 | \usepackage{tikz}
23 | \usetikzlibrary{external}
24 | \usepackage{etoolbox}
25 | \usepackage{environ}
26 |
27 | % Patch \tikzexternal@tikzpicture@replacement in tikzexternalshared.code.tex.
28 |
29 | \NewEnviron{tikz@external@hash@tikzpicture}[1][]{%
30 | % Here the cache file name is derived from
31 | % (1) the contents in the picture,
32 | % (2) the options,
33 | % (3) \beamer@pgfextension if defined.
34 | \edef\tikz@external@hash@tempa{#1}%
35 | \@ifundefined{beamer@pgfextension}{}{%
36 | \edef\tikz@external@hash@tempa{%
37 | \tikz@external@hash@tempa;\beamer@pgfextension}%
38 | }%
39 | \edef\tikz@external@hash@tempa{\expandonce\BODY;\tikz@external@hash@tempa}%
40 | \expandafter\tikzexternal@computemdfivesum\expandafter{%
41 | \tikz@external@hash@tempa}%
42 | \xdef\tikzexternal@nextfile{\pgfretval}%
43 | % Now, put the picture.
44 | \let\tikzpicture=\tikzexternal@tikzpicture@replacement@orig
45 | \begin{tikzpicture}[#1]%
46 | \BODY
47 | \end{tikzpicture}%
48 | \let\endtikzpicture=\relax
49 | }
50 |
51 | \let\tikzexternal@tikzpicture@replacement@orig=\tikzexternal@tikzpicture@replacement
52 | \let\tikzexternal@tikzpicture@replacement=\tikz@external@hash@tikzpicture
53 |
54 | % latest-raw-url: https://gist.githubusercontent.com/tueda/c9a9c073c5f656e7ce870faf2e836be8/raw/tikz-external-hash.sty
55 |
--------------------------------------------------------------------------------
/book.tex:
--------------------------------------------------------------------------------
1 | % \includeonly{}
2 |
3 | %%% Index and glossary
4 | \makeglossary
5 | \changeglossnum{\thepage}
6 | \changeglossnumformat{|hyperpage}
7 | \makeindex
8 |
9 | %%% Version file
10 | \input version
11 |
12 | %% speed up compilation by compiling tikz figure separately
13 | %% unless we say not to be defining \OPTnotikzexternal
14 | \ifthenelse{\isundefined{\OPTnotikzexternal}}{%
15 | \usepackage{tikz-external-hash}
16 | \usetikzlibrary{external}%
17 | \tikzset{external/system call={pdflatex -fmt macros \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"}}
18 | \tikzexternalize[prefix=figures/]%
19 | \AtBeginEnvironment{tikzcd}{\tikzexternaldisable}
20 | \AtEndEnvironment{tikzcd}{\tikzexternalenable}
21 | }{}
22 |
23 | %% If we're published on github do not include labels and WIPs
24 | \ifthenelse{\isundefined{\OPTgithub}}{%
25 | \usepackage[notref,notcite]{showkeys}
26 | \renewcommand*{\showkeyslabelformat}[1]{%
27 | {\rotatebox[origin=cr]{60}{\normalfont\tiny\ttfamily#1}}}
28 | \newcommand{\wip}[1]{{\color{magenta} #1}}
29 | \newcommand{\MB}[1]{{\color{red} #1}}
30 | }{%
31 | \newcommand{\wip}[1]{}
32 | \newcommand{\MB}[1]{}
33 | }
34 |
35 | \begin{document}
36 | \let\sh\undefined
37 | \newcommand*{\sh}{\shape}
38 |
39 | \frontmatter
40 | \thetitlepage
41 | \thecopyrightpage
42 |
43 | \renewcommand*{\contentsname}{Short contents}
44 | \setcounter{tocdepth}{0} % chapter
45 | \tableofcontents
46 | \clearpage
47 | \renewcommand*{\contentsname}{Contents}
48 | \setcounter{tocdepth}{1} % section
49 | \tableofcontents
50 |
51 | %\include{preface}
52 |
53 | \mainmatter
54 |
55 | \include{intro}
56 | \include{intro-uf}
57 | \include{circle}
58 | \include{group}
59 | \include{actions}
60 | \include{cats}
61 | \include{absgroup}
62 | \include{congp}
63 | \include{subgroups}
64 | \include{fingp}
65 | \include{fggroups}
66 | \include{abelian}
67 | \include{fields}
68 | \include{geometry}
69 | \include{galois}
70 |
71 | \appendix
72 | \crefalias{chapter}{appendix}
73 | \include{history}
74 | \include{metamath}
75 |
76 | \backmatter
77 |
78 | % No margin notes in the back matter
79 | \begin{fullwidth}
80 | \raggedright
81 | \printbibliography
82 | \printglossary
83 | \printindex
84 | \end{fullwidth}
85 | \end{document}
86 |
87 | % Local Variables:
88 | % fill-column: 144
89 | % latex-block-names: ("lemma" "theorem" "remark" "definition" "corollary" "fact" "properties" "conjecture" "proof" "question" "proposition" "exercise")
90 | % TeX-master: t
91 | % TeX-command-extra-options: "-fmt=macros"
92 | % compile-command: "make book.pdf"
93 | % End:
94 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## emacs tags file -*- sh -*-
2 | TAGS
3 |
4 | ## Coq output files
5 | *.vo
6 | *.glob
7 |
8 | ## Core latex/pdflatex auxiliary files:
9 | *.aux
10 | *.lof
11 | *.log
12 | *.lot
13 | *.fls
14 | *.out
15 | *.toc
16 | *.fmt
17 | *.fot
18 | *.cb
19 | *.cb2
20 | .*.lb
21 |
22 | ## generated file:
23 | version.tex
24 |
25 | ## Intermediate documents:
26 | *.dvi
27 | *.xdv
28 | *-converted-to.*
29 | # these rules might exclude image files for figures etc.
30 | # *.ps
31 | # *.eps
32 | *.pdf
33 |
34 | ## Generated if empty string is given at "Please type another file name for output:"
35 | .pdf
36 |
37 | ## Bibliography auxiliary files (bibtex/biblatex/biber):
38 | *.bbl
39 | *.bcf
40 | *.blg
41 | *-blx.aux
42 | *-blx.bib
43 | *.run.xml
44 |
45 | ## Build tool auxiliary files:
46 | *.fdb_latexmk
47 | *.synctex
48 | *.synctex(busy)
49 | *.synctex.gz
50 | *.synctex.gz(busy)
51 | *.pdfsync
52 |
53 | ## Auxiliary and intermediate files from other packages:
54 | # algorithms
55 | *.alg
56 | *.loa
57 |
58 | # achemso
59 | acs-*.bib
60 |
61 | # amsthm
62 | *.thm
63 |
64 | # beamer
65 | *.nav
66 | *.pre
67 | *.snm
68 | *.vrb
69 |
70 | # changes
71 | *.soc
72 |
73 | # cprotect
74 | *.cpt
75 |
76 | # elsarticle (documentclass of Elsevier journals)
77 | *.spl
78 |
79 | # endnotes
80 | *.ent
81 |
82 | # fixme
83 | *.lox
84 |
85 | # feynmf/feynmp
86 | *.mf
87 | *.mp
88 | *.t[1-9]
89 | *.t[1-9][0-9]
90 | *.tfm
91 |
92 | #(r)(e)ledmac/(r)(e)ledpar
93 | *.end
94 | *.?end
95 | *.[1-9]
96 | *.[1-9][0-9]
97 | *.[1-9][0-9][0-9]
98 | *.[1-9]R
99 | *.[1-9][0-9]R
100 | *.[1-9][0-9][0-9]R
101 | *.eledsec[1-9]
102 | *.eledsec[1-9]R
103 | *.eledsec[1-9][0-9]
104 | *.eledsec[1-9][0-9]R
105 | *.eledsec[1-9][0-9][0-9]
106 | *.eledsec[1-9][0-9][0-9]R
107 |
108 | # glossaries
109 | *.acn
110 | *.acr
111 | *.glg
112 | *.glo
113 | *.gls
114 | *.glsdefs
115 |
116 | # gnuplottex
117 | *-gnuplottex-*
118 |
119 | # gregoriotex
120 | *.gaux
121 | *.gtex
122 |
123 | # htlatex
124 | *.4ct
125 | *.4tc
126 | *.idv
127 | *.lg
128 | *.trc
129 | *.xref
130 |
131 | # hyperref
132 | *.brf
133 |
134 | # knitr
135 | *-concordance.tex
136 | # TODO Comment the next line if you want to keep your tikz graphics files
137 | *.tikz
138 | *-tikzDictionary
139 |
140 | # listings
141 | *.lol
142 |
143 | # makeidx
144 | *.idx
145 | *.ilg
146 | *.ind
147 | *.ist
148 |
149 | # minitoc
150 | *.maf
151 | *.mlf
152 | *.mlt
153 | *.mtc[0-9]*
154 | *.slf[0-9]*
155 | *.slt[0-9]*
156 | *.stc[0-9]*
157 |
158 | # minted
159 | _minted*
160 | *.pyg
161 |
162 | # morewrites
163 | *.mw
164 |
165 | # nomencl
166 | *.nlg
167 | *.nlo
168 | *.nls
169 |
170 | # pax
171 | *.pax
172 |
173 | # pdfpcnotes
174 | *.pdfpc
175 |
176 | # sagetex
177 | *.sagetex.sage
178 | *.sagetex.py
179 | *.sagetex.scmd
180 |
181 | # scrwfile
182 | *.wrt
183 |
184 | # sympy
185 | *.sout
186 | *.sympy
187 | sympy-plots-for-*.tex/
188 |
189 | # pdfcomment
190 | *.upa
191 | *.upb
192 |
193 | # pythontex
194 | *.pytxcode
195 | pythontex-files-*/
196 |
197 | # thmtools
198 | *.loe
199 |
200 | # TikZ & PGF
201 | *.dpth
202 | *.md5
203 | *.auxlock
204 |
205 | # todonotes
206 | *.tdo
207 |
208 | # easy-todo
209 | *.lod
210 |
211 | # xmpincl
212 | *.xmpi
213 |
214 | # xindy
215 | *.xdy
216 |
217 | # xypic precompiled matrices
218 | *.xyc
219 |
220 | # endfloat
221 | *.ttt
222 | *.fff
223 |
224 | # Latexian
225 | TSWLatexianTemp*
226 |
227 | ## Editors:
228 | # WinEdt
229 | *.bak
230 | *.sav
231 |
232 | # Texpad
233 | .texpadtmp
234 |
235 | # Kile
236 | *.backup
237 |
238 | # KBibTeX
239 | *~[0-9]*
240 |
241 | # auto folder when using emacs and auctex
242 | ./auto/*
243 | *.el
244 |
245 | # expex forward references with \gathertags
246 | *-tags.tex
247 |
248 | # standalone packages
249 | *.sta
250 |
251 | # generated if using elsarticle.cls
252 | *.spl
253 |
254 | # backup files
255 | *~
256 |
257 | .DS_Store
258 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SymmetryBook
2 | This book will be a textbook written in the univalent style, taking advantage of the presence of symmetry in the logic at an early stage.
3 |
4 | ## Style guide
5 |
6 | - Try to be informal. Use as few formulas as possible, especially for the parts about type theory and logic, to ease the entry into group theory.
7 | - We call objects in a type *elements* of that type even if the type is not a set.
8 | - An element of a proposition can be called a *proof*.
9 | - Identity types are denoted in general using the macro \eqto, which produces ⥱ (that is an arrow with an = on top). An element of an identity type is called an *identification*, and otherwise a *path*. We may say that it shows how to *identify* two elements.
10 | If the type is a set, we may denote its identity types by a = b and call them *equations*. When a = b has an element we say that a and b are *equal*.
11 | - Types similar to identity types, like the type of eqivalences from A to B, are also denoted with a macro ending in "to", like \equivto, producing ⥲ (that is an arrow with an equivalence sign on top).
12 | - The type containing the variable in a family is called the "parameter type", not the "index type", nor the "base type".
13 | - Being equal by definiton is denoted with three lines and is called just that, and not *definitionally equal* or *judgmentally equal*.
14 | - A synonym of "function" is "map". We don't use "mapping" or "application" as synonyms.
15 | - In the preliminary chapters (up to subgroups), the underlying set map U from groups to sets has to be applied explicitly. Thereafter, it can be a coercion.
16 | - Composition of p: a⥱b and q: b⥱c is denoted by either p∗q (p\ct q), or by q·p (q\cdot p), qp or q∘p (q\circ p). The latter is preferred when p and q come from equivalences.
17 | - In dependent pairs, components having propositional type may be omitted.
18 | - If x is a bound variable and c is less bound, then we prefer c ⥱ x to x ⥱ c. Typically, if c is the center of contraction.
19 | - If k and n are number variables that can be renamed, then we prefer k < n to k > n or n < k.
20 | - *up to* versus *modulo* regarding a group action: *Up to* is the stacky version, the orbit type (typically for us, a groupoid), whereas *modulo* refers to the set of connected components/the set of orbits. For example, given a group G, we have the groupoid of elements up to conjugation versus the set of elements modulo conjugation.
21 | - Globally defined constants are typeset roman, while variables are italic. One exception is the *B* construction: The B matches whatever it operates on and joins to it without any space.
22 | - When a structure is introduced and unpacked at the same time, use ≡ to connect the new variable with the unpacked parts. For example: “Let M ≡ (S,ι,μ) be a monoid”.
23 | - Hints to exercises go in footnotes in the margin, with the footnote marker at the end of the exercise.
24 | - Margin notes should usually to be made as footnotes (i.e., with a footnote marker).
25 | - For a G-set X, we also write X for the underlying set, and we may write X^z to mean X twisted by a G-shape z : BG.
26 | - Whenever possible, do not use a letter for a variable when the same letter is being used as an operator. E.g., try to avoid a variable B when the classifying type/map operator B is used in the same paragraph.
27 | - Use macros with mathematical meaning, such as \conncomp, whenever possible, for uniformity of notation.
28 | - Avoid the use of acronyms, such as LEM and LPO.
29 | - Construct sort-order keys for glossary entries this way:
30 | + for unary operators, use 1 followed by something (e.g., for $-y$ use (1-);
31 | + for binary operators, use 2 followed by something (e.g., for $x+y$ use (2+);
32 | + for numbers, use 8 followed by the number (e.g., for $0$ use (80).
33 | + for identifiers in the Greek alphabet use 9 followed by the 2-digit ordinal number of the first letter (for proper alphabetization) and then something (e.g., for $\loops$ use (924Omega):
34 | ```
35 | 01 Α α, 02 Β β, 03 Γ γ, 04 Δ δ, 05 Ε ε, 06 Ζ ζ, 07 Η η, 08 Θ θ, 09 Ι ι,
36 | 10 Κ κ, 11 Λ λ, 12 Μ μ, 13 Ν ν, 14 Ξ ξ, 15 Ο ο, 16 Π π, 17 Ρ ρ, 18 Σ σ, 19 Τ τ,
37 | 20 Υ υ, 21 Φ φ, 22 Χ χ, 23 Ψ ψ, and 24 Ω ω;
38 | ```
39 | + for identifiers in the Roman alphabet use the name (e.g., for $\Ker$ use (Ker) or (ker);
40 | - Given a: A, we refer to elements of a ⥱ a as either symmetries *of* a, or symmetries *in* A.
41 |
42 | ## Current draft of the book
43 |
44 | Go [here for the current draft of the book](https://unimath.github.io/SymmetryBook/book.pdf).
45 |
46 | ## Compiling the book
47 |
48 | To speed up compilation while writing the book, we cache the macros as a TeX format, and we externalize most of the figures,
49 | so that they're only compiled once (or when necessary after changes to them).
50 | This is managed with the Makefile, so just run `make`. The first run takes about 5–10 minutes, but subsequent compilations should finish in seconds.
51 |
52 | ## An icosahedron for your viewing pleasure
53 |
54 | Go [here for an interactive icosahedron](https://unimath.github.io/SymmetryBook/icosahedron.html)
55 | and [here for a Cayley diagram of the icosahedral group](https://unimath.github.io/SymmetryBook/icocayley.html).
56 |
57 | Shield: [![CC BY-SA 4.0][cc-by-sa-shield]][cc-by-sa]
58 |
59 | This work is licensed under a
60 | [Creative Commons Attribution-ShareAlike 4.0 International License][cc-by-sa].
61 |
62 | [![CC BY-SA 4.0][cc-by-sa-image]][cc-by-sa]
63 |
64 | [cc-by-sa]: http://creativecommons.org/licenses/by-sa/4.0/
65 | [cc-by-sa-image]: https://licensebuttons.net/l/by-sa/4.0/88x31.png
66 | [cc-by-sa-shield]: https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg
67 |
--------------------------------------------------------------------------------
/tikzsetup.tex:
--------------------------------------------------------------------------------
1 | \usetikzlibrary{decorations.markings,decorations.pathreplacing,
2 | shapes.geometric,matrix,arrows,chains,positioning,scopes}
3 |
4 | \pgfdeclarearrow{
5 | name = pxto,
6 | setup code = {
7 | % The different end values:
8 | \pgfarrowssettipend{1.5\pgflinewidth}
9 | \pgfarrowssetbackend{-2.5508\pgflinewidth}
10 | \pgfarrowssetlineend{-.25\pgflinewidth}
11 | \pgfarrowssetvisualbackend{-0.021\pgflinewidth}
12 | % The hull
13 | \pgfarrowsupperhullpoint{1.5\pgflinewidth}{0\pgflinewidth}
14 | \pgfarrowsupperhullpoint{-2.0085\pgflinewidth}{3.6525\pgflinewidth}
15 | \pgfarrowsupperhullpoint{-2.5508\pgflinewidth}{3.0763\pgflinewidth}
16 | % No saves
17 | },
18 | drawing code = {
19 | \pgfsetdash{}{0pt}%
20 | \pgfpathmoveto{\pgfpoint{1.5\pgflinewidth}{0.0254\pgflinewidth}}%
21 | \pgfpathlineto{\pgfpoint{-2.0085\pgflinewidth}{3.6525\pgflinewidth}}%
22 | \pgfpathlineto{\pgfpoint{-2.5508\pgflinewidth}{3.0763\pgflinewidth}}%
23 | \pgfpathlineto{\pgfpoint{-0.4322\pgflinewidth}{0.5\pgflinewidth}}%
24 | \pgfpathlineto{\pgfpoint{-0.4322\pgflinewidth}{-0.5\pgflinewidth}}%
25 | \pgfpathlineto{\pgfpoint{-2.5508\pgflinewidth}{-3.0763\pgflinewidth}}%
26 | \pgfpathlineto{\pgfpoint{-2.0085\pgflinewidth}{-3.6525\pgflinewidth}}%
27 | \pgfpathclose%
28 | \pgfusepathqfill
29 | }
30 | }
31 | \pgfdeclarearrow{
32 | name = pxbar,
33 | setup code = {
34 | \pgfarrowssettipend{0.5\pgflinewidth}
35 | \pgfarrowssetbackend{-0.5\pgflinewidth}
36 | \pgfarrowsupperhullpoint{0.5\pgflinewidth}{3.6525\pgflinewidth}
37 | \pgfarrowsupperhullpoint{-0.5\pgflinewidth}{3.6525\pgflinewidth}
38 | },
39 | drawing code = {
40 | \pgfsetdash{}{0pt}%
41 | \pgfpathmoveto{\pgfpoint{0.5\pgflinewidth}{3.6525\pgflinewidth}}%
42 | \pgfpathlineto{\pgfpoint{-0.5\pgflinewidth}{3.6525\pgflinewidth}}%
43 | \pgfpathlineto{\pgfpoint{-0.5\pgflinewidth}{-3.6525\pgflinewidth}}%
44 | \pgfpathlineto{\pgfpoint{0.5\pgflinewidth}{-3.6525\pgflinewidth}}%
45 | \pgfpathclose%
46 | \pgfusepathqfill
47 | }
48 | }
49 |
50 | \tikzset{every picture/.style={line width=0.59pt}}
51 |
52 | \tikzset{
53 | shift left/.style={commutative diagrams/shift left={#1}},
54 | shift right/.style={commutative diagrams/shift right={#1}},
55 | cntdot/.style={fill,circle,inner sep=.4pt},
56 | dot/.style={fill,circle,inner sep=1pt},
57 | basedot/.style={fill,circle,inner sep=1.3pt},
58 | double line with arrow/.style args={#1,#2}{decorate,decoration={markings,%
59 | mark=at position 0 with {\coordinate (ta-base-1) at (0,1pt);%
60 | \coordinate (ta-base-2) at (0,-1pt);},%
61 | mark=at position 1 with {\draw[#1] (ta-base-1) -- (0,1pt);%
62 | \draw[#2] (ta-base-2) -- (0,-1pt);}%
63 | }},
64 | double line with arrow left/.style args={#1,#2}{decorate,decoration={markings,%
65 | mark=at position 0 with {\coordinate (ta-base-1) at (0,1pt);%
66 | \coordinate (ta-base-2) at (0,-1pt);},%
67 | mark=at position 0.3 with {\coordinate (ta-mid) at (0,4pt);},%
68 | mark=at position 0.7 with {\draw[->] (ta-mid) -- (0,4pt);},%
69 | mark=at position 1 with {\draw[#1] (ta-base-1) -- (0,1pt);%
70 | \draw[#2] (ta-base-2) -- (0,-1pt);}%
71 | }},
72 | double line with arrow right/.style args={#1,#2}{decorate,decoration={markings,%
73 | mark=at position 0 with {\coordinate (ta-base-1) at (0,1pt);%
74 | \coordinate (ta-base-2) at (0,-1pt);},%
75 | mark=at position 0.3 with {\coordinate (ta-mid) at (0,-4pt);},%
76 | mark=at position 0.7 with {\draw[->] (ta-mid) -- (0,-4pt);},%
77 | mark=at position 1 with {\draw[#1] (ta-base-1) -- (0,1pt);%
78 | \draw[#2] (ta-base-2) -- (0,-1pt);}%
79 | }},
80 | equals right/.style={decorate,decoration={markings,%
81 | mark=at position 0 with {\coordinate (ta-base) at (0,0);},%
82 | mark=at position 0.5 with {\draw[line width=0.51pt,-] (-2pt,-3pt)--(2pt,-3pt);%
83 | \draw[line width=0.51pt,-] (-2pt,-4.5pt)--(2pt,-4.5pt);},%
84 | mark=at position 1 with {\draw[->] (ta-base) -- (0,0);}%
85 | }},
86 | equals left/.style={decorate,decoration={markings,%
87 | mark=at position 0 with {\coordinate (ta-base) at (0,0);},%
88 | mark=at position 0.5 with {\draw[line width=0.51pt,-] (-2pt,3pt)--(2pt,3pt);%
89 | \draw[line width=0.51pt,-] (-2pt,4.5pt)--(2pt,4.5pt);},%
90 | mark=at position 1 with {\draw[->] (ta-base) -- (0,0);}%
91 | }},
92 | equiv right/.style={decorate,decoration={markings,%
93 | mark=at position 0 with {\coordinate (ta-base) at (0,0);},%
94 | mark=at position 0.5 with {\draw[line width=0.51pt,-,line cap=round] (-2pt,-4pt)
95 | .. controls (0pt,-2pt) and (0pt,-5.5pt) .. (2pt,-3.5pt);},%
96 | mark=at position 1 with {\draw[->] (ta-base) -- (0,0);}%
97 | }},
98 | equiv left/.style={decorate,decoration={markings,%
99 | mark=at position 0 with {\coordinate (ta-base) at (0,0);},%
100 | mark=at position 0.5 with {\draw[line width=0.51pt,-,line cap=round] (-2pt,3.5pt)
101 | .. controls (0pt,5.5pt) and (0pt,2pt) .. (2pt,4pt);},%
102 | mark=at position 1 with {\draw[->] (ta-base) -- (0,0);}%
103 | }},
104 | eq/.style={-,double line with arrow={-,-},outer sep=2pt,},
105 | eql/.style={-,equals left,},
106 | eqr/.style={-,equals right,},
107 | equivl/.style={-,equiv left,},
108 | equivr/.style={-,equiv right,},
109 | eqtol/.style={-,double line with arrow left={-,-},outer sep=2pt,},
110 | eqtor/.style={-,double line with arrow right={-,-},outer sep=2pt,},
111 | }
112 |
113 | \tikzset{>=pxto,%
114 | mapsto/.style={pxbar-pxto},%
115 | vertex/.style={circle,fill=black,inner sep=0pt,minimum size=4pt},%
116 | gen/.style={draw=black,-stealth,shorten <=1pt,shorten >=1pt},%
117 | gena/.style={gen,draw=casred},%
118 | genb/.style={gen,draw=casblue},%
119 | genc/.style={gen,draw=casgreen},%
120 | dblgena/.style={double line with arrow={casred,casred},outer sep=2pt},%
121 | dblgenb/.style={double line with arrow={casblue,casblue},outer sep=2pt},%
122 | dblgenc/.style={double line with arrow={casgreen,casgreen},outer sep=2pt},%
123 | pics/tendril/.style n args={4}{%
124 | % #1 = xscale, #2 = yscale, #3 = rotate, #4 = color
125 | code={%
126 | \begin{scope}[xscale=#1,yscale=#2,rotate=#3]
127 | \fill[#4]
128 | (.25,-.05) arc [start angle=0, end angle=90, radius=.2]
129 | arc [start angle=90, end angle=180, radius=.15]
130 | arc [start angle=180, end angle=330, radius=.10]
131 | arc [start angle=150, end angle=0, radius=0.05]
132 | .. controls ++(0,-.15) and ++(.15,0) .. (-.2,-.25)
133 | arc [start angle=90, end angle=270, radius=.025]
134 | .. controls ++(.2,0) and ++(0,-.2) .. (.25,-.05);
135 | \end{scope}}}}
136 |
137 | \tikzcdset{arrow style=tikz,%
138 | arrows={line width=0.59pt},%
139 | invisible/.style={/tikz/draw=none},%
140 | mapsto/.style={pxbar-pxto}
141 | }
142 | \tikzcdset{
143 | equals/.add code={\PackageError{cas}{Please don't use the TikZ-cd equals style}{}}{}
144 | }
145 |
146 | %%% Local Variables:
147 | %%% mode: latex
148 | %%% TeX-master: "book"
149 | %%% End:
150 |
--------------------------------------------------------------------------------
/cayley.jl:
--------------------------------------------------------------------------------
1 | module cayley
2 |
3 | using Grassmann
4 | using Formatting
5 |
6 | # this file is about euclidean 3-space
7 | @basis "+++"
8 |
9 | # NB using the Grassmann algebra we easily get the binary groups too
10 | # (but how do we visualize these?)
11 |
12 | # using AbstractAlgebra
13 | # using DataStructures
14 |
15 | # A group element (relative to a generating set and representation)
16 | # is a word in generators and their inverses and the representing clifford elt
17 | CliffordElt = MultiVector{V,Float64,8}
18 | ThreeVector = Chain{V,1,Float64,3}
19 | GroupElt = Tuple{String, CliffordElt}
20 | Edge = Tuple{ThreeVector, ThreeVector}
21 | Face = Vector{ThreeVector}
22 | # a group is a vector of group elements
23 | Group = Vector{GroupElt}
24 |
25 | function printgroup(G::Group)
26 | for (w, g) in G
27 | println("word $w represents $g")
28 | end
29 | end
30 |
31 | function getelt(default::Function, G::Group, g::CliffordElt)
32 | for (w, h) in G
33 | if h ≈ g || h ≈ -g
34 | return w::String
35 | end
36 | end
37 | return default()
38 | end
39 |
40 | function getvertex(default::Function, L::Vector{ThreeVector}, P::ThreeVector)
41 | for Q in L
42 | if (0.0v + P) ≈ (0.0 + Q)
43 | return Q::ThreeVector
44 | end
45 | end
46 | return default()
47 | end
48 |
49 | Base.isapprox(e::Edge, f::Edge) = (
50 | ((0.0v + e[1]) ≈ (0.0v + f[1]) && (0.0v + e[2] ≈ 0.0v + f[2]))
51 | || ((0.0v + e[1]) ≈ (0.0v + f[2]) && (0.0v + e[2] ≈ 0.0v + f[1])))
52 |
53 | function getedge(default::Function, L::Vector{Edge}, e::Edge)
54 | for f in L
55 | if e ≈ f
56 | return f::Edge
57 | end
58 | end
59 | return default()
60 | end
61 |
62 | Base.isapprox(X::Face, Y::Face) =
63 | let N=length(X)
64 | ((N == length(Y))
65 | && (any(i ->
66 | all(j -> (0.0v + X[j]) ≈ (0.0v + Y[1+(i+j)%N]), 1:N), 1:N)))
67 | end
68 |
69 | function getface(default::Function, L::Vector{Face}, X::Face)
70 | for Y in L
71 | if X ≈ Y
72 | return Y::Face
73 | end
74 | end
75 | return default()
76 | end
77 |
78 | function mkeuclgp(a::CliffordElt, b::CliffordElt;
79 | bound::Int=10) :: Group
80 | worklist::Group = [("", 1.0v+0.0v₁)]
81 | G::Group = []
82 | A = ~a # we assume clifford elements are normal
83 | B = ~b
84 | while ! isempty(worklist)
85 | @inbounds (w, g) = popfirst!(worklist)
86 | if length(w) > bound
87 | continue
88 | end
89 | getelt(G, g) do
90 | push!(G, (w, g))
91 | push!(worklist, ('a'*w, a*g), ('b'*w, b*g), ('A'*w, A*g), ('B'*w, B*g))
92 | end
93 |
94 | end
95 | return G
96 | end
97 |
98 | function rotor(degree::Float64, vector::ThreeVector)::CliffordElt
99 | return exp(-π/degree*(⋆(vector/norm(vector))))
100 | end
101 |
102 | function apply(a::CliffordElt, v::ThreeVector)::ThreeVector
103 | return (a*v*(~a))(1)
104 | end
105 |
106 | function showvertex(v::ThreeVector; precision::Int=5)::String
107 | fs = FormatSpec(".$precision"*'f')
108 | return ("(" * fmt(fs, getindex(v,1)) * ", "
109 | * fmt(fs, getindex(v,2)) * ", "
110 | * fmt(fs, getindex(v,3)) * ")")
111 | end
112 |
113 | ## Some example: a cyclic and a dihedral group
114 | turn = rotor(5.0, 0.0v₁+1.0v₃)
115 | flip = rotor(2.0, 1.0v₁+0.0v₃)
116 | C5 = mkeuclgp(turn, turn)
117 | D5 = mkeuclgp(turn, flip)
118 |
119 | # generators of A5
120 | # 1/5 turn around P
121 | # 1/2 turn around edge PQ
122 | ϕ = .5*(sqrt(5)+1.0) # golden ratio
123 | P = +1.0v₂ + ϕ*v₃
124 | Q = -1.0v₂ + ϕ*v₃
125 | a = rotor(5.0, P)
126 | b = rotor(2.0, P+Q)
127 |
128 | A5 = mkeuclgp(a,b)
129 |
130 | # cube and tetrahedron
131 | N = 1.0v₁ + 1.0v₂ + 1.0v₃
132 | M = -1.0v₁ - 1.0v₂ + 1.0v₃
133 | K = -1.0v₁ + 1.0v₂ + 1.0v₃
134 | d = rotor(3.0,N)
135 | c = rotor(2.0,N+K)
136 | A4 = mkeuclgp(d,b)
137 | S4 = mkeuclgp(d,c)
138 |
139 | """
140 | Make a TikzPicture of a platonic solid
141 | P and Q are two adjecent vertices,
142 | degree is the number of faces around a vertex
143 | """
144 | function drawplatonic(degree::Float64, P::ThreeVector, Q::ThreeVector)
145 | a = rotor(degree, P)
146 | b = rotor(2.0, P+Q)
147 | G = mkeuclgp(a,b)
148 | vertices::Vector{ThreeVector} = [P, Q]
149 | edges::Vector{Edge} = [(P, Q)]
150 | face1::Face = [P, Q]
151 | # complete the first face, iterating b*a
152 | for i in 1:10
153 | R = apply(b*a,last(face1))
154 | getvertex(face1, R) do
155 | push!(face1, R)
156 | end
157 | end
158 | faces::Vector{Face} = [face1]
159 | # find all vertices, edges and faces, iterating over G
160 | for (w, g) in G
161 | P₁ = apply(g,P)
162 | Q₁ = apply(g,Q)
163 | getvertex(vertices, P₁) do
164 | push!(vertices, P₁)
165 | end
166 | getedge(edges, (P₁,Q₁)) do
167 | push!(edges, (P₁,Q₁))
168 | end
169 | newface = apply.(Ref(g),face1)
170 | getface(faces, newface) do
171 | push!(faces, newface)
172 | end
173 | end
174 | tikzstring::String = ""
175 | for X in faces
176 | tikzstring *= "\\fill "
177 | for R in X
178 | tikzstring *= showvertex(R) * " -- "
179 | end
180 | tikzstring *= "cycle;\n"
181 | end
182 | for (P₁,Q₁) in edges
183 | tikzstring *= "\\draw " * showvertex(P₁) * " -- " * showvertex(Q₁) * ";\n"
184 | end
185 | return tikzstring
186 | end
187 |
188 | """
189 | Make a TikzPicture of an icocahedron with a true cross
190 | P and Q are two adjecent vertices (also specifying the cross),
191 | D is a viewing direction
192 | This function emits the faces in order as seen from D
193 | """
194 | function drawicocross(P::ThreeVector, Q::ThreeVector, D::ThreeVector)
195 | a = rotor(5.0, P)
196 | b = rotor(2.0, P+Q)
197 | A = ~a
198 | B = ~b
199 | G = mkeuclgp(a,b)
200 | edge1::Face = [P, Q]
201 | face1::Face = [P, Q]
202 | # complete the first face, iterating b*a
203 | for i in 1:10
204 | R = apply(b*a,last(face1))
205 | getvertex(face1, R) do
206 | push!(face1, R)
207 | end
208 | end
209 | faces::Vector{Face} = [face1]
210 | # find all edges and faces, iterating over G
211 | # (here we conside edges as degenerate faces
212 | for (w, g) in G
213 | #newface = apply.(Ref(g),face1)
214 | #getface(faces, newface) do
215 | # push!(faces, newface)
216 | #end
217 | newedge = apply.(Ref(g),edge1)
218 | getface(faces, newedge) do
219 | push!(faces, newedge)
220 | end
221 | end
222 | # add the three golden rectangles (each split in four quarters)
223 | qrect::Face = [0.0P, 0.5(P+Q), P, 0.5(P-Q)]
224 | # we want the orbit of qrect under the stabilizing A4
225 | # note that a*b*A*A = rotor(3.0, v₁+v₂+v₃)
226 | # (12 elements for 3 × 4 quarter rectangles)
227 | A4 = mkeuclgp(a*b*A*A, b)
228 | for (w, g) in A4
229 | newrect = apply.(Ref(g),qrect)
230 | getface(faces, newrect) do
231 | push!(faces, newrect)
232 | end
233 | end
234 | # sort the faces
235 | sort!(faces; by=(X -> (Grassmann.mean(X) ⋅ D)[1]))
236 | tikzstring::String = ""
237 | for X in faces
238 | if length(X) == 2 # edge
239 | tikzstring *= ("\\draw " * showvertex(X[1])
240 | * " -- " * showvertex(X[2]) * ";\n")
241 | else # rectangle/face
242 | tikzstring *= "\\fill[" * (length(X) == 3 ? "red" : "blue") * "] "
243 | for R in X
244 | tikzstring *= showvertex(R) * " -- "
245 | end
246 | tikzstring *= "cycle;\n"
247 | end
248 | end
249 | return tikzstring
250 | end
251 |
252 | ## Some examples to try
253 | # drawplatonic(3.0, N, M) # tetrahedron
254 | # drawplatonic(3.0, N, K) # cube
255 | # print(drawplatonic(5.0, P, Q)) # icosahedron
256 | print(drawicocross(P, Q, N))
257 |
258 | """
259 | Make a TikZpicture of a cayley diagram of a platonic solid
260 | P and Q are two adjecent vertices,
261 | degree is the number of faces around a vertex
262 | """
263 | function drawcayley(degree::Float64, P::ThreeVector, Q::ThreeVector)
264 | tikzstring::String = ""
265 | a = rotor(degree, P)
266 | b = rotor(2.0, P+Q)
267 | A = ~a
268 | B = ~b
269 | G = mkeuclgp(a,b)
270 | for (w, g) in G
271 | tikzstring *= ("\\node[vertex] (n" * w * ") at "
272 | * showvertex(apply(g,3.0/4.0*P+1.0/4.0*Q)) * " {};\n")
273 | end
274 | for (w, g) in G
275 | aw = getelt(G, g*A) do
276 | "error"
277 | end
278 | bw = getelt(G, g*B) do
279 | "error"
280 | end
281 | tikzstring *= "\\draw[gena] (n" * w * ") -- (n" * aw * ");\n"
282 | tikzstring *= "\\draw[genb] (n" * w * ") -- (n" * bw * ");\n"
283 | end
284 | return tikzstring
285 | end
286 |
287 | end
288 |
--------------------------------------------------------------------------------
/galois.tex:
--------------------------------------------------------------------------------
1 | \chapter{Galois theory}%
2 | \label{chap:galois-theory}%
3 |
4 | %% VERY PRELIMINARY
5 | The goal of Galois theory is to study how the roots of a given polynomial can
6 | be distinguished from one another. Take for example $X^2+1$ as a polynomial
7 | with real coefficients. It has two distincts roots in $\mathbb C$, namely $i$
8 | and $-i$. However, an observer, who is limited to the realm of $\mathbb R$,
9 | can not distinguish between the two. Morally speaking, from the point of view
10 | of this observer, the two roots $i$ and $-i$ are pretty much the same. Formally
11 | speaking, for any polynomial $Q: \mathbb R[X,Y]$, the equation $Q(i,-i) = 0$ is
12 | satisfied if and only if $Q(-i,i) = 0$ also. This property is easily understood
13 | by noticing that there is a automorphism of fields $\sigma: \mathbb C \to
14 | \mathbb C$ such that $\sigma(i) = -i$ and $\sigma(-i) = i$ which also fixes
15 | $\mathbb R$. The goal of this chapter is to provide the rigourous framework in
16 | which this statement holds.
17 | {\color{red} TODO: complete/rewrite the introduction}
18 |
19 | \section{Covering spaces and field extensions}
20 | \label{sec:cover-spac-fields}
21 |
22 | \def\fieldstype{\mathbf{Fields}}%
23 | \def\Gal{\mathrm{Gal}}%
24 | \def\fieldshom{\hom_{\fieldstype}}%
25 | \def\isHom{\mathrm{isHom}}%
26 | \def\iso{\mathrm{Iso}}%
27 | \newcommand\restr[1]{{{#1}^\ast}}%
28 | \newcommand\fieldsext[1]{#1\backslash\fieldstype}%
29 | Recall that a field extension is simply a morphism of fields $i: k\to K$ from a
30 | field $k$ to a field $K$. Given a fixed field $k$, the type of fields
31 | extensions of $k$ is defined as
32 | \begin{displaymath}
33 | \fieldsext k \defequi \sum_{K:\fieldstype}\fieldshom(k,K)
34 | \end{displaymath}
35 |
36 | \begin{definition}
37 | The Galois group of an extension $(K,i)$ of a field $K$, denoted $\Gal(K,i)$
38 | or $\Gal(K/k)$ when $i$ is clear from context, is the group
39 | $\Aut_{\fieldsext k}{(K,i)}$.
40 | \label{def:galois-group}
41 | \end{definition}
42 |
43 | \begin{remark}
44 | \label{rem:sip-univalence}
45 | The Structure Identity Principle holds for fields, which means that for
46 | $K,L:\fieldstype$, one has
47 | \begin{displaymath}
48 | (K = L) \weq \iso(K,L)
49 | \end{displaymath}
50 | where $\iso(K,L)$ denotes the type of these equivalences that are
51 | homomorphisms of fields. Indeed, if one uses $K$ and $L$ also for the carrier
52 | types of the fields, one gets:
53 | \begin{displaymath}
54 | \begin{split}
55 | (K = L) \weq \sum_{p:K=_\UU L} (\trp p (+_K) = +_L)
56 | \times (\trp p (\cdot_K) = \cdot_L)
57 | \\ \times (\trp p (0_K) = 0_L)
58 | \times (\trp p (1_K) = 1_L)
59 | \end{split}
60 | \end{displaymath}
61 | Any $p : K =_\UU L$ is the image under univalence of an equivalence $\phi: K \weq L$, and then:
62 | \begin{align*}
63 | \trp p (+_K) &= (x,y) \mapsto \phi( \inv\phi(x) +_K \inv \phi(y)) \\
64 | \trp p (\cdot_K) &= (x,y) \mapsto \phi( \inv\phi(x) \cdot_K \inv \phi(y)) \\
65 | \trp p (0_K) &=\phi( 0_K ) \\
66 | \trp p (1_K) &=\phi( 1_K )
67 | \end{align*}
68 | It follows that:
69 | \begin{displaymath}
70 | \begin{split}
71 | (K=L) \weq \sum_{\phi: K \weq L} (\phi(x +_K y) = \phi (x) +_L \phi (y)) \\
72 | \times (\phi(x\cdot_K y) = \phi (x) \cdot_L \phi (y)) \\
73 | \times (\phi(0_K) = 0_L)
74 | \times (\phi(1_K) = 1_L)
75 | \end{split}
76 | \end{displaymath}
77 | The type on the right hand side is the same as $\iso(K,L)$ by definition.
78 |
79 | In particular, given an extension $(K,i)$ of $K$:
80 | \begin{align*}
81 | \US \Gal(K,i) \weq \sum_{p:K=K} \trp p i = i \weq \sum_{\sigma:\iso(K,K)} \sigma \circ i = i
82 | \end{align*}
83 | This is how the Galois group of the extension $(K,i)$ is defined in ordinary mathematics.
84 | \end{remark}
85 |
86 | Given an extension $(K,i)$ of field $k$, there is a map of interest:
87 | \begin{displaymath}
88 | \restr i: \fieldsext K \to \fieldsext k,\quad (L,j) \mapsto (L,ji)
89 | \end{displaymath}
90 |
91 | \begin{lemma}
92 | The map $\restr i$ is a set-bundle.
93 | \label{lem:field-ext-restriction-set-bundle}
94 | \end{lemma}
95 | \begin{proof}
96 | Given a field extension $(K',i')$ in $\fieldsext k$, one wants to prove that
97 | the fiber over $(K',i')$ is a set. Suppose $(L,j)$ and $(L',j')$ are
98 | extensions of $K$, together with paths $p:(K',i') = (L,ji)$ and $p': (K',i')
99 | = (L',j'i)$. Recall that $p$ and $p'$ are respectively given by equivalences
100 | $\pi: K' = L$ and $\pi': K' = L'$ such that $\pi i' = ji$ and $\pi' i' =
101 | j'i$.
102 | %
103 | A path from $( (L,j), p)$ to $( (L',j'), p')$ in the fiber over $(K',i')$ is
104 | given a path $q: (L,j) = (L',j')$ in $\fieldsext K$ such that $\trp q p =
105 | p'$. However, such a path $q$ is the data of an equivalence $\varphi : L =
106 | L'$ such that $\varphi j = j'$, and then the condition $\trp q p = p'$
107 | translates as $\varphi \pi = \pi'$. So it shows that $\varphi$ is necessarily
108 | equal to $\pi'\inv\pi$, hence is unique.
109 | \end{proof}
110 |
111 | The fiber of this map at a given extension $(L,j)$ of $k$ is:
112 | \begin{align*}
113 | \inv{(\restr i)}(L,j) &\weq \sum_{L':\fieldstype}\sum_{j':K \to L'}(L,j) = (L',j'i) \\
114 | &\weq \sum_{L':\fieldstype}\sum_{j':K\to L'}\sum_{p:L = L'} pj=j'i \\
115 | &\weq \sum_{j':K\to L} j=j'i \\
116 | &\weq \hom_k(K,L)
117 | \end{align*}
118 | where the last type denotes the type of homomorphisms of $k$-algebra (the structure of $K$ and $L$ being given by $i$ and $j$ respectively).
119 |
120 | In particular, the map $t: \USym \Gal(K,i) \to \inv{(\restr i)}(K,i)$ mapping $g$ to
121 | $\trp g (\id_K)$ identifies with the inclusion of the $k$-automorphisms of $K$
122 | into the $k$-endomorphisms of $K$.
123 |
124 | {\color{red} TODO: write a section on polynomials in chapter 12}
125 | %
126 | \begin{definition}
127 | Given an extension $i:k\to K$, an element $\alpha:K$ is algebraic if $\alpha$ is merely
128 | a root of a polynomial with coefficients in $k$. That is if the following
129 | proposition holds:
130 | \begin{displaymath}
131 | \Trunc{\sum_{n:\mathbb N}\sum_{a:\bn n + 1 \to k}i(a(0))+i(a(1))\alpha+\cdots+i(a(n))\alpha^n=0}%
132 | \end{displaymath}
133 | \label{defn:algebraic-element}
134 | \end{definition}
135 |
136 | \begin{definition}
137 | A field extension $(K,i)$ is said to be algebraic when each $a:K$ is algebraic.
138 | \label{defn:algebraic-extension}
139 | \end{definition}
140 |
141 | \begin{remark}
142 | Note that when the extension $(K,i)$ is algebraic, then $t$ is an
143 | equivalence. However, the converse is false, as shown by the non-algebraic
144 | extension $\mathbb Q \hookrightarrow \mathbb R$. We will prove that every
145 | $\mathbb Q$-endomorphism of $\mathbb R$ is the identity function. Indeed, any
146 | $\mathbb Q$-endormorphism $\varphi : \mathbb R \to \mathbb R$ is linear and
147 | sends squares to squares, hence is non-decreasing. Let us now take an irrational
148 | number $\alpha:\mathbb R$. For any rational $p,q:\mathbb Q$ such that $p <
149 | \alpha < q$, then $p = \varphi(p) < \varphi(\alpha) < \varphi(q) = q$. Hence
150 | $\varphi(\alpha)$ is in any rational interval that $\alpha$ is. One deduces
151 | $\varphi(\alpha) = \alpha$.
152 | %
153 | \label{rem:algebraic-endomorphisms-are-automorphisms}
154 | \end{remark}
155 |
156 | \begin{definition}
157 | A field extension $i:k\to K$ is said finite when $K$ as a
158 | $k$-vector space, the structure of which is given by $i$, is of finite dimension.
159 | In that case, the dimension is called the degree of $i$, denoted $[(K,i)]$ or $[K:k]$ when $i$ is clear from context.
160 | \label{defn:degree-field-extension}
161 | \end{definition}
162 |
163 | \section{Intermediate extensions and subgroups}
164 | %
165 | Given two extensions $i: k \to K$ and $j: K \to L$, the map $\restr i$ can be seen as a pointed map
166 | \begin{displaymath}
167 | \restr i: \B\Gal(L,j) \to \B\Gal(L,ji),\quad x\mapsto x\circ i.
168 | \end{displaymath}
169 | Then, through \cref{lem:field-ext-restriction-set-bundle}, $\restr i$ presents
170 | $\Gal(L,j)$ as a subgroup of $\Gal(L,ji)$. One goal of Galois theory is to
171 | characterize those extensions $i':k \to L$ for which all subgroups of
172 | $\Gal(L,i')$ arise in this way.
173 |
174 | Given any extension $i:k \to L$, there is an obivous $\Gal(L,i)$-set $X$ given by
175 | \begin{displaymath}
176 | (L',i') \mapsto L'.
177 | \end{displaymath}
178 | For a pointed connected set-bundle $g:B \to \B \Gal(L,i)$, one can consider the
179 | type of fixed points of the $\mkgroup B$-set $Xf$:
180 | \begin{displaymath}
181 | K \defequi (Xg)^{\mkgroup B} \jdeq \prod_{x:B}X(g(x))
182 | \end{displaymath}
183 | It is a set, which can be equipped with a field structure, defined pointwise.
184 | Morevover, if one denotes $b$ for the distinguished point of $B$, and $(L'',j'')$ for $g(b)$, then, because $g$ is pointed, one has a path $p:L=L''$ such that $pi'=j''$. There are
185 | fields extensions $i':k \to K$ and $j':K \to L$ given by:
186 | \begin{displaymath}
187 | i'(a) \defequi x\mapsto \snd(g(x))(a),\quad
188 | j'(f) \defequi \inv p f(b)
189 | \end{displaymath}
190 | In particular, for all $a:k$, $j'i'(a) = \inv p \snd(g(b))(a) = \inv p j''(a) = i'(a)$.
191 |
192 | Galois theory is interested in the settings when these two contructions are inverse from each other.
193 |
194 | \section{separable/normal/etc.}
195 | \label{sec:cover-spac-fields-1}
196 |
197 | \section{fundamental theorem}
198 | \label{sec:fundamental-theorem}
199 |
200 |
201 |
202 |
--------------------------------------------------------------------------------
/SymmetryBook.v:
--------------------------------------------------------------------------------
1 | (* This file depends on having installed UniMath, available at https://github.com/UniMath/UniMath *)
2 |
3 | Require Import UniMath.Foundations.All.
4 | Require Import UniMath.MoreFoundations.All.
5 | Local Set Implicit Arguments.
6 | (* Local Unset Strict Implicit. *)
7 |
8 | Definition cast (X Y:Type) (p:X=Y) : X≃Y.
9 | Proof.
10 | induction p. exact (idweq _).
11 | Defined.
12 |
13 | Lemma foo (X:Type) (x:X) : iscontr (∑ y, x=y).
14 | Proof.
15 | use tpair.
16 | - use tpair.
17 | + exact x.
18 | + reflexivity.
19 | - intros [y p].
20 | induction p.
21 | reflexivity.
22 | Defined.
23 |
24 | Section Coverings.
25 | Context (B:Type).
26 | Definition Covering := ∑ A (f:A -> B), ∏ b, isaset (hfiber f b).
27 | Definition CoveringMap (A A':Covering) := ∑ (g : pr1 A -> pr1 A'), pr12 A' ∘ g = pr12 A.
28 | Definition CoveringEquivalence (A A':Covering) := ∑ (g : pr1 A ≃ pr1 A'), pr12 A' ∘ g = pr12 A.
29 | Definition pathToEquiv (A A':Covering) : A=A' -> CoveringEquivalence A A'.
30 | Proof.
31 | intros p. induction p. exists (idweq _). reflexivity.
32 | Defined.
33 | Theorem coveringUnivalence (A A':Covering) : isweq (@pathToEquiv A A').
34 | Abort.
35 | End Coverings.
36 |
37 | Theorem total2_paths_equiv {A : Type} (B : A -> Type) (x y : ∑ x, B x) :
38 | x = y ≃ x ╝ y.
39 | Proof.
40 | use tpair.
41 | - intros e.
42 | induction e.
43 | exists (idpath (pr1 x)).
44 | change (pr2 x = pr2 x).
45 | exact (idpath (pr2 x)).
46 | - use isweq_iso.
47 | + intros [p q].
48 | induction x as [a b], y as [a' b'].
49 | change (a=a') in p.
50 | change (transportf _ p b = b') in q.
51 | induction p.
52 | change (b=b') in q.
53 | induction q.
54 | reflexivity.
55 | + intros e. induction e. reflexivity.
56 | + induction x as [a b], y as [a' b']. intros [p q].
57 | change (a=a') in p.
58 | change (transportf _ p b = b') in q.
59 | induction p.
60 | induction q.
61 | reflexivity.
62 | Defined.
63 |
64 | Definition PathPair' {A : Type} {B : A -> Type} (x y : ∑ x, B x) :=
65 | ∑ p : pr1 x = pr1 y, PathOver (pr2 x) (pr2 y) p.
66 |
67 | Local Open Scope pathsover.
68 |
69 | Definition sectionPathOver {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A) (p : x = x') :
70 | PathOver (f x) (f x') p = (f x = f x).
71 | Proof.
72 | induction p. reflexivity.
73 | Defined.
74 |
75 | Definition sectionPathOver' {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A) (p : x = x') :
76 | PathOver (f x) (f x') p = (f x' = f x').
77 | Proof.
78 | induction p. reflexivity.
79 | Defined.
80 |
81 | Definition sectionPathPairMap {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A) :
82 | PathPair' (x,,f x) (x',,f x') -> (x=x') × (f x = f x).
83 | Proof.
84 | intros [p q].
85 | cbn in *.
86 | induction p.
87 | exists (idpath x).
88 | exact q.
89 | Defined.
90 |
91 | Definition sectionPathPair_eq {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A) :
92 | (PathPair' (x,,f x) (x',,f x')) = ((x=x') × (f x = f x)).
93 | Proof.
94 | unfold PathPair'; cbn.
95 | unfold dirprod; cbn.
96 | apply maponpaths.
97 | apply funextsec; intros p.
98 | induction p.
99 | reflexivity.
100 | Defined.
101 |
102 | Definition sectionPathPair_weq {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A) :
103 | (PathPair' (x,,f x) (x',,f x')) ≃ ((x=x') × (f x = f x)).
104 | Proof.
105 | exact (cast (sectionPathPair_eq f x x')).
106 | Defined.
107 |
108 | Definition sectionPathPair_weq' {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A) :
109 | PathPair' (x,,f x) (x',,f x') ≃ (x=x') × (f x = f x).
110 | Proof.
111 | unfold PathPair'.
112 | cbn.
113 | apply weqfibtototal. (* the proof above avoids weqfibtototal *)
114 | intros p.
115 | induction p.
116 | apply idweq.
117 | Defined.
118 |
119 | Definition sectionPathPairCompute {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A)
120 | (pq : PathPair' (x,,f x) (x',,f x')) :
121 | sectionPathPairMap f pq = sectionPathPair_weq f x x' pq.
122 | Proof.
123 | induction pq as [p q].
124 | cbn in *.
125 | induction p.
126 | Fail reflexivity. (* the simpler proof doesn't compute as well *)
127 | Abort.
128 |
129 | Definition sectionPathPairCompute {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A)
130 | (pq : PathPair' (x,,f x) (x',,f x')) :
131 | sectionPathPairMap f pq = sectionPathPair_weq' f x x' pq.
132 | Proof.
133 | induction pq as [p q].
134 | cbn in *.
135 | induction p.
136 | reflexivity.
137 | Defined.
138 |
139 | Definition sectionPathPair'_weq' {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A) :
140 | PathPair' (x,,f x) (x',,f x') ≃ (x=x') × (f x' = f x').
141 | Proof.
142 | unfold PathPair'.
143 | cbn.
144 | apply weqfibtototal.
145 | intros p.
146 | induction p.
147 | apply idweq.
148 | Defined.
149 |
150 | Definition composePathPair' {A : Type} {B : A -> Type} (x y z : ∑ x, B x) :
151 | PathPair' x y -> PathPair' y z -> PathPair' x z.
152 | Proof.
153 | induction x as [a b].
154 | induction y as [a' b'].
155 | induction z as [a'' b''].
156 | intros [p q] [r s].
157 | cbn in *.
158 | induction p, q, r, s.
159 | exists (idpath a).
160 | exact (idpath b).
161 | Defined.
162 |
163 | Theorem total2_paths_equiv' {A : Type} (B : A -> Type) (x y : ∑ x, B x) :
164 | x = y ≃ PathPair' x y.
165 | Proof.
166 | use tpair.
167 | - intros e.
168 | induction e.
169 | exists (idpath (pr1 x)).
170 | change (pr2 x = pr2 x).
171 | exact (idpath (pr2 x)).
172 | - use isweq_iso.
173 | + intros [p q].
174 | induction x as [a b], y as [a' b'].
175 | change (a=a') in p.
176 | induction p.
177 | change (b=b') in q.
178 | induction q.
179 | reflexivity.
180 | + intros e. induction e. reflexivity.
181 | + induction x as [a b], y as [a' b']. intros [p q].
182 | change (a=a') in p.
183 | induction p.
184 | change (b = b') in q.
185 | induction q.
186 | reflexivity.
187 | Defined.
188 |
189 | Definition toPathPair {A : Type} (B : A -> Type) (x y : ∑ x, B x) : x = y -> PathPair' x y.
190 | Proof.
191 | intros e.
192 | induction e.
193 | exists (idpath (pr1 x)).
194 | change (pr2 x = pr2 x).
195 | exact (idpath (pr2 x)).
196 | Defined.
197 |
198 | Definition toPairPath {A : Type} (B : A -> Type) (x y : ∑ x, B x) : PathPair' x y -> x = y.
199 | Proof.
200 | intros [p q].
201 | induction x as [a b], y as [a' b'].
202 | change (a=a') in p.
203 | induction p.
204 | change (b=b') in q.
205 | apply maponpaths.
206 | assumption.
207 | Defined.
208 |
209 | Definition sectionPath {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A) :
210 | (x,,f x) = (x',,f x') ≃ (x=x') × (f x = f x).
211 | Proof.
212 | intermediate_weq (PathPair' (x,,f x) (x',,f x')).
213 | - apply total2_paths_equiv'.
214 | - apply sectionPathPair_weq'.
215 | Defined.
216 |
217 | Definition sectionPathInvMap {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A) :
218 | (x=x') × (f x = f x) -> (x,,f x) = (x',,f x').
219 | Proof.
220 | intros [p q]. induction p. apply maponpaths. exact q.
221 | Defined.
222 |
223 | Definition sectionPathInvMapCompute {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A)
224 | (p : x=x') (q : f x = f x) :
225 | invmap (sectionPath f x x') (p,,q) = sectionPathInvMap f (p,,q).
226 | Proof.
227 | induction p. reflexivity.
228 | Defined.
229 |
230 | Definition sectionPath' {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A) :
231 | (x,,f x) = (x',,f x') ≃ (x=x') × (f x' = f x').
232 | Proof.
233 | intermediate_weq (PathPair' (x,,f x) (x',,f x')).
234 | - apply total2_paths_equiv'.
235 | - apply sectionPathPair'_weq'.
236 | Defined.
237 |
238 | Definition sectionPathInvMap' {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A) :
239 | (x=x') × (f x' = f x') -> (x,,f x) = (x',,f x').
240 | Proof.
241 | intros [p q]. induction p. apply maponpaths. exact q.
242 | Defined.
243 |
244 | Definition sectionPathInvMapCompute' {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A)
245 | (p : x=x') (q : f x' = f x') :
246 | invmap (sectionPath' f x x') (p,,q) = sectionPathInvMap' f (p,,q).
247 | Proof.
248 | induction p.
249 | reflexivity.
250 | Defined.
251 |
252 | Lemma toPathPair_isweq{A : Type} (B : A -> Type) (x y : ∑ x, B x) : isweq (@toPairPath A B x y).
253 | Proof.
254 | intros p.
255 | use tpair.
256 | - use tpair.
257 | + exact (toPathPair B p).
258 | + cbn beta.
259 | induction p.
260 | reflexivity.
261 | - cbn beta. intros [v r].
262 | Abort.
263 |
264 | Lemma toPathPair_isweq{A : Type} (B : A -> Type) (x y : ∑ x, B x) : isweq (@toPathPair A B x y).
265 | Proof.
266 | intros p.
267 | apply iscontraprop1.
268 | - apply invproofirrelevance.
269 | intros [v r] [w s].
270 | Abort.
271 |
272 | Definition transport_f_f' {X : Type} (P : X ->Type) {x y z : X} (e : x = y)
273 | (e' : y = z) (p : P x) :
274 | transportf P (e @ e') p = transportf P e' (transportf P e p).
275 | Proof.
276 | intros. induction e', e. reflexivity.
277 | Defined.
278 |
279 | Theorem total2_paths_composition {A : Type} (B : A -> Type) (x y z : ∑ x, B x)
280 | (p : x = y) (q : y = z)
281 | (p' := toPathPair B p) (q' := toPathPair B q) (pq' := toPathPair _ (p @ q)) :
282 | pq' = composePathPair' p' q'.
283 | Proof.
284 | induction q, p.
285 | reflexivity.
286 | Defined.
287 |
288 | Section Composition.
289 |
290 | Notation "p · q" := (q @ p). (* notation as in the book *)
291 |
292 | Definition act {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x':A)
293 | (q : f x' = f x') (p : x = x')
294 | : f x = f x.
295 | Proof.
296 | induction p. exact q.
297 | Defined.
298 |
299 | (* We put p to the right of q in the definition above so the equation below has
300 | the terms in the same order on both sides, namely q p' p. Thus the action is
301 | "on the right". *)
302 |
303 | Definition act_transitivity {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x' x'':A)
304 | (p : x = x') (p' : x' = x'') (q : f x'' = f x'')
305 | : act f (act f q p') p = act f q (p' · p).
306 | Proof.
307 | induction p, p'. reflexivity.
308 | Defined.
309 |
310 | Definition sectionPathsComposition {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x' x'':A)
311 | (p : x = x') (q : f x = f x)
312 | (p' : x' = x'') (q' : f x' = f x') :
313 | sectionPathInvMap f (p',,q') · sectionPathInvMap f (p,,q)
314 | =
315 | sectionPathInvMap f ((p' · p),,(act f q' p · q)).
316 | Proof.
317 | induction p.
318 | change (p' · idpath x) with p'.
319 | change (act f q' (idpath x)) with q'.
320 | induction p'.
321 | cbn.
322 | apply pathsinv0.
323 | apply maponpathscomp0.
324 | Defined.
325 |
326 | Definition sectionPathsComposition1 {A : Type} {B : A -> Type} (f : ∏ x, B x) (x:A)
327 | (p : x = x) (q : f x = f x)
328 | (p' : x = x) (q' : f x = f x) :
329 | sectionPathInvMap f (p',,q') · sectionPathInvMap f (p,,q)
330 | =
331 | sectionPathInvMap f ((p' · p),,(act f q' p · q)).
332 | Proof.
333 | apply sectionPathsComposition.
334 | Defined.
335 |
336 | End Composition.
337 |
338 | Section Composition'.
339 |
340 | Definition sectionPathsComposition' {A : Type} {B : A -> Type} (f : ∏ x, B x) (x x' x'':A)
341 | (p : x = x') (q : f x' = f x')
342 | (p' : x' = x'') (q' : f x'' = f x'') :
343 | sectionPathInvMap' f (p,,q) @ sectionPathInvMap' f (p',,q')
344 | =
345 | sectionPathInvMap' f ((p @ p'),,(transportf (λ a, f a = f a) p' q @ q')).
346 | Proof.
347 | induction p.
348 | change (idpath x @ p') with p'.
349 | induction p'.
350 | change (transportf (λ a : A, f a = f a) (idpath x) q) with q.
351 | cbn.
352 | apply pathsinv0.
353 | apply maponpathscomp0.
354 | Defined.
355 |
356 | Definition sectionPathsComposition1' {A : Type} {B : A -> Type} (f : ∏ x, B x) (x:A)
357 | (p : x = x) (q : f x = f x)
358 | (p' : x = x) (q' : f x = f x) :
359 | sectionPathInvMap' f (p,,q) @ sectionPathInvMap' f (p',,q')
360 | =
361 | sectionPathInvMap' f ((p @ p'),,(transportf (λ a, f a = f a) p' q @ q')).
362 | Proof.
363 | apply sectionPathsComposition'.
364 | Defined.
365 |
366 | End Composition'.
367 |
368 | (*
369 | Local Variables:
370 | coq-prog-args: ("-emacs" "-w" "-notation-overridden" "-type-in-type")
371 | compile-command: "coqc -w -notation-overridden -type-in-type SymmetryBook.v "
372 | End:
373 | *)
--------------------------------------------------------------------------------
/icosahedron.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 | Icosahedron
13 |
14 |
15 |
16 |
17 |
20 |
439 |
440 |
441 |
442 |
443 |
445 |
446 |
447 |
448 |
--------------------------------------------------------------------------------
/metamath.tex:
--------------------------------------------------------------------------------
1 | \chapter{Metamathematical remarks}
2 | \label{app:metamath}
3 |
4 | Metamathematics is the study of mathematical theories as
5 | mathematical objects in themselves.
6 | This book is primarily a mathematical theory of symmetries.
7 | Occasionally, however, we have made statements like
8 | ``the law of the excluded middle is not provable in our theory''.
9 | This is a statement \emph{about}, and not \emph{in}, the type theory of this book.
10 | As such it is a metamathematical statement.
11 |
12 | Sometimes it is possible to encode statements
13 | about a theory in the language of the theory itself.%
14 | \marginnote{We leave aside that this sometimes can be done in different ways.
15 | Historically, the first way was by ``Gödel-numbering'':
16 | encoding all bits of syntax, including statements, as natural numbers,
17 | so that the constructions and deductions of the theory correspond to definable operations on the encoding numbers.
18 | In type theory, there are usually much more perspicacious ways of encoding mathematical theories
19 | using types and type families.}
20 | Even if true, the encoded metamathematical statement can
21 | be unprovable in the theory itself.
22 | The most famous example is G\"{o}del's second incompleteness theorem.\footnote{%
23 | The original reference is~\citeauthor{Goedel2nd}\footnotemark{},
24 | translated into English in~\citeauthor{Heijenoort-source}\footnotemark{}.
25 | For an accessible introduction, see for instance~\citeauthor{Franzen-Goedel}\footnotemark{}
26 | or~\citeauthor{Smullyan-Goedel}\footnotemark{}.}%
27 | \addtocounter{footnote}{-4}%
28 | \stepcounter{footnote}\footcitetext{Goedel2nd}%
29 | \stepcounter{footnote}\footcitetext{Heijenoort-source}%
30 | \stepcounter{footnote}\footcitetext{Franzen-Goedel}%
31 | \stepcounter{footnote}\footcitetext{Smullyan-Goedel}.
32 | G\"{o}del encoded, for any theory $T$ extending Peano Arithmetic and satisfying
33 | some general assumptions, the statement that $T$ is consistent as
34 | a statement $\Con(T)$ in Peano Arithmetic.
35 | Then he showed that $\Con(T)$ is not provable in $T$.
36 |
37 | We say that a metamathematical statement about a theory $T$
38 | is \emph{internally} provable if its encoding is provable in $T$.
39 | For example, the metamathematical statement ``if $P$ is unprovable in $T$,
40 | then $T$ is consistent'' is internally provable in $T$, for any $T$ that
41 | satisfies the assumptions of G\"{o}del's second incompleteness theorem.
42 |
43 | The type theory in this book satisfies the assumptions of
44 | G\"{o}del's second incompleteness theorem, which include, of course,
45 | the assumption that $T$ is consistent. Thus there is no hope
46 | that we can prove the consistency of our type theory internally.
47 | Moreover, by the previous paragraph, we must be prepared that
48 | no unprovability statement can be proved internally.
49 |
50 | [TODO For consistency of UA, LEM, etc, refer to simplicial set model \footcite{KapLum}.
51 | For unprovability of LEM, refer to cubical set model \footcite{BezCoqHub}.]
52 |
53 | One property of type theory that we will use is \emph{canonicity}.
54 | We call an expression \emph{closed} if it does not contain free variables.
55 | One example of canonicity is that every closed expression of type $\NN$
56 | is a \emph{numeral}, that is, either $0$ or $S(n)$ for some numeral $n$.
57 | Another example of canonicity is that every closed expression of
58 | type $L\coprod R$ is either of the form $\inl{l}$ for some $l:L$ or
59 | of the form $\inr{r}$ for some $r:R$.
60 |
61 | Both examples of canonicity above are clearly related to the
62 | inductive definitions of the types involved: they are
63 | expressed in terms of the constructors of the respective types.
64 | One may ask what canonicity then means for the empty type $\false$,
65 | defined in \cref{sec:finite-types} as the inductive type
66 | with no constructors at all. The answer is that canonicity for $\false$
67 | means that there cannot be a closed expression of type $\false$.
68 | But this actually means that our type theory is consistent!
69 | Therefore we cannot prove general canonicity internally.
70 |
71 | [TODO no canonical forms: $x:\NN$, $\trp[P]{\ua(\id)}(0): \NN$,
72 | with $P\defeq (p:\true \mapsto \NN)$
73 | and (problematic) $\trp[Q]{\Sloop}(0): \NN$
74 | with $Q\defeq (z:\Sc \mapsto \NN)$.]
75 |
76 | [TODO A second important property of our theory is
77 | that one can compute canonical forms.]
78 |
79 | \section{Equality by definition}
80 | \label{sec:defeq}
81 |
82 | \subsection{Basics}
83 | \label{sec:defeq-basics}
84 |
85 | The concept of definition was introduced in \cref{univalent-mathematics},
86 | together with what it means to be \emph{the same by definition}.
87 | Being the same by definition (NB appears for the first time on p. 26!)
88 | is a relationship between syntactic expressions.
89 | In this section we provide more details about this relationship.
90 |
91 | There are four basic forms of equality by definition:
92 | \begin{enumerate}
93 | \item\label{it:exp-defeq} Resulting from making an explicit definition,
94 | e.g., $1 \defeq \Succ(0)$, after which we have $1 \jdeq \Succ(0)$;%
95 | \footnote{The notation $\defeq$ tells the reader that we make a definition
96 | (or reminds the reader that this definition has been made).}
97 |
98 | \item\label{it:imp-defeq} Resulting from making an implicit definition,
99 | like we do in inductive definitions,
100 | e.g., $n+0 \defeq n$ and $n+\Succ(m) \defeq \Succ(n+m)$,
101 | after which we have $n+0 \jdeq n$ and $n+\Succ(m) \jdeq \Succ(n+m)$;
102 |
103 | \item\label{it:beta} Simplifying the application of an explicitly defined
104 | function to an argument, e.g., $(x \mapsto e_x)(a) \jdeq e_a$;
105 |
106 | \item\label{it:eta} Simplifying $(x \mapsto e_x)$ to $f$ when $e_x$
107 | is the application of the function $f$ to the variable $x$,
108 | e.g., $(x \mapsto S(x)) \jdeq S$.
109 | \end{enumerate}
110 |
111 | Equality by definition is the \emph{congruence closure} of these
112 | four basic forms, that is, the smallest reflexive, symmetric, transitive
113 | and congruent relation that contains all instances of the four basic forms.
114 | Here a congruent relation is a relation that is closed under all syntactic
115 | operations of type theory. One such operation is substitution, so that we
116 | get from the examples above that, e.g., $1+0 \jdeq 1$
117 | and $n+\Succ(\Succ(m)) \jdeq \Succ(n+\Succ(m))$. Another important
118 | operation is application. For example, we can apply $\Succ$ to each of
119 | the sides of $n+\Succ(m) \jdeq \Succ(n+m)$ and get
120 | $\Succ(n+\Succ(m)) \jdeq \Succ(\Succ(n+m))$, and also
121 | $n+\Succ(\Succ(m)) \jdeq \Succ(\Succ(n+m))$ by transitivity.
122 |
123 | Let's elaborate $\id \circ f \jdeq f$ claimed on page~\pageref{page:idofetaf}.
124 | The definitions used on the left hand side are
125 | $\id \defeq (y \mapsto y)$ and $g \circ f \defeq (x \mapsto g(f(x)))$.
126 | In the latter definition we substitute $\id$ for $g$ and get
127 | $\id \circ f \jdeq (x \mapsto \id(f(x)))$. Unfolding $\id$ we get
128 | $(x \mapsto \id(f(x))) \jdeq (x \mapsto (y\mapsto y)(f(x)))$.
129 | Applying \ref{it:beta} we can substitute $f(x)$ for $(y\mapsto y)(f(x)))$
130 | and get $(x \mapsto (y\mapsto y)(f(x))) \jdeq (x \mapsto f(x))$.
131 | By \ref{it:eta} the right hand side is equal to $f$ by definition.
132 | Indeed $\id \circ f \jdeq f$ by transitivity.
133 |
134 | Equality by definition is also relevant for typing.
135 | For example, let $A: \UU$ and $P: A\to\UU$. If $B\jdeq A$,
136 | then $ (B\to\UU)\jdeq(A\to\UU)$ by congruence, and also $P: B\to\UU$,
137 | and even $\prod_{x:B} P(x) \jdeq \prod_{x:A} P(x)$.
138 |
139 |
140 | %Discuss later: If syntactic expressions $e$ and $e'$ are equal by definition, denoted by $e\jdeq e'$, then $e$ and $e'$ have the same type $T$, then $\refl e : e=_T e'$; the converse is not true.
141 |
142 | \subsection{Deciding equality by definition (not updated yet)}
143 | \label{sec:defeq-computation}
144 |
145 | By a \emph{decision procedure} we mean a terminating algorithmic procedure that
146 | answers a yes/no question.
147 | Although it is possible to enumerate all true equalities by definition,
148 | this does not give a test that answers whether or not a given instance $e\jdeq e'$ holds.
149 | In particular when $e\jdeq e'$ does not hold, such an enumeration will not terminate.
150 | A test of equality by definition is important for type checking,
151 | as the examples in the last paragraph of the previous section show.
152 |
153 | A better approach to a test of equality by definition is the following.
154 | First direct the four basic forms of equality by definition from left to right
155 | as they are given.\footnote{%
156 | TODO: think about the last, $\eta$.}
157 | For the first two forms this can be viewed as unfolding definitions,
158 | and for the last two forms as simplifying function application and (unnecessary)
159 | abstraction, respectively.
160 | This defines a basic reduction relation, and we write $e\to e'$ if $e'$ can
161 | be obtained by a basic reduction of a subexpression in $e$.
162 | The reflexive transitive closure of $\to$ is denoted by $\to^*$.
163 | The symmetric closure of $\to^*$ coincides with $\jdeq$.
164 |
165 | We mention a few important properties of the relations $\to,\to^*$ and $\jdeq$.
166 | The first is called the Church--Rosser property, and states that,
167 | if $e\jdeq e'$, then there is an expression $c$ such that $e\to^* c$
168 | and $e'\to^* c$. The second is called type safety and states that,
169 | if $e:T$ and $e\to e'$, then also $e':T$.
170 | The third is called termination and states that for well-typed expressions $e$
171 | there is no infinite reduction sequence starting with $e$.
172 | The proofs of Church--Rosser and type safety are long and tedious, but pose no essential
173 | difficulties. For a non-trivial type theory such as in this book the last property,
174 | termination, is extremely difficult and has not been carried out in full detail.
175 | The closest come results on the Coq \footcite{Coq} (TODO: find good reference).
176 |
177 | Testing whether or not two given well-typed terms $e$ and $e'$
178 | are equal by definition can now be done
179 | by reducing them with $\to$ until one reaches irreducible expressions $n$ and $n'$
180 | such that $e\to^* n$ and $e'\to^* n'$, and then comparing $n$ and $n'$.
181 | Now we have: $e\jdeq e'$ iff $n\jdeq n'$ iff (by Church--Rosser)
182 | there exists a $c$ such that $n\to^* c$ and $n'\to^* c$.
183 | Since $n$ and $n'$ are irreducible the latter is equivalent to
184 | $n$ and $n'$ being identical syntactic expressions.
185 |
186 | \section{The Limited Principle of Omniscience}
187 | \label{sec:LPO}
188 |
189 | \begin{remark}\label{rem:LPO-solves-halting problem}
190 | Recall the Limited Principle of Omniscience (LPO), \cref{LPO}:
191 | for any function $P:\NN\to\bn 2$,
192 | either there is a smallest number $n_0:\NN$ such that $P(n_0)=1$,
193 | or $P$ is a constant function with value $0$.
194 | We will show that LPO is not provable in our theory.
195 |
196 | The argument is based on the halting problem: given a Turing machine
197 | $M$ and an input $n$, determine whether $M$ halts on $n$.
198 | It is known that the halting problem cannot be solved by an algorithm
199 | that can be implemented on a Turing machine.\footnote{It's commonly accepted that
200 | every algorithm \emph{can} be thus implemented.}
201 |
202 | We use a few more facts from computability theory.
203 | First, Turing machines can be enumerated. We denote the $n$\th Turing machine $M_n$,
204 | so we can list the Turing machines in order: $M_0,M_1,\ldots$.
205 | Secondly, there exists a function $T(e,n,k)$ such that $T(e,n,k) = 1$
206 | if $M_e$ halts on input $n$ in at most $k$ steps, and $T(e,n,k) = 0$
207 | otherwise. This function $T$ can be implemented in our theory.
208 |
209 | Towards a contradiction, assume we have a closed proof $t$ of LPO in our theory.
210 | We assume as well that $t$ does not depend on any axiom.\footnote{It is possible to weaken the notion
211 | of canonicity so that the argument still works even if the proof $t$ uses the Univalence Axiom.
212 | Of course, the argument must fail if we allow $t$ to use LEM!}
213 | It is clear that $k\mapsto T(e,n,k)$ is a constant function with value $0$
214 | if and only if $M_e$ does not halt on input $n$. Now consider $t(k\mapsto T(e,n,k))$,
215 | which is an element of a type of the form $L\coprod R$.
216 |
217 | We now explain how to solve the halting problem.
218 | Let $e$ and $n$ be arbitrary numerals.
219 | Then $t(k\mapsto T(e,n,k))$ is a closed element of $L\coprod R$.
220 | Hence we can compute its canonical form. If $t(k\mapsto T(e,n,k))\jdeq\inr{r}$ for some
221 | $r:R$, then $k\mapsto T(e,n,k)$ is a constant function with value $0$,
222 | and $M_e$ does not halt on input $n$. If $t(k\mapsto T(e,n,k))\jdeq\inl{l}$ for some
223 | $l:L$, then $M_e$ does halt on input $n$.
224 | Thus we have an algorithm to solve the halting problem
225 | for all $e$ and $n$. Since this is impossible, we have refuted the assumption
226 | that there is a closed proof $t$ of LPO in our theory.
227 | \end{remark}
228 |
229 | \section{Topology}
230 | \label{sec:topology}
231 | In this section we will explain how our intuition about types relates to our intuition about topological spaces.
232 |
233 | INSERT AN INTRODUCTORY PARAGRAPH HERE.
234 | [Intuitively, the types of type theory can be modeled by topological spaces,
235 | and elements as points thereof. However, this is not so easy to achieve, and the first
236 | model of homotopy theory theory was in simplicial sets. Topological spaces and simplicial sets are both \emph{models} of homotopy types. And by a lucky coincidence, it makes sense
237 | to say that homotopy type theory is a theory of homotopy types.]
238 | Some references include: \textcite{Hatcher-AlgTop,May-Concise,MayPonto-MoreConcise}
239 |
240 | \begin{remark}
241 | \label{rem:injectionsurjectionisnotwhatyouthink}
242 | Our definitions of injections and surjections are lifted directly from the intuition about sets. However, types need not be sets, and
243 | thinking of types as spaces may at this point lead to a slight confusion.
244 |
245 | The real line is contractible and the inclusion of the discrete subspace $\{0,1\}$ is, well, an inclusion (of sets, which is the same thing as
246 | an inclusion of spaces). However, $\{0,1\}$ is not connected, seemingly contradicting the next result.
247 |
248 | This apparent contradiction is resolved once one recalls the myopic nature of our setup: the contractibility of the real line means that ``all
249 | real numbers are identical'', and \emph{our} ``preimage of $3{.}25$'' is not a proposition: it contains \emph{both} $0$ and $1$. Hence
250 | ``$\{0,1\}\subseteq\mathbb R$'' would not count as an injection in our sense.
251 |
252 | We should actually have been more precise above: we were referring to the \emph{homotopy type} of the real line, rather than the real line itself.\footnote{\label{ft:cohesive}%
253 | We don't define this formally here,
254 | see \citeauthor{Shulman-Real-Cohesive}\footnotemark{} for a synthetic account.
255 | The idea is that the homotopy type $\constant{h}(X)$ of a type $X$
256 | has a map from $X$, $\iota : X \to \constant{h}(X)$,
257 | and any continuous function $f : [0,1] \to X$
258 | gives rise to a path
259 | $\iota(f(0)) = \iota(f(1))$ in
260 | $\constant{h}(X)$.}\footcitetext{Shulman-Real-Cohesive}
261 | We shall later (in the chapters on geometry) make plenty of use of the latter,
262 | which is as usual a set with uncountably many elements.
263 | \end{remark}
264 |
265 | \input{choicefin}
266 |
267 | %%% Local Variables:
268 | %%% mode: latex
269 | %%% fill-column: 144
270 | %%% latex-block-names: ("lemma" "theorem" "remark" "definition" "corollary" "fact" "properties" "conjecture" "proof" "question" "proposition")
271 | %%% TeX-master: "book"
272 | %%% End:
273 |
--------------------------------------------------------------------------------
/choicefin.tex:
--------------------------------------------------------------------------------
1 | \section{Choice for finite sets\titledagger}
2 | \label{sec:choicefin}
3 |
4 | This section is a short overview of how group theory is involved in
5 | relating different choice principles for families of finite sets. A
6 | paradigmatic case is that if we have choice for all families of
7 | $2$-element sets, then we have choice for all families of $4$-element
8 | sets.%
9 | \footnote{This is due to Tarski,
10 | see~\citeauthor{Jech-AC}\footnotemark{}, p.~107.}\footcitetext{Jech-AC}
11 |
12 | The axiom of choice is a principle that we may add to our type theory
13 | (it holds in the standard model), but there are many models where it doesn't hold.
14 |
15 | \begin{principle}[The Axiom of Choice]\label{pri:ac}
16 | For every set $X$ and every family of \emph{non-empty} sets
17 | $P : X \to \Set_{\ne\emptyset}$,
18 | there exists an dependent function of type $\prod_{x:X}P(x)$.
19 | In other terms, for any set $X$ and any family of sets $P:X\to\Set$,
20 | we have
21 | \begin{equation}\label{eq:ac-impl}
22 | \prod_{x:X}\Trunc{P(x)} \to \Trunc[\bigg]{\prod_{x:X}P(x)}.\qedhere
23 | \end{equation}
24 | \end{principle}
25 |
26 | \begin{remark}
27 | We have an equivalence between the Pi-type $\prod_{x:X}P(x)$ and the
28 | type of sections of the projection map $\prj_1 : \sum_{x:X}P(x) \to X$,
29 | under which families of non-empty sets correspond to surjections between sets
30 | (using that $X$ is a set).
31 | Thus, the axiom of choice equivalently says that any surjection
32 | between sets admits a section.
33 |
34 | Because of this equivalence, we'll sometimes also call elements of the
35 | Pi-type \emph{sections}.
36 | \end{remark}
37 |
38 | The following is usually called Diaconescu's theorem\footcite{Diaconescu} or the Goodman--Myhill theorem\footcite{Goodman-Myhill}, but it was first observed in a problem in Bishop's book on constructive analysis~\footcite{Bishop}.
39 |
40 | \begin{theorem}
41 | The axiom of choice implies the law of the excluded middle, \cref{pri:lem}.
42 | \end{theorem}
43 |
44 | \begin{proof}
45 | Let $P$ be a proposition, and consider the quotient map $q : \bn 2 \to \bn 2/\sim$,
46 | where $\sim$ is the equivalence relation on $\bn 2$ satisfying $(0 \sim 1) = P$.
47 | Like any quotient map, $q$ is surjective, so by the axiom of choice,
48 | and because our goal is a proposition,
49 | it has a section $s : \bn 2/\sim \to \bn 2$.
50 | That is, we also have $q\circ s = \id$.
51 |
52 | Using decidable equality in $\bn 2$, check whether $s([0])$ and $s([1])$ are equal
53 | or not.
54 |
55 | If they are, then we get the chain of identifications
56 | $[0] = q(s([0])) = q(s([1])) = [1]$, so $P$ holds.
57 |
58 | If they aren't, then assuming $P$ leads to a contradiction, meaning $\lnot P$ holds.
59 | \end{proof}
60 |
61 | We'll now define some restricted variants of the axiom of choice,
62 | that however are not always true,
63 | and our goal is to see how they relate to each other and to other principles.
64 |
65 | \begin{definition}
66 | Let $\AC$ denote the full axiom of choice, as in~\cref{pri:ac}.
67 | If we fix the set $X$, and consider \eqref{eq:ac-impl} for arbitrary families $P:X\to\Set$, we call this the \emph{$X$-local axiom of choice}, denoted $\lAC{X}$.
68 |
69 | If we restrict $P$ to take values in $n$-element sets, for some $n:\NN$,
70 | we denote the resulting principle $\AC(n)$.
71 | (That is, here we consider families $P : X \to \BSG_n$.)
72 |
73 | If we both fix $X$ and restrict to families of $n$-element sets,
74 | we denote the resulting principle $\lAC{X}(n)$.
75 | \end{definition}
76 |
77 | \begin{xca}
78 | Show that $\lAC{X}$ is always true whenever $X$ is a finite set.
79 | \end{xca}
80 |
81 | \begin{lemma}\label{lem:ac-impl-triv-coh-sets}
82 | If $\lAC{X}$ holds for a set $X$,\marginnote{%
83 | In fancier language, this says that the axiom of choice
84 | implies that all cohomology sets $\constant{H}^1(X,G)$ are trivial.}
85 | then $\Trunc{X \to \BG}_0$ is contractible for any group $G$.
86 | \end{lemma}
87 |
88 | \begin{proof}
89 | Suppose we have a map $f : X \to \BG$.
90 | We need to show that $f$ is merely equal to the constant map.
91 | Consider the corresponding family of sets
92 | consisting of the underlying sets of the $G$-torsors represented by
93 | $f(x) : BG$, for $x:X$.
94 | That is, define $P : X \to \Set$ by setting $P(x) \defeq (\shape_G = f(x))$.
95 | Since $\BG$ is connected, this is a family of non-empty sets,
96 | so by the axiom of choice for families over $X$,
97 | there exists a section.
98 | Since we're proving a proposition, let $s : \prod_{x:X}(\shape_G = f(x))$
99 | be a section.
100 | Then $s$ identifies $f$ with the constant map, as desired.
101 | \end{proof}
102 |
103 | We might wonder what happens if we consider general \inftygps $G$
104 | in~\cref{lem:ac-impl-triv-coh-sets}.
105 | Then the underlying type of a $G$-torsor is no longer a set, but can be any type.
106 | Correspondingly, we need an even stronger version of the axiom of choice,
107 | where the family $P$ is allowed to be arbitrary.
108 | Let $\AC_\infty$ denote this untruncated axiom of choice,
109 | and let $\lAC{X}_\infty$ denote the local version, fixing a set $X$.
110 | This is connected to another principle, which is much more constructive,
111 | yet still not true in all models.
112 |
113 | \begin{principle}[Sets Cover]\label{pri:sc}
114 | For any type $A$, there exists a set $X$ together with a surjection $X \to A$.
115 | \end{principle}
116 |
117 | We abbreviate this as $\constant{SC}$.
118 |
119 | \begin{xca}
120 | Prove that the untruncated axiom of choice, $\AC_\infty$,
121 | is equivalent to the conjunction of the standard axiom of choice, $\AC$,
122 | and the principle that sets cover, $\constant{SC}$.
123 | \end{xca}
124 |
125 | \begin{xca}
126 | Prove that we cannot relax the requirement that $X$ is a set
127 | in the axiom of choice.
128 | Specifically, prove that $\lAC{\Sc}(2)$ is false
129 | \end{xca}
130 |
131 | We now come to the analogue of~\cref{lem:ac-impl-triv-coh-sets}
132 | for arbitrary \inftygps.
133 |
134 | \begin{xca}
135 | Prove that if the untruncated $X$-local axiom of choice, $\lAC{X}_\infty$,
136 | holds for a set $X$,
137 | then $\Trunc{X \to \BG}_0$ is contractible for all \inftygps $G$.
138 | \end{xca}
139 |
140 | We now discuss two partial converses to~\cref{lem:ac-impl-triv-coh-sets},
141 | both due to \citeauthor{Blass-Finite-Choice}\footcite{Blass-Finite-Choice}.
142 |
143 | \begin{theorem}[Blass]\label{thm:Blass-1}
144 | Let $X$ be a set such that $\Trunc{X \to \BG}_0$ is contractible
145 | for all groups $G$.
146 | Then every family of non-empty sets over $X$, $P : X \to \Set$,
147 | that factors through a connected component of $\Set$,
148 | merely admits a section.
149 | \end{theorem}
150 |
151 | \begin{proof}
152 | We suppose $P : X \to \Set$ is such that all the sets $P(x)$
153 | have the same size, \ie the function $P$ factors through
154 | $\BAut(S)$ for some non-empty set $S$.
155 | This in turn means that we have a function $h : X \to \BG$,
156 | where $G \defeq \Aut(S)$, with $P = \prj_1 \circ h$,
157 | where $\prj_1 : \BAut(S) = \sum_{A : \Set}\Trunc{S \simeq A} \to \Set$
158 | is the projection.
159 |
160 | By assumption, $h$ is merely equal to the constant family.
161 | But since we are proving a proposition, we may assume that $h$
162 | \emph{is} constant, so $P$ is the constant family at $S$.
163 | And this has a section since $S$ is non-empty.
164 | \end{proof}
165 |
166 | Obviously, the same argument works if we consider all \inftygps $G$
167 | and families of types that are all equivalent.
168 | For the second partial converse, we look at decidable sets.
169 |
170 | \begin{theorem}[Blass]\label{thm:Blass-2}
171 | Let $X$ be a decidable set such that $\Trunc{X \to \BG}_0$ is contractible
172 | for all groups $G$.
173 | Then every family of non-empty decidable sets over $X$
174 | merely admits a section.\footnote{%
175 | We might call this conclusion $\lAC{X}^{\mathrm{dec}}$.}
176 | \end{theorem}
177 |
178 | \begin{proof}
179 | Equivalently, consider a surjection $p : Y \to X$,
180 | where $X$ and $Y$ are decidable sets,
181 | and let $C$ be the higher inductive type with constructors
182 | $c : C$, $f : X \to C$, and $k : \prod_{y:Y}(c = f(p(y))$.\footnote{%
183 | This kind of higher inductive type is also known as a pushout,
184 | and its constructors fit together to give a commutative square:
185 | \[
186 | \begin{tikzcd}[ampersand replacement=\&]
187 | Y \ar[d]\ar[r,"p"] \& X \ar[d,"f"] \\
188 | \bn 1 \ar[r,"c"'] \& C
189 | \end{tikzcd}
190 | \]}
191 | Using the same kind of argument as in~\cref{lem:wedgeofgpoidisgpoid}
192 | and~\cref{thm:free-group-elements}, we can show,
193 | using decidability of equality in $X$ and $Y$,
194 | that the identity type $c =_C f(x)$ is equivalent to a type of reduced words
195 | over $Y \coprod Y$.
196 | In particular, $C$ is a groupoid, and it's easy to check that it's connected.
197 | Hence we can form the group $G \defeq \mkgroup(C,c)$.
198 |
199 | By assumption, the map $f$ is merely equal to the constant map,
200 | so since we're proving a proposition,
201 | we may assume we have a family of elements $h(x) : c = f(x)$, for $x:X$.
202 | Taking for each $x$ the last $y$ in the corresponding reduced word,
203 | we get a family of elements $s(x) : Y$
204 | such that $p(s(x)) = x$,
205 | but this is precisely the section we wanted.
206 | \end{proof}
207 |
208 | It seems to be an open problem, whether we can do without the decidability assumption,
209 | \ie whether the converse of~\cref{lem:ac-impl-triv-coh-sets} holds generally.
210 |
211 | Now we turn as promised to the connections between the various local choice principles
212 | $\lAC{X}(n)$.
213 | The simplest example is the following.
214 |
215 | \begin{theorem}\label{thm:lAC-2-3-4}
216 | Let $X$ be any set. Then $\lAC{X}(4)$ follows from $\lAC{X}(2)$ and $\lAC{X}(3)$.
217 | \end{theorem}
218 |
219 | \begin{proof}
220 | Let $P : X \to \BSG_4$ be a family of $4$-element sets over $X$.
221 | Consider the map $\Bf : \BSG_4 \to \BSG_3$ that maps a $4$-element set
222 | to the $3$-element set of its $2+2$ partitions.
223 | Choose a section of $\Bf \circ P$ by $\lAC{X}(3)$.
224 | Now use $\lAC{X}(2)$ twice to choose for each chosen partition
225 | first one of the $2$-element parts, and secondly one of the $2$
226 | elements in each chosen part.
227 | \end{proof}
228 |
229 | We now look a bit more closely at what happened in this proof,
230 | so as to better understand the general theorem.
231 | The key idea is the concept of ``reduction of the structure group''.
232 |
233 | [TODO, Elaborate: For a family of $n$-element sets over a base type $X$, $P : X
234 | \to \BSG_n$, there is a section if and only if there is a
235 | `` to a subgroup of $\SG_n$,
236 | whose action on the standard $n$-element set, $\bn n$, has a fixed point.]
237 |
238 | Now we return to the local case, and we give the general
239 | sufficient condition that ensures that $\lAC{X}(n)$ follows from $\lAC{X}(z)$ for each $z:Z$, where $Z$ is a finite subset of $\NN$.
240 |
241 | \begin{definition}
242 | The condition $L(Z,n)$ is that for every finite subgroup $G$ of $\SG_n$
243 | that acts on $\bn n$ without fixed points,
244 | there exists finitely many proper, finite subgroups $K_1,\cdots,K_r$ of
245 | $G$ such that the sum of the indices,
246 | \[
247 | |G \idxcolon H_1| + \cdots + |G \idxcolon H_r|,
248 | \]
249 | lies in $Z$.
250 | \end{definition}
251 |
252 | We now turn to the global case, where we can change the base set.
253 | Here the basic case is Tarski's result alluded to above,
254 | which shows that we don't need choice for $3$-element sets,
255 | in contrast to the local case, \cref{thm:lAC-2-3-4}.
256 |
257 | \begin{theorem}
258 | $\AC(2)$ implies $\AC(4)$.
259 | \end{theorem}
260 |
261 | \begin{proof}
262 | Let $P: X \to \BSG_4$ be a family of $4$-element sets indexed by a set $X$.
263 | Consider the new set $Y$ consisting of all $2$-element subsets
264 | of $P(x)$, as $x$ runs over $X$,
265 | \[
266 | Y \defeq \sum_{x:X}[P(x)]^2.
267 | \]
268 | The set $Y$ carries a canonical family of $2$-element sets,
269 | so we may choose an element of each.
270 | In other words, we have chosen an element of each of the $6$
271 | different $2$-element subsets of each of the $4$-element sets
272 | $P(x)$.
273 |
274 | For every $a : P(x)$, let $q_x(a)$ be the number of $2$-element
275 | subsets $\set{a,b}$ of $P(x)$ with $b\ne a$ for which $a$ is the
276 | chosen element.
277 |
278 | Define the sets $B(x) \defeq \setof{a:P(x)}{\text{$q_x(a)$ is a
279 | minimum of $q_x$}}$, and remember that they are subsets of $P(x)$.
280 | This determines a decomposition of $X$ into three parts $X = X_1 +
281 | X_2 + X_3$, where
282 | \[
283 | X_i \defeq \sum_{x:X}(\text{$B(x)$ has cardinality $i$}),
284 | \quad i = 1,2,3.
285 | \]
286 | Note that $B(x)$ can't be all of $P(x)$,
287 | since that would mean that $q_x$ is constant,
288 | and that is impossible, since the sum of $q_x$ over the $4$-element $P(x)$ is $6$.
289 |
290 | Over $X_1$, we get a section of $P$ by picking the unique element
291 | in $B(x)$.
292 |
293 | Over $X_3$, we get a section of $P$ by picking the unique element
294 | \emph{not} in $B(x)$.
295 |
296 | Over $X_2$, we get a section of $P$ by picking the already chosen
297 | element of the $2$-element set $B(x)$.
298 | \end{proof}
299 |
300 | The following appears as Theorem~6 in Blass\footcite{Blass-Finite-Choice}.
301 | \begin{theorem}
302 | Assume $\Trunc{X \to \BCG_n}_0$ is contractible for all sets $X$ and
303 | positive integers $n$. Then $\AC(n)$ holds for all $n$.
304 | \end{theorem}
305 |
306 | \begin{proof}
307 | We use well-founded induction on $n$, the case $n\jdeq 1$ being trivial.
308 |
309 | Let $P : X \to \BSG_n$ be a family of $n$-element sets,
310 | and let $Y \defeq \sum_{x:X}P(x)$ be the domain set of this \covering.
311 | Consider the family $Q : Y \to \BSG_{n-1}$ defined by
312 | \[
313 | Q((x,y)) \defeq \setof{y' : P(x)}{y \ne y'} = P(x) \setminus \set{y},
314 | \]
315 | where we use the fact that $P(x)$ is an $n$-element set
316 | and thus has decidable equality,
317 | so we can form the $(n-1)$-element complement $P(x) \setminus
318 | \set{y}$.
319 |
320 | By induction hypothesis, we get a section of $Q$, which we can
321 | express as a family of functions
322 | \[
323 | f : \prod_{x:X}\bigl(P(x) \to P(x)\bigr)
324 | \]
325 | where $f_x(y) \ne y$ for all $x,y$.
326 | Since $P(x)$ is an $n$-element set, we can decide whether $f_x$
327 | is a permutation or not, and if so, whether it is a cyclic
328 | permutation.
329 | We have thus obtained a partition $X = X_1 + X_2 + X_3$,
330 | where
331 | \begin{align*}
332 | X_1 &\defeq \setof{x:X}{\text{$f_x$ is not a permutation}}, \\
333 | X_2 &\defeq \setof{x:X}{\text{$f_x$ is a non-cyclic permutation}}, \\
334 | X_3 &\defeq \setof{x:X}{\text{$f_x$ is a cyclic permutation}}.
335 | \end{align*}
336 | We get a section of $P$ over $X_1$ by induction hypothesis
337 | by considering the family of the images of $f_x$.
338 |
339 | We get a section of $P$ over $X_2$ by first choosing a cycle of $f_x$
340 | (there are fewer then $n$ cycles because there are no $1$-cycles),
341 | and then choosing an element of the chosen cycle.
342 |
343 | We get a section of $P$ over $X_3$ by the assumption applied
344 | to the map $X_3 \to \BCG_n$ induced by equipping each $P(x)$ with
345 | the cyclic order determined by the cyclic permutation $f_x$.
346 | \end{proof}
347 |
348 | [TODO: State the general positive result due to
349 | Mostowski\footcite{Mostowski-Finite-Choice}, maybe as an exercise
350 | and give references to the negative results, due to Gauntt (unpublished).]
351 |
352 | %%% Local Variables:
353 | %%% mode: latex
354 | %%% TeX-master: "book"
355 | %%% End:
356 |
--------------------------------------------------------------------------------
/marginfix.sty:
--------------------------------------------------------------------------------
1 | %%
2 | %% This is file `marginfix.sty',
3 | %% generated with the docstrip utility.
4 | %%
5 | %% The original source files were:
6 | %%
7 | %% marginfix.dtx (with options: `package')
8 | %%
9 | %% IMPORTANT NOTICE:
10 | %%
11 | %% For the copyright see the source file.
12 | %%
13 | %% Any modified versions of this file must be renamed
14 | %% with new filenames distinct from marginfix.sty.
15 | %%
16 | %% For distribution of the original source see the terms
17 | %% for copying and modification in the file marginfix.dtx.
18 | %%
19 | %% This generated file may be distributed as long as the
20 | %% original source files, as listed above, are part of the
21 | %% same distribution. (The sources need not necessarily be
22 | %% in the same archive or directory.)
23 | \NeedsTeXFormat{LaTeX2e}
24 | \ProvidesPackage{marginfix}%
25 | [2020/05/06 v1.2 Fix Margin Paragraphs]
26 | \makeatletter
27 | \newif\ifmfx@ypos
28 | \DeclareOption{ypos}{\mfx@ypostrue}
29 | \ProcessOptions\relax
30 | \let\mfx@marginlist\@empty
31 | \let\mfx@injected\@empty
32 | \newinsert\Mfx@inject@insert
33 | \newbox\Mfx@marginbox
34 | \newdimen\Mfx@marginpos@min
35 | \newdimen\Mfx@marginpos@max
36 | \newdimen\Mfx@marginspace
37 | \newdimen\Mfx@marginheight
38 | \def\mfx@marginstart{0pt}
39 | \let\mfx@marginpieces\@empty
40 | \newbox\Mfx@piece@content
41 | \newcount\Mfx@piece@count
42 | \newif\ifmfx@in@phantom
43 | \newdimen\Mfx@mparshift
44 | \newdimen\marginheightadjustment
45 | \newdimen\marginposadjustment
46 | \def\@addmarginpar{%
47 | \@next\@marbox\@currlist{}\MFX@AssertionError
48 | \MFX@getypos
49 | \expandafter\ifx\@marbox\Mfx@inject@insert
50 | \mfx@injected\global\let\mfx@injected\@empty
51 | \else
52 | \MFX@cons\mfx@marginlist{%
53 | \noexpand\mfx@build@note\@currbox\@marbox{\mfx@ypos}%
54 | \noexpand\mfx@build@skip{\the\marginparpush}%
55 | }%
56 | \fi
57 | }
58 | \def\MFX@cons#1#2{%
59 | \edef\temp@{#2}%
60 | \expandafter\expandafter\expandafter\gdef
61 | \expandafter\expandafter\expandafter#1%
62 | \expandafter\expandafter\expandafter{\expandafter#1\temp@}%
63 | }
64 |
65 | \def\MFX@snoc#1#2{%
66 | \edef\temp@{#2}%
67 | \expandafter\expandafter\expandafter\gdef
68 | \expandafter\expandafter\expandafter#1%
69 | \expandafter\expandafter\expandafter{\expandafter\temp@#1}%
70 | }
71 | \def\MFX@run@clear#1{%
72 | \expandafter\global\expandafter\let\expandafter#1\expandafter\@empty#1%
73 | }
74 | \def\MFX@inject#1{
75 | \expandafter\def\expandafter\@freelist\expandafter{%
76 | \expandafter\@elt\expandafter\Mfx@inject@insert
77 | \expandafter\@elt\expandafter\Mfx@inject@insert
78 | \@freelist}%
79 | \expandafter\def\expandafter\mfx@injected\expandafter{\mfx@injected#1}%
80 | \marginpar{}%
81 | }
82 | \def\MFX@getypos{%
83 | \dimen@\dimexpr\@pageht+\@pagedp+\marginposadjustment+\Mfx@mparshift\relax
84 | \ifnum\outputpenalty=-10002\relax
85 | \advance\dimen@-\Mfx@strutheight
86 | \fi
87 | \edef\mfx@ypos{\the\dimen@}%
88 | \global\Mfx@mparshift\z@
89 | }
90 | \newdimen\Mfx@strutheight
91 | \edef\marginpar{%
92 | \unexpanded{\setbox\@tempboxa\hbox{\strut}\Mfx@strutheight\ht\@tempboxa}%
93 | \expandafter\unexpanded\expandafter{\marginpar}%
94 | }
95 | \expandafter\def\expandafter\@combinefloats\expandafter{\expandafter
96 | \MFX@combinefloats@before\@combinefloats}
97 | \def\MFX@combinefloats@before{%
98 | \advance\Mfx@marginheight\marginheightadjustment
99 | \MFX@buildmargin
100 | \MFX@attachmargin
101 | \global\Mfx@marginheight\z@
102 | }
103 | \def\MFX@attachmargin{%
104 | \setbox\Mfx@marginbox\vtop{%
105 | \vskip\z@\unvbox\Mfx@marginbox}%
106 | \setbox\@outputbox\vbox{%
107 | \begingroup
108 | \setbox\@tempboxa\vbox{%
109 | \hbox{%
110 | \if\MFX@leftmargin
111 | \llap{\box\Mfx@marginbox\hskip\marginparsep}%
112 | \else
113 | \hskip\columnwidth
114 | \rlap{\hskip\marginparsep\box\Mfx@marginbox}%
115 | \fi
116 | }}%
117 | \ht\@tempboxa\z@
118 | \dp\@tempboxa\z@
119 | \box\@tempboxa
120 | \endgroup
121 | \unskip
122 | \unvbox\@outputbox
123 | }%
124 | }
125 | \def\MFX@buildmargin{%
126 | \advance\Mfx@marginheight\@colroom
127 | \ifx\mfx@marginstart\relax
128 | \else
129 | \MFX@cons\mfx@marginpieces{%
130 | \noexpand\@elt{\mfx@marginstart}{\the\Mfx@marginheight}}%
131 | \gdef\mfx@marginstart{0pt}%
132 | \global\advance\Mfx@piece@count\@ne
133 | \fi
134 | \ifx\mfx@marginpieces\@empty\else
135 | \MFX@buildmargin@down
136 | \MFX@buildmargin@up
137 | \MFX@buildmargin@pieces
138 | \fi
139 | }
140 | \def\MFX@buildmargin@down{%
141 | \let\mfx@pieceheights\@empty
142 | \def\@elt##1##2{%
143 | \MFX@cons\mfx@pieceheights{\noexpand\@elt{\the\dimexpr##2-##1}}}%
144 | \mfx@marginpieces
145 | \MFX@popdimen\Mfx@marginheight\mfx@pieceheights
146 | \let\mfx@build@note\MFX@margin@note@down
147 | \let\mfx@build@skip\@gobble
148 | \let\mfx@build@clear\MFX@build@clear@down
149 | \let\mfx@marginout\@empty
150 | \MFX@run@clear\mfx@marginlist
151 | }
152 | \def\MFX@margin@note@down#1#2#3{%
153 | \MFX@whichbox\@marbox#1#2%
154 | \if\MFX@check@fit{}{\ht\@marbox+\dp\@marbox}%
155 | \MFX@snoc\mfx@marginout{%
156 | \noexpand\@cons\noexpand\@freelist#1%
157 | \noexpand\@cons\noexpand\@freelist#2%
158 | \noexpand\mfx@build@note\@marbox{#3}}%
159 | \let\mfx@build@skip\MFX@margin@skip@down
160 | \else
161 | \mfx@build@clear
162 | \mfx@build@note{#1}{#2}{#3}%
163 | \fi
164 | }
165 | \def\MFX@margin@skip@down#1{%
166 | \if\MFX@check@fit{}{#1}%
167 | \MFX@snoc\mfx@marginout{\noexpand\mfx@build@skip{#1}}%
168 | \else
169 | \mfx@build@clear
170 | \fi
171 | }
172 | \def\MFX@build@clear@down{%
173 | \def\mfx@build@note##1##2##3{%
174 | \MFX@cons\mfx@marginlist{\noexpand\mfx@build@note##1##2{\MFX@minus@inf}}}%
175 | \def\mfx@build@skip##1{%
176 | \MFX@cons\mfx@marginlist{\noexpand\mfx@build@skip{##1}}}%
177 | \def\mfx@build@clear{%
178 | \MFX@cons\mfx@marginlist{\noexpand\mfx@build@clear}}%
179 | }
180 | \def\MFX@check@fit#1#2{%
181 | 00\fi % close out the \if
182 | \@tempswafalse
183 | \ifdim\dimexpr#2<\Mfx@marginheight % it fits
184 | \advance\Mfx@marginheight-\dimexpr#2\relax % deduct the size
185 | \@tempswatrue
186 | \else % didn't fit: check the next piece
187 | \ifx\mfx@pieceheights\@empty\else % make sure there's anything there
188 | #1%
189 | \MFX@popdimen\Mfx@marginheight\mfx@pieceheights
190 | \if\MFX@check@fit{#1}{#2}\fi
191 | \fi
192 | \fi
193 | \if@tempswa % start a new \if
194 | }
195 | \def\MFX@popdimen#1#2{%
196 | \def\@elt##1{%
197 | #1##1\relax
198 | \def\@elt####1{%
199 | \MFX@cons#2{\noexpand\@elt{####1}}%
200 | }%
201 | }%
202 | \MFX@run@clear#2%
203 | }
204 | \def\MFX@whichbox#1#2#3{%
205 | \if\MFX@leftmargin
206 | \def#1{#2}%
207 | \else
208 | \def#1{#3}%
209 | \fi
210 | }
211 | \def\MFX@leftmargin{%
212 | 00\fi % close out the \if
213 | \@tempcnta\@ne
214 | \if@mparswitch
215 | \unless\ifodd\c@page
216 | \@tempcnta\m@ne
217 | \fi
218 | \fi
219 | \if@reversemargin
220 | \@tempcnta-\@tempcnta
221 | \fi
222 | \ifnum\@tempcnta<\z@ % start a new \if
223 | }
224 | \def\MFX@minus@inf{-4000\p@}
225 | \def\MFX@buildmargin@up{%
226 | \let\mfx@pieceheights\@empty
227 | \let\mfx@phantomheights\@empty
228 | \let\temp@@\relax
229 | \def\@elt##1##2{%
230 | \MFX@snoc\mfx@pieceheights{\noexpand\@elt{\the\dimexpr##2-##1}}%
231 | \ifx\temp@@\relax\else
232 | \MFX@snoc\mfx@phantomheights{\noexpand\@elt{\the\dimexpr##1-\temp@@}}%
233 | \fi
234 | \def\temp@@{##2}%
235 | }%
236 | \mfx@in@phantomfalse
237 | \mfx@marginpieces
238 | \MFX@popdimen\Mfx@marginheight\mfx@pieceheights
239 | \let\mfx@build@note\MFX@margin@note@up
240 | \let\mfx@build@skip\@gobble
241 | \MFX@run@clear\mfx@marginout
242 | }
243 | \def\MFX@margin@note@up#1#2{%
244 | \ifmfx@in@phantom
245 | \MFX@popdimen\Mfx@marginheight\mfx@pieceheights
246 | \advance\Mfx@piece@count\m@ne
247 | \mfx@in@phantomfalse
248 | \fi
249 | \if\MFX@check@fit{\advance\Mfx@piece@count\m@ne
250 | \MFX@popdimen\dimen@\mfx@phantomheights}{\ht#1+\dp#1}%
251 | \MFX@snoc\mfx@marginout{%
252 | \noexpand\mfx@build@note{#1}{#2}{\the\Mfx@piece@count}}%
253 | \let\mfx@build@skip\MFX@margin@skip@up
254 | \else\MFX@AssertionError\fi
255 | }
256 | \def\MFX@margin@skip@up#1{%
257 | \dimen@#1\relax
258 | \advance\Mfx@marginheight-\dimen@
259 | \ifdim\Mfx@marginheight<\z@
260 | \advance\dimen@\Mfx@marginheight
261 | \MFX@snoc\mfx@marginout{%
262 | \noexpand\mfx@build@skip{\the\dimen@}{\the\Mfx@piece@count}}%
263 | \dimen@-\Mfx@marginheight
264 | \ifmfx@in@phantom
265 | \MFX@popdimen\Mfx@marginheight\mfx@pieceheights
266 | \advance\Mfx@piece@count\m@ne
267 | \mfx@in@phantomfalse
268 | \else
269 | \MFX@popdimen\Mfx@marginheight\mfx@phantomheights
270 | \mfx@in@phantomtrue
271 | \fi
272 | \mfx@build@skip\dimen@
273 | \else
274 | \MFX@snoc\mfx@marginout{%
275 | \noexpand\mfx@build@skip{\the\dimen@}{\the\Mfx@piece@count}}%
276 | \fi
277 | }
278 | \def\MFX@buildmargin@pieces{%
279 | \Mfx@piece@count\z@
280 | \Mfx@marginspace\z@
281 | \setbox\Mfx@marginbox\vbox{\vskip\z@}% TODO - do we need this?
282 | \let\@elt\MFX@buildmargin@piece
283 | \MFX@run@clear\mfx@marginpieces
284 | \let\@elt\relax
285 | \global\Mfx@piece@count\z@
286 | }
287 | \def\MFX@buildmargin@piece#1#2{%
288 | \ifdim\ht\Mfx@marginbox<#1\relax
289 | \dimen@\dimexpr#1-\ht\Mfx@marginbox\relax
290 | \setbox\Mfx@marginbox\vbox{%
291 | \unvbox\Mfx@marginbox
292 | \vskip\dimen@
293 | }%
294 | \advance\Mfx@marginspace\dimen@
295 | \fi
296 | \Mfx@marginpos@min#1\relax
297 | \Mfx@marginpos@max#1\relax
298 | \Mfx@marginheight#2\relax
299 | \advance\Mfx@piece@count\@ne
300 | \MFX@buildpiece@down
301 | \MFX@buildpiece@up
302 | \setbox\Mfx@marginbox\vbox{%
303 | \unvbox\Mfx@marginbox
304 | \box\Mfx@piece@content
305 | \vskip\z@
306 | }%
307 | }
308 | \def\MFX@buildpiece@down{%
309 | \let\mfx@build@note\MFX@piece@note@down
310 | \let\mfx@build@skip\MFX@piece@skip@down
311 | \let\mfx@pieceout\@empty
312 | \MFX@run@clear\mfx@marginout
313 | }
314 | \def\MFX@piece@note@down#1#2#3{%
315 | \Mfx@marginspace\z@
316 | \@tempswafalse
317 | \ifdim#2>\Mfx@marginheight
318 | \ifnum#3>\Mfx@piece@count
319 | \@tempswatrue
320 | \fi
321 | \fi
322 | \ifdim\dimexpr\ht#1+\dp#1+\Mfx@marginpos@min>\Mfx@marginheight
323 | \@tempswatrue
324 | \fi
325 | \if@tempswa
326 | \MFX@piece@clear
327 | \mfx@build@note{#1}{#2}{#3}%
328 | \else
329 | \dimen@#2\relax
330 | \ifdim\dimen@=\MFX@minus@inf
331 | \ifdim\Mfx@marginpos@max=\z@
332 | \dimen@\topskip
333 | \advance\dimen@-\ht#1\relax
334 | \ifdim\dimen@<\z@ \dimen@\z@ \fi
335 | \fi
336 | \fi
337 | \advance\dimen@-\Mfx@marginpos@max
338 | \ifdim\dimen@>\z@
339 | \MFX@snoc\mfx@pieceout{\noexpand\mfx@build@compressible{\the\dimen@}}%
340 | \advance\Mfx@marginpos@max\dimen@
341 | \fi
342 | \MFX@snoc\mfx@pieceout{\noexpand\mfx@build@note{#1}}%
343 | \advance\Mfx@marginpos@min\dimexpr\ht#1+\dp#1\relax
344 | \advance\Mfx@marginpos@max\dimexpr\ht#1+\dp#1\relax
345 | \fi
346 | }
347 | \def\MFX@piece@skip@down#1#2{%
348 | \dimen@#1\relax
349 | \ifdim\Mfx@marginspace>\z@
350 | \advance\dimen@-\Mfx@marginspace
351 | \ifdim\dimen@<\z@ \dimen@\z@ \fi
352 | \advance\Mfx@marginspace-\dimen@
353 | \fi
354 | \ifdim\dimen@>\z@
355 | \ifdim\dimexpr#1+\Mfx@marginpos@min>\Mfx@marginheight
356 | \MFX@piece@clear
357 | \mfx@build@skip{\the\dimen@}{#2}%
358 | \else
359 | \MFX@snoc\mfx@pieceout{\noexpand\mfx@build@skip{\the\dimen@}{#2}}%
360 | \advance\Mfx@marginpos@min\dimen@
361 | \advance\Mfx@marginpos@max\dimen@
362 | \fi
363 | \fi
364 | }
365 | \def\MFX@piece@clear{%
366 | \def\mfx@build@note##1##2##3{%
367 | \MFX@cons\mfx@marginout{\noexpand\mfx@build@note##1{##2}{##3}}}%
368 | \def\mfx@build@skip##1##2{%
369 | \MFX@cons\mfx@marginout{\noexpand\mfx@build@skip{##1}{##2}}}%
370 | }
371 | \def\MFX@buildpiece@up{%
372 | \Mfx@marginheight\dimexpr\Mfx@marginpos@max-\Mfx@marginheight\relax
373 | \ifdim\Mfx@marginheight<\z@\Mfx@marginheight\z@\fi
374 | \let\mfx@build@note\MFX@piece@note@up
375 | \let\mfx@build@compressible\MFX@piece@compressible@up
376 | \let\mfx@build@skip\MFX@piece@skip@maybedefer
377 | \MFX@run@clear\mfx@pieceout\relax
378 | }
379 | \def\MFX@piece@skip@maybedefer#1#2{%
380 | \ifnum#2>\Mfx@piece@count
381 | \MFX@snoc\mfx@marginout{\noexpand\mfx@build@skip{#1}{#2}}%
382 | \else
383 | \let\mfx@build@skip\MFX@piece@skip@up
384 | \mfx@build@skip{#1}{#2}%
385 | \fi
386 | }
387 | \def\MFX@piece@note@up#1{%
388 | \setbox\Mfx@piece@content\vbox{%
389 | \box#1%
390 | \unvbox\Mfx@piece@content}%
391 | \let\mfx@build@skip\MFX@piece@skip@up
392 | }
393 | \def\MFX@piece@skip@up#1#2{%
394 | \setbox\Mfx@piece@content\vbox{%
395 | \vskip#1\relax
396 | \unvbox\Mfx@piece@content}%
397 | }
398 | \def\MFX@piece@compressible@up#1{%
399 | \advance\Mfx@marginheight-#1\relax
400 | \ifdim\Mfx@marginheight<\z@
401 | \MFX@piece@skip@up{-\Mfx@marginheight}\relax
402 | \Mfx@marginheight\z@
403 | \fi
404 | }
405 | \def\dumpmargins{%
406 | \loop
407 | \unless\ifx\mfx@marginlist\@empty
408 | \let\temp@\mfx@marginlist
409 | \vbox{}\clearpage
410 | \ifx\temp@\mfx@marginlist
411 | \PackageError{marginfix}{lost some margin notes%
412 | \ifx\mfx@marginstart\relax\ (missing \noexpand\unblockmargin)\fi
413 | }\@eha
414 | \let\mfx@marginlist\@empty % be nicer by just dropping one?
415 | % TODO: also, set an emergency mode to allow oversized notes
416 | \fi
417 | \repeat
418 | }
419 | \AtEndDocument{\dumpmargins}
420 | \def\marginskip#1{%
421 | \MFX@cons\mfx@marginlist{\noexpand\mfx@build@skip{#1}}%
422 | }
423 | \def\clearmargin{%
424 | \MFX@cons\mfx@marginlist{\noexpand\mfx@build@clear}%
425 | }
426 | \def\softclearmargin{%
427 | \marginskip{\the\textheight}%
428 | }
429 | \def\extendmargin#1{%
430 | \advance\Mfx@marginheight#1\relax
431 | }
432 | \def\mparshift#1{%
433 | \advance\Mfx@mparshift#1\relax
434 | }
435 | \def\blockmargin{%
436 | \@ifnextchar[%]
437 | \MFX@blockmargin
438 | {\MFX@blockmargin[0\p@]}%
439 | }
440 | \def\MFX@blockmargin[#1]{%
441 | \MFX@inject{%
442 | \ifx\mfx@marginstart\relax
443 | \PackageError{marginfix}{two \\blockmargin with no \\unblockmargin}\@eha
444 | \else
445 | \MFX@cons\mfx@marginpieces{\noexpand
446 | \@elt{\mfx@marginstart}{\expandafter\dimexpr\mfx@ypos+#1\relax}}%
447 | \global\let\mfx@marginstart\relax
448 | \global\advance\Mfx@piece@count\@ne
449 | \fi
450 | }%
451 | }
452 | \def\unblockmargin{%
453 | \@ifnextchar[%]
454 | \MFX@unblockmargin
455 | {\MFX@unblockmargin[0\p@]}%
456 | }
457 | \def\MFX@unblockmargin[#1]{%
458 | \MFX@inject{%
459 | \ifx\mfx@marginstart\relax
460 | \xdef\mfx@marginstart{\dimexpr\mfx@ypos+#1\relax}%
461 | \else
462 | \PackageError{marginfix}{\\unblockmargin with no \\blockmargin}\@eha
463 | \fi
464 | }%
465 | }
466 | \def\marginphantom{%
467 | \@ifnextchar[%]
468 | \MFX@marginphantom
469 | {\MFX@marginphantom[0\p@]}%
470 | }
471 | \def\MFX@marginphantom[#1]#2{%
472 | \ifdim#2<\z@\MFX@marginphantom[#1+#2]{-#2}\else
473 | \MFX@inject{%
474 | \ifx\mfx@marginstart\relax
475 | \PackageError{marginfix}{\\marginphantom while margin blocked}\@eha
476 | \else
477 | \MFX@cons\mfx@marginpieces{\noexpand
478 | \@elt{\mfx@marginstart}{\expandafter\dimexpr\mfx@ypos+#1\relax}}%
479 | \xdef\mfx@marginstart{\dimexpr\mfx@ypos+#1+#2\relax}%
480 | \global\advance\Mfx@piece@count\@ne
481 | \fi
482 | }%
483 | \fi
484 | }
485 | \makeatother
486 | \endinput
487 | %%
488 | %% End of file `marginfix.sty'.
489 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Attribution-ShareAlike 4.0 International
2 |
3 | =======================================================================
4 |
5 | Creative Commons Corporation ("Creative Commons") is not a law firm and
6 | does not provide legal services or legal advice. Distribution of
7 | Creative Commons public licenses does not create a lawyer-client or
8 | other relationship. Creative Commons makes its licenses and related
9 | information available on an "as-is" basis. Creative Commons gives no
10 | warranties regarding its licenses, any material licensed under their
11 | terms and conditions, or any related information. Creative Commons
12 | disclaims all liability for damages resulting from their use to the
13 | fullest extent possible.
14 |
15 | Using Creative Commons Public Licenses
16 |
17 | Creative Commons public licenses provide a standard set of terms and
18 | conditions that creators and other rights holders may use to share
19 | original works of authorship and other material subject to copyright
20 | and certain other rights specified in the public license below. The
21 | following considerations are for informational purposes only, are not
22 | exhaustive, and do not form part of our licenses.
23 |
24 | Considerations for licensors: Our public licenses are
25 | intended for use by those authorized to give the public
26 | permission to use material in ways otherwise restricted by
27 | copyright and certain other rights. Our licenses are
28 | irrevocable. Licensors should read and understand the terms
29 | and conditions of the license they choose before applying it.
30 | Licensors should also secure all rights necessary before
31 | applying our licenses so that the public can reuse the
32 | material as expected. Licensors should clearly mark any
33 | material not subject to the license. This includes other CC-
34 | licensed material, or material used under an exception or
35 | limitation to copyright. More considerations for licensors:
36 | wiki.creativecommons.org/Considerations_for_licensors
37 |
38 | Considerations for the public: By using one of our public
39 | licenses, a licensor grants the public permission to use the
40 | licensed material under specified terms and conditions. If
41 | the licensor's permission is not necessary for any reason--for
42 | example, because of any applicable exception or limitation to
43 | copyright--then that use is not regulated by the license. Our
44 | licenses grant only permissions under copyright and certain
45 | other rights that a licensor has authority to grant. Use of
46 | the licensed material may still be restricted for other
47 | reasons, including because others have copyright or other
48 | rights in the material. A licensor may make special requests,
49 | such as asking that all changes be marked or described.
50 | Although not required by our licenses, you are encouraged to
51 | respect those requests where reasonable. More_considerations
52 | for the public:
53 | wiki.creativecommons.org/Considerations_for_licensees
54 |
55 | =======================================================================
56 |
57 | Creative Commons Attribution-ShareAlike 4.0 International Public
58 | License
59 |
60 | By exercising the Licensed Rights (defined below), You accept and agree
61 | to be bound by the terms and conditions of this Creative Commons
62 | Attribution-ShareAlike 4.0 International Public License ("Public
63 | License"). To the extent this Public License may be interpreted as a
64 | contract, You are granted the Licensed Rights in consideration of Your
65 | acceptance of these terms and conditions, and the Licensor grants You
66 | such rights in consideration of benefits the Licensor receives from
67 | making the Licensed Material available under these terms and
68 | conditions.
69 |
70 |
71 | Section 1 -- Definitions.
72 |
73 | a. Adapted Material means material subject to Copyright and Similar
74 | Rights that is derived from or based upon the Licensed Material
75 | and in which the Licensed Material is translated, altered,
76 | arranged, transformed, or otherwise modified in a manner requiring
77 | permission under the Copyright and Similar Rights held by the
78 | Licensor. For purposes of this Public License, where the Licensed
79 | Material is a musical work, performance, or sound recording,
80 | Adapted Material is always produced where the Licensed Material is
81 | synched in timed relation with a moving image.
82 |
83 | b. Adapter's License means the license You apply to Your Copyright
84 | and Similar Rights in Your contributions to Adapted Material in
85 | accordance with the terms and conditions of this Public License.
86 |
87 | c. BY-SA Compatible License means a license listed at
88 | creativecommons.org/compatiblelicenses, approved by Creative
89 | Commons as essentially the equivalent of this Public License.
90 |
91 | d. Copyright and Similar Rights means copyright and/or similar rights
92 | closely related to copyright including, without limitation,
93 | performance, broadcast, sound recording, and Sui Generis Database
94 | Rights, without regard to how the rights are labeled or
95 | categorized. For purposes of this Public License, the rights
96 | specified in Section 2(b)(1)-(2) are not Copyright and Similar
97 | Rights.
98 |
99 | e. Effective Technological Measures means those measures that, in the
100 | absence of proper authority, may not be circumvented under laws
101 | fulfilling obligations under Article 11 of the WIPO Copyright
102 | Treaty adopted on December 20, 1996, and/or similar international
103 | agreements.
104 |
105 | f. Exceptions and Limitations means fair use, fair dealing, and/or
106 | any other exception or limitation to Copyright and Similar Rights
107 | that applies to Your use of the Licensed Material.
108 |
109 | g. License Elements means the license attributes listed in the name
110 | of a Creative Commons Public License. The License Elements of this
111 | Public License are Attribution and ShareAlike.
112 |
113 | h. Licensed Material means the artistic or literary work, database,
114 | or other material to which the Licensor applied this Public
115 | License.
116 |
117 | i. Licensed Rights means the rights granted to You subject to the
118 | terms and conditions of this Public License, which are limited to
119 | all Copyright and Similar Rights that apply to Your use of the
120 | Licensed Material and that the Licensor has authority to license.
121 |
122 | j. Licensor means the individual(s) or entity(ies) granting rights
123 | under this Public License.
124 |
125 | k. Share means to provide material to the public by any means or
126 | process that requires permission under the Licensed Rights, such
127 | as reproduction, public display, public performance, distribution,
128 | dissemination, communication, or importation, and to make material
129 | available to the public including in ways that members of the
130 | public may access the material from a place and at a time
131 | individually chosen by them.
132 |
133 | l. Sui Generis Database Rights means rights other than copyright
134 | resulting from Directive 96/9/EC of the European Parliament and of
135 | the Council of 11 March 1996 on the legal protection of databases,
136 | as amended and/or succeeded, as well as other essentially
137 | equivalent rights anywhere in the world.
138 |
139 | m. You means the individual or entity exercising the Licensed Rights
140 | under this Public License. Your has a corresponding meaning.
141 |
142 |
143 | Section 2 -- Scope.
144 |
145 | a. License grant.
146 |
147 | 1. Subject to the terms and conditions of this Public License,
148 | the Licensor hereby grants You a worldwide, royalty-free,
149 | non-sublicensable, non-exclusive, irrevocable license to
150 | exercise the Licensed Rights in the Licensed Material to:
151 |
152 | a. reproduce and Share the Licensed Material, in whole or
153 | in part; and
154 |
155 | b. produce, reproduce, and Share Adapted Material.
156 |
157 | 2. Exceptions and Limitations. For the avoidance of doubt, where
158 | Exceptions and Limitations apply to Your use, this Public
159 | License does not apply, and You do not need to comply with
160 | its terms and conditions.
161 |
162 | 3. Term. The term of this Public License is specified in Section
163 | 6(a).
164 |
165 | 4. Media and formats; technical modifications allowed. The
166 | Licensor authorizes You to exercise the Licensed Rights in
167 | all media and formats whether now known or hereafter created,
168 | and to make technical modifications necessary to do so. The
169 | Licensor waives and/or agrees not to assert any right or
170 | authority to forbid You from making technical modifications
171 | necessary to exercise the Licensed Rights, including
172 | technical modifications necessary to circumvent Effective
173 | Technological Measures. For purposes of this Public License,
174 | simply making modifications authorized by this Section 2(a)
175 | (4) never produces Adapted Material.
176 |
177 | 5. Downstream recipients.
178 |
179 | a. Offer from the Licensor -- Licensed Material. Every
180 | recipient of the Licensed Material automatically
181 | receives an offer from the Licensor to exercise the
182 | Licensed Rights under the terms and conditions of this
183 | Public License.
184 |
185 | b. Additional offer from the Licensor -- Adapted Material.
186 | Every recipient of Adapted Material from You
187 | automatically receives an offer from the Licensor to
188 | exercise the Licensed Rights in the Adapted Material
189 | under the conditions of the Adapter's License You apply.
190 |
191 | c. No downstream restrictions. You may not offer or impose
192 | any additional or different terms or conditions on, or
193 | apply any Effective Technological Measures to, the
194 | Licensed Material if doing so restricts exercise of the
195 | Licensed Rights by any recipient of the Licensed
196 | Material.
197 |
198 | 6. No endorsement. Nothing in this Public License constitutes or
199 | may be construed as permission to assert or imply that You
200 | are, or that Your use of the Licensed Material is, connected
201 | with, or sponsored, endorsed, or granted official status by,
202 | the Licensor or others designated to receive attribution as
203 | provided in Section 3(a)(1)(A)(i).
204 |
205 | b. Other rights.
206 |
207 | 1. Moral rights, such as the right of integrity, are not
208 | licensed under this Public License, nor are publicity,
209 | privacy, and/or other similar personality rights; however, to
210 | the extent possible, the Licensor waives and/or agrees not to
211 | assert any such rights held by the Licensor to the limited
212 | extent necessary to allow You to exercise the Licensed
213 | Rights, but not otherwise.
214 |
215 | 2. Patent and trademark rights are not licensed under this
216 | Public License.
217 |
218 | 3. To the extent possible, the Licensor waives any right to
219 | collect royalties from You for the exercise of the Licensed
220 | Rights, whether directly or through a collecting society
221 | under any voluntary or waivable statutory or compulsory
222 | licensing scheme. In all other cases the Licensor expressly
223 | reserves any right to collect such royalties.
224 |
225 |
226 | Section 3 -- License Conditions.
227 |
228 | Your exercise of the Licensed Rights is expressly made subject to the
229 | following conditions.
230 |
231 | a. Attribution.
232 |
233 | 1. If You Share the Licensed Material (including in modified
234 | form), You must:
235 |
236 | a. retain the following if it is supplied by the Licensor
237 | with the Licensed Material:
238 |
239 | i. identification of the creator(s) of the Licensed
240 | Material and any others designated to receive
241 | attribution, in any reasonable manner requested by
242 | the Licensor (including by pseudonym if
243 | designated);
244 |
245 | ii. a copyright notice;
246 |
247 | iii. a notice that refers to this Public License;
248 |
249 | iv. a notice that refers to the disclaimer of
250 | warranties;
251 |
252 | v. a URI or hyperlink to the Licensed Material to the
253 | extent reasonably practicable;
254 |
255 | b. indicate if You modified the Licensed Material and
256 | retain an indication of any previous modifications; and
257 |
258 | c. indicate the Licensed Material is licensed under this
259 | Public License, and include the text of, or the URI or
260 | hyperlink to, this Public License.
261 |
262 | 2. You may satisfy the conditions in Section 3(a)(1) in any
263 | reasonable manner based on the medium, means, and context in
264 | which You Share the Licensed Material. For example, it may be
265 | reasonable to satisfy the conditions by providing a URI or
266 | hyperlink to a resource that includes the required
267 | information.
268 |
269 | 3. If requested by the Licensor, You must remove any of the
270 | information required by Section 3(a)(1)(A) to the extent
271 | reasonably practicable.
272 |
273 | b. ShareAlike.
274 |
275 | In addition to the conditions in Section 3(a), if You Share
276 | Adapted Material You produce, the following conditions also apply.
277 |
278 | 1. The Adapter's License You apply must be a Creative Commons
279 | license with the same License Elements, this version or
280 | later, or a BY-SA Compatible License.
281 |
282 | 2. You must include the text of, or the URI or hyperlink to, the
283 | Adapter's License You apply. You may satisfy this condition
284 | in any reasonable manner based on the medium, means, and
285 | context in which You Share Adapted Material.
286 |
287 | 3. You may not offer or impose any additional or different terms
288 | or conditions on, or apply any Effective Technological
289 | Measures to, Adapted Material that restrict exercise of the
290 | rights granted under the Adapter's License You apply.
291 |
292 |
293 | Section 4 -- Sui Generis Database Rights.
294 |
295 | Where the Licensed Rights include Sui Generis Database Rights that
296 | apply to Your use of the Licensed Material:
297 |
298 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right
299 | to extract, reuse, reproduce, and Share all or a substantial
300 | portion of the contents of the database;
301 |
302 | b. if You include all or a substantial portion of the database
303 | contents in a database in which You have Sui Generis Database
304 | Rights, then the database in which You have Sui Generis Database
305 | Rights (but not its individual contents) is Adapted Material,
306 |
307 | including for purposes of Section 3(b); and
308 | c. You must comply with the conditions in Section 3(a) if You Share
309 | all or a substantial portion of the contents of the database.
310 |
311 | For the avoidance of doubt, this Section 4 supplements and does not
312 | replace Your obligations under this Public License where the Licensed
313 | Rights include other Copyright and Similar Rights.
314 |
315 |
316 | Section 5 -- Disclaimer of Warranties and Limitation of Liability.
317 |
318 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
319 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
320 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
321 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
322 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
323 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
324 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
325 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
326 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
327 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
328 |
329 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
330 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
331 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
332 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
333 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
334 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
335 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
336 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
337 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
338 |
339 | c. The disclaimer of warranties and limitation of liability provided
340 | above shall be interpreted in a manner that, to the extent
341 | possible, most closely approximates an absolute disclaimer and
342 | waiver of all liability.
343 |
344 |
345 | Section 6 -- Term and Termination.
346 |
347 | a. This Public License applies for the term of the Copyright and
348 | Similar Rights licensed here. However, if You fail to comply with
349 | this Public License, then Your rights under this Public License
350 | terminate automatically.
351 |
352 | b. Where Your right to use the Licensed Material has terminated under
353 | Section 6(a), it reinstates:
354 |
355 | 1. automatically as of the date the violation is cured, provided
356 | it is cured within 30 days of Your discovery of the
357 | violation; or
358 |
359 | 2. upon express reinstatement by the Licensor.
360 |
361 | For the avoidance of doubt, this Section 6(b) does not affect any
362 | right the Licensor may have to seek remedies for Your violations
363 | of this Public License.
364 |
365 | c. For the avoidance of doubt, the Licensor may also offer the
366 | Licensed Material under separate terms or conditions or stop
367 | distributing the Licensed Material at any time; however, doing so
368 | will not terminate this Public License.
369 |
370 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
371 | License.
372 |
373 |
374 | Section 7 -- Other Terms and Conditions.
375 |
376 | a. The Licensor shall not be bound by any additional or different
377 | terms or conditions communicated by You unless expressly agreed.
378 |
379 | b. Any arrangements, understandings, or agreements regarding the
380 | Licensed Material not stated herein are separate from and
381 | independent of the terms and conditions of this Public License.
382 |
383 |
384 | Section 8 -- Interpretation.
385 |
386 | a. For the avoidance of doubt, this Public License does not, and
387 | shall not be interpreted to, reduce, limit, restrict, or impose
388 | conditions on any use of the Licensed Material that could lawfully
389 | be made without permission under this Public License.
390 |
391 | b. To the extent possible, if any provision of this Public License is
392 | deemed unenforceable, it shall be automatically reformed to the
393 | minimum extent necessary to make it enforceable. If the provision
394 | cannot be reformed, it shall be severed from this Public License
395 | without affecting the enforceability of the remaining terms and
396 | conditions.
397 |
398 | c. No term or condition of this Public License will be waived and no
399 | failure to comply consented to unless expressly agreed to by the
400 | Licensor.
401 |
402 | d. Nothing in this Public License constitutes or may be interpreted
403 | as a limitation upon, or waiver of, any privileges and immunities
404 | that apply to the Licensor or You, including from the legal
405 | processes of any jurisdiction or authority.
406 |
407 |
408 | =======================================================================
409 |
410 | Creative Commons is not a party to its public
411 | licenses. Notwithstanding, Creative Commons may elect to apply one of
412 | its public licenses to material it publishes and in those instances
413 | will be considered the “Licensor.” The text of the Creative Commons
414 | public licenses is dedicated to the public domain under the CC0 Public
415 | Domain Dedication. Except for the limited purpose of indicating that
416 | material is shared under a Creative Commons public license or as
417 | otherwise permitted by the Creative Commons policies published at
418 | creativecommons.org/policies, Creative Commons does not authorize the
419 | use of the trademark "Creative Commons" or any other trademark or logo
420 | of Creative Commons without its prior written consent including,
421 | without limitation, in connection with any unauthorized modifications
422 | to any of its public licenses or any other arrangements,
423 | understandings, or agreements concerning use of licensed material. For
424 | the avoidance of doubt, this paragraph does not form part of the
425 | public licenses.
426 |
427 | Creative Commons may be contacted at creativecommons.org.
428 |
--------------------------------------------------------------------------------
/intro.tex:
--------------------------------------------------------------------------------
1 | %% introduction to the book
2 | \chapter{Introduction to the topic of this book}
3 | \label{ch:intro}
4 |
5 | \begin{quote}
6 | \itshape \foreignlanguage{ngerman}{Poincar\'e sagte gelegentlich,
7 | dass alle Mathematik eine Gruppengeschichte war.
8 | Ich erz\"ahlte ihm dann \"uber dein Programm,
9 | das er nicht kannte.}
10 |
11 | \smallskip
12 |
13 | \noindent Poincar\'e was saying
14 | that all of mathematics was a tale about groups.
15 | I then told him about your program,
16 | which he didn't know about.
17 | \end{quote}
18 | \hfill (Letter from Sophus Lie to Felix Klein, October 1882)
19 |
20 | \bigskip
21 |
22 | %{\em If this book is about group theory, then here we will explain what's interesting about groups and why one would want to study them.}
23 |
24 |
25 | Since this book is called ``Symmetry'' it is reasonable to hope
26 | that by the time you've reached the end you'll have a clear idea of
27 | what symmetry means.
28 |
29 | Ideally the answer should give a solid foundation for dealing with
30 | questions about symmetries. It should also equip you with language
31 | with which to talk about symmetries, making precise -- but also
32 | reflecting faithfully -- the intuition humans seem to be born with.
33 |
34 | So, we should start by talking about how one intuitively can approach the
35 | subject while giving hints about how this intuition can be made into
36 | the solid, workable tool, which is the topic of this book.
37 |
38 | \sususe{What is symmetry?}
39 |
40 | When we say that something is ``symmetric'' or possesses many ``symmetries'',
41 | we mean that the thing remains unchanged, even if we ``do things to it.''
42 | The best examples to begin with is if the something is some shape, for
43 | instance this square $\square$. Rotating by 90 degrees doesn’t change it, so we may say that ``rotation by 90 degrees is a symmetry of $\square$''
44 | Of course, rotating by $90$ degrees will move individual points in $\square$, but that
45 | is not of essence -- the shape remains the same.
46 | However, the outcome of rotating by $360$ degree or not at all
47 | is the same - even from the point of view of each individual point in $\square$ -- so it probably feels contrived to count rotations by $0$ and $360$ degrees as different rotations.
48 |
49 | It feels reasonable to consider the rotations by $0$\textdegree, $90$\textdegree, $180$\textdegree, and $270$\textdegree{} to be all the (rotational) symmetries of $\square$. Two thoughts may strike you:
50 | \begin{enumerate}
51 | \item
52 | are these \emph{all} the symmetries?
53 | \item ``rotation'' indicates a \emph{motion}, through different squares,
54 | joining $\square$ with itself via a ``journey in the world of squares''.
55 |
56 | The following cartoon animates a rotation of $\square$ by $90$\textdegree.
57 | The center of the square should be thought of as being in the same place
58 | all the time.
59 | \end{enumerate}
60 | \begin{center}
61 | \begin{tikzpicture}
62 | \foreach \x/\s in {45/0,35/1,25/2,15/3,5/4,-5/5,-15/6,-25/7,-35/8,-45/9} {
63 | \begin{scope}[xshift=\s cm]
64 | \draw (\x:.3) -- (\x+90:.3) -- (\x+180:.3) -- (\x+270:.3) -- cycle;
65 | \end{scope}
66 | }
67 | % stick figure pushing
68 | \begin{scope}[thick,line cap=round]
69 | \node[dot] at (-.3,.3) {};
70 | \draw (-.4,.1) -- (-.212,.1);
71 | \draw (-.5,-.1) -- (-.35,.2);
72 | \draw (-.5,-.1) -- (-.35,-.1);
73 | \draw (-.5,-.1) -- (-.6,-.2);
74 | \draw (-.35,-.1) -- (-.38,-.3);
75 | \draw (-.38,-.3) -- (-.33,-.3);
76 | \draw (-.6,-.2) -- (-.78,-.28);
77 | \draw (-.78,-.28) -- (-.73,-.3);
78 | \end{scope}
79 | % stick figure resting
80 | \begin{scope}[thick,line cap=round,xshift=9cm]
81 | \node[dot] at (.5,.35) {};
82 | \draw (.5,.25) -- (.5,-.05);
83 | \draw (.5,-.05) -- (.6,-.3);
84 | \draw (.6,-.3) -- (.65,-.3);
85 | \draw (.5,-.05) -- (.4,-.3);
86 | \draw (.4,-.3) -- (.35,-.3);
87 | \draw (.5,.25) -- (.65,.1);
88 | \draw (.65,.1) -- (.5,-.02);
89 | \draw (.5,.25) -- (.35,.15);
90 | \draw (.35,.15) -- (.212,.212);
91 | \end{scope}
92 | \end{tikzpicture}
93 | \end{center}
94 | How is that reconcilable with a precise notion of symmetry?
95 |
96 | The answer to the first question clearly depends on the context.
97 | For example, if we allow reflections the answer is ``no''.
98 | Each context has its own answer to what the symmetries of the square are.
99 |
100 | Actually, the two questions should be seen as connected.
101 | If a symmetry of $\square$ is like a round trip (loop)
102 | in the world (type) of squares, what symmetries are allowed is
103 | dependent on how big a ``world of squares'' we consider.
104 | Is it, for instance, big enough to contain a loop representing a reflection?
105 |
106 | We argue that in order to pin down the symmetries of a thing (a ``shape''), all you need to do is specify
107 | \begin{enumerate}
108 | \item a type $X$ (of things), and
109 | \item the particular thing $x$ (in $X$).
110 | \end{enumerate}
111 | It is (almost) that simple!
112 |
113 | Note that this presupposes that our setup is strong enough to support the
114 | notion of a round trip.
115 |
116 | \sususe{From ``things'' to mathematical objects}
117 |
118 | Different setups have different advantages.
119 | The theory of sets is an absolutely wonderful setup, but supporting the
120 | notion of a round trip in sets requires at the very least developing fields
121 | like \emph{mathematical analysis}, \emph{topology} and \emph{homotopy theory},
122 | which (while fun and worthwhile in itself) is something of a detour.
123 |
124 | The setup we adopt, homotopy type theory, or univalent foundations,
125 | seems custom-built for supporting the notion of a round trip of
126 | a thing $x$ in a type $X$.
127 | We get support for important operations on round trips
128 | of $x$: one can do such round trips after another (composition),
129 | one can go any round trip in the reversed direction (inverse), and there
130 | is always the trivial round trip of staying in place (unit).
131 | This provides round trips with a structure that is called a \emph{group}
132 | in mathematics, satisfying all the properties that these operations
133 | ought to have.
134 |
135 | In practice, one of the most important things is to be able to \emph{compare}
136 | symmetries of ``thing~1'' and ``thing~2''.
137 | In our case this amounts to nothing but a function, $f: X_1 \to X_2$,
138 | that takes thing~1, $x_1$ in $X_1$, to thing~2, $x_2$ in $X_2$.
139 | \begin{center}
140 | \begin{tikzpicture}
141 | \begin{scope}[scale=0.8]
142 | \node (X) at (1,2) {$X_1$};
143 | \draw (0,-2)
144 | .. controls ++(150:-1) and ++(180:1) .. (3,-2)
145 | .. controls ++(180:-1) and ++(-100:1.3) .. (4.5,0)
146 | .. controls ++(-100:-1.3) and ++(-10:2) .. (2,1.5)
147 | .. controls ++(-10:-2) and ++(90:1) .. (-1,0)
148 | .. controls ++(90:-1) and ++(150:1) .. (0,-2);
149 | \node[dot,casred,label=left:$x_1$] (x1) at (0,0) {};
150 | \draw[->,casblue] (x1) .. controls ++(80:-1) and ++(170:1) .. (.5,-1.5)
151 | .. controls ++(170:-1) and ++(200:1) .. (3,-1.4)
152 | .. controls ++(200:-1) and ++(-80:.5) .. (3.8,0)
153 | .. controls ++(-80:-.5) and ++(-10:.3) .. (3,1)
154 | .. controls ++(-10:-.3) and ++(80:1) .. (x1);
155 | \draw (1,-1) arc(210:330:.8 and .5);
156 | \draw (2.09,-1.18) arc(60:120:.8 and .7);
157 | \draw (1.5,0) arc(210:330:.8 and .5);
158 | \draw (2.59,-0.18) arc(60:120:.8 and .7);
159 | \draw[->] (4.8,0) -- node[auto] {$f$} (6.3,0);
160 | \end{scope}
161 | \begin{scope}[xshift=6cm,scale=0.8]
162 | \node (X) at (1,2) {$X_2$};
163 | \draw (0,-1)
164 | .. controls ++(200:-1) and ++(180:1) .. (2,-2)
165 | .. controls ++(180:-1) and ++(270:1) .. (4,0)
166 | .. controls ++(270:-1) and ++(20:2) .. (2,2)
167 | .. controls ++(20:-2) and ++(90:1) .. (-1,0)
168 | .. controls ++(90:-1) and ++(200:1) .. (0,-1);
169 | \node[dot,casred,label=below:$x_2$] (x2) at (0,0) {};
170 | \draw[->,casblue] (x2) .. controls ++(-20:1.5) and ++(170:1) ..
171 | (2,-1) .. controls ++(170:-1) and ++(-70:1) ..
172 | (3.1,0) .. controls ++(-70:-1) and ++(90:.5) ..
173 | (3.5,0) .. controls ++(90:-.5) and ++(-120:2) ..
174 | (3,1) .. controls ++(-120:-2) and ++(-20:-1.5) .. (x2);
175 | \draw (1,0) arc(210:330:.8 and .5);
176 | \draw (2.09,-.18) arc(60:120:.8 and .7);
177 | \end{scope}
178 | \end{tikzpicture}
179 | \end{center}
180 | While such comparisons of symmetries are traditionally handled by something called a \emph{group homomorphism} which is a function satisfying a rather long list of axioms, in our setup the only thing we need to know of the function is that it really does take thing~1 to thing~2 -- everything else then follows naturally.
181 |
182 | Some important examples have provocatively simple representations in
183 | this framework. For instance, consider the circle shown in the margin,
184 | with one designated point $x$ on it.\marginnote{%
185 | \begin{tikzpicture}
186 | \node[dot,label=right:$x$] (base) at (1,0) {};
187 | \draw (0,0) circle (1);
188 | \end{tikzpicture}}
189 | Since symmetries of $x$ are interpreted as loops, you see that you have a loop for every integer -- the number $7$ can be represented by looping seven times counterclockwise. As we shall see, in our setup any loop in the circle is naturally identified with a unique integer (the \emph{winding number} if you will). Everything you can wish to know about the structure of the \emph{group of integers} is built-in in the circle.
190 |
191 | Another example is the \emph{free group of words in two letters $a$ and $b$}. This is represented by the figure eight in the margin.\marginnote{%
192 | \begin{tikzpicture}
193 | \node[dot,label=right:$x$] (base) at (1,0) {};
194 | \draw (0,0) circle (1);
195 | \draw (2,0) circle (1);
196 | \node (a) at (-.9,.9) {$a$};
197 | \node (b) at (2.9,.9) {$b$};
198 | \end{tikzpicture}}
199 | In order to be able to distinguish the two circles we call them $a$ and $b$,
200 | with the point $x$ as the (only) point on both.
201 | The word $ab^2a^{-1}$ is represented by looping around circles $a$ and $b$ respectively $1$, $2$ and $-1$ times in succession -- notice that since the $b^2$ is in the middle it prevents the $a$ and the $a^{-1}$ from meeting and cancelling each other out. If you wanted the \emph{abelian} group on the letters $a$ and $b$ (where $a$ and $b$ are allowed to move past each other), you should instead look at the torus:
202 | \begin{center}
203 | \begin{tikzpicture}
204 | \useasboundingbox (-3,-1.5) rectangle (3,1.5);
205 | \begin{scope}[xshift=2.4cm,yshift=.35cm,xscale=cos(25)]
206 | \draw[casred,line cap=round] (0,0) arc (65:148:0.7);
207 | \draw[casred] (0,0) arc (65:-40:0.7);
208 | \end{scope}
209 | \draw[casblue] (0,.35) ellipse (2.4 and 0.9);
210 | \draw (0,0) ellipse (3 and 1.5);
211 | \begin{scope}
212 | \clip (0,-1.8) ellipse (3 and 2.5);
213 | \draw (0,2.2) ellipse (3 and 2.5);
214 | \end{scope}
215 | \begin{scope}
216 | \clip (0,2.2) ellipse (3 and 2.5);
217 | \draw (0,-2.2) ellipse (3 and 2.5);
218 | \end{scope}
219 | \node[dot] at (2.4,0.35) {};
220 | \node (a) at (2.6,-.2) {$a$};
221 | \node (b) at (0,1) {$b$};
222 | \end{tikzpicture}
223 | \end{center}
224 | Just why this last example works can remain a puzzle for now.
225 |
226 | \sususe{The importance of the ambient type $X$ ``of things''}
227 |
228 | In many situations, the type $X$ ``of things'' can be more difficult to draw,
229 | or to define mathematically. For instance, what is the ``type of all squares'' which we discussed earlier, representing all rotational symmetries of $\square$? You have perhaps already visualized it as the type of all squares in the plane, with $\square$ being the shape the loop must start and stop in. This idea works well for the \emph{oriented square} depicted\marginnote{%
230 | \begin{tikzpicture}
231 | \draw[->] (0,0) -- (0,1);
232 | \draw[->] (0,1) -- (1,1);
233 | \draw[->] (1,1) -- (1,0);
234 | \draw[->] (1,0) -- (0,0);
235 | \end{tikzpicture}
236 | }
237 | in the margin. Note that the only reflective symmetry of the oriented
238 | square is reflection in the center -- and the outcome is the same
239 | as a rotation by $180$\textdegree. However, for $\square$ we would get
240 | reflective symmetries that are not rotations.
241 | It is actually a little difficult to come
242 | up with a simple geometry of the plane that gives exactly the rotational
243 | symmetries of $\square$. Later in the book, we will first pursue an
244 | algebraic approach, using that any rotational symmetry of $\square$
245 | can be reached by doing the $90$\textdegree-rotation a few times,
246 | together with the fact that taking any loop four times reduces to not doing
247 | anything at all: they represent the \emph{cyclic group of order four}.
248 |
249 | A by-product of this line of thinking is the distinguished position of the circle. To express this it is convenient to give names to things: let $\base$ (\ie a dot) be the chosen base point in the circle and $\Sloop$ the loop winding once around the circle counterclockwise. Then a symmetry of a shape $x_0$ in $X$ is uniquely given by the image of $\Sloop $ under a function $\Sc\to X$ taking $\base$ to $x_0$. So,
250 | \begin{quote}
251 | the study of symmetries is the study of (pointed) functions between types of things, with the circle being the type that gives you access to individual symmetries.
252 | \end{quote}
253 |
254 | This is similar to the idea of replacing membership in a set $S$ by function from a one-point set $1$ into $S$: a point $s$ in $S$ is uniquely given by the function $1\to S$ taking the value $s$.
255 |
256 |
257 | Just as you don't need much information about the one-point set to get this to work, you don't need much information about the circle to embark on a study of symmetries.
258 | Essentially you need to know of $\base $ and $\Sloop $, and that there is no ``hidden relation'' between the symmetries of $\base$. Contrast this to the type of squares which has such a ``hidden relation'': where we identified a $360$\textdegree\ rotation with doing nothing. This point of view has the benefit of being readily formalized while offering geometric intuition.
259 |
260 | \sususe{Symmetries have natural scopes}
261 |
262 | The natural scope of the symmetries of a thing $x$ in a type $X$
263 | are the things in $X$ that can be reached from $x$ by a journey in $X$.
264 |
265 | Let's make this precise with an example.
266 | In our setup,
267 | as a consequence of univalence, journeys from one set to another
268 | in the type of sets are
269 | uniquely given by one-to-one correspondences between these sets,
270 | commonly called \emph{bijections}.
271 |
272 | Now consider the set $\{1,2,3\}$. Then a symmetry of $\{1,2,3\}$ in the type of finite sets amounts to the same thing as a symmetry of $\{1,2,3\}$ in the type of sets with three elements: a symmetry of $\{1,2,3\}$ will not ``pass through'' sets that have, say, five elements. Think of the type of finite sets as being the disjoint union of all the types of sets with $n$-elements, where $n=0,1,2,\dots$: if a symmetry is a loop it should not be allowed to jump between the type of sets with three elements and the type of sets with five elements.\marginnote{%
273 | Type of empty sets:\\
274 | \begin{tikzpicture}
275 | \draw plot [smooth cycle] coordinates {(0,0) (3,-.5) (3.5,1) (1,2)};
276 | \node[dot,label=above right:{flying elephants}] (fe) at (.5,0) {};
277 | \node[dot,label=below:{live dodos}] (ld) at (2,1.5) {};
278 | \node at (1,0.75) {$\cdots$};
279 | \end{tikzpicture}\\
280 | Type of one-element sets:\\
281 | \begin{tikzpicture}
282 | \draw plot [smooth cycle] coordinates {(0,-.5) (3,0) (3.5,2) (1,1)};
283 | \node[dot,label=above:{$\{1\}$}] (one) at (1,0) {};
284 | \node[dot,label=below:{$\{\text{Calvin}\}$}] (calvin) at (2.5,1.3) {};
285 | \node at (2,0.25) {$\cdots$};
286 | \end{tikzpicture}\\
287 | Type of two-element sets:\\
288 | \begin{tikzpicture}
289 | \draw plot [smooth cycle] coordinates {(0,1) (1,-1) (3.7,-.5) (3.5,2) (1.5,1.5)};
290 | \node[dot,label=above:{$\{1,2\}$}] (onetwo) at (.5,.5) {};
291 | \node[dot,label=below:{$\{\text{Calvin},\text{Hobbes}\}$}]
292 | (calvinhobbes) at (2.5,1.5) {};
293 | \node[dot,label=below:{$\{9,\text{Louise}\}$}] (ninelouise) at (3,0.5) {};
294 | \node[dot,label=above:{$\{\text{Thelma},\text{Hobbes}\}$}]
295 | (thelmahobbes) at (2,-0.8) {};
296 | \node at (1.5,0.2) {$\cdots$};
297 | \node at (1.5,-1.5) {$\vdots$};
298 | \end{tikzpicture}}
299 |
300 | In fact, \emph{any} type $X$ can be naturally divided into ``components'': each
301 | element $x_0$ in $X$ belongs to one and only one component, and the one $x_0$
302 | belongs to we call $\conncomp X {x_0}$, and the symmetries of $x_0$ in $X$ may
303 | be identified with the symmetries of $x_0$ in $\conncomp X {x_0}$. Hence from
304 | the perspective of symmetries of $x_0$ only the component containing it matters,
305 | and we confine our discussion to ``connected'' types of things, \ie those having
306 | just one component.
307 |
308 | The geometric intuition also points to the possibility of seemingly different symmetries being identified: when looping once around the circle it shouldn't matter ``how'' or ``how fast'' you do it. Consider the picture of the abelian group on two letters ${\color{casred}a}$ and ${\color{casblue}b}$ from before, but now together with a more frivolous loop (in pink) homotopic to $a$:
309 | \begin{center}
310 | \begin{tikzpicture}
311 | \useasboundingbox (-3,-1.5) rectangle (3,1.5);
312 | \begin{scope}[xshift=2.4cm,yshift=.35cm,xscale=cos(25)]
313 | \draw[casred!25] (0,0) arc (65:425:0.685);
314 | \draw[casred,line cap=round] (0,0) arc (65:148:0.685);
315 | \draw[casred] (0,0) arc (65:-55:0.685);
316 | \end{scope}
317 | \draw[orange] (2.4,0.35) .. controls ++(.1,-.5) and ++(.6,.3) .. (2,-1.12);
318 | \draw[orange!25] (2,-1.12) .. controls ++(-.6,-.3) and ++(-.5,-.2) .. (1.21,-0.09);
319 | \draw[orange] (1.21,-0.09) .. controls ++(.5,.2) and ++(-.2,-.2) .. (2.4,0.35);
320 | \draw[casblue] (0,.35) ellipse (2.4 and 0.9);
321 | \draw (0,0) ellipse (3 and 1.5);
322 | \begin{scope}
323 | \clip (0,-1.8) ellipse (3 and 2.5);
324 | \draw (0,2.2) ellipse (3 and 2.5);
325 | \end{scope}
326 | \begin{scope}
327 | \clip (0,2.2) ellipse (3 and 2.5);
328 | \draw (0,-2.2) ellipse (3 and 2.5);
329 | \end{scope}
330 | \node[dot] at (2.4,0.35) {};
331 | \node (a) at (2.6,-.2) {$a$};
332 | \node (b) at (0,1) {$b$};
333 | \end{tikzpicture}
334 | \end{center}
335 | You might think of a symmetries of $x_0$ as a rubber band confined to the circle
336 | and pinned to $x_0$. In the picture we've drawn such a rubber band (in orange)
337 | which can be deformed to $a$, and this deformation we consider as
338 | an \emph{identification of the two symmetries}. In the language we adopt, this
339 | is hard-wired, and so our arguments are independent of any picture: pictures
340 | serve only as inspirations and are very helpful when trying to discover
341 | proofs.\footnote{There's a subtle point, which may be a source of
342 | confusion if brushed under the carpet: a priori there could be ``several
343 | ways'' in which two symmetries should be identified. For many purposes this
344 | poses no problem, but we want to present a theory that mirrors the classical
345 | theory faithfully, and so restrict our ``types of things'' where there aren't
346 | multiple ways of identifying symmetries. The technical term -- when we get
347 | that far will be ``pointed connected groupoids''. This means disallowing types
348 | like the sphere:
349 | \begin{center}
350 | \begin{tikzpicture}
351 | \draw (0,0) circle (1);
352 | \draw[casred] (0,0) ellipse (1 and .3);
353 | \node[dot,label=right:$x_0$] at (1,0) {};
354 | \end{tikzpicture}
355 | \end{center}
356 | There are fundamentally different ways of identifying the symmetry represented
357 | of $x_0$ by the equator with the trivial symmetry: when thought of as a rubber
358 | band the equator can contract either over the north or the south poles (or
359 | more complicated ways). There's something called ``truncation'' which can fix
360 | any type to one of the desired sort where identifications of symmetries are
361 | unique.}%endfootnote
362 |
363 | Our use of univalent foundations has several advantages. Roughly, univalence is the assertion that two types are ``equivalent'' if and only if there is a ``path'' (called an ``identification'') between them in the (large) ``type of types''. In group theory, two groups share exactly the same properties if there is an ``isomorphism'' between them (an invertible homomorphism), and with univalent foundation this is manifested by the isomorphism corresponding to a path between the groups in the type of groups. Hence we can use this path to transport any theorem about one group to the other: the two groups are ``identified''. The power of univalence is hard to overstate; it will simplify many proofs and make many statements accessible that otherwise would have been out of reach.
364 |
365 | There are many kinds of symmetry and many ways of studying it.
366 | Euclidean plane geometry is the study of properties that are invariant under rigid motions of the plane.
367 | Other kinds of geometry arise by considering other notions of transformation.
368 | Univalent mathematics gives a new perspective on symmetries:
369 | Motions of the plane are forms of identifying the plane with itself in possibly non-trivial ways.
370 | It may also be useful to consider different presentations of planes
371 | (for instance as embedded in a common three-dimensional space)
372 | and different identifications between them.
373 | For instance, when drawing images in perspective
374 | we identify planes in the scene with the image plane,
375 | not in a rigid Euclidean way, but
376 | rather via a perspectivity (see~\cref{fig:perspectivity}).
377 | This gives rise to projective geometry.
378 | \begin{marginfigure}
379 | \begin{center}
380 | \footnotesize
381 | \begin{tikzpicture}
382 | \node[dot,label=left:$O$] (O) at (0,0) {};
383 | \node[dot,casred,label=below:$A$] (A) at (1,-.3) {};
384 | \node[dot,casblue,label=below:$A'$] (Ap) at (2,-.6) {};
385 | \node[dot,casred,label={[label distance=-1pt]-95:$B$}] (B) at (.8,.2) {};
386 | \node[dot,casblue,label=right:$B'$] (Bp) at (2.4,.6) {};
387 | \node[dot,casred,label=above:$C$] (C) at (1.05,.7) {};
388 | \node[dot,casblue,label=above:$C'$] (Cp) at (2.1,1.4) {};
389 | \draw[casred,fill=casred!25] (A.center) -- (B.center) -- (C.center) -- cycle;
390 | \draw[casblue,fill=casblue!25] (Ap.center) -- (Bp.center) -- (Cp.center) -- cycle;
391 | \draw[dashed] (O) -- (Ap.center);
392 | \draw[dashed] (O) -- (Bp.center);
393 | \draw[dashed] (O) -- (Cp.center);
394 | \end{tikzpicture}
395 | \end{center}
396 | \caption{A perspectivity identifies the planes determined by the triangles $ABC$ and $A'B'C'$ in a way that doesn't preserve Euclidean distances or angles.}
397 | \label{fig:perspectivity}
398 | \end{marginfigure}
399 |
400 | Does that mean that a plane from the point of view of Euclidean
401 | geometry is not the same as a plane from the point of view of
402 | projective or affine geometry?
403 | Yes.
404 | These are of different types,
405 | because they have different notions of identification,
406 | and thus they have different properties.
407 |
408 | Here we follow Quine's dictum: No entity without identity!
409 | To know a type of objects is to know what it means to identify representatives of the type.
410 | The collection of self-identifications (self-transformations) of a given object form a \emph{group}.
411 |
412 | % TODO : Propositions, sets, and $1$-types (groupoids). (Here?)
413 |
414 | Group theory emerged from many different directions in the latter half of the 19\th century.
415 | Lagrange initiated the study of the invariants under permutations
416 | of the roots of a polynomial equation $f(x)=0$,
417 | which culminated in the celebrated work of Abel and Galois,
418 | proving the unsolvability of general quintic (and higher degree)
419 | polynomials by radicals.
420 | In number theory, Gauss had made detailed studies of modular arithmetic,
421 | proving for instance that the group of units of
422 | $\ZZ/n\ZZ$ is cyclic precisely when $n$ is $1$, $2$, $4$, $p^k$ or $2p^k$, where $p$ is an odd prime and $k > 0$.
423 | Klein was bringing order to geometry by considering groups of transformation,
424 | while Lie was applying group theory in analysis to the study of differential equations.
425 |
426 | Galois was the first to use the word ``group'' in a technical sense,
427 | speaking of collections of permutations closed under composition.
428 | He realized that the existence of a resolvent equation is equivalent
429 | to the existence of a normal subgroup of prime index
430 | in the group of the equation.
431 |
432 | \subsection{Who is this book for?}
433 | \label{sec:who}
434 | At the outset the plan for this book was that it ought to cater for two very groups of readers. If you already have a classical first course in abstract group theory, this text has as its ambition that you should gain a new perspective on the material, \emph{and at the same time} learn about homotopy type theory by seeing it applied to a field you are familiar with. However, at the outset, another audience seemed just as plausible to us: what if you're not well versed in abstract algebra, but open to learning about it from a type theoretic perspective? This might apply to a computer science student with aspirations towards the many applications of algebra.
435 |
436 | The first audience may have become our predominant target as the book has progressed, partially because it probably is more sizable than the second since most students have been brain-washed to think only in terms of sets at the time they're ready for this book.
437 |
438 | \subsection{Outline of the book}
439 | \label{sec:outline}
440 |
441 | % describing the same thing gives a particular forceful setup
442 | %
443 | %(still being developed)..}
444 |
445 | TBD
446 |
447 | All of mathematics is a tale, not about groups,
448 | but about $\infty$-groupoids.
449 | However, a lot of the action happens already with groups.
450 |
451 | \section*{Glossary of coercions}
452 |
453 | Throughout this book we will use the following coercions to make the text more readable.
454 | \begin{itemize}[noitemsep]
455 | \item If $X$ is the pointed type $(A,a)$, then $x:X$ means $x:A$.
456 | \item On hold, lacking context: If $p$ and $q$ are paths, then $(p,q)$ means $(p,q)^=$.
457 | \item If $e$ is a pair of a function and a proof, we also use $e$ for the function.
458 | \item If $e$ is an equivalence between types $A$ and $B$, we use $\etop e$ for the
459 | identification of $A$ and $B$ induced by univalence.
460 | \item If $p: A= B$ with $A$ and $B$ types, then we use $\ptoe p$ for the canonical
461 | equivalence from $A$ to $B$ (also only as function).
462 | %\item If $G$ is the group $(A,a,p,q)$, then $g:G$ means $g: a=_A a$. %TODO: El
463 | \item If $X$ is $(A,a,\ldots)$ with $a:A$, then $\pt_X$ and even just $\pt$ mean $a$.
464 | \end{itemize}
465 |
466 | \section*{How to read this book}
467 |
468 | \noindent\emph{A word of warning.}\enspace
469 | We include a lot of figures to make it easier to follow the material.
470 | But like all mathematical writing, you'll get the most out of it,
471 | if you maintain a skeptical attitude:
472 | Do the pictures really accurately represent the formal constructions?
473 | Don't just believe us: Think about it!
474 |
475 | The same goes for the proofs: When we say that something \emph{clearly} follows,
476 | it should be \emph{clear to you}.
477 | So clear, in fact, that you could go and convince a proof assistant,
478 | should you so desire.
479 |
480 | \section*{Acknowledgement}
481 |
482 | The authors acknowledge the support of the Centre for Advanced Study (CAS)
483 | at the Norwegian Academy of Science and Letters
484 | in Oslo, Norway, which funded and hosted the research project Homotopy
485 | Type Theory and Univalent Foundations during the academic year 2018/19,
486 | as well as the CAS Alumni Fellowship, which financed several meetings and gatherings instrumental to getting the book closer to its final form.
487 |
488 | %%% Local Variables:
489 | %%% mode: latex
490 | %%% TeX-master: "book"
491 | %%% End:
492 |
--------------------------------------------------------------------------------
/symmetry.tex:
--------------------------------------------------------------------------------
1 | % Commented out BID 211116 \section{Cayley diagram}
2 | % \label{sec:cayley-diagram}
3 |
4 | % We have seen in the previous chapter how cyclic groups
5 | % (those generated by a single generator)
6 | % have neatly described torsors.
7 |
8 | % In this section we shall generalize this story
9 | % to groups $G$ generated by a
10 | % (finite or just decidable)
11 | % set of generators $S$.
12 |
13 | % \tikzset{vertex/.style={circle,fill=black,inner sep=0pt,minimum size=4pt}}
14 | % \tikzset{gena/.style={draw=casblue,-stealth}}
15 | % \tikzset{genb/.style={draw=casred,-stealth}}
16 |
17 | % \begin{figure}
18 | % \begin{sidecaption}%
19 | % {Cayley diagram for $S_3$ with respect to $S = \{(12),(23)\}$.}[fig:cayley-s3]
20 | % \centering
21 | % \begin{tikzpicture}
22 | % \pgfmathsetmacro{\len}{2}
23 | % \node[vertex,label=30:$(13)$] (n13) at (30:\len) {};
24 | % \node[vertex,label=90:$(132)$] (n132) at (90:\len) {};
25 | % \node[vertex,label=150:$(12)$] (n12) at (150:\len) {};
26 | % \node[vertex,label=210:$e$] (ne) at (210:\len) {};
27 | % \node[vertex,label=270:$(23)$] (n23) at (270:\len) {};
28 | % \node[vertex,label=330:$(123)$] (n123) at (330:\len) {};
29 | % \begin{scope}[every to/.style={bend left=22}]
30 | % % generator a is (12)
31 | % \draw[gena] (ne) to (n12);
32 | % \draw[gena] (n12) to (ne);
33 | % \draw[gena] (n13) to (n132);
34 | % \draw[gena] (n132) to (n13);
35 | % \draw[gena] (n123) to (n23);
36 | % \draw[gena] (n23) to (n123);
37 | % % generator b is (23)
38 | % \draw[genb] (ne) to (n23);
39 | % \draw[genb] (n23) to (ne);
40 | % \draw[genb] (n13) to (n123);
41 | % \draw[genb] (n123) to (n13);
42 | % \draw[genb] (n12) to (n132);
43 | % \draw[genb] (n132) to (n12);
44 | % \end{scope}
45 | % \end{tikzpicture}
46 | % \end{sidecaption}
47 | % \end{figure}
48 |
49 | % $G \equiv \Aut(D_G) \to \Sym(\Card G)$
50 |
51 | % \section{Actions}
52 | % MOVED TO G-SETS BID 211116
53 | % \label{sec:actions}
54 |
55 | % \begin{definition}\label{action}
56 | % If $G$ is any (possibly higher) group and $A$ is any type of objects,
57 | % then we define an \emph{action} by $G$ in the world of elements of $A$ as a function
58 | % \[
59 | % X : \BG \to A.\qedhere
60 | % \]
61 | % \end{definition}
62 |
63 | % The particular object of type $A$ being acted on is $X(\pt):A$,
64 | % and the action itself is given by transport.
65 | % This generalizes our earlier definition of $G$-sets, $X : \BG \to \Set$.
66 |
67 | % \begin{definition}\label{std-action}
68 | % The \emph{standard action} of $G$ on its designated shape $\shape_G$ is obtained by
69 | % taking $A \defeq \B G$ and $X \defeq \id_{\B G}$.
70 | % \end{definition}
71 |
72 | % \begin{example}
73 | % An action of $G$ on its set $\USymG$ of symmetries is provided by taking $X$ to be the principal torsor $\princ G$ as defined in
74 | % \cref{def:principaltorsor}.
75 | % \end{example}
76 |
77 | % Notice that the type $\BG \to A$ is equivalent to the type
78 | % \[
79 | % \sum_{a:A}\hom(G,\Aut_A(a)),
80 | % \]
81 | % that is, the type of pairs of an element $a : A$,
82 | % and a homomorphism from $G$ to the automorphism group of $A$.
83 | % The equivalence maps $X:\BG\to A$ to the pair consisting of $X(\pt)$
84 | % and the homomorphism represented by the pointed map arising
85 | % from corestricting $X$ to factor through the component of $A$ containing $a$
86 | % together with the trivial proof that this map takes $\pt:\BG$ to $a$.
87 |
88 | % Because of this equivalence,
89 | % we define a \emph{$G$-action on $a:A$}
90 | % to be a homomorphism from $G$ to $\Aut_A(a)$.
91 |
92 | % Many times we are particularly interested in actions on types,
93 | % i.e., $A$ is a universe (or the universe of types-at-large):
94 | % \[
95 | % X : \BG \to \UU.
96 | % \]
97 |
98 | % In this case, we define \emph{orbit type} of the action as
99 | % \[
100 | % X_G \defeq \sum_{z:\BG} X(z),
101 | % \]
102 | % and the type of \emph{fixed points} as
103 | % \[
104 | % X^G \defeq \prod_{z:\BG} X(z).
105 | % \]
106 | % The set of orbits is the set-truncation of the orbit type,
107 | % \[
108 | % X / G \defeq \Trunc{X_G}_0.
109 | % \]
110 | % We say that the action is \emph{transitive} if $X / G$ is contractible.
111 |
112 | % \section{Heaps \texorpdfstring{$(\dagger)$}{(\textdagger)}}
113 | % \label{sec:heaps}
114 |
115 | % Recall that we in \cref{rem:heap-preview} wondered about
116 | % the status of general identity types $a=_A a'$,
117 | % for $a$ and $a'$ elements of a groupoid $A$,
118 | % as opposed to the more special loop types $a=_Aa$.\marginnote{%
119 | % This section has no implications for the rest of the book,
120 | % and can thus safely be skipped on a first reading.
121 | % (TODO: Move in place in \cref{ch:groups}?)}
122 | % Here we describe the resulting algebraic structure
123 | % and how it relates to groups.
124 |
125 | % We proceed in a fashion entirely analogous to that of \cref{sec:typegroup},
126 | % but instead of looking a pointed types, we look at \emph{bipointed types}.
127 |
128 | % \begin{definition}\label{def:bipt-conn-groupoid}
129 | % The type of \emph{bipointed, connected groupoids} is the type
130 | % \[
131 | % \UUppone \defeq \sum_{A:\UU^{=1}}(A \times A).\qedhere
132 | % \]
133 | % \end{definition}
134 | % Recall that $\UU^{=1}$ is the type of connected groupoids $A$,
135 | % and that we also write $A:\UU$ for the underlying type.
136 | % We write $(A,a,a'):\UUppone$ to indicate the two endpoints.
137 |
138 | % Analogous to the loop type of a pointed type,
139 | % we have a designated identity type of a bipointed type,
140 | % where we use the two points as the endpoints of the identifications:
141 | % We set $\ISym(A,a,a') \defeq (a =_A a')$.
142 |
143 | % \needspace{6\baselineskip}
144 | % \begin{definition}\label{def:heap}
145 | % The type of \emph{heaps}\footnote{%
146 | % The concept of heap (in the abelian case)
147 | % was first introduced by Prüfer\footnotemark{}
148 | % under the German name \emph{Schar} (swarm/flock).
149 | % In Anton Sushkevich's book
150 | % \casrus{Теория Обобщенных Групп}
151 | % (\emph{Theory of Generalized Groups}, 1937),
152 | % the Russian term \casrus{груда} (heap)
153 | % is used in contrast to \casrus{группа} (group).
154 | % For this reason, a heap is sometimes
155 | % known as a ``groud'' in English.}%
156 | % \footcitetext{Pruefer-AG}
157 | % is a wrapped copy (\cf \cref{sec:unary-sum-types})
158 | % of the type of bipointed, connected groupoids $\UUppone$,
159 | % \[
160 | % \Heap \defeq \Copy_{\mkheap}(\UUppone),
161 | % \]
162 | % with constructor $\mkheap : \UUppone \to \Heap$.
163 | % \end{definition}
164 | % We call the destructor $\B : \Heap \to \UUppone$,
165 | % and call $\BH$ the \emph{classifying type} of the heap $H \jdeq\mkheap\BH$,
166 | % just as for groups,
167 | % and we call the first point in $BH$ is \emph{start shape} of $H$,
168 | % and the second point the \emph{end shape} of $H$.
169 |
170 | % The identity type construction $\ISym : \UUppone \to \Set$
171 | % induces a map $\USym : \Heap \to \Set$,
172 | % mapping $\mkheap X$ to $\ISym X$.
173 | % These are the \emph{underlying identifications} of the heaps.
174 |
175 | % These is an obvious map (indeed a functor) from groups to heaps,
176 | % given by doubling the point.
177 | % That is, we keep the classifying type and use the designated shape
178 | % as both start and end shape of the heap.
179 | % In fact, this map lifts to the type of heaps with a chosen identification.
180 | % \begin{exercise}\label{xca:group+torsor-heap}
181 | % Define natural equivalences $\Heap \weq \sum_{G:\Group}\BG$,
182 | % and $\Group \weq \sum_{H:\Heap}(\USymH)$.
183 | % \end{exercise}
184 | % Recalling the equivalence between $\BG$ and the type of $G$-torsors
185 | % from~\cref{lem:BGbytorsor},
186 | % we can also say that a heap is the same
187 | % as a group $G$ together with a $G$-torsor.\footnote{%
188 | % But be aware that are \emph{two} such descriptions,
189 | % according to which endpoint is the designated shape,
190 | % and which is the ``twisted'' torsor.}
191 | % It also follows that the type of heaps is a (large) groupoid.
192 |
193 | % In the other direction,
194 | % there are \emph{two} obvious maps (functors) from heaps to groups,
195 | % taking either the start or the end shape to be the designated shape.
196 |
197 | % Here's an \emph{a priori} different map from heaps to groups:
198 | % For a heap $H$, consider all the
199 | % symmetries of the underlying set of identifications $\USymH$
200 | % that arise as $r \mapsto p\inv q r$ for $p,q\in \USymH$.
201 |
202 | % Note that $(p,q)$ and $(p',q')$ determine the same symmetry
203 | % if and only if $p\inv q = p'\inv{q'}$, and if and only if
204 | % $\inv{p'}p = \inv{q'}q$.
205 |
206 | % For the composition, we have $(p,q)(p',q') = (p\inv{q}p',q') = (p,q'\inv{p'}q)$.
207 |
208 | % \begin{exercise}
209 | % Complete the argument that this defines a map
210 | % from heaps to groups. Can you identify the resulting group
211 | % with the symmetry group of the start or end shape?
212 | % How would you change the construction to get the other endpoint?
213 | % \end{exercise}
214 |
215 | % \begin{exercise}
216 | % Show that the symmetry groups of the two endpoints of a heap
217 | % are \emph{merely} isomorphic.
218 |
219 | % Define the notion of an \emph{abelian heap},
220 | % and show that for abelian heaps,
221 | % the symmetry groups of the endpoints are (\emph{purely}) isomorphic.
222 | % \end{exercise}
223 |
224 | % Now we come to the question of describing the algebraic structure
225 | % of a heap.
226 | % Whereas for groups we can define the abstract structure
227 | % in terms of the reflexivity path and the binary operation of path composition,
228 | % for heaps, we can define the abstract structure
229 | % in terms of a \emph{ternary operation},
230 | % as envisioned by the following exercise.
231 |
232 | % \begin{exercise}\label{xca:heap-variety}
233 | % Fix a set $S$.
234 | % Show that the fiber $\inv{\USym}(S)\jdeq\sum_{H:\Heap}(S=\USymH)$ is a set.
235 |
236 | % Now fix in addition a ternary operation $t:S\times S\times S\to S$ on $S$.
237 | % Show that the fiber of the map $\Heap \to \sum_{S:\Set}(S\times S\times S \to S)$,
238 | % mapping $H$ to $(\USymH,(p,q,r)\mapsto p \inv{q} r)$,
239 | % at $(S,t)$ is a proposition,
240 | % and describe this proposition in terms of equations.
241 | % \end{exercise}
242 |
243 | % \section{Semidirect products}
244 | % \label{sec:Semidirect-products}
245 |
246 | % In this section we describe a generalization of the product of two group, called the {\em semidirect} product, which can be constructed from an
247 | % action of a group on a group. Like the product, it consists of pairs, both at the level of concrete groups and of abstract groups, as we shall
248 | % see.
249 |
250 | % We start with some preliminaries on paths between pairs.
251 | % Lemma \cref{lem:isEq-pair=} above takes a simpler form when $y$ and $y'$ are values of a family $x \mapsto f(x)$
252 | % of elements of the family $x \mapsto Y(x)$, as the following lemma shows.
253 |
254 | % \begin{lemma}\label{lem:pathpairsection}
255 | % Suppose we are given a type $X$ and a family of types $Y(x)$ parametrized by the elements $x$ of $X$.
256 | % Suppose we are also given a function $f : \prod_{x:X} Y(x)$.
257 | % For any elements $x$ and $x'$ of $X$,
258 | % there is an equivalence of type
259 | % $$\left ( (x,f(x)) = (x',f(x')) \right ) \weq (x=x') \times (f(x) = f(x)),$$
260 | % where the identity type on the left side is between elements of $\sum_{x:X} Y(x)$.
261 | % \end{lemma}
262 |
263 | % \begin{proof}
264 | % By \cref{lem:isEq-pair=} and by composition of equivalences, it suffices to establish an equivalence of type
265 | % $$\left( \sum_{p:x=x'} \pathover {f(x)} Y p {f(x')} \right) \weq (x=x') \times (f(x) = f(x)).$$
266 | % Rewriting the right hand side as a sum over a constant family, it suffices to find an equivalence of type
267 | % $$\left( \sum_{p:x=x'} \pathover {f(x)} Y p {f(x')} \right) \weq \sum_{p:x=x'} (f(x) = f(x)).$$
268 | % By \cref{lem:fiberwise} it suffices to establish an equivalence of type
269 | % $$ \left( \pathover {f(x)} Y p {f(x')} \right) \weq (f(x) = f(x))$$
270 | % for each $p:x=x'$. By induction on $x'$ and $p$ we reduce to the case where $x'$ is $x$ and $p$ is $\refl x$, and it suffices to establish an
271 | % equivalence of type
272 | % $$ \left( \pathover {f(x)} Y {\refl x} {f(x)} \right) \weq (f(x) = f(x)).$$
273 | % Now the two sides are equal by definition, so the identity equivalence provides what we need.
274 | % \end{proof}
275 |
276 | % The lemma above shows how to rewrite certain paths between pairs as pairs of paths. Now we wish to establish the formula for composition of
277 | % paths, rewritten in terms of pairs of paths, but first we introduce a convenient definition for the transport of loops in $Y(x)$ along paths in
278 | % $X$.
279 |
280 | % \begin{definition}\label{def:pathsectionaction}
281 | % Suppose we are given a type $X$ and a family of types $Y(x)$ parametrized by the elements $x$ of $X$.
282 | % Suppose we are also given a function $f : \prod_{x:X} Y(x)$.
283 | % For any elements $x$ and $x'$ of $X$ and for any identity $p : x = x'$, define a function $(f(x') = f(x')) \to (f(x) = f(x))$, to be denoted
284 | % by $q' \mapsto {q'} ^ p$, by induction on $p$ and $x'$, reducing to the case where $x'$ is $x$ and $p$ is $\refl x$, allowing us to
285 | % set ${q'} ^{ \refl x } \defeq q'$.
286 | % \end{definition}
287 |
288 | % We turn now to associativity for the operation just defined.
289 |
290 | % \begin{lemma}\label{def:pathsectionactionassoc}
291 | % Suppose we are given a type $X$ and a family of types $Y(x)$ parametrized by the elements $x$ of $X$.
292 | % Suppose we are also given a function $f : \prod_{x:X} Y(x)$.
293 | % For any elements $x$, $x'$, and $x''$ of $X$, for any identities $p : x = x'$ and $p' : x' = x''$,
294 | % and for any $q : f x'' = f x''$,
295 | % there is an identification of type $ ( q ^{ p' }) ^ p = q ^{( p' \cdot p )}$.
296 | % \end{lemma}
297 |
298 | % \begin{proof}
299 | % By induction on $p$ and $p'$, it suffices to show that $ ( q ^{ \refl y }) ^ { \refl y } = q ^{( \refl y \cdot \refl y )}$, in which both sides are
300 | % equal to $q$ by definition.
301 | % \end{proof}
302 |
303 | % Observe that the operation depends on $f$, but $f$ is not included as part of the notation.
304 |
305 | % The next lemma contains the formula we are seeking.
306 |
307 | % \begin{lemma}\label{lem:pathpairsectionmult}
308 | % Suppose we are given a type $X$ and a family of types $Y(x)$ parametrized by the elements $x$ of $X$.
309 | % Suppose we are also given a function $f : \prod_{x:X} Y(x)$.
310 | % For any elements $x$, $x'$, and $x''$ of $X$, and for any two identities $e : (x,f(x)) = (x',f(x'))$ and $e' : (x',f(x')) = (x'',f(x''))$,
311 | % if $e$ corresponds to the pair $(p,q)$ with $p : x = x'$ and $q : f x = f x$ under the equivalence of \cref{lem:pathpairsection},
312 | % and $e'$ corresponds to the pair $(p',q')$ with $p' : x' = x''$ and $q' : f x' = f x'$,
313 | % then $e' \cdot e$ corresponds to the pair $(p' \cdot p , ({q'} ^ p) \cdot q)$.
314 | % \end{lemma}
315 |
316 | % \begin{proof}
317 | % By induction on $p$ and $p'$ we reduce to the case where $x'$ and $x''$ are $x$ and $p$ and $p'$ are $\refl x$.
318 | % It now suffices to show that $e' \cdot e$ corresponds to the pair $(\refl x , q' \cdot q)$.
319 | % Applying the definition of the map $\Phi$ in the proof of \cref{lem:isEq-pair=} to our three pairs, we see that it suffices to show that
320 | % $\left( \apap g {\refl x} {q'} \right) \cdot \left( \apap g {\refl x} {q} \right) = \apap g {\refl x} {q' \cdot q}$, with $g$, as there, being the function $ g(x)(y) \defeq (x,y)$.
321 | % By \cref{def:applfun2comp} it suffices to show that $\left( \ap {g(x)} {q'} \right) \cdot \left( \ap {g(x)} {q} \right) = \ap {g(x)} {(q' \cdot q)}$, which follows from
322 | % compatibility of $\ap {g(x)}$ with composition, as in \cref{lem:apcomp}.
323 | % \end{proof}
324 |
325 | % The lemma above will be applied mostly in the case where $x'$ and $x''$ are $x$, but if it had been stated only for that case, we would not have
326 | % been able to argue by induction on $p$ and $p'$.
327 |
328 | % \begin{definition}\label{def:semidirect-product}
329 | % Given a group $G$ and an action $\tilde H : \BG \to \typegroup$ on a group $H \defeq \tilde H(\shape_G)$, we define a group called the {\em
330 | % semidirect product} as follows.
331 | % $$G \ltimes \tilde H \defeq \mkgroup { \sum_{t:\BG} \B \tilde H(t) }$$
332 | % Here the basepoint of the sum is taken to be the point $(\shape_G,\shape_H)$.
333 | % (We deduce from \cref{lem:level-n-utils}, \cref{level-n-utils-sum}, that $\sum_{t:\BG} \B \tilde H(t)$ is a groupoid.
334 | % See \cref{lem:UNKNOWN} for a proof that $\sum_{t:\BG} \B \tilde H(t)$ is connected.)
335 | % \end{definition}
336 |
337 | % Observe that if the action of $G$ on $H$ is trivial, then $\tilde H(t) \jdeq H$ for all $t$ and $G \ltimes \tilde H \jdeq G \times H$.
338 |
339 | % Projection onto the first factor gives a homomorphism $p \defeq \mkgroup \fst : G \ltimes \tilde H \to G$.
340 | % Moreover, there is a homomorphism $s : G \to G \ltimes \tilde H$ defined by
341 | % $ s \defeq \mkgroup {\left( t \mapsto (t,\shape_{\tilde H(t)}) \right) }$, for $t : \B G$.
342 | % The two maps are homomorphisms because they are made from basepoint-preserving maps.
343 | % The map $s$ is a \emph{section} of $p$ in the sense the $p \circ s = \id_G$.
344 | % There is also a homomorphism $j : H \to G \ltimes \tilde H$ defined by $j \defeq \mkgroup { \left( u \mapsto (\shape_G,u) \right) }$, for $u : \B H$.
345 |
346 | % \begin{lemma}
347 | % The homomorphism $j$ above is a monomorphism, and it gives the same (normal) subgroup of $G \ltimes \tilde H$ as the kernel $\ker p$ of $p$.
348 | % \end{lemma}
349 |
350 | % \begin{proof}
351 | % See \ref{def:kernel} for the definition of kernel. According to \cref{lem:fst-fiber(a)=B(a)}, the map $\B H \to (\B p)^{-1}(\shape_G)$ defined by
352 | % $ u \mapsto ((\shape_G,u), \refl{\shape_G}) $ is an equivalence. This establishes that the fiber $(\B p)^{-1}(\shape_G)$ is connected and thus serves as
353 | % the classifying type of $\ker p$. Pointing out that the composite map $H \xrightarrow{\isom} \ker p \to G \ltimes \tilde H$ is $j$ and using
354 | % univalence to promote the equivalence to an identity gives the result.
355 | % \end{proof}
356 |
357 | % Our next goal is to present the explicit formula for the multiplication operation in $\USym { G \ltimes \tilde H }$.
358 | % First we apply \cref{lem:pathpairsection} to get a bijection $\USym { G \ltimes \tilde H } \weq \USymG \times \USymH$.
359 | % Now use that to transport the multiplication operation of the group $\USym { G \ltimes \tilde H }$ to the set $\USymG \times \USymH$.
360 | % Now \cref{lem:pathpairsectionmult} tells us the formula for that transported operation is given as follows.
361 | % $$ (p',q') \cdot (p,q) = (p' \cdot p , ({q'} ^ p) \cdot q) $$
362 | % In a traditional algebra course dealing with abstract groups, this formula is used as the definition of the multiplication operation
363 | % on the set $\USymG \times \USymH$, but then one must prove that the operation satisfies the properties of \cref{def:abstractgroup}.
364 | % The advantage of our approach is that the formula emerges from the underlying logic that governs how composition of paths works.
365 |
366 | \section{The isomorphism theorems}
367 | \label{sec:noether-theorems}
368 |
369 | Cf.~\cref{sec:stuff-struct-prop}
370 |
371 | Group homomorphisms provide examples of forgetting stuff and structure.
372 | For example, the map from cyclically ordered sets with cardinality $n$
373 | to the type of sets with cardinality $n$ forgets structure,
374 | and represents an injective group homomorphism from the cyclic
375 | group of order $n$ to the symmetric group $\Sigma_n$.
376 |
377 | And the map from pairs of $n$-element sets to $n$-element sets
378 | that projects onto the first factor clearly forgets stuff,
379 | namely, the other component.
380 | It represents a surjective group homomorphism.
381 |
382 | More formally, fix two groups $G$ and $H$,
383 | and consider a homomorphism $\varphi$ from $G$ to $H$,
384 | considered as a pointed map $\B\varphi : \BG \to_\pt \BH$.
385 | Then $\B\varphi$ factors as
386 | \begin{align*}
387 | \BG
388 | = &\sum_{w:\BH}\sum_{z:\BG}(\B\varphi(z)=w)\\
389 | \to_\pt &\sum_{w:\BH}\;\Trunc[\Big]{\sum_{z:\BG}(\B\varphi(z)=w)}_0\\
390 | \to_\pt &\sum_{w:\BH}\;\Trunc[\Big]{\sum_{z:\BG}(\B\varphi(z)=w)}_{-1} = \BH.
391 | \end{align*}
392 | The pointed, connected type in the middle represents a group
393 | that is called the \emph{image} of $\varphi$, $\Img(\varphi)$.
394 |
395 |
396 | (FIXME: Quotient groups as automorphism groups, normal subgroups/normalizer, subgroup lattice)
397 |
398 | \begin{lemma}
399 | \label{lem:aut-orbit}
400 | The automorphism group of the $G$-set $G/H$ is isomorphic to $\N_G(H)/H$.
401 | \end{lemma}
402 |
403 | \begin{theorem}[Fundamental Theorem of Homomorphisms]
404 | \label{thm:fund-thm-homs}
405 | For any homomorphism $f : \Hom(G,G')$
406 | the map {\color{blue} TODO} defines an isomorphism
407 | $G/\ker f \simeq \im f$.\footnote{TODO: Fix and move to Ch. 5}
408 | \end{theorem}
409 |
410 | % Where does this go?!
411 | \section{More about automorphisms}
412 | \label{sec:automorphisms}
413 |
414 | % Written to record somewhere the results of a discussion with Bjorn
415 | For every group $G$ (which for the purposes of the discussion
416 | in this section we allow to be a higher group)
417 | we have the automorphism group $\Aut(G)$.
418 | This is of course the group of self-identifications $G = G$ in the type of groups, $\Group$.
419 | If we represent $G$ by the pointed connected classifying type $\BG$,
420 | then $\Aut(G)$ is the type of pointed self-equivalences of $\BG$.
421 |
422 | We have a natural forgetful map from groups to the type of connected groupoids.
423 | Define the type $\Bunch$ to be the type of all connected groupoid.
424 | If $X:\Bunch$, then all the elements of $X$ are merely isomorphic,
425 | that is, they all look alike,
426 | so it makes sense to say that $X$ consists of a \emph{bunch} of alike objects.
427 |
428 | For every group $G$ we have a corresponding bunch, $\BG_\div$,
429 | \ie{} the collection of $G$-torsors,
430 | and if we remember the basepoint $\shape_G : \BG_\div$,
431 | then we recover the group $G$.
432 | Thus, the type of groups equivalent to the type
433 | $\sum_{X : \Bunch} X$
434 | of pairs of a bunch together with a chosen element.
435 | (This is essentially our definition of the type $\Group$.)
436 |
437 | Sometimes we want to emphasize that we $\BG_\div$ is a bunch,
438 | so we define $\bunch(G) \defeq \BG_\div : \Bunch$.
439 |
440 | \begin{definition}[The center as an abelian group]
441 | \label{def:center}
442 | Let
443 | $$Z(G) \defeq \prod_{z : \BG}(z = z)$$ denote the type of fixed points of the adjoint action of $G$ on itself.
444 | This type is equivalent to the automorphism group of the identity on $\bunch(G)$,
445 | and hence the loop type of
446 | \[
447 | \B Z(G) \defeq \sum_{f : \BG \to \BG} \merely{f \sim \id}.
448 | \]
449 | This type is itself the loop type of the pointed, connected type
450 | \[
451 | \B^2Z(G) \defeq \sum_{X : \Bunch}\Trunc{\bunch(G) = X}_0,
452 | \]
453 | and we use this to give $Z(G)$ the structure of an \emph{abelian} group,
454 | called the \emph{center} of $G$.
455 | \end{definition}
456 | There is a canonical homomorphism from $Z(G)$ to $G$ given by the pointed map
457 | from $\B Z(G)$ to $\BG$ that evaluates at the point $\shape_G$.
458 | The fiber of the evaluation map $e : \B Z(G) \to_\pt \BG$ is
459 | \begin{align*}
460 | \fiber_e(\shape_G)
461 | &\jdeq \sum_{f : \BG \to \BG} \merely{f \sim \id} \times (\mathop f \shape_G = \shape_G) \\
462 | &\equiv \sum_{f : \BG \to_\pt \BG} \merely{f \sim \id},
463 | \end{align*}
464 | and this type is the loop type of the pointed, connected type
465 | \[
466 | \B\Inn(G) \defeq \sum_{H : \Group} \Trunc{\bunch(G) = \bunch(H)}_0,
467 | \]
468 | thus giving the homomorphism $Z(G)$ to $G$ a normal structure with
469 | quotient group $\Inn(G)$, called the \emph{inner automorphism group}.
470 |
471 | Note that there is a canonical homomorphism from $\Inn(G)$ to $\Aut(G)$
472 | given by the pointed map $i : \B\Inn(G) \to \B\Aut(G)$ that forgets the component.
473 | On loops, $i$ gives the inclusion into $\Aut(G)$ of the subtype of automorphisms of $G$
474 | that become merely equal to the identity automorphism of $\bunch(G)$.
475 | The fiber of $i$ is
476 | \begin{align*}
477 | \fiber_i(\shape_G)
478 | &\jdeq \sum_{H : \Group} \Trunc{\bunch(G) = \bunch(H)}_0 \times (H = G) \\
479 | &\equiv \Trunc{\bunch(G) = \bunch(G)}_0.
480 | \end{align*}
481 | This is evidently the type of loops in the pointed, connected groupoid
482 | \[
483 | \B\Out(G) \defeq \Trunc*{\sum_{X : \Bunch}\merely{\bunch(G) = X}}_1,
484 | \]
485 | thus giving the homomorphism $\Inn(G)$ to $\Aut(G)$ a normal structure with
486 | quotient group $\Out(G)$, called the \emph{outer automorphism group}.
487 | Note that $\Out(G)$ is always a $1$-group,
488 | and that it is the decategorification of $\Aut(\bunch(G))$.
489 |
490 | \begin{theorem}\label{thm:hom-mod-conj}
491 | Let two groups $G$ and $H$ be given.
492 | There is a canonical action of $\Inn(H)$
493 | on the set of homomorphisms from $G$ to $H$, $\Trunc{\BG \to_\pt \BH}_0$.
494 | This gives rise to an equivalence
495 | \[
496 | \Trunc{\BG_\div \to \BH_\div}_0 \equiv \Trunc*{\left(\Trunc{\BG \to_\pt \BH}_0\right) _{h\Inn(H)}}_0
497 | \]
498 | between the set of maps from $\bunch(G)$ to $\bunch(H)$ and the set of
499 | components of the orbit type of this action.
500 | \end{theorem}
501 | \begin{proof}
502 | We give the action by defining a type family $X : \B\Inn(H) \to \UU$ as follows
503 | \[
504 | X\, \angled{K,\phi} \defeq \Trunc{\Hom(G,K)}_0 \jdeq \Trunc{\BG \to_\pt \BK}_0,
505 | \]
506 | for $\angled{K,\phi} : \B\Inn(H) \jdeq \sum_{K : \Group} \Trunc{\bunch(H) = \bunch(K)}_0$.
507 | Now we can calculate
508 | \begin{align*}
509 | \Trunc{X_{\Inn(H)}}_0
510 | &\jdeq \Trunc*{\sum_{K:\Group}\Trunc{\bunch(H)=\bunch(K)}_0\times\Trunc{\Hom(G,K)}}_0 \\
511 | &\equiv \Trunc*{\sum_{K:\Group}(\bunch(H)=\bunch(K))\times\Hom(G,K)}_0 \\
512 | &\equiv \Trunc*{\sum_{K:\Bunch}\sum_{k:K}(\bunch(H)=K)\times\sum_{f:\bunch(G)\to K)}\mathop f \pt = k}_0 \\
513 | &\equiv \Trunc*{\sum_{K:\Bunch} (\bunch(H)=K) \times(\bunch(G) \to K)}_0 \\
514 | &\equiv \Trunc*{\bunch(G)\to\bunch(H)}_0 \jdeq \Trunc*{\BG_\div \to \BH_\div}_0.\qedhere
515 | \end{align*}
516 | \end{proof}
517 |
518 | % \section{Orbit type as a groupoid completion(*)}
519 | %deleted BID 211116
520 | % \emph{This is a somewhat advanced topic that should occur much later, if at all.}
521 |
522 | % \bigskip
523 |
524 | % Suppose $G$ is a group acting on a groupoid $X$,
525 | % given by a map $X : \BG \to_\pt \B\!\Aut(X_0)$,
526 | % with $e_X : X(\pt) = X_0$.
527 | % By induction on $e_X$ we may assume that $X_0\jdeq X(\pt)$
528 | % and $e_X\jdeq\refl{}$.
529 |
530 | % We have the orbit type $X_{hG} \jdeq \sum_{T:\BG}X(T)$.
531 | % We think of this as identifying elements of $X_0$
532 | % that are in the same orbit,
533 | % in the sense that there are new identifications of $x$ and $y$
534 | % for group elements $g$ with $g\cdot x = y$.
535 |
536 | % In this section we study one way of making this intuition precise.
537 |
538 | % Consider the pregroupoid $C_G(X)$ with object type $X_0$ and morphism sets
539 | % \[
540 | % \hom(x,y) \defeq \sum_{g:G}(g\cdot x = y),
541 | % \]
542 | % where $g\cdot x \defeq g_*(x)$. The identity at $x$ is
543 | % $(1,\id)$, while the composite of $(g,p):\hom(x,y)$ with
544 | % $(h,q):\hom(y,z)$ is $(hg,r)$, where $r$ is built from $p$ and $q$ as
545 | % follows:
546 | % \[
547 | % hg \cdot x = h\cdot(g\cdot x) = h\cdot y = z.
548 | % \]
549 |
550 | % We have a functor of pregroupoids $F: C_G(X) \to X_{hG}$
551 | % defined on objects by
552 | % $F(x) := (\pt,x)$ and on morphisms $(g,p):\hom(x,y)$ by $F(g,p) :=
553 | % (g,p)^=$.
554 |
555 | % This functor is essentially surjective on objects (by connectivity of
556 | % $\BG$) and fully faithful by the characterization of paths in
557 | % $\sum$-types. Hence it induces an equivalence from the completion of
558 | % $C_G(X)$ to $X_{hG}$.
559 |
560 | % As a corollary, the orbit set $X/G \jdeq \Trunc{X_{hG}}_0$,
561 | % is the set quotient of $X_0$ modulo the equivalence relation
562 | % $x \sim y \defeq \exists g:G, g\cdot x = y$.
563 |
564 | %%% Local Variables:
565 | %%% mode: latex
566 | %%% fill-column: 144
567 | %%% TeX-master: "book"
568 | %%% End:
569 |
570 |
--------------------------------------------------------------------------------
/fingp.tex:
--------------------------------------------------------------------------------
1 | \chapter{Finite groups}
2 | \label{ch:fingp}
3 |
4 |
5 |
6 | %\section{Finite groups}
7 | \label{sec:fingp}
8 |
9 | Objects having only a finite number of symmetries can be analyzed through counting arguments. The strength of this approach is stunning.
10 |
11 | The orbit-stabilizer theorem \cref{con:orbit-stabilizer} is at the basis of this analysis: if $G$ is a group and $X:\BG\to\Set$ is a $G$-set, then
12 | $$X(\shape_G)\simeq \coprod_{x:X/G}\mathcal O_x$$
13 | and each orbit set $\mathcal O_x$ is equivalent to the cokernel of the inclusion $G_x\subseteq G$ of the stabilizer subgroup of $x$.
14 | Consequently, if $X(\shape_G)$ is a finite set, then its cardinality is the sum of the cardinality of these cokernels. If also the set $\USymG$ is finite much more can be said and simple arithmetical considerations often allow us to deduce deep statements like the size of a certain subset of $X(\shape_G)$ and in particular whether or not there are any fixed points.
15 |
16 | \begin{example}
17 | A typical application could go like this.
18 | If $X(\shape_G)$ is a finite set with $13$ elements and for some reason we know that all the orbits have cardinalities dividing $8$ -- which we'll see happens if $\USymG$ has $8$ elements -- then we must have that some orbits are singletons (for a sum of positive integers dividing $8$ to add up to $13$, some of them must be $1$).
19 | That is, $X$ has fixed points.
20 | \end{example}
21 |
22 | The classical theory of finite groups is all about symmetries coupled with simple counting arguments.
23 | Lagrange's \cref{xca:lagrange} gives the first example: if $H$ is a subgroup of $G$, then the cardinality ``$|G|$'' of $\USymG$ is divisible by $|H|$, putting severe restrictions on the possible subgroups. For instance, if $|G|$ is a prime number, then $G$ has no nontrivial proper subgroups! (actually, $G$ is necessarily a cyclic group). To prove this result we interpret $G$ as an $H$-set.
24 |
25 |
26 | Further examples come from considering the $G$-set $\typesubgroup_G$ of subgroups of $G$ from \cref{sec:subgroups}. Knowledge about the $G$-set of subgroups is of vital importance for many applications and Sylow's theorems in \cref{sec:sylow} give the first restriction on what subgroups are possible and how they can interact. The first step is Cauchy's \cref{thm:cauchys} which says that if $|G|$ is divisible by a prime $p$, then $G$ contains a cyclic subgroup of order $p$. Sylow's theorems goes further, analyzing subgroups that have cardinality powers of $p$, culminating in very detailed and useful information about the structure of the subgroups with cardinality the maximal possible power of $p$.
27 | \begin{example}
28 | For instance, for the permutation group $\Sigma_3$, Sylow's theorems will deduce from the simple fact $|\Sigma_3|=6$ that $\Sigma_3$ contains a unique subgroup $|H|$ with $|H|=3$. Since it is unique, $H$ must be a normal subgroup.
29 |
30 | On the other hand, for $\Sigma_4$ the information $|\Sigma_4|=24$ only suffices to tell us that there are either $1$ or $4$ subgroups $K$ with $|K|=3$, but that all of them are conjugate. However, the inclusion of $\Sigma_3$ in $\Sigma_4$ shows that the $H\subseteq\Sigma_3$ above (which is given by the cyclic permutations of three letters) can be viewed as a subgroup of $\Sigma_4$, and elementary inspection gives that this subgroup is not normal. Hence there must be more than one subgroup $K$ with $|K|=3$, pinning the number of such subgroups down to $4$.
31 |
32 | Indeed, $\Sigma_n$ has $n(n-1)(n-2)/6$ subgroups of order $3$ (for $n>2$), but when $n>5$ something like a phase transformation happens: the subgroups of order $3$ are no longer all conjugate. This can either be seen as a manifestation of the fact that $3^2=9$ divides $n!=|\Sigma_n|$ for $n>5$ or more concretely by observing that there is room for ``disjoint'' cyclic permutations. For instance the subgroup of cyclic permutations of $\{1,2,3\}$ will not be conjugate to the subgroup of cyclic permutations of $\{4,5,6\}$. Together these two cyclic subgroups give a subgroup $K$ with $|K|=9$ and there are $10$ of these (one for each subset of $\{1,2,3,4,5,6\}$ of cardinality $3$).
33 | \end{example}
34 |
35 | \begin{remark}
36 | \label{rem:noofsubgps}
37 | One should observe that the number of subgroups is often very large and the structure is often quite involved, even for groups with a fairly manageable size and transparent structure (for instance, the number of subgroups of the group you get by taking the product of the cyclic group $C_2$ with itself $n$ times grows approximately as $7\cdot2^{n^2/4}$ -- \eg $C_2^{\times 18}$ has $17741753171749626840952685$ subgroups, see
38 | \url{https://oeis.org/A006116}).
39 | \end{remark}
40 |
41 | % One should observe that the number of subgroups is usually very large and the structure is often quite involved, even for groups with a fairly manageable size (for instance, $\Sigma_6$ has $1455$ subgroups distributed over $56$ conjugacy classes). Getting a full description is most often a hopeless endeavor; the good thing is that partial information often leads to stunning results. The importance of the Sylow's theorems is that they provide us with with an inroad to the most important building blocks, even for groups where we have a much less concrete description than for instance permutation groups.
42 |
43 | \section{Brief overview of the chapter}
44 | \label{sec:fingp-overview}
45 | We start by giving the above-mentioned counting version \cref{lem:Lagrangeascounting} of Lagrange's theorem \cref{xca:lagrange}.
46 | We then moves on to prove Cauchy's \cref{thm:cauchys} stating that any finite group whose cardinality is divisible by a prime $p$ has a cyclic subgroup of cardinality $p$.
47 | Cauchchy's theorem has many applications, and we use it already in \cref{sec:sylow} in the proof of Sylow's Theorems which give detailed information about the subgroups of a given finite group $G$. Sylow's theorems is basically a study of the $G$-set of subgroups of $G$ from a counting perspective.
48 | In particular, if $p^n$ divides the cardinality of $G$, but $p^{n+1}$ does not, then Sylow's Third \cref{thm:sylow3} gives valuable information about the cardinality of the $G$-set of subgroups of $G$ of cardinality $p^n$.
49 |
50 |
51 | \section{Lagrange's theorem, counting version}
52 | \label{sec:Lagrangecounting}
53 |
54 | We start our investigation by giving the version of Lagrange's theorem which has to do with counting, but first we pin down some language.
55 | \begin{definition}
56 | \label{def:finitegrd}
57 | A \emph{finite group}\index{finite group} is a group such that the set $\USymG$ is finite. If $G$ is a finite group, then the \emph{\gporder}\index{\gporder} $|G|$ is the cardinality of the finite set $\USymG$ (\ie $\USymG:\conncomp\FinSet{|G|}$).
58 | \end{definition}
59 | \begin{example}
60 | The trivial group has \gporder $1$, the cyclic group $C_n$ of order $n$ has \gporder $n$ %(which is good)
61 | and the permutation group $\Sigma_n$ has \gporder $n!$.
62 | \end{example}
63 |
64 |
65 | In the literature, ``order'' and ``cardinality'' are used interchangeably for groups.
66 |
67 |
68 | For finite groups, Lagrange's \cref{xca:lagrange} takes on the form of a counting argument
69 | \begin{lemma}[Lagrange's theorem: counting version]
70 | \label{lem:Lagrangeascounting}
71 | Let $i:\Hom(H,G)$ be a subgroup of a finite group $G$. Then
72 | $$|G|=|G/H|\cdot|H|.$$
73 | If $|H|=|G|$, then $H=G$ (as subgroups of $G$).
74 | \end{lemma}
75 | \begin{proof}
76 | Consider the $H$ action of $H$ on $G$, \ie the $H$-set $i^*G:\BH\to\Set$ with $i^*G(x)\defequi(\shape_G=\Bi(x))$, so that $G/H$ is just another name for the orbits $i^*G/H\defequi \sum_{x:\BH}i^*G(x)$. Note that composing with the structure identity $p_i:\shape_G=\Bi(\shape_H)$ gives an equivalence $i^*G(\shape_H)\equiv \USymG$, so that $|i^*G(\shape_H)|= |G|$.
77 |
78 | Lagrange's \cref{xca:lagrange} says that $i^*G$ is a free $H$-set \footnote{\cref{xca:lagrange} doesn't say this at present: fix it} and so all orbits $\mathcal O_x$ are equivalent to the $H$-set $\tilde H(x)=(\shape_H=x$).
79 | Consequently, the equivalence
80 | $$i^*G(\shape_H)\simeq\sum_{x:i^*G/H}\mathcal O_x$$
81 | of \cref{sec:orbit-stabilizer-theorem} gives that $G/H$ and $H$ are finite and that $|G|=|G/H|\cdot|H|$.\footnote{somewhere: prove that if $A$ is a finite set and $B(a)$ is a family of finite sets indexed over $a:A$, then $\sum_{a:A}B(a)$ is a finite set of cardinality $\sum_{i:\bn n}|B(f(i))|$ for any $f:\bn n=A$, hence if $m=|B(a)|$ for all $a$ then $|\sum_AB(a)|=n\cdot m$.}
82 |
83 |
84 | Finally, since we are considering a subgroup, the preimage $\Bi^{-1}(\pt)$ is equivalent to the set $G/H$. If $|H|=|G|$, then $|G/H|=1$ and so the set $G/H$ is contractible.\end{proof}
85 |
86 |
87 | \begin{corollary}
88 | \label{cor:cyclicgroupsaresimple}
89 | If $p$ is a prime, then the cyclic group $C_p$ has no non-trivial proper subgroups.
90 | \end{corollary}
91 | \begin{proof}
92 | By Lagrange's counting \cref{lem:Lagrangeascounting} a subgroup of $C_p$ has \gporder dividing $p=|C_p|$, \ie either $1$ or $p$.
93 | \end{proof}
94 |
95 | \begin{corollary}
96 | \label{cor:whatSylow2needs}Let $f:\Hom(G,G')$ be a surjective homomorphism with kernel $N$ and let $H$ be a subgroup of $G$. If $H$ and $G'$ are finite with coprime cardinalities, then $H$ is a subgroup of $N$.
97 | \end{corollary}
98 | \begin{proof}
99 | Let $i:\Hom(H,G)$ be the inclusion. By \cref{lem:whatSylow2needs} the intersection $N\cap H$ is the kernel of the composite $fi:\Hom(H,G')$. Let $H'$ be the image of $fi$. Now, Lagrange's counting \cref{lem:Lagrangeascounting} gives that $|H|=|H'|\cdot |N\cap H|$ and $|G'|=|G'/H'|\cdot|H'|$. This means that $|H'|$ divides both $|H|$ and $|G'|$, but since these numbers are coprime we must have that $|H'|=1$, and finally that $|H|=|N\cap H|$. This implies that $N\cap H=H$, or in other words, that $H$ is a subgroup of $N$ ((elaborate)).
100 | \end{proof}
101 |
102 | \begin{corollary}
103 | If $G$ and $G'$ are finite groups, then the \gporder $|G\times G'|$ of the product is the product $|G|\cdot| G'|$ of the \gporders.
104 | \end{corollary}
105 | \begin{remark}
106 | Hence the \gporder of the $n$-fold product of \cref{rem:noofsubgps} of $C_2$ with itself is ($2^n$ and so grows quickly, but is still) dwarfed by the number of subgroups as $n$ grows.
107 | \end{remark}
108 |
109 |
110 | \section{Cauchy's theorem}
111 | \begin{lemma}
112 | \label{lem:fixedptsize}
113 | Let $p$ be a prime and $G$ a group of \gporder $p^n$ for some positive $n:\NN$. If $X:\BG\to\Set$ is a non-empty finite $G$-set such that the cardinality of $X(\shape_G)$ is divisible by $p$, then the cardinality of the set of fixed points $X^G\defequi\prod_{z:\BG}X(z)$ is divisible by $p$.
114 | \end{lemma}
115 | \begin{proof}
116 | Recall that the evaluation at $\shape_G$ gives an injection of sets $X^G\to X(\shape_G)$ through which we identify $X^G$ with the subset ``$X(\shape_G)^G$'' of all trivial orbits of $X(\shape_G)$.
117 | The orbits of $X(\shape_G)$\footnote{or of $X$? Reference for identification of orbits with quotients by stabilizers} all have cardinalities that divide the \gporder $p^n$ of $G$.
118 | This means that all the the cardinalities of the non-trivial orbits (as well as of $X(\shape_G)$) are positive integers divisible by $p$.
119 |
120 | Burnside's Lemma \cref{lem:burnsides-lemma} states that $X(\shape_G)$ is the sum of its orbits.
121 | Hence the cardinality of the set of all trivial orbits, \ie of $X^G$, is the difference of two numbers both divisible by $p$.
122 | \end{proof}
123 |
124 | \begin{theorem}
125 | \label{thm:cauchys}
126 | Let $p$ be a prime and let $G$ be a finite group of \gporder divisible by $p$.
127 | Then $G$ has a subgroup which is cyclic of \gporder $p$.
128 | \end{theorem}
129 | \begin{proof}
130 | Recall the cyclic group $\CG_p \defequi \Aut_{\Cyc} \zet/p$ of \gporder $p$ where $\zet/p \defequi (\bn p, s)$ is the standard $p$-cycle. In
131 | other words, there is an identification of pointed groupoids
132 | $$\B\CG_p \eqto (\sum_{S:\Set}\sum_{j:S \eqto S}||(S,j)=\zet/p||,(\zet/p,!)).
133 | $$
134 | Informally, $\B\CG_p$ consists of pairs $(S,j)$, where $S$ is a set of cardinality $p$ and $j:S\eqto S$ is a cyclic permutation in the sense that for $00$, assume by induction that $G$ contains a subgroup $K$ of \gporder $p^{n-1}$.
240 | Now, $K$ acts on the set $G/K$.
241 | The cardinality of $G/K$ is divisible by $p$ (since $p^n$ divides the \gporder of $G$), and so by \cref{lem:fixedptsize} the fixed point set $(G/K)^K$ has cardinality divisible by $p$.
242 |
243 | Recall the Weyl group $W_GK$.
244 | By \cref{lem:WGHisHfixofG/H},
245 | $$|W_GK|=|(G/K)^K|,$$
246 | % cardinality of the (Weyl) group $W_GH$ is the same as the cardinality of $(G/K)^K$,
247 | and so $W_GK$ has \gporder divisible by $p$.
248 |
249 | Recall the normalizer subgroup $N_G(K)$ of $G$ from \cref{def:normalizer} and \cref{sec:noether-theorems} %-- the ``largest subgroup of $G$ containing $K$ as a normal subgroup'' --
250 | and the surjective homomorphism $p_G^H$ from $N_GH$ to $W_GH$, %$:\Hom(N_GH,W_GH)$
251 | whose kernel may be identified with $H$ so that $|N_GH|=|W_GH|\cdot|H|$ by Lagrange's theorem.
252 |
253 |
254 | By Cauchy's \cref{thm:cauchys} there is a subgroup $L$ of $W_GK$ of \gporder $p$.
255 | Taking the preimage of $L$ under the projection $p_G^H:\Hom(N_GH,W_GH)$, %$\mathrm{pr}:N_G(K)\to N_G(K)/K$
256 | or, equivalently, the pullback
257 | %that is, considering the pullback
258 | $$\BH\defequi \BL\times_{\BW_GK}\BN_GK,$$
259 | we obtain a subgroup $H$ of $N_G(K)$ of \gporder $p^n$ ($H$ is a free $K$-set with $p$ orbits). The theorem is proven by considering $H$ as a subgroup of $G$.
260 | \end{proof}
261 | \begin{definition}
262 | \label{def:sylowsubgroup}
263 | Let $p^n$ be the largest power of $p$ which divides the \gporder of $G$. A subgroup of $G$ of \gporder $p^n$ is called a \emph{$p$-Sylow subgroup}\index{Sylow subgroup} of $G$ and $\mathrm{Syl}_G^p$ is the $G$-subset of $\typesubgroup_G$ of $p$-Sylow subgroups of $G$.
264 | \end{definition}
265 | \begin{lemma}
266 | \label{lem:numberofconjofSylow}
267 | Let $G$ be a finite group and $P$ a $p$-Sylow subgroup. Then the number of conjugates of $P$ is not divisible by $p$.
268 | \end{lemma}
269 | \begin{proof}
270 | Let $X$ be the $G$-set of conjugates of $P$. Being a $G$-orbit, $X$ is equivalent $G/\mathrm{Stab}_P$, where $P$ is the stabilizer subgroup of $P$. Now, $P$ is contained in the stabilizer so the highest power of $p$ dividing the \gporder of $G$ also divides the \gporder of $\mathrm{Stab}_P$.
271 | \end{proof}
272 |
273 | \begin{theorem}
274 | \label{thm:sylow2}%\begin{lemma}
275 | \label{lem:sylowsareconjugates}\footnote{ ((the approach below is on the abstract G-sets which may be ok given that this is what we're counting, but consider whether there is a more typie approach))}
276 | Let $G$ be a finite group. Then any two $p$-Sylow subgroups are conjugate, or in other words, the $G$-set $\mathrm{Syl}_G^p$ is transitive.
277 |
278 | Furthermore, if $H$ a subgroup of $G$ of \gporder $p^s$ and $P$ a $p$-Sylow subgroup of $G$. Then $H$ is conjugate to a subgroup of $P$.
279 | \end{theorem}
280 |
281 | \begin{proof}
282 | We prove the last claim first.
283 | Consider the set $\mathcal O_P$ of conjugates of $P$ as an $H$-set. Since the cardinality of $\mathcal O_P\simeq G/Stab_P$ is prime to $p$ there must be an $H$-fixed point $Q$. In other words, $H\subseteq Stab_Q$. By \cref{lem:thereisaconjugate} there is a conjugate $H'$ of $H$ with $H'\subseteq Stab_P$. Now, $P\subseteq Stab_P$ (ref) is a normal subgroup and so by.
284 | \footnote{the end of the sentence appears to be missing}
285 |
286 | The first claim now follows, since if both $H$ and $P$ are $p$-Sylow subgroup, then a conjugate of $H$ is a subgroup of $P$, but since these have the same cardinalities they must be equal.
287 | \end{proof}
288 |
289 |
290 |
291 |
292 | \begin{theorem}
293 | \label{thm:sylow3}
294 | Let $G$ be a finite group and let $P$ be a $p$-Sylow subgroup of $G$. Then the cardinality of $\mathrm{Syl}_G^p$
295 | \begin{enumerate}
296 | \item divides $|G|/|P|$ and
297 | \item is $1$ modulo $p$.
298 | \end{enumerate}
299 | \end{theorem}
300 | \begin{proof}
301 | \cref{thm:sylow2} claims that $\mathrm{Syl}_G^p$ is transitive, so as a $G$-set it is equivalent to $G/N_GP$ ($N_GP$ is the stabilizer of $P$ in $\typesubgroup_G$. Since $P$ is a subgroup of $N_GP$ we get that $|P|$ divides $N_GP$ and so $|\mathrm{Syl}_G^p|=|G|/|N_GP|$ divides $|G|/|P|$.
302 |
303 | Let $i$ be the inclusion of $P$ in $G$ and consider the $P$-set $i^*\mathrm{Syl}_G^p$ obtained by restricting to $P$. Since the cardinality only depends on the underlying set we have that $|i^*\mathrm{Syl}_G^p|=|\mathrm{Syl}_G^p|$ and we analyze the decomposition into $P$-orbits to arrive at our conclusion.
304 |
305 | Let $Q:i^*\mathrm{Syl}_G^p$ be a fixed point, \ie $P\subseteq N_GQ$. Now, since $N_GQ$ is a subgroup of $G$, we get that $|N_GQ|$ divides $|G$, so this proves that $P$ is a $p$-Sylow subgroup of $N_GQ$. However, the facts that $Q$ is normal in $N_GQ$ and that all Sylow subgroups being conjugates together conspire to show that $P=Q$. That is, the number of fixed points in $i^*\mathrm{Syl}_G^p$ is one. Since $P$ is a $p$-group, all the other orbits have cardinalities divisible by $p$, and so
306 | $$|\mathrm{Syl}_G^p|=|i^*\mathrm{Syl}_G^p|\oldequiv 1\mod p.$$
307 | \end{proof}
308 |
309 | ((Should we include standard examples, or is this not really wanted in this book?))
310 |
311 | %\section{Lagrange}
312 | %\section{Sylow stuff?}
313 |
314 | % Local Variables:
315 | % fill-column: 144
316 | % latex-block-names: ("lemma" "theorem" "remark" "definition" "corollary" "fact" "properties" "conjecture" "proof" "question" "proposition" "exercise")
317 | % TeX-master: "book"
318 | % End:
319 |
--------------------------------------------------------------------------------