├── .github └── workflows │ └── latexmk.yml ├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── SymmetryBook.v ├── TO DO.md ├── abelian.tex ├── absgroup.tex ├── actions.tex ├── book.tex ├── cas.gst ├── cayley.jl ├── cc-by-sa.pdf ├── choicefin.tex ├── circle.tex ├── congp.tex ├── fggroups.tex ├── fields.tex ├── fingp.tex ├── galois.tex ├── geometry.tex ├── group.tex ├── history.tex ├── icocayley.html ├── icosahedron.html ├── intro-uf.tex ├── intro.tex ├── latexmkrc ├── macros.tex ├── marginfix.sty ├── metamath.tex ├── papers.bib ├── subgroups.tex ├── symmetry.tex ├── tikz-external-hash.sty └── tikzsetup.tex /.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 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | *) -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | 37 | \frontmatter 38 | \thetitlepage 39 | \thecopyrightpage 40 | 41 | \renewcommand*{\contentsname}{Short contents} 42 | \setcounter{tocdepth}{0} % chapter 43 | \tableofcontents 44 | \clearpage 45 | \renewcommand*{\contentsname}{Contents} 46 | \setcounter{tocdepth}{1} % section 47 | \tableofcontents 48 | 49 | %\include{preface} 50 | 51 | \mainmatter 52 | 53 | \include{intro} 54 | \include{intro-uf} 55 | \include{circle} 56 | \include{group} 57 | \include{actions} 58 | \include{absgroup} 59 | \include{congp} 60 | \include{subgroups} 61 | \include{fingp} 62 | \include{fggroups} 63 | \include{abelian} 64 | \include{fields} 65 | \include{geometry} 66 | \include{galois} 67 | 68 | \appendix 69 | \crefalias{chapter}{appendix} 70 | \include{history} 71 | \include{metamath} 72 | 73 | \backmatter 74 | 75 | % No margin notes in the back matter 76 | \begin{fullwidth} 77 | \raggedright 78 | \printbibliography 79 | \printglossary 80 | \printindex 81 | \end{fullwidth} 82 | \end{document} 83 | 84 | % Local Variables: 85 | % fill-column: 144 86 | % latex-block-names: ("lemma" "theorem" "remark" "definition" "corollary" "fact" "properties" "conjecture" "proof" "question" "proposition" "exercise") 87 | % TeX-master: t 88 | % TeX-command-extra-options: "-fmt=macros" 89 | % compile-command: "make book.pdf" 90 | % End: 91 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /cc-by-sa.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UniMath/SymmetryBook/6a9a6ca2805660bb9df7b0125807198de7bc8396/cc-by-sa.pdf -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /fields.tex: -------------------------------------------------------------------------------- 1 | \chapter{Fields and vector spaces} 2 | \label{ch:fields} 3 | 4 | Quotients; subspaces (= ?). Bases and so. Dual space; orthogonality. (all of this depends on good implementations of subobjects). Eigen-stuff. Characteristic polynomials; Hamilton-Cayley. 5 | \section{the algebraic hierarchy: groups, abelian groups, rings, fields} 6 | 7 | \begin{definition} 8 | A \textbf{ring} $R$ is an abstract abelian group with a binary function $(-) \cdot (-):R \times R \to R$ and an element $1:R$ such that for all elements $a:R$, $a \cdot 1 = a$ and $1 \cdot a = a$, for all elements $a:R$, $b:R$, and $c:R$, $a \cdot (b \cdot c) = (a \cdot b) \cdot c$, for all elements $a:R$, $b:R$, and $c:R$, $a \cdot (b + c) = a \cdot b + a \cdot c$, and for all elements $a:R$, $b:R$, and $c:R$, $(a + b) \cdot c = a \cdot c + b \cdot c$. 9 | \end{definition} 10 | 11 | \begin{definition} 12 | A ring $R$ is \textbf{commutative} if for all elements $a:R$ and $b:R$, $a \cdot b = b \cdot a$. 13 | $$\mathrm{isCRing}(R) := \mathrm{isRing}(R) \times \prod_{a:R} \prod_{b:R} a \cdot b = b \cdot a$$ 14 | \end{definition} 15 | 16 | \begin{definition} 17 | A commutative ring $R$ is \textbf{nontrivial} if $0 \neq 1$ 18 | $$\mathrm{isNonTrivialCRing}(R) := \mathrm{isCRing}(R) \times (0 \neq 1)$$ 19 | \end{definition} 20 | 21 | \begin{definition} 22 | Given a commutative ring $R$, an element $e:R$ is \textbf{invertible} if there exists an element $a:R$ such that $e \cdot a = 1$ and $a \cdot e = 1$: 23 | $$\mathrm{isInvertible}(e) := \left\Vert\sum_{a:R} (e \cdot a = 1) \times (a \cdot e = 1)\right\Vert$$ 24 | \end{definition} 25 | 26 | \begin{theorem} 27 | In any nontrivial commutative ring $R$, $0$ is always a non-invertible element. 28 | $$\mathrm{isNonTrivialCRing}(R) \to \neg \mathrm{isInvertible}(0)$$ 29 | \end{theorem} 30 | 31 | \begin{proof} 32 | Suppose that $0$ is invertible. Then there exists an element $a:R$ such that $a \cdot 0 = 1$. However, due to the absorption properties of $0$ and the fact that $R$ is a set, $a \cdot 0 = 0$. This implies that $0 = 1$, which contradicts the fact that $0 \neq 1$ in a nontrivial commutative ring. Thus, $0$ is a non-invertible element in any nontrivial commutative ring $R$. 33 | \end{proof} 34 | 35 | \begin{definition} 36 | A nontrivial commutative ring $R$ is a \textbf{field} if and only if the type of all non-invertible elements in $R$ is contractible: 37 | $$\mathrm{isField}(R) := \mathrm{isNonTrivialCRing}(R) \times \mathrm{isContr}\left(\sum_{x:R} \neg \mathrm{isInvertible}(x)\right)$$ 38 | Equivalently, $R$ is a field if and only if every non-invertible element is equal to zero. 39 | \end{definition} 40 | 41 | \begin{remark} 42 | In other parts of the constructive mathematics literature, such as in Peter Johnstone's \textit{Rings, Fields, and Spectra}, this is called a "residue field". However, in this book we shall refrain from using the term "residue field" for our definition, since that contradicts the usage of "residue field" in other parts of mathematics, such as in algebraic geometry. 43 | \end{remark} 44 | 45 | \begin{definition} 46 | A field is \textbf{discrete} if every element is either invertible or equal to zero. 47 | $$\mathrm{isDiscreteField}(R) := \mathrm{isField}(R) \times \prod_{a:R} \Vert(a = 0) \amalg \mathrm{isInvertible}(a)\Vert$$ 48 | \end{definition} 49 | 50 | \begin{definition} 51 | A nontrivial commutative ring $R$ is a \textbf{local ring} if for every element $a:R$ and $b:R$, if the sum $a + b$ is invertible, then either $a$ is invertible or $b$ is invertible. 52 | $$\mathrm{isLocalRing}(R) := \mathrm{isNonTrivialCRing}(R) \times \prod_{a:R} \prod_{b:R} \mathrm{isInvertible}(a + b) \to \Vert\mathrm{isInvertible}(a) \amalg \mathrm{isInvertible}(b)\Vert$$ 53 | \end{definition} 54 | 55 | \begin{definition} 56 | A field $R$ is \textbf{Heyting} if it is also a local ring. 57 | $$\mathrm{isHeytingField}(R) := \mathrm{isField}(R) \times \mathrm{isLocalRing}(R)$$ 58 | \end{definition} 59 | 60 | References used in this section: 61 | \begin{itemize} 62 | \item Emmy Noether, \textit{Ideal Theory in Rings}, Mathematische Annalen 83 (1921) 63 | \item Henri Lombardi, Claude Quitté, \textit{Commutative algebra: Constructive methods (Finite projective modules)} 64 | \item Peter Johnstone, \textit{Rings, Fields, and Spectra}, Journal of Algebra 49 (1977) 238-260 65 | \end{itemize} 66 | 67 | \section{vector spaces} 68 | 69 | \begin{definition} 70 | Given a field $K$, a $K$-\textbf{vector space} is an abelian group $V$ with a bilinear function $(-)(-):K \times V \to V$ called \textbf{scalar multiplication} such that $1 v = v$ and for all elements $a:K$, $b:K$, and $v:V$, $(a \cdot b) v = a (b v)$. 71 | \end{definition} 72 | 73 | \begin{definition} 74 | A $K$-\textbf{linear map} between two $K$-vector spaces $V$ and $W$ is a group homomorphism $h:V \to W$ which also preserves scalar multiplication: for all elements $a:K$ and $v:V$, $f(a v) = a f(v)$. 75 | \end{definition} 76 | 77 | \begin{definition} 78 | Given a field $K$ and a set $S$, the \textbf{free $K$-vector space} on $S$ is the homotopy initial $K$-vector space $V$ with a function $i:S \to V$: for every other $K$-vector space $W$ with a function $j:S \to W$, the type of linear maps $h:V \to W$ such that for all elements $s:S$, $h(i(s)) = j(s)$ is contractible. 79 | \end{definition} 80 | 81 | \begin{definition} 82 | Given a field $K$ and a natural number $n$, an \textbf{$n$-dimensional $K$-vector space} is a free $K$-vector space on the finite type $\mathrm{Fin}(n)$. 83 | \end{definition} 84 | 85 | \section{the general linear group as automorphism group} 86 | \section{determinants\titledagger} 87 | \section{examples: rationals, polynomials, adding a root, field extensions} 88 | \section{ordered fields, real-closed fields, pythagorean fields, euclidean fields} 89 | \section{complex fields, quadratically closed fields, algebraically closed fields} 90 | 91 | %%% Local Variables: 92 | %%% mode: latex 93 | %%% TeX-master: "book" 94 | %%% End: 95 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /icosahedron.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | Icosahedron 13 | 14 | 15 | 16 | 17 | 20 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /latexmkrc: -------------------------------------------------------------------------------- 1 | $pdf_mode = 1; 2 | 3 | $pdflatex = "pdflatex -halt-on-error -synctex=1 --shell-escape -fmt macros %O %S"; 4 | 5 | @default_files = ("book"); 6 | 7 | push @generated_exts, "glo", "gls"; 8 | 9 | add_cus_dep("glo", "gls", 0, glo2gls); 10 | 11 | sub glo2gls { 12 | return system( "makeindex -s cas.gst -o \"$_[0].gls\" \"$_[0].glo\"" ); 13 | } 14 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------