├── .codespellrc
├── .editorconfig
├── .gitattributes
├── .github
└── workflows
│ ├── ci.yaml
│ ├── clean-up.yaml
│ ├── pages.yaml
│ └── profiling.yaml
├── .gitignore
├── .pre-commit-config.yaml
├── .prettierignore
├── .prettierrc.json
├── .vscode
├── agda.code-snippets
├── extensions.json
├── settings.json
└── tasks.json
├── ART.md
├── CITATION.cff
├── CITE-THIS-LIBRARY.md
├── CITING-SOURCES.md
├── CODINGSTYLE.md
├── CONTRIBUTING.md
├── CONTRIBUTORS.toml
├── DESIGN-PRINCIPLES.md
├── FILE-CONVENTIONS.md
├── GRANT-ACKNOWLEDGMENTS.md
├── HOME.md
├── HOWTO-INSTALL.md
├── LICENSE.md
├── MIXFIX-OPERATORS.md
├── Makefile
├── PROJECTS.md
├── README.md
├── STATEMENT-OF-INCLUSION.md
├── TEMPLATE.lagda.md
├── VISUALIZATION.md
├── agda-unimath.agda-lib
├── book.toml
├── codespell-dictionary.txt
├── codespell-ignore.txt
├── flake.lock
├── flake.nix
├── references.bib
├── scripts
├── README.md
├── __init__.py
├── blank_line_conventions.py
├── demote_foundation_imports.py
├── even_indentation_conventions.py
├── fix_imports.py
├── generate_agda_css.py
├── generate_contributors.py
├── generate_dependency_graph_rendering.py
├── generate_main_index_file.py
├── generate_maintainers.py
├── generate_namespace_index_modules.py
├── markdown_conventions.py
├── max_line_length_conventions.py
├── preprocessor_citations.py
├── preprocessor_concepts.py
├── preprocessor_git_metadata.py
├── remove_unused_imports.py
├── requirements.txt
├── spaces_convention.py
├── spaces_conventions_simple.py
├── typechecking_profile_parser.py
├── utils
│ ├── __init__.py
│ ├── contributors.py
│ └── multithread.py
└── wrap_long_lines_simple.py
├── src
├── category-theory.lagda.md
├── category-theory
│ ├── adjunctions-large-categories.lagda.md
│ ├── adjunctions-large-precategories.lagda.md
│ ├── anafunctors-categories.lagda.md
│ ├── anafunctors-precategories.lagda.md
│ ├── augmented-simplex-category.lagda.md
│ ├── categories.lagda.md
│ ├── category-of-functors-from-small-to-large-categories.lagda.md
│ ├── category-of-functors.lagda.md
│ ├── category-of-maps-categories.lagda.md
│ ├── category-of-maps-from-small-to-large-categories.lagda.md
│ ├── commuting-squares-of-morphisms-in-large-precategories.lagda.md
│ ├── commuting-squares-of-morphisms-in-precategories.lagda.md
│ ├── commuting-squares-of-morphisms-in-set-magmoids.lagda.md
│ ├── commuting-triangles-of-morphisms-in-precategories.lagda.md
│ ├── commuting-triangles-of-morphisms-in-set-magmoids.lagda.md
│ ├── complete-precategories.lagda.md
│ ├── composition-operations-on-binary-families-of-sets.lagda.md
│ ├── cones-precategories.lagda.md
│ ├── conservative-functors-precategories.lagda.md
│ ├── constant-functors.lagda.md
│ ├── copresheaf-categories.lagda.md
│ ├── coproducts-in-precategories.lagda.md
│ ├── cores-categories.lagda.md
│ ├── cores-precategories.lagda.md
│ ├── coslice-precategories.lagda.md
│ ├── dependent-composition-operations-over-precategories.lagda.md
│ ├── dependent-products-of-categories.lagda.md
│ ├── dependent-products-of-large-categories.lagda.md
│ ├── dependent-products-of-large-precategories.lagda.md
│ ├── dependent-products-of-precategories.lagda.md
│ ├── discrete-categories.lagda.md
│ ├── displayed-precategories.lagda.md
│ ├── embedding-maps-precategories.lagda.md
│ ├── embeddings-precategories.lagda.md
│ ├── endomorphisms-in-categories.lagda.md
│ ├── endomorphisms-in-precategories.lagda.md
│ ├── epimorphisms-in-large-precategories.lagda.md
│ ├── equivalences-of-categories.lagda.md
│ ├── equivalences-of-large-precategories.lagda.md
│ ├── equivalences-of-precategories.lagda.md
│ ├── essential-fibers-of-functors-precategories.lagda.md
│ ├── essentially-injective-functors-precategories.lagda.md
│ ├── essentially-surjective-functors-precategories.lagda.md
│ ├── exponential-objects-precategories.lagda.md
│ ├── extensions-of-functors-precategories.lagda.md
│ ├── faithful-functors-precategories.lagda.md
│ ├── faithful-maps-precategories.lagda.md
│ ├── full-functors-precategories.lagda.md
│ ├── full-large-subcategories.lagda.md
│ ├── full-large-subprecategories.lagda.md
│ ├── full-maps-precategories.lagda.md
│ ├── full-subcategories.lagda.md
│ ├── full-subprecategories.lagda.md
│ ├── fully-faithful-functors-precategories.lagda.md
│ ├── fully-faithful-maps-precategories.lagda.md
│ ├── function-categories.lagda.md
│ ├── function-precategories.lagda.md
│ ├── functors-categories.lagda.md
│ ├── functors-from-small-to-large-categories.lagda.md
│ ├── functors-from-small-to-large-precategories.lagda.md
│ ├── functors-large-categories.lagda.md
│ ├── functors-large-precategories.lagda.md
│ ├── functors-nonunital-precategories.lagda.md
│ ├── functors-precategories.lagda.md
│ ├── functors-set-magmoids.lagda.md
│ ├── gaunt-categories.lagda.md
│ ├── groupoids.lagda.md
│ ├── homotopies-natural-transformations-large-precategories.lagda.md
│ ├── indiscrete-precategories.lagda.md
│ ├── initial-category.lagda.md
│ ├── initial-objects-large-categories.lagda.md
│ ├── initial-objects-large-precategories.lagda.md
│ ├── initial-objects-precategories.lagda.md
│ ├── isomorphism-induction-categories.lagda.md
│ ├── isomorphism-induction-precategories.lagda.md
│ ├── isomorphisms-in-categories.lagda.md
│ ├── isomorphisms-in-large-categories.lagda.md
│ ├── isomorphisms-in-large-precategories.lagda.md
│ ├── isomorphisms-in-precategories.lagda.md
│ ├── isomorphisms-in-subprecategories.lagda.md
│ ├── large-categories.lagda.md
│ ├── large-function-categories.lagda.md
│ ├── large-function-precategories.lagda.md
│ ├── large-precategories.lagda.md
│ ├── large-subcategories.lagda.md
│ ├── large-subprecategories.lagda.md
│ ├── limits-precategories.lagda.md
│ ├── maps-categories.lagda.md
│ ├── maps-from-small-to-large-categories.lagda.md
│ ├── maps-from-small-to-large-precategories.lagda.md
│ ├── maps-precategories.lagda.md
│ ├── maps-set-magmoids.lagda.md
│ ├── monads-on-categories.lagda.md
│ ├── monads-on-precategories.lagda.md
│ ├── monomorphisms-in-large-precategories.lagda.md
│ ├── natural-isomorphisms-functors-categories.lagda.md
│ ├── natural-isomorphisms-functors-large-precategories.lagda.md
│ ├── natural-isomorphisms-functors-precategories.lagda.md
│ ├── natural-isomorphisms-maps-categories.lagda.md
│ ├── natural-isomorphisms-maps-precategories.lagda.md
│ ├── natural-numbers-object-precategories.lagda.md
│ ├── natural-transformations-functors-categories.lagda.md
│ ├── natural-transformations-functors-from-small-to-large-categories.lagda.md
│ ├── natural-transformations-functors-from-small-to-large-precategories.lagda.md
│ ├── natural-transformations-functors-large-categories.lagda.md
│ ├── natural-transformations-functors-large-precategories.lagda.md
│ ├── natural-transformations-functors-precategories.lagda.md
│ ├── natural-transformations-maps-categories.lagda.md
│ ├── natural-transformations-maps-from-small-to-large-precategories.lagda.md
│ ├── natural-transformations-maps-precategories.lagda.md
│ ├── nonunital-precategories.lagda.md
│ ├── one-object-precategories.lagda.md
│ ├── opposite-categories.lagda.md
│ ├── opposite-large-precategories.lagda.md
│ ├── opposite-precategories.lagda.md
│ ├── opposite-preunivalent-categories.lagda.md
│ ├── opposite-strongly-preunivalent-categories.lagda.md
│ ├── pointed-endofunctors-categories.lagda.md
│ ├── pointed-endofunctors-precategories.lagda.md
│ ├── precategories.lagda.md
│ ├── precategory-of-elements-of-a-presheaf.lagda.md
│ ├── precategory-of-functors-from-small-to-large-precategories.lagda.md
│ ├── precategory-of-functors.lagda.md
│ ├── precategory-of-maps-from-small-to-large-precategories.lagda.md
│ ├── precategory-of-maps-precategories.lagda.md
│ ├── pregroupoids.lagda.md
│ ├── presheaf-categories.lagda.md
│ ├── preunivalent-categories.lagda.md
│ ├── products-in-precategories.lagda.md
│ ├── products-of-precategories.lagda.md
│ ├── pseudomonic-functors-precategories.lagda.md
│ ├── pullbacks-in-precategories.lagda.md
│ ├── replete-subprecategories.lagda.md
│ ├── representable-functors-categories.lagda.md
│ ├── representable-functors-large-precategories.lagda.md
│ ├── representable-functors-precategories.lagda.md
│ ├── representing-arrow-category.lagda.md
│ ├── restrictions-functors-cores-precategories.lagda.md
│ ├── right-extensions-precategories.lagda.md
│ ├── right-kan-extensions-precategories.lagda.md
│ ├── rigid-objects-categories.lagda.md
│ ├── rigid-objects-precategories.lagda.md
│ ├── set-magmoids.lagda.md
│ ├── sieves-in-categories.lagda.md
│ ├── simplex-category.lagda.md
│ ├── slice-precategories.lagda.md
│ ├── split-essentially-surjective-functors-precategories.lagda.md
│ ├── strict-categories.lagda.md
│ ├── strongly-preunivalent-categories.lagda.md
│ ├── structure-equivalences-set-magmoids.lagda.md
│ ├── subcategories.lagda.md
│ ├── subprecategories.lagda.md
│ ├── subterminal-precategories.lagda.md
│ ├── terminal-category.lagda.md
│ ├── terminal-objects-precategories.lagda.md
│ ├── wide-subcategories.lagda.md
│ ├── wide-subprecategories.lagda.md
│ ├── yoneda-lemma-categories.lagda.md
│ └── yoneda-lemma-precategories.lagda.md
├── commutative-algebra.lagda.md
├── commutative-algebra
│ ├── binomial-theorem-commutative-rings.lagda.md
│ ├── binomial-theorem-commutative-semirings.lagda.md
│ ├── boolean-rings.lagda.md
│ ├── category-of-commutative-rings.lagda.md
│ ├── commutative-rings.lagda.md
│ ├── commutative-semirings.lagda.md
│ ├── dependent-products-commutative-rings.lagda.md
│ ├── dependent-products-commutative-semirings.lagda.md
│ ├── discrete-fields.lagda.md
│ ├── eisenstein-integers.lagda.md
│ ├── euclidean-domains.lagda.md
│ ├── full-ideals-commutative-rings.lagda.md
│ ├── function-commutative-rings.lagda.md
│ ├── function-commutative-semirings.lagda.md
│ ├── gaussian-integers.lagda.md
│ ├── groups-of-units-commutative-rings.lagda.md
│ ├── homomorphisms-commutative-rings.lagda.md
│ ├── homomorphisms-commutative-semirings.lagda.md
│ ├── ideals-commutative-rings.lagda.md
│ ├── ideals-commutative-semirings.lagda.md
│ ├── ideals-generated-by-subsets-commutative-rings.lagda.md
│ ├── integer-multiples-of-elements-commutative-rings.lagda.md
│ ├── integral-domains.lagda.md
│ ├── intersections-ideals-commutative-rings.lagda.md
│ ├── intersections-radical-ideals-commutative-rings.lagda.md
│ ├── invertible-elements-commutative-rings.lagda.md
│ ├── isomorphisms-commutative-rings.lagda.md
│ ├── joins-ideals-commutative-rings.lagda.md
│ ├── joins-radical-ideals-commutative-rings.lagda.md
│ ├── local-commutative-rings.lagda.md
│ ├── maximal-ideals-commutative-rings.lagda.md
│ ├── multiples-of-elements-commutative-rings.lagda.md
│ ├── nilradical-commutative-rings.lagda.md
│ ├── nilradicals-commutative-semirings.lagda.md
│ ├── poset-of-ideals-commutative-rings.lagda.md
│ ├── poset-of-radical-ideals-commutative-rings.lagda.md
│ ├── powers-of-elements-commutative-rings.lagda.md
│ ├── powers-of-elements-commutative-semirings.lagda.md
│ ├── precategory-of-commutative-rings.lagda.md
│ ├── precategory-of-commutative-semirings.lagda.md
│ ├── prime-ideals-commutative-rings.lagda.md
│ ├── products-commutative-rings.lagda.md
│ ├── products-ideals-commutative-rings.lagda.md
│ ├── products-radical-ideals-commutative-rings.lagda.md
│ ├── products-subsets-commutative-rings.lagda.md
│ ├── radical-ideals-commutative-rings.lagda.md
│ ├── radical-ideals-generated-by-subsets-commutative-rings.lagda.md
│ ├── radicals-of-ideals-commutative-rings.lagda.md
│ ├── subsets-commutative-rings.lagda.md
│ ├── subsets-commutative-semirings.lagda.md
│ ├── sums-of-finite-families-of-elements-commutative-rings.lagda.md
│ ├── sums-of-finite-families-of-elements-commutative-semirings.lagda.md
│ ├── sums-of-finite-sequences-of-elements-commutative-rings.lagda.md
│ ├── sums-of-finite-sequences-of-elements-commutative-semirings.lagda.md
│ ├── transporting-commutative-ring-structure-isomorphisms-abelian-groups.lagda.md
│ ├── trivial-commutative-rings.lagda.md
│ ├── zariski-locale.lagda.md
│ └── zariski-topology.lagda.md
├── domain-theory.lagda.md
├── domain-theory
│ ├── directed-complete-posets.lagda.md
│ ├── directed-families-posets.lagda.md
│ ├── kleenes-fixed-point-theorem-omega-complete-posets.lagda.md
│ ├── kleenes-fixed-point-theorem-posets.lagda.md
│ ├── omega-complete-posets.lagda.md
│ ├── omega-continuous-maps-omega-complete-posets.lagda.md
│ ├── omega-continuous-maps-posets.lagda.md
│ ├── reindexing-directed-families-posets.lagda.md
│ └── scott-continuous-maps-posets.lagda.md
├── elementary-number-theory.lagda.md
├── elementary-number-theory
│ ├── absolute-value-integers.lagda.md
│ ├── absolute-value-rational-numbers.lagda.md
│ ├── ackermann-function.lagda.md
│ ├── addition-integer-fractions.lagda.md
│ ├── addition-integers.lagda.md
│ ├── addition-natural-numbers.lagda.md
│ ├── addition-positive-and-negative-integers.lagda.md
│ ├── addition-rational-numbers.lagda.md
│ ├── additive-group-of-rational-numbers.lagda.md
│ ├── archimedean-property-integer-fractions.lagda.md
│ ├── archimedean-property-integers.lagda.md
│ ├── archimedean-property-natural-numbers.lagda.md
│ ├── archimedean-property-positive-rational-numbers.lagda.md
│ ├── archimedean-property-rational-numbers.lagda.md
│ ├── arithmetic-functions.lagda.md
│ ├── arithmetic-sequences-positive-rational-numbers.lagda.md
│ ├── based-induction-natural-numbers.lagda.md
│ ├── based-strong-induction-natural-numbers.lagda.md
│ ├── bell-numbers.lagda.md
│ ├── bernoullis-inequality-positive-rational-numbers.lagda.md
│ ├── bezouts-lemma-integers.lagda.md
│ ├── bezouts-lemma-natural-numbers.lagda.md
│ ├── binomial-coefficients.lagda.md
│ ├── binomial-theorem-integers.lagda.md
│ ├── binomial-theorem-natural-numbers.lagda.md
│ ├── bounded-sums-arithmetic-functions.lagda.md
│ ├── catalan-numbers.lagda.md
│ ├── closed-intervals-rational-numbers.lagda.md
│ ├── cofibonacci.lagda.md
│ ├── collatz-bijection.lagda.md
│ ├── collatz-conjecture.lagda.md
│ ├── commutative-semiring-of-natural-numbers.lagda.md
│ ├── conatural-numbers.lagda.md
│ ├── congruence-integers.lagda.md
│ ├── congruence-natural-numbers.lagda.md
│ ├── cross-multiplication-difference-integer-fractions.lagda.md
│ ├── cubes-natural-numbers.lagda.md
│ ├── decidable-dependent-function-types.lagda.md
│ ├── decidable-total-order-integers.lagda.md
│ ├── decidable-total-order-natural-numbers.lagda.md
│ ├── decidable-total-order-rational-numbers.lagda.md
│ ├── decidable-total-order-standard-finite-types.lagda.md
│ ├── decidable-types.lagda.md
│ ├── difference-integers.lagda.md
│ ├── difference-rational-numbers.lagda.md
│ ├── dirichlet-convolution.lagda.md
│ ├── distance-integers.lagda.md
│ ├── distance-natural-numbers.lagda.md
│ ├── distance-rational-numbers.lagda.md
│ ├── divisibility-integers.lagda.md
│ ├── divisibility-modular-arithmetic.lagda.md
│ ├── divisibility-natural-numbers.lagda.md
│ ├── divisibility-standard-finite-types.lagda.md
│ ├── equality-conatural-numbers.lagda.md
│ ├── equality-integers.lagda.md
│ ├── equality-natural-numbers.lagda.md
│ ├── equality-rational-numbers.lagda.md
│ ├── euclid-mullin-sequence.lagda.md
│ ├── euclidean-division-natural-numbers.lagda.md
│ ├── eulers-totient-function.lagda.md
│ ├── exponentiation-natural-numbers.lagda.md
│ ├── factorials.lagda.md
│ ├── falling-factorials.lagda.md
│ ├── fermat-numbers.lagda.md
│ ├── fibonacci-sequence.lagda.md
│ ├── field-of-rational-numbers.lagda.md
│ ├── finitary-natural-numbers.lagda.md
│ ├── finitely-cyclic-maps.lagda.md
│ ├── fundamental-theorem-of-arithmetic.lagda.md
│ ├── geometric-sequences-positive-rational-numbers.lagda.md
│ ├── goldbach-conjecture.lagda.md
│ ├── greatest-common-divisor-integers.lagda.md
│ ├── greatest-common-divisor-natural-numbers.lagda.md
│ ├── group-of-integers.lagda.md
│ ├── half-integers.lagda.md
│ ├── hardy-ramanujan-number.lagda.md
│ ├── inclusion-natural-numbers-conatural-numbers.lagda.md
│ ├── inequality-arithmetic-geometric-means-integers.lagda.md
│ ├── inequality-arithmetic-geometric-means-rational-numbers.lagda.md
│ ├── inequality-conatural-numbers.lagda.md
│ ├── inequality-integer-fractions.lagda.md
│ ├── inequality-integers.lagda.md
│ ├── inequality-natural-numbers.lagda.md
│ ├── inequality-rational-numbers.lagda.md
│ ├── inequality-standard-finite-types.lagda.md
│ ├── infinite-conatural-numbers.lagda.md
│ ├── infinitude-of-primes.lagda.md
│ ├── initial-segments-natural-numbers.lagda.md
│ ├── integer-fractions.lagda.md
│ ├── integer-partitions.lagda.md
│ ├── integers.lagda.md
│ ├── jacobi-symbol.lagda.md
│ ├── kolakoski-sequence.lagda.md
│ ├── legendre-symbol.lagda.md
│ ├── lower-bounds-natural-numbers.lagda.md
│ ├── maximum-natural-numbers.lagda.md
│ ├── maximum-rational-numbers.lagda.md
│ ├── maximum-standard-finite-types.lagda.md
│ ├── mediant-integer-fractions.lagda.md
│ ├── mersenne-primes.lagda.md
│ ├── minimum-natural-numbers.lagda.md
│ ├── minimum-rational-numbers.lagda.md
│ ├── minimum-standard-finite-types.lagda.md
│ ├── modular-arithmetic-standard-finite-types.lagda.md
│ ├── modular-arithmetic.lagda.md
│ ├── monoid-of-natural-numbers-with-addition.lagda.md
│ ├── monoid-of-natural-numbers-with-maximum.lagda.md
│ ├── multiplication-integer-fractions.lagda.md
│ ├── multiplication-integers.lagda.md
│ ├── multiplication-lists-of-natural-numbers.lagda.md
│ ├── multiplication-natural-numbers.lagda.md
│ ├── multiplication-positive-and-negative-integers.lagda.md
│ ├── multiplication-rational-numbers.lagda.md
│ ├── multiplicative-group-of-positive-rational-numbers.lagda.md
│ ├── multiplicative-group-of-rational-numbers.lagda.md
│ ├── multiplicative-inverses-positive-integer-fractions.lagda.md
│ ├── multiplicative-monoid-of-natural-numbers.lagda.md
│ ├── multiplicative-monoid-of-rational-numbers.lagda.md
│ ├── multiplicative-units-integers.lagda.md
│ ├── multiplicative-units-standard-cyclic-rings.lagda.md
│ ├── multiset-coefficients.lagda.md
│ ├── natural-numbers.lagda.md
│ ├── negative-integer-fractions.lagda.md
│ ├── negative-integers.lagda.md
│ ├── negative-rational-numbers.lagda.md
│ ├── nonnegative-integer-fractions.lagda.md
│ ├── nonnegative-integers.lagda.md
│ ├── nonnegative-rational-numbers.lagda.md
│ ├── nonpositive-integers.lagda.md
│ ├── nonzero-integers.lagda.md
│ ├── nonzero-natural-numbers.lagda.md
│ ├── nonzero-rational-numbers.lagda.md
│ ├── ordinal-induction-natural-numbers.lagda.md
│ ├── parity-natural-numbers.lagda.md
│ ├── peano-arithmetic.lagda.md
│ ├── pisano-periods.lagda.md
│ ├── poset-of-natural-numbers-ordered-by-divisibility.lagda.md
│ ├── positive-and-negative-integers.lagda.md
│ ├── positive-and-negative-rational-numbers.lagda.md
│ ├── positive-conatural-numbers.lagda.md
│ ├── positive-integer-fractions.lagda.md
│ ├── positive-integers.lagda.md
│ ├── positive-rational-numbers.lagda.md
│ ├── powers-integers.lagda.md
│ ├── powers-of-two.lagda.md
│ ├── prime-numbers.lagda.md
│ ├── products-of-natural-numbers.lagda.md
│ ├── proper-divisors-natural-numbers.lagda.md
│ ├── pythagorean-triples.lagda.md
│ ├── rational-numbers.lagda.md
│ ├── reduced-integer-fractions.lagda.md
│ ├── relatively-prime-integers.lagda.md
│ ├── relatively-prime-natural-numbers.lagda.md
│ ├── repeating-element-standard-finite-type.lagda.md
│ ├── retracts-of-natural-numbers.lagda.md
│ ├── ring-of-integers.lagda.md
│ ├── ring-of-rational-numbers.lagda.md
│ ├── sieve-of-eratosthenes.lagda.md
│ ├── square-free-natural-numbers.lagda.md
│ ├── squares-integers.lagda.md
│ ├── squares-modular-arithmetic.lagda.md
│ ├── squares-natural-numbers.lagda.md
│ ├── squares-rational-numbers.lagda.md
│ ├── standard-cyclic-groups.lagda.md
│ ├── standard-cyclic-rings.lagda.md
│ ├── stirling-numbers-of-the-second-kind.lagda.md
│ ├── strict-inequality-integer-fractions.lagda.md
│ ├── strict-inequality-integers.lagda.md
│ ├── strict-inequality-natural-numbers.lagda.md
│ ├── strict-inequality-rational-numbers.lagda.md
│ ├── strict-inequality-standard-finite-types.lagda.md
│ ├── strictly-ordered-pairs-of-natural-numbers.lagda.md
│ ├── strong-induction-natural-numbers.lagda.md
│ ├── sums-of-natural-numbers.lagda.md
│ ├── sylvesters-sequence.lagda.md
│ ├── taxicab-numbers.lagda.md
│ ├── telephone-numbers.lagda.md
│ ├── triangular-numbers.lagda.md
│ ├── twin-prime-conjecture.lagda.md
│ ├── type-arithmetic-natural-numbers.lagda.md
│ ├── unit-elements-standard-finite-types.lagda.md
│ ├── unit-fractions-rational-numbers.lagda.md
│ ├── unit-similarity-standard-finite-types.lagda.md
│ ├── universal-property-conatural-numbers.lagda.md
│ ├── universal-property-integers.lagda.md
│ ├── universal-property-natural-numbers.lagda.md
│ ├── upper-bounds-natural-numbers.lagda.md
│ ├── well-ordering-principle-natural-numbers.lagda.md
│ ├── well-ordering-principle-standard-finite-types.lagda.md
│ └── zero-conatural-numbers.lagda.md
├── finite-algebra.lagda.md
├── finite-algebra
│ ├── commutative-finite-rings.lagda.md
│ ├── dependent-products-commutative-finite-rings.lagda.md
│ ├── dependent-products-finite-rings.lagda.md
│ ├── finite-fields.lagda.md
│ ├── finite-rings.lagda.md
│ ├── homomorphisms-commutative-finite-rings.lagda.md
│ ├── homomorphisms-finite-rings.lagda.md
│ ├── products-commutative-finite-rings.lagda.md
│ ├── products-finite-rings.lagda.md
│ └── semisimple-commutative-finite-rings.lagda.md
├── finite-group-theory.lagda.md
├── finite-group-theory
│ ├── abstract-quaternion-group.lagda.md
│ ├── alternating-concrete-groups.lagda.md
│ ├── alternating-groups.lagda.md
│ ├── cartier-delooping-sign-homomorphism.lagda.md
│ ├── concrete-quaternion-group.lagda.md
│ ├── delooping-sign-homomorphism.lagda.md
│ ├── finite-abelian-groups.lagda.md
│ ├── finite-commutative-monoids.lagda.md
│ ├── finite-groups.lagda.md
│ ├── finite-monoids.lagda.md
│ ├── finite-semigroups.lagda.md
│ ├── finite-type-groups.lagda.md
│ ├── groups-of-order-2.lagda.md
│ ├── orbits-permutations.lagda.md
│ ├── permutations-standard-finite-types.lagda.md
│ ├── permutations.lagda.md
│ ├── sign-homomorphism.lagda.md
│ ├── simpson-delooping-sign-homomorphism.lagda.md
│ ├── subgroups-finite-groups.lagda.md
│ ├── tetrahedra-in-3-space.lagda.md
│ ├── transpositions-standard-finite-types.lagda.md
│ └── transpositions.lagda.md
├── foundation-core.lagda.md
├── foundation-core
│ ├── 1-types.lagda.md
│ ├── cartesian-product-types.lagda.md
│ ├── coherently-invertible-maps.lagda.md
│ ├── commuting-prisms-of-maps.lagda.md
│ ├── commuting-squares-of-homotopies.lagda.md
│ ├── commuting-squares-of-identifications.lagda.md
│ ├── commuting-squares-of-maps.lagda.md
│ ├── commuting-triangles-of-maps.lagda.md
│ ├── constant-maps.lagda.md
│ ├── contractible-maps.lagda.md
│ ├── contractible-types.lagda.md
│ ├── coproduct-types.lagda.md
│ ├── decidable-propositions.lagda.md
│ ├── dependent-identifications.lagda.md
│ ├── diagonal-maps-cartesian-products-of-types.lagda.md
│ ├── discrete-types.lagda.md
│ ├── embeddings.lagda.md
│ ├── empty-types.lagda.md
│ ├── endomorphisms.lagda.md
│ ├── equality-dependent-pair-types.lagda.md
│ ├── equivalence-relations.lagda.md
│ ├── equivalences.lagda.md
│ ├── families-of-equivalences.lagda.md
│ ├── fibers-of-maps.lagda.md
│ ├── function-types.lagda.md
│ ├── functoriality-dependent-function-types.lagda.md
│ ├── functoriality-dependent-pair-types.lagda.md
│ ├── homotopies.lagda.md
│ ├── identity-types.lagda.md
│ ├── injective-maps.lagda.md
│ ├── invertible-maps.lagda.md
│ ├── negation.lagda.md
│ ├── operations-span-diagrams.lagda.md
│ ├── operations-spans.lagda.md
│ ├── path-split-maps.lagda.md
│ ├── postcomposition-dependent-functions.lagda.md
│ ├── postcomposition-functions.lagda.md
│ ├── precomposition-dependent-functions.lagda.md
│ ├── precomposition-functions.lagda.md
│ ├── propositional-maps.lagda.md
│ ├── propositions.lagda.md
│ ├── pullbacks.lagda.md
│ ├── retractions.lagda.md
│ ├── retracts-of-types.lagda.md
│ ├── sections.lagda.md
│ ├── sets.lagda.md
│ ├── small-types.lagda.md
│ ├── subtypes.lagda.md
│ ├── torsorial-type-families.lagda.md
│ ├── transport-along-identifications.lagda.md
│ ├── truncated-maps.lagda.md
│ ├── truncated-types.lagda.md
│ ├── truncation-levels.lagda.md
│ ├── type-theoretic-principle-of-choice.lagda.md
│ ├── univalence.lagda.md
│ ├── universal-property-pullbacks.lagda.md
│ ├── universal-property-truncation.lagda.md
│ ├── whiskering-homotopies-concatenation.lagda.md
│ └── whiskering-identifications-concatenation.lagda.md
├── foundation.lagda.md
├── foundation
│ ├── 0-connected-types.lagda.md
│ ├── 0-images-of-maps.lagda.md
│ ├── 0-maps.lagda.md
│ ├── 1-types.lagda.md
│ ├── 2-types.lagda.md
│ ├── action-on-equivalences-functions-out-of-subuniverses.lagda.md
│ ├── action-on-equivalences-functions.lagda.md
│ ├── action-on-equivalences-type-families-over-subuniverses.lagda.md
│ ├── action-on-equivalences-type-families.lagda.md
│ ├── action-on-higher-identifications-functions.lagda.md
│ ├── action-on-homotopies-functions.lagda.md
│ ├── action-on-identifications-binary-dependent-functions.lagda.md
│ ├── action-on-identifications-binary-functions.lagda.md
│ ├── action-on-identifications-dependent-functions.lagda.md
│ ├── action-on-identifications-functions.lagda.md
│ ├── apartness-relations.lagda.md
│ ├── arithmetic-law-coproduct-and-sigma-decompositions.lagda.md
│ ├── arithmetic-law-product-and-pi-decompositions.lagda.md
│ ├── automorphisms.lagda.md
│ ├── axiom-of-choice.lagda.md
│ ├── bands.lagda.md
│ ├── base-changes-span-diagrams.lagda.md
│ ├── bicomposition-functions.lagda.md
│ ├── binary-dependent-identifications.lagda.md
│ ├── binary-embeddings.lagda.md
│ ├── binary-equivalences-unordered-pairs-of-types.lagda.md
│ ├── binary-equivalences.lagda.md
│ ├── binary-functoriality-set-quotients.lagda.md
│ ├── binary-homotopies.lagda.md
│ ├── binary-operations-unordered-pairs-of-types.lagda.md
│ ├── binary-reflecting-maps-equivalence-relations.lagda.md
│ ├── binary-relations-with-extensions.lagda.md
│ ├── binary-relations-with-lifts.lagda.md
│ ├── binary-relations.lagda.md
│ ├── binary-transport.lagda.md
│ ├── binary-type-duality.lagda.md
│ ├── booleans.lagda.md
│ ├── cantor-schroder-bernstein-escardo.lagda.md
│ ├── cantors-theorem.lagda.md
│ ├── cartesian-morphisms-arrows.lagda.md
│ ├── cartesian-morphisms-span-diagrams.lagda.md
│ ├── cartesian-product-types.lagda.md
│ ├── cartesian-products-set-quotients.lagda.md
│ ├── category-of-families-of-sets.lagda.md
│ ├── category-of-sets.lagda.md
│ ├── choice-of-representatives-equivalence-relation.lagda.md
│ ├── coalgebras-maybe.lagda.md
│ ├── codiagonal-maps-of-types.lagda.md
│ ├── coherently-idempotent-maps.lagda.md
│ ├── coherently-invertible-maps.lagda.md
│ ├── coinhabited-pairs-of-types.lagda.md
│ ├── commuting-cubes-of-maps.lagda.md
│ ├── commuting-hexagons-of-identifications.lagda.md
│ ├── commuting-pentagons-of-identifications.lagda.md
│ ├── commuting-prisms-of-maps.lagda.md
│ ├── commuting-squares-of-homotopies.lagda.md
│ ├── commuting-squares-of-identifications.lagda.md
│ ├── commuting-squares-of-maps.lagda.md
│ ├── commuting-tetrahedra-of-homotopies.lagda.md
│ ├── commuting-tetrahedra-of-maps.lagda.md
│ ├── commuting-triangles-of-homotopies.lagda.md
│ ├── commuting-triangles-of-identifications.lagda.md
│ ├── commuting-triangles-of-maps.lagda.md
│ ├── commuting-triangles-of-morphisms-arrows.lagda.md
│ ├── complements-subtypes.lagda.md
│ ├── complements.lagda.md
│ ├── composite-maps-in-inverse-sequential-diagrams.lagda.md
│ ├── composition-algebra.lagda.md
│ ├── composition-spans.lagda.md
│ ├── computational-identity-types.lagda.md
│ ├── cones-over-cospan-diagrams.lagda.md
│ ├── cones-over-inverse-sequential-diagrams.lagda.md
│ ├── conjunction.lagda.md
│ ├── connected-components-universes.lagda.md
│ ├── connected-components.lagda.md
│ ├── connected-maps.lagda.md
│ ├── connected-types.lagda.md
│ ├── constant-maps.lagda.md
│ ├── constant-span-diagrams.lagda.md
│ ├── constant-type-families.lagda.md
│ ├── continuations.lagda.md
│ ├── contractible-maps.lagda.md
│ ├── contractible-types.lagda.md
│ ├── copartial-elements.lagda.md
│ ├── copartial-functions.lagda.md
│ ├── coproduct-decompositions-subuniverse.lagda.md
│ ├── coproduct-decompositions.lagda.md
│ ├── coproduct-types.lagda.md
│ ├── coproducts-pullbacks.lagda.md
│ ├── coslice.lagda.md
│ ├── cospan-diagrams.lagda.md
│ ├── cospans.lagda.md
│ ├── decidable-dependent-function-types.lagda.md
│ ├── decidable-dependent-pair-types.lagda.md
│ ├── decidable-embeddings.lagda.md
│ ├── decidable-equality.lagda.md
│ ├── decidable-equivalence-relations.lagda.md
│ ├── decidable-maps.lagda.md
│ ├── decidable-propositions.lagda.md
│ ├── decidable-relations.lagda.md
│ ├── decidable-subtypes.lagda.md
│ ├── decidable-types.lagda.md
│ ├── dependent-binary-homotopies.lagda.md
│ ├── dependent-binomial-theorem.lagda.md
│ ├── dependent-epimorphisms-with-respect-to-truncated-types.lagda.md
│ ├── dependent-epimorphisms.lagda.md
│ ├── dependent-function-types.lagda.md
│ ├── dependent-homotopies.lagda.md
│ ├── dependent-identifications.lagda.md
│ ├── dependent-inverse-sequential-diagrams.lagda.md
│ ├── dependent-pair-types.lagda.md
│ ├── dependent-products-pullbacks.lagda.md
│ ├── dependent-sequences.lagda.md
│ ├── dependent-sums-pullbacks.lagda.md
│ ├── dependent-telescopes.lagda.md
│ ├── dependent-universal-property-equivalences.lagda.md
│ ├── descent-coproduct-types.lagda.md
│ ├── descent-dependent-pair-types.lagda.md
│ ├── descent-empty-types.lagda.md
│ ├── descent-equivalences.lagda.md
│ ├── diaconescus-theorem.lagda.md
│ ├── diagonal-maps-cartesian-products-of-types.lagda.md
│ ├── diagonal-maps-of-types.lagda.md
│ ├── diagonal-span-diagrams.lagda.md
│ ├── diagonals-of-maps.lagda.md
│ ├── diagonals-of-morphisms-arrows.lagda.md
│ ├── discrete-binary-relations.lagda.md
│ ├── discrete-reflexive-relations.lagda.md
│ ├── discrete-relaxed-sigma-decompositions.lagda.md
│ ├── discrete-sigma-decompositions.lagda.md
│ ├── discrete-types.lagda.md
│ ├── disjoint-subtypes.lagda.md
│ ├── disjunction.lagda.md
│ ├── double-arrows.lagda.md
│ ├── double-negation-modality.lagda.md
│ ├── double-negation-stable-equality.lagda.md
│ ├── double-negation-stable-propositions.lagda.md
│ ├── double-negation.lagda.md
│ ├── double-powersets.lagda.md
│ ├── dubuc-penon-compact-types.lagda.md
│ ├── effective-maps-equivalence-relations.lagda.md
│ ├── embeddings.lagda.md
│ ├── empty-types.lagda.md
│ ├── endomorphisms.lagda.md
│ ├── epimorphisms-with-respect-to-sets.lagda.md
│ ├── epimorphisms-with-respect-to-truncated-types.lagda.md
│ ├── epimorphisms.lagda.md
│ ├── equality-cartesian-product-types.lagda.md
│ ├── equality-coproduct-types.lagda.md
│ ├── equality-dependent-function-types.lagda.md
│ ├── equality-dependent-pair-types.lagda.md
│ ├── equality-fibers-of-maps.lagda.md
│ ├── equivalence-classes.lagda.md
│ ├── equivalence-extensionality.lagda.md
│ ├── equivalence-induction.lagda.md
│ ├── equivalence-injective-type-families.lagda.md
│ ├── equivalence-relations.lagda.md
│ ├── equivalences-arrows.lagda.md
│ ├── equivalences-cospans.lagda.md
│ ├── equivalences-double-arrows.lagda.md
│ ├── equivalences-inverse-sequential-diagrams.lagda.md
│ ├── equivalences-maybe.lagda.md
│ ├── equivalences-span-diagrams-families-of-types.lagda.md
│ ├── equivalences-span-diagrams.lagda.md
│ ├── equivalences-spans-families-of-types.lagda.md
│ ├── equivalences-spans.lagda.md
│ ├── equivalences.lagda.md
│ ├── evaluation-functions.lagda.md
│ ├── exclusive-disjunction.lagda.md
│ ├── exclusive-sum.lagda.md
│ ├── existential-quantification.lagda.md
│ ├── exponents-set-quotients.lagda.md
│ ├── extensions-types-global-subuniverses.lagda.md
│ ├── extensions-types-subuniverses.lagda.md
│ ├── extensions-types.lagda.md
│ ├── faithful-maps.lagda.md
│ ├── families-of-equivalences.lagda.md
│ ├── families-of-maps.lagda.md
│ ├── families-over-telescopes.lagda.md
│ ├── fiber-inclusions.lagda.md
│ ├── fibered-equivalences.lagda.md
│ ├── fibered-involutions.lagda.md
│ ├── fibered-maps.lagda.md
│ ├── fibers-of-maps.lagda.md
│ ├── finite-sequences-set-quotients.lagda.md
│ ├── finitely-coherent-equivalences.lagda.md
│ ├── finitely-coherently-invertible-maps.lagda.md
│ ├── fixed-points-endofunctions.lagda.md
│ ├── full-subtypes.lagda.md
│ ├── function-extensionality.lagda.md
│ ├── function-types.lagda.md
│ ├── functional-correspondences.lagda.md
│ ├── functoriality-action-on-identifications-functions.lagda.md
│ ├── functoriality-cartesian-product-types.lagda.md
│ ├── functoriality-coproduct-types.lagda.md
│ ├── functoriality-dependent-function-types.lagda.md
│ ├── functoriality-dependent-pair-types.lagda.md
│ ├── functoriality-disjunction.lagda.md
│ ├── functoriality-fibers-of-maps.lagda.md
│ ├── functoriality-function-types.lagda.md
│ ├── functoriality-morphisms-arrows.lagda.md
│ ├── functoriality-propositional-truncation.lagda.md
│ ├── functoriality-pullbacks.lagda.md
│ ├── functoriality-sequential-limits.lagda.md
│ ├── functoriality-set-quotients.lagda.md
│ ├── functoriality-set-truncation.lagda.md
│ ├── functoriality-truncation.lagda.md
│ ├── fundamental-theorem-of-equivalence-relations.lagda.md
│ ├── fundamental-theorem-of-identity-types.lagda.md
│ ├── global-choice.lagda.md
│ ├── global-subuniverses.lagda.md
│ ├── globular-type-of-dependent-functions.lagda.md
│ ├── globular-type-of-functions.lagda.md
│ ├── higher-homotopies-morphisms-arrows.lagda.md
│ ├── hilberts-epsilon-operators.lagda.md
│ ├── homotopies-morphisms-arrows.lagda.md
│ ├── homotopies-morphisms-cospan-diagrams.lagda.md
│ ├── homotopies.lagda.md
│ ├── homotopy-algebra.lagda.md
│ ├── homotopy-induction.lagda.md
│ ├── homotopy-preorder-of-types.lagda.md
│ ├── horizontal-composition-spans-of-spans.lagda.md
│ ├── idempotent-maps.lagda.md
│ ├── identity-systems.lagda.md
│ ├── identity-truncated-types.lagda.md
│ ├── identity-types.lagda.md
│ ├── images-subtypes.lagda.md
│ ├── images.lagda.md
│ ├── implicit-function-types.lagda.md
│ ├── impredicative-encodings.lagda.md
│ ├── impredicative-universes.lagda.md
│ ├── induction-principle-propositional-truncation.lagda.md
│ ├── infinitely-coherent-equivalences.lagda.md
│ ├── inhabited-subtypes.lagda.md
│ ├── inhabited-types.lagda.md
│ ├── injective-maps.lagda.md
│ ├── interchange-law.lagda.md
│ ├── intersections-subtypes.lagda.md
│ ├── inverse-sequential-diagrams.lagda.md
│ ├── invertible-maps.lagda.md
│ ├── involutions.lagda.md
│ ├── irrefutable-propositions.lagda.md
│ ├── isolated-elements.lagda.md
│ ├── isomorphisms-of-sets.lagda.md
│ ├── iterated-cartesian-product-types.lagda.md
│ ├── iterated-dependent-pair-types.lagda.md
│ ├── iterated-dependent-product-types.lagda.md
│ ├── iterating-automorphisms.lagda.md
│ ├── iterating-families-of-maps.lagda.md
│ ├── iterating-functions.lagda.md
│ ├── iterating-involutions.lagda.md
│ ├── kernel-span-diagrams-of-maps.lagda.md
│ ├── large-apartness-relations.lagda.md
│ ├── large-binary-relations.lagda.md
│ ├── large-dependent-pair-types.lagda.md
│ ├── large-homotopies.lagda.md
│ ├── large-identity-types.lagda.md
│ ├── large-locale-of-propositions.lagda.md
│ ├── large-locale-of-subtypes.lagda.md
│ ├── law-of-excluded-middle.lagda.md
│ ├── lawveres-fixed-point-theorem.lagda.md
│ ├── lesser-limited-principle-of-omniscience.lagda.md
│ ├── lifts-types.lagda.md
│ ├── limited-principle-of-omniscience.lagda.md
│ ├── locale-of-propositions.lagda.md
│ ├── locally-small-types.lagda.md
│ ├── logical-equivalences.lagda.md
│ ├── maps-in-global-subuniverses.lagda.md
│ ├── maps-in-subuniverses.lagda.md
│ ├── maybe.lagda.md
│ ├── mere-embeddings.lagda.md
│ ├── mere-equality.lagda.md
│ ├── mere-equivalences.lagda.md
│ ├── mere-functions.lagda.md
│ ├── mere-logical-equivalences.lagda.md
│ ├── mere-path-cosplit-maps.lagda.md
│ ├── monomorphisms.lagda.md
│ ├── morphisms-arrows.lagda.md
│ ├── morphisms-binary-relations.lagda.md
│ ├── morphisms-coalgebras-maybe.lagda.md
│ ├── morphisms-cospan-diagrams.lagda.md
│ ├── morphisms-cospans.lagda.md
│ ├── morphisms-double-arrows.lagda.md
│ ├── morphisms-inverse-sequential-diagrams.lagda.md
│ ├── morphisms-span-diagrams.lagda.md
│ ├── morphisms-spans-families-of-types.lagda.md
│ ├── morphisms-spans.lagda.md
│ ├── morphisms-twisted-arrows.lagda.md
│ ├── multisubsets.lagda.md
│ ├── multivariable-correspondences.lagda.md
│ ├── multivariable-decidable-relations.lagda.md
│ ├── multivariable-functoriality-set-quotients.lagda.md
│ ├── multivariable-homotopies.lagda.md
│ ├── multivariable-operations.lagda.md
│ ├── multivariable-relations.lagda.md
│ ├── multivariable-sections.lagda.md
│ ├── negated-equality.lagda.md
│ ├── negation.lagda.md
│ ├── noncontractible-types.lagda.md
│ ├── null-homotopic-maps.lagda.md
│ ├── operations-span-diagrams.lagda.md
│ ├── operations-spans-families-of-types.lagda.md
│ ├── operations-spans.lagda.md
│ ├── opposite-spans.lagda.md
│ ├── pairs-of-distinct-elements.lagda.md
│ ├── partial-elements.lagda.md
│ ├── partial-functions.lagda.md
│ ├── partial-sequences.lagda.md
│ ├── partitions.lagda.md
│ ├── path-algebra.lagda.md
│ ├── path-cosplit-maps.lagda.md
│ ├── path-split-maps.lagda.md
│ ├── path-split-type-families.lagda.md
│ ├── perfect-images.lagda.md
│ ├── permutations-spans-families-of-types.lagda.md
│ ├── pi-decompositions-subuniverse.lagda.md
│ ├── pi-decompositions.lagda.md
│ ├── pointed-torsorial-type-families.lagda.md
│ ├── postcomposition-dependent-functions.lagda.md
│ ├── postcomposition-functions.lagda.md
│ ├── postcomposition-pullbacks.lagda.md
│ ├── powersets.lagda.md
│ ├── precomposition-dependent-functions.lagda.md
│ ├── precomposition-functions-into-subuniverses.lagda.md
│ ├── precomposition-functions.lagda.md
│ ├── precomposition-type-families.lagda.md
│ ├── preunivalence.lagda.md
│ ├── preunivalent-type-families.lagda.md
│ ├── principle-of-omniscience.lagda.md
│ ├── product-decompositions-subuniverse.lagda.md
│ ├── product-decompositions.lagda.md
│ ├── products-binary-relations.lagda.md
│ ├── products-equivalence-relations.lagda.md
│ ├── products-of-tuples-of-types.lagda.md
│ ├── products-pullbacks.lagda.md
│ ├── products-unordered-pairs-of-types.lagda.md
│ ├── products-unordered-tuples-of-types.lagda.md
│ ├── projective-types.lagda.md
│ ├── proper-subtypes.lagda.md
│ ├── propositional-extensionality.lagda.md
│ ├── propositional-maps.lagda.md
│ ├── propositional-resizing.lagda.md
│ ├── propositional-truncations.lagda.md
│ ├── propositions.lagda.md
│ ├── pullback-cones.lagda.md
│ ├── pullbacks-subtypes.lagda.md
│ ├── pullbacks.lagda.md
│ ├── quasicoherently-idempotent-maps.lagda.md
│ ├── raising-universe-levels.lagda.md
│ ├── reflecting-maps-equivalence-relations.lagda.md
│ ├── reflexive-relations.lagda.md
│ ├── regensburg-extension-fundamental-theorem-of-identity-types.lagda.md
│ ├── relaxed-sigma-decompositions.lagda.md
│ ├── repetitions-of-values.lagda.md
│ ├── repetitions-sequences.lagda.md
│ ├── replacement.lagda.md
│ ├── retractions.lagda.md
│ ├── retracts-of-maps.lagda.md
│ ├── retracts-of-types.lagda.md
│ ├── sections.lagda.md
│ ├── separated-types-subuniverses.lagda.md
│ ├── sequences.lagda.md
│ ├── sequential-limits.lagda.md
│ ├── set-presented-types.lagda.md
│ ├── set-quotients.lagda.md
│ ├── set-truncations.lagda.md
│ ├── sets.lagda.md
│ ├── shifting-sequences.lagda.md
│ ├── sigma-closed-subuniverses.lagda.md
│ ├── sigma-decomposition-subuniverse.lagda.md
│ ├── sigma-decompositions.lagda.md
│ ├── singleton-induction.lagda.md
│ ├── singleton-subtypes.lagda.md
│ ├── slice.lagda.md
│ ├── small-maps.lagda.md
│ ├── small-types.lagda.md
│ ├── small-universes.lagda.md
│ ├── sorial-type-families.lagda.md
│ ├── span-diagrams-families-of-types.lagda.md
│ ├── span-diagrams.lagda.md
│ ├── spans-families-of-types.lagda.md
│ ├── spans-of-spans.lagda.md
│ ├── spans.lagda.md
│ ├── split-idempotent-maps.lagda.md
│ ├── split-surjective-maps.lagda.md
│ ├── standard-apartness-relations.lagda.md
│ ├── standard-pullbacks.lagda.md
│ ├── standard-ternary-pullbacks.lagda.md
│ ├── strict-symmetrization-binary-relations.lagda.md
│ ├── strictly-involutive-identity-types.lagda.md
│ ├── strictly-right-unital-concatenation-identifications.lagda.md
│ ├── strong-preunivalence.lagda.md
│ ├── strongly-extensional-maps.lagda.md
│ ├── structure-identity-principle.lagda.md
│ ├── structure.lagda.md
│ ├── structured-equality-duality.lagda.md
│ ├── structured-type-duality.lagda.md
│ ├── subsequences.lagda.md
│ ├── subsingleton-induction.lagda.md
│ ├── subterminal-types.lagda.md
│ ├── subtype-duality.lagda.md
│ ├── subtype-identity-principle.lagda.md
│ ├── subtypes.lagda.md
│ ├── subuniverses.lagda.md
│ ├── surjective-maps.lagda.md
│ ├── symmetric-binary-relations.lagda.md
│ ├── symmetric-cores-binary-relations.lagda.md
│ ├── symmetric-difference.lagda.md
│ ├── symmetric-identity-types.lagda.md
│ ├── symmetric-operations.lagda.md
│ ├── telescopes.lagda.md
│ ├── terminal-spans-families-of-types.lagda.md
│ ├── tight-apartness-relations.lagda.md
│ ├── torsorial-type-families.lagda.md
│ ├── total-partial-elements.lagda.md
│ ├── total-partial-functions.lagda.md
│ ├── transfinite-cocomposition-of-maps.lagda.md
│ ├── transport-along-equivalences.lagda.md
│ ├── transport-along-higher-identifications.lagda.md
│ ├── transport-along-homotopies.lagda.md
│ ├── transport-along-identifications.lagda.md
│ ├── transport-split-type-families.lagda.md
│ ├── transposition-identifications-along-equivalences.lagda.md
│ ├── transposition-identifications-along-retractions.lagda.md
│ ├── transposition-identifications-along-sections.lagda.md
│ ├── transposition-span-diagrams.lagda.md
│ ├── trivial-relaxed-sigma-decompositions.lagda.md
│ ├── trivial-sigma-decompositions.lagda.md
│ ├── truncated-equality.lagda.md
│ ├── truncated-maps.lagda.md
│ ├── truncated-types.lagda.md
│ ├── truncation-equivalences.lagda.md
│ ├── truncation-images-of-maps.lagda.md
│ ├── truncation-levels.lagda.md
│ ├── truncation-modalities.lagda.md
│ ├── truncations.lagda.md
│ ├── tuples-of-types.lagda.md
│ ├── type-arithmetic-booleans.lagda.md
│ ├── type-arithmetic-cartesian-product-types.lagda.md
│ ├── type-arithmetic-coproduct-types.lagda.md
│ ├── type-arithmetic-dependent-function-types.lagda.md
│ ├── type-arithmetic-dependent-pair-types.lagda.md
│ ├── type-arithmetic-empty-type.lagda.md
│ ├── type-arithmetic-standard-pullbacks.lagda.md
│ ├── type-arithmetic-unit-type.lagda.md
│ ├── type-duality.lagda.md
│ ├── type-theoretic-principle-of-choice.lagda.md
│ ├── uniformly-decidable-type-families.lagda.md
│ ├── unions-subtypes.lagda.md
│ ├── uniqueness-image.lagda.md
│ ├── uniqueness-quantification.lagda.md
│ ├── uniqueness-set-quotients.lagda.md
│ ├── uniqueness-set-truncations.lagda.md
│ ├── uniqueness-truncation.lagda.md
│ ├── unit-type.lagda.md
│ ├── unital-binary-operations.lagda.md
│ ├── univalence-implies-function-extensionality.lagda.md
│ ├── univalence.lagda.md
│ ├── univalent-type-families.lagda.md
│ ├── universal-property-booleans.lagda.md
│ ├── universal-property-cartesian-product-types.lagda.md
│ ├── universal-property-contractible-types.lagda.md
│ ├── universal-property-coproduct-types.lagda.md
│ ├── universal-property-dependent-function-types.lagda.md
│ ├── universal-property-dependent-pair-types.lagda.md
│ ├── universal-property-empty-type.lagda.md
│ ├── universal-property-equivalences.lagda.md
│ ├── universal-property-family-of-fibers-of-maps.lagda.md
│ ├── universal-property-fiber-products.lagda.md
│ ├── universal-property-identity-systems.lagda.md
│ ├── universal-property-identity-types.lagda.md
│ ├── universal-property-image.lagda.md
│ ├── universal-property-maybe.lagda.md
│ ├── universal-property-propositional-truncation-into-sets.lagda.md
│ ├── universal-property-propositional-truncation.lagda.md
│ ├── universal-property-pullbacks.lagda.md
│ ├── universal-property-sequential-limits.lagda.md
│ ├── universal-property-set-quotients.lagda.md
│ ├── universal-property-set-truncation.lagda.md
│ ├── universal-property-truncation.lagda.md
│ ├── universal-property-unit-type.lagda.md
│ ├── universal-quantification.lagda.md
│ ├── universe-levels.lagda.md
│ ├── unordered-pairs-of-types.lagda.md
│ ├── unordered-pairs.lagda.md
│ ├── unordered-tuples-of-types.lagda.md
│ ├── unordered-tuples.lagda.md
│ ├── vertical-composition-spans-of-spans.lagda.md
│ ├── weak-function-extensionality.lagda.md
│ ├── weak-limited-principle-of-omniscience.lagda.md
│ ├── weakly-constant-maps.lagda.md
│ ├── whiskering-higher-homotopies-composition.lagda.md
│ ├── whiskering-homotopies-composition.lagda.md
│ ├── whiskering-homotopies-concatenation.lagda.md
│ ├── whiskering-identifications-concatenation.lagda.md
│ ├── whiskering-operations.lagda.md
│ ├── wild-category-of-types.lagda.md
│ └── yoneda-identity-types.lagda.md
├── globular-types.lagda.md
├── globular-types
│ ├── base-change-dependent-globular-types.lagda.md
│ ├── base-change-dependent-reflexive-globular-types.lagda.md
│ ├── binary-dependent-globular-types.lagda.md
│ ├── binary-dependent-reflexive-globular-types.lagda.md
│ ├── binary-globular-maps.lagda.md
│ ├── colax-reflexive-globular-maps.lagda.md
│ ├── colax-transitive-globular-maps.lagda.md
│ ├── composition-structure-globular-types.lagda.md
│ ├── constant-globular-types.lagda.md
│ ├── dependent-globular-types.lagda.md
│ ├── dependent-reflexive-globular-types.lagda.md
│ ├── dependent-sums-globular-types.lagda.md
│ ├── discrete-dependent-reflexive-globular-types.lagda.md
│ ├── discrete-globular-types.lagda.md
│ ├── discrete-reflexive-globular-types.lagda.md
│ ├── empty-globular-types.lagda.md
│ ├── equality-globular-types.lagda.md
│ ├── exponentials-globular-types.lagda.md
│ ├── fibers-globular-maps.lagda.md
│ ├── globular-equivalences.lagda.md
│ ├── globular-maps.lagda.md
│ ├── globular-types.lagda.md
│ ├── large-colax-reflexive-globular-maps.lagda.md
│ ├── large-colax-transitive-globular-maps.lagda.md
│ ├── large-globular-maps.lagda.md
│ ├── large-globular-types.lagda.md
│ ├── large-lax-reflexive-globular-maps.lagda.md
│ ├── large-lax-transitive-globular-maps.lagda.md
│ ├── large-reflexive-globular-maps.lagda.md
│ ├── large-reflexive-globular-types.lagda.md
│ ├── large-symmetric-globular-types.lagda.md
│ ├── large-transitive-globular-maps.lagda.md
│ ├── large-transitive-globular-types.lagda.md
│ ├── lax-reflexive-globular-maps.lagda.md
│ ├── lax-transitive-globular-maps.lagda.md
│ ├── points-globular-types.lagda.md
│ ├── points-reflexive-globular-types.lagda.md
│ ├── pointwise-extensions-binary-families-globular-types.lagda.md
│ ├── pointwise-extensions-binary-families-reflexive-globular-types.lagda.md
│ ├── pointwise-extensions-families-globular-types.lagda.md
│ ├── pointwise-extensions-families-reflexive-globular-types.lagda.md
│ ├── products-families-of-globular-types.lagda.md
│ ├── reflexive-globular-equivalences.lagda.md
│ ├── reflexive-globular-maps.lagda.md
│ ├── reflexive-globular-types.lagda.md
│ ├── sections-dependent-globular-types.lagda.md
│ ├── superglobular-types.lagda.md
│ ├── symmetric-globular-types.lagda.md
│ ├── terminal-globular-types.lagda.md
│ ├── transitive-globular-maps.lagda.md
│ ├── transitive-globular-types.lagda.md
│ ├── unit-globular-type.lagda.md
│ ├── unit-reflexive-globular-type.lagda.md
│ ├── universal-globular-type.lagda.md
│ └── universal-reflexive-globular-type.lagda.md
├── graph-theory.lagda.md
├── graph-theory
│ ├── acyclic-undirected-graphs.lagda.md
│ ├── base-change-dependent-directed-graphs.lagda.md
│ ├── base-change-dependent-reflexive-graphs.lagda.md
│ ├── cartesian-products-directed-graphs.lagda.md
│ ├── cartesian-products-reflexive-graphs.lagda.md
│ ├── circuits-undirected-graphs.lagda.md
│ ├── closed-walks-undirected-graphs.lagda.md
│ ├── complete-bipartite-graphs.lagda.md
│ ├── complete-multipartite-graphs.lagda.md
│ ├── complete-undirected-graphs.lagda.md
│ ├── connected-undirected-graphs.lagda.md
│ ├── cycles-undirected-graphs.lagda.md
│ ├── dependent-directed-graphs.lagda.md
│ ├── dependent-products-directed-graphs.lagda.md
│ ├── dependent-products-reflexive-graphs.lagda.md
│ ├── dependent-reflexive-graphs.lagda.md
│ ├── dependent-sums-directed-graphs.lagda.md
│ ├── dependent-sums-reflexive-graphs.lagda.md
│ ├── directed-graph-duality.lagda.md
│ ├── directed-graph-structures-on-standard-finite-sets.lagda.md
│ ├── directed-graphs.lagda.md
│ ├── discrete-dependent-reflexive-graphs.lagda.md
│ ├── discrete-directed-graphs.lagda.md
│ ├── discrete-reflexive-graphs.lagda.md
│ ├── displayed-large-reflexive-graphs.lagda.md
│ ├── edge-colored-undirected-graphs.lagda.md
│ ├── embeddings-directed-graphs.lagda.md
│ ├── embeddings-undirected-graphs.lagda.md
│ ├── enriched-undirected-graphs.lagda.md
│ ├── equivalences-dependent-directed-graphs.lagda.md
│ ├── equivalences-dependent-reflexive-graphs.lagda.md
│ ├── equivalences-directed-graphs.lagda.md
│ ├── equivalences-enriched-undirected-graphs.lagda.md
│ ├── equivalences-reflexive-graphs.lagda.md
│ ├── equivalences-undirected-graphs.lagda.md
│ ├── eulerian-circuits-undirected-graphs.lagda.md
│ ├── faithful-morphisms-undirected-graphs.lagda.md
│ ├── fibers-directed-graphs.lagda.md
│ ├── fibers-morphisms-directed-graphs.lagda.md
│ ├── fibers-morphisms-reflexive-graphs.lagda.md
│ ├── finite-graphs.lagda.md
│ ├── geometric-realizations-undirected-graphs.lagda.md
│ ├── higher-directed-graphs.lagda.md
│ ├── hypergraphs.lagda.md
│ ├── internal-hom-directed-graphs.lagda.md
│ ├── large-higher-directed-graphs.lagda.md
│ ├── large-reflexive-graphs.lagda.md
│ ├── matchings.lagda.md
│ ├── mere-equivalences-undirected-graphs.lagda.md
│ ├── morphisms-dependent-directed-graphs.lagda.md
│ ├── morphisms-directed-graphs.lagda.md
│ ├── morphisms-reflexive-graphs.lagda.md
│ ├── morphisms-undirected-graphs.lagda.md
│ ├── neighbors-undirected-graphs.lagda.md
│ ├── orientations-undirected-graphs.lagda.md
│ ├── paths-undirected-graphs.lagda.md
│ ├── polygons.lagda.md
│ ├── raising-universe-levels-directed-graphs.lagda.md
│ ├── reflecting-maps-undirected-graphs.lagda.md
│ ├── reflexive-graphs.lagda.md
│ ├── regular-undirected-graphs.lagda.md
│ ├── sections-dependent-directed-graphs.lagda.md
│ ├── sections-dependent-reflexive-graphs.lagda.md
│ ├── simple-undirected-graphs.lagda.md
│ ├── stereoisomerism-enriched-undirected-graphs.lagda.md
│ ├── terminal-directed-graphs.lagda.md
│ ├── terminal-reflexive-graphs.lagda.md
│ ├── totally-faithful-morphisms-undirected-graphs.lagda.md
│ ├── trails-directed-graphs.lagda.md
│ ├── trails-undirected-graphs.lagda.md
│ ├── undirected-graph-structures-on-standard-finite-sets.lagda.md
│ ├── undirected-graphs.lagda.md
│ ├── universal-directed-graph.lagda.md
│ ├── universal-reflexive-graph.lagda.md
│ ├── vertex-covers.lagda.md
│ ├── voltage-graphs.lagda.md
│ ├── walks-directed-graphs.lagda.md
│ ├── walks-undirected-graphs.lagda.md
│ └── wide-displayed-large-reflexive-graphs.lagda.md
├── group-theory.lagda.md
├── group-theory
│ ├── abelian-groups.lagda.md
│ ├── abelianization-groups.lagda.md
│ ├── addition-homomorphisms-abelian-groups.lagda.md
│ ├── arithmetic-sequences-semigroups.lagda.md
│ ├── automorphism-groups.lagda.md
│ ├── cartesian-products-abelian-groups.lagda.md
│ ├── cartesian-products-concrete-groups.lagda.md
│ ├── cartesian-products-groups.lagda.md
│ ├── cartesian-products-monoids.lagda.md
│ ├── cartesian-products-semigroups.lagda.md
│ ├── category-of-abelian-groups.lagda.md
│ ├── category-of-concrete-groups.lagda.md
│ ├── category-of-group-actions.lagda.md
│ ├── category-of-groups.lagda.md
│ ├── category-of-orbits-groups.lagda.md
│ ├── category-of-semigroups.lagda.md
│ ├── cayleys-theorem.lagda.md
│ ├── centers-groups.lagda.md
│ ├── centers-monoids.lagda.md
│ ├── centers-semigroups.lagda.md
│ ├── central-elements-groups.lagda.md
│ ├── central-elements-monoids.lagda.md
│ ├── central-elements-semigroups.lagda.md
│ ├── centralizer-subgroups.lagda.md
│ ├── characteristic-subgroups.lagda.md
│ ├── commutative-monoids.lagda.md
│ ├── commutator-subgroups.lagda.md
│ ├── commutators-of-elements-groups.lagda.md
│ ├── commuting-elements-groups.lagda.md
│ ├── commuting-elements-monoids.lagda.md
│ ├── commuting-elements-semigroups.lagda.md
│ ├── commuting-squares-of-group-homomorphisms.lagda.md
│ ├── concrete-group-actions.lagda.md
│ ├── concrete-groups.lagda.md
│ ├── concrete-monoids.lagda.md
│ ├── congruence-relations-abelian-groups.lagda.md
│ ├── congruence-relations-commutative-monoids.lagda.md
│ ├── congruence-relations-groups.lagda.md
│ ├── congruence-relations-monoids.lagda.md
│ ├── congruence-relations-semigroups.lagda.md
│ ├── conjugation-concrete-groups.lagda.md
│ ├── conjugation.lagda.md
│ ├── contravariant-pushforward-concrete-group-actions.lagda.md
│ ├── cores-monoids.lagda.md
│ ├── cyclic-groups.lagda.md
│ ├── decidable-subgroups.lagda.md
│ ├── dependent-products-abelian-groups.lagda.md
│ ├── dependent-products-commutative-monoids.lagda.md
│ ├── dependent-products-groups.lagda.md
│ ├── dependent-products-monoids.lagda.md
│ ├── dependent-products-semigroups.lagda.md
│ ├── dihedral-group-construction.lagda.md
│ ├── dihedral-groups.lagda.md
│ ├── e8-lattice.lagda.md
│ ├── elements-of-finite-order-groups.lagda.md
│ ├── embeddings-abelian-groups.lagda.md
│ ├── embeddings-groups.lagda.md
│ ├── endomorphism-rings-abelian-groups.lagda.md
│ ├── epimorphisms-groups.lagda.md
│ ├── equivalences-concrete-group-actions.lagda.md
│ ├── equivalences-concrete-groups.lagda.md
│ ├── equivalences-group-actions.lagda.md
│ ├── equivalences-semigroups.lagda.md
│ ├── exponents-abelian-groups.lagda.md
│ ├── exponents-groups.lagda.md
│ ├── free-concrete-group-actions.lagda.md
│ ├── free-groups-with-one-generator.lagda.md
│ ├── full-subgroups.lagda.md
│ ├── full-subsemigroups.lagda.md
│ ├── function-abelian-groups.lagda.md
│ ├── function-commutative-monoids.lagda.md
│ ├── function-groups.lagda.md
│ ├── function-monoids.lagda.md
│ ├── function-semigroups.lagda.md
│ ├── functoriality-quotient-groups.lagda.md
│ ├── furstenberg-groups.lagda.md
│ ├── generating-elements-groups.lagda.md
│ ├── generating-sets-groups.lagda.md
│ ├── group-actions.lagda.md
│ ├── groups.lagda.md
│ ├── homomorphisms-abelian-groups.lagda.md
│ ├── homomorphisms-commutative-monoids.lagda.md
│ ├── homomorphisms-concrete-group-actions.lagda.md
│ ├── homomorphisms-concrete-groups.lagda.md
│ ├── homomorphisms-generated-subgroups.lagda.md
│ ├── homomorphisms-group-actions.lagda.md
│ ├── homomorphisms-groups-equipped-with-normal-subgroups.lagda.md
│ ├── homomorphisms-groups.lagda.md
│ ├── homomorphisms-monoids.lagda.md
│ ├── homomorphisms-semigroups.lagda.md
│ ├── homotopy-automorphism-groups.lagda.md
│ ├── images-of-group-homomorphisms.lagda.md
│ ├── images-of-semigroup-homomorphisms.lagda.md
│ ├── integer-multiples-of-elements-abelian-groups.lagda.md
│ ├── integer-powers-of-elements-groups.lagda.md
│ ├── intersections-subgroups-abelian-groups.lagda.md
│ ├── intersections-subgroups-groups.lagda.md
│ ├── inverse-semigroups.lagda.md
│ ├── invertible-elements-monoids.lagda.md
│ ├── isomorphisms-abelian-groups.lagda.md
│ ├── isomorphisms-concrete-groups.lagda.md
│ ├── isomorphisms-group-actions.lagda.md
│ ├── isomorphisms-groups.lagda.md
│ ├── isomorphisms-monoids.lagda.md
│ ├── isomorphisms-semigroups.lagda.md
│ ├── iterated-cartesian-products-concrete-groups.lagda.md
│ ├── kernels-homomorphisms-abelian-groups.lagda.md
│ ├── kernels-homomorphisms-concrete-groups.lagda.md
│ ├── kernels-homomorphisms-groups.lagda.md
│ ├── large-semigroups.lagda.md
│ ├── loop-groups-sets.lagda.md
│ ├── mere-equivalences-concrete-group-actions.lagda.md
│ ├── mere-equivalences-group-actions.lagda.md
│ ├── minkowski-multiplication-commutative-monoids.lagda.md
│ ├── minkowski-multiplication-monoids.lagda.md
│ ├── minkowski-multiplication-semigroups.lagda.md
│ ├── monoid-actions.lagda.md
│ ├── monoids.lagda.md
│ ├── monomorphisms-concrete-groups.lagda.md
│ ├── monomorphisms-groups.lagda.md
│ ├── multiples-of-elements-abelian-groups.lagda.md
│ ├── nontrivial-groups.lagda.md
│ ├── normal-closures-subgroups.lagda.md
│ ├── normal-cores-subgroups.lagda.md
│ ├── normal-subgroups-concrete-groups.lagda.md
│ ├── normal-subgroups.lagda.md
│ ├── normal-submonoids-commutative-monoids.lagda.md
│ ├── normal-submonoids.lagda.md
│ ├── normalizer-subgroups.lagda.md
│ ├── nullifying-group-homomorphisms.lagda.md
│ ├── opposite-groups.lagda.md
│ ├── opposite-semigroups.lagda.md
│ ├── orbit-stabilizer-theorem-concrete-groups.lagda.md
│ ├── orbits-concrete-group-actions.lagda.md
│ ├── orbits-group-actions.lagda.md
│ ├── orders-of-elements-groups.lagda.md
│ ├── perfect-cores.lagda.md
│ ├── perfect-groups.lagda.md
│ ├── perfect-subgroups.lagda.md
│ ├── powers-of-elements-commutative-monoids.lagda.md
│ ├── powers-of-elements-groups.lagda.md
│ ├── powers-of-elements-monoids.lagda.md
│ ├── precategory-of-commutative-monoids.lagda.md
│ ├── precategory-of-concrete-groups.lagda.md
│ ├── precategory-of-group-actions.lagda.md
│ ├── precategory-of-groups.lagda.md
│ ├── precategory-of-monoids.lagda.md
│ ├── precategory-of-orbits-monoid-actions.lagda.md
│ ├── precategory-of-semigroups.lagda.md
│ ├── principal-group-actions.lagda.md
│ ├── principal-torsors-concrete-groups.lagda.md
│ ├── products-of-elements-monoids.lagda.md
│ ├── pullbacks-subgroups.lagda.md
│ ├── pullbacks-subsemigroups.lagda.md
│ ├── quotient-groups-concrete-groups.lagda.md
│ ├── quotient-groups.lagda.md
│ ├── quotients-abelian-groups.lagda.md
│ ├── rational-commutative-monoids.lagda.md
│ ├── representations-monoids-precategories.lagda.md
│ ├── saturated-congruence-relations-commutative-monoids.lagda.md
│ ├── saturated-congruence-relations-monoids.lagda.md
│ ├── semigroups.lagda.md
│ ├── sheargroups.lagda.md
│ ├── shriek-concrete-group-actions.lagda.md
│ ├── stabilizer-groups-concrete-group-actions.lagda.md
│ ├── stabilizer-groups.lagda.md
│ ├── subgroups-abelian-groups.lagda.md
│ ├── subgroups-concrete-groups.lagda.md
│ ├── subgroups-generated-by-elements-groups.lagda.md
│ ├── subgroups-generated-by-families-of-elements-groups.lagda.md
│ ├── subgroups-generated-by-subsets-groups.lagda.md
│ ├── subgroups.lagda.md
│ ├── submonoids-commutative-monoids.lagda.md
│ ├── submonoids.lagda.md
│ ├── subsemigroups.lagda.md
│ ├── subsets-abelian-groups.lagda.md
│ ├── subsets-commutative-monoids.lagda.md
│ ├── subsets-groups.lagda.md
│ ├── subsets-monoids.lagda.md
│ ├── subsets-semigroups.lagda.md
│ ├── substitution-functor-concrete-group-actions.lagda.md
│ ├── substitution-functor-group-actions.lagda.md
│ ├── sums-of-finite-families-of-elements-commutative-monoids.lagda.md
│ ├── sums-of-finite-sequences-of-elements-commutative-monoids.lagda.md
│ ├── sums-of-finite-sequences-of-elements-monoids.lagda.md
│ ├── surjective-group-homomorphisms.lagda.md
│ ├── surjective-semigroup-homomorphisms.lagda.md
│ ├── symmetric-concrete-groups.lagda.md
│ ├── symmetric-groups.lagda.md
│ ├── torsion-elements-groups.lagda.md
│ ├── torsion-free-groups.lagda.md
│ ├── torsors.lagda.md
│ ├── transitive-concrete-group-actions.lagda.md
│ ├── transitive-group-actions.lagda.md
│ ├── trivial-concrete-groups.lagda.md
│ ├── trivial-group-homomorphisms.lagda.md
│ ├── trivial-groups.lagda.md
│ ├── trivial-subgroups.lagda.md
│ ├── unordered-tuples-in-commutative-monoids.lagda.md
│ └── wild-representations-monoids.lagda.md
├── higher-group-theory.lagda.md
├── higher-group-theory
│ ├── abelian-higher-groups.lagda.md
│ ├── automorphism-groups.lagda.md
│ ├── cartesian-products-higher-groups.lagda.md
│ ├── conjugation.lagda.md
│ ├── cyclic-higher-groups.lagda.md
│ ├── deloopable-groups.lagda.md
│ ├── deloopable-h-spaces.lagda.md
│ ├── deloopable-types.lagda.md
│ ├── eilenberg-mac-lane-spaces.lagda.md
│ ├── equivalences-higher-groups.lagda.md
│ ├── fixed-points-higher-group-actions.lagda.md
│ ├── free-higher-group-actions.lagda.md
│ ├── higher-group-actions.lagda.md
│ ├── higher-groups.lagda.md
│ ├── homomorphisms-higher-group-actions.lagda.md
│ ├── homomorphisms-higher-groups.lagda.md
│ ├── integers-higher-group.lagda.md
│ ├── iterated-cartesian-products-higher-groups.lagda.md
│ ├── iterated-deloopings-of-pointed-types.lagda.md
│ ├── orbits-higher-group-actions.lagda.md
│ ├── small-higher-groups.lagda.md
│ ├── subgroups-higher-groups.lagda.md
│ ├── symmetric-higher-groups.lagda.md
│ ├── transitive-higher-group-actions.lagda.md
│ └── trivial-higher-groups.lagda.md
├── linear-algebra.lagda.md
├── linear-algebra
│ ├── constant-matrices.lagda.md
│ ├── constant-tuples.lagda.md
│ ├── diagonal-matrices-on-rings.lagda.md
│ ├── finite-sequences-in-commutative-monoids.lagda.md
│ ├── finite-sequences-in-commutative-rings.lagda.md
│ ├── finite-sequences-in-commutative-semirings.lagda.md
│ ├── finite-sequences-in-euclidean-domains.lagda.md
│ ├── finite-sequences-in-monoids.lagda.md
│ ├── finite-sequences-in-rings.lagda.md
│ ├── finite-sequences-in-semirings.lagda.md
│ ├── functoriality-matrices.lagda.md
│ ├── left-modules-rings.lagda.md
│ ├── linear-maps-left-modules-rings.lagda.md
│ ├── matrices-on-rings.lagda.md
│ ├── matrices.lagda.md
│ ├── multiplication-matrices.lagda.md
│ ├── right-modules-rings.lagda.md
│ ├── scalar-multiplication-matrices.lagda.md
│ ├── scalar-multiplication-tuples-on-rings.lagda.md
│ ├── scalar-multiplication-tuples.lagda.md
│ ├── transposition-matrices.lagda.md
│ ├── tuples-on-commutative-monoids.lagda.md
│ ├── tuples-on-commutative-rings.lagda.md
│ ├── tuples-on-commutative-semirings.lagda.md
│ ├── tuples-on-euclidean-domains.lagda.md
│ ├── tuples-on-monoids.lagda.md
│ ├── tuples-on-rings.lagda.md
│ └── tuples-on-semirings.lagda.md
├── lists.lagda.md
├── lists
│ ├── arrays.lagda.md
│ ├── concatenation-lists.lagda.md
│ ├── equivalence-tuples-finite-sequences.lagda.md
│ ├── finite-sequences.lagda.md
│ ├── flattening-lists.lagda.md
│ ├── functoriality-finite-sequences.lagda.md
│ ├── functoriality-lists.lagda.md
│ ├── functoriality-tuples-finite-sequences.lagda.md
│ ├── functoriality-tuples.lagda.md
│ ├── lists-discrete-types.lagda.md
│ ├── lists.lagda.md
│ ├── permutation-lists.lagda.md
│ ├── permutation-tuples.lagda.md
│ ├── predicates-on-lists.lagda.md
│ ├── quicksort-lists.lagda.md
│ ├── reversing-lists.lagda.md
│ ├── sort-by-insertion-lists.lagda.md
│ ├── sort-by-insertion-tuples.lagda.md
│ ├── sorted-lists.lagda.md
│ ├── sorted-tuples.lagda.md
│ ├── sorting-algorithms-lists.lagda.md
│ ├── sorting-algorithms-tuples.lagda.md
│ ├── tuples.lagda.md
│ └── universal-property-lists-wild-monoids.lagda.md
├── literature.lagda.md
├── literature
│ ├── 100-theorems.lagda.md
│ ├── 1000plus-theorems.lagda.md
│ ├── idempotents-in-intensional-type-theory.lagda.md
│ ├── introduction-to-homotopy-type-theory.lagda.md
│ ├── oeis.lagda.md
│ └── sequential-colimits-in-homotopy-type-theory.lagda.md
├── logic.lagda.md
├── logic
│ ├── complements-de-morgan-subtypes.lagda.md
│ ├── complements-decidable-subtypes.lagda.md
│ ├── complements-double-negation-stable-subtypes.lagda.md
│ ├── de-morgan-embeddings.lagda.md
│ ├── de-morgan-maps.lagda.md
│ ├── de-morgan-propositions.lagda.md
│ ├── de-morgan-subtypes.lagda.md
│ ├── de-morgan-types.lagda.md
│ ├── de-morgans-law.lagda.md
│ ├── double-negation-eliminating-maps.lagda.md
│ ├── double-negation-elimination.lagda.md
│ ├── double-negation-stable-embeddings.lagda.md
│ ├── double-negation-stable-subtypes.lagda.md
│ ├── functoriality-existential-quantification.lagda.md
│ ├── markovian-types.lagda.md
│ └── markovs-principle.lagda.md
├── metric-spaces.lagda.md
├── metric-spaces
│ ├── category-of-metric-spaces-and-isometries.lagda.md
│ ├── category-of-metric-spaces-and-short-functions.lagda.md
│ ├── cauchy-approximations-metric-spaces.lagda.md
│ ├── cauchy-approximations-premetric-spaces.lagda.md
│ ├── cauchy-sequences-complete-metric-spaces.lagda.md
│ ├── cauchy-sequences-metric-spaces.lagda.md
│ ├── closed-premetric-structures.lagda.md
│ ├── complete-metric-spaces.lagda.md
│ ├── continuous-functions-metric-spaces.lagda.md
│ ├── continuous-functions-premetric-spaces.lagda.md
│ ├── convergent-cauchy-approximations-metric-spaces.lagda.md
│ ├── convergent-sequences-metric-spaces.lagda.md
│ ├── dependent-products-metric-spaces.lagda.md
│ ├── discrete-premetric-structures.lagda.md
│ ├── elements-at-bounded-distance-metric-spaces.lagda.md
│ ├── equality-of-metric-spaces.lagda.md
│ ├── equality-of-premetric-spaces.lagda.md
│ ├── extensional-premetric-structures.lagda.md
│ ├── functions-metric-spaces.lagda.md
│ ├── functor-category-set-functions-isometry-metric-spaces.lagda.md
│ ├── functor-category-short-isometry-metric-spaces.lagda.md
│ ├── induced-premetric-structures-on-preimages.lagda.md
│ ├── isometric-equivalences-premetric-spaces.lagda.md
│ ├── isometries-metric-spaces.lagda.md
│ ├── isometries-premetric-spaces.lagda.md
│ ├── limits-of-cauchy-approximations-premetric-spaces.lagda.md
│ ├── limits-of-sequences-metric-spaces.lagda.md
│ ├── limits-of-sequences-premetric-spaces.lagda.md
│ ├── limits-of-sequences-pseudometric-spaces.lagda.md
│ ├── lipschitz-functions-metric-spaces.lagda.md
│ ├── metric-space-of-cauchy-approximations-complete-metric-spaces.lagda.md
│ ├── metric-space-of-cauchy-approximations-metric-spaces.lagda.md
│ ├── metric-space-of-cauchy-approximations-saturated-complete-metric-spaces.lagda.md
│ ├── metric-space-of-convergent-cauchy-approximations-metric-spaces.lagda.md
│ ├── metric-space-of-convergent-sequences-metric-spaces.lagda.md
│ ├── metric-space-of-functions-metric-spaces.lagda.md
│ ├── metric-space-of-isometries-metric-spaces.lagda.md
│ ├── metric-space-of-lipschitz-functions-metric-spaces.lagda.md
│ ├── metric-space-of-rational-numbers-with-open-neighborhoods.lagda.md
│ ├── metric-space-of-rational-numbers.lagda.md
│ ├── metric-space-of-short-functions-metric-spaces.lagda.md
│ ├── metric-spaces.lagda.md
│ ├── metric-structures.lagda.md
│ ├── monotonic-premetric-structures.lagda.md
│ ├── ordering-premetric-structures.lagda.md
│ ├── precategory-of-metric-spaces-and-functions.lagda.md
│ ├── precategory-of-metric-spaces-and-isometries.lagda.md
│ ├── precategory-of-metric-spaces-and-short-functions.lagda.md
│ ├── premetric-spaces.lagda.md
│ ├── premetric-structures.lagda.md
│ ├── pseudometric-spaces.lagda.md
│ ├── pseudometric-structures.lagda.md
│ ├── rational-approximations-of-zero.lagda.md
│ ├── rational-cauchy-approximations.lagda.md
│ ├── rational-sequences-approximating-zero.lagda.md
│ ├── reflexive-premetric-structures.lagda.md
│ ├── saturated-complete-metric-spaces.lagda.md
│ ├── saturated-metric-spaces.lagda.md
│ ├── sequences-metric-spaces.lagda.md
│ ├── sequences-premetric-spaces.lagda.md
│ ├── sequences-pseudometric-spaces.lagda.md
│ ├── short-functions-metric-spaces.lagda.md
│ ├── short-functions-premetric-spaces.lagda.md
│ ├── subspaces-metric-spaces.lagda.md
│ ├── symmetric-premetric-structures.lagda.md
│ ├── triangular-premetric-structures.lagda.md
│ ├── uniformly-continuous-functions-metric-spaces.lagda.md
│ └── uniformly-continuous-functions-premetric-spaces.lagda.md
├── modal-type-theory.lagda.md
├── modal-type-theory
│ ├── action-on-homotopies-flat-modality.lagda.md
│ ├── action-on-identifications-crisp-functions.lagda.md
│ ├── action-on-identifications-flat-modality.lagda.md
│ ├── crisp-cartesian-product-types.lagda.md
│ ├── crisp-coproduct-types.lagda.md
│ ├── crisp-dependent-function-types.lagda.md
│ ├── crisp-dependent-pair-types.lagda.md
│ ├── crisp-function-types.lagda.md
│ ├── crisp-identity-types.lagda.md
│ ├── crisp-law-of-excluded-middle.lagda.md
│ ├── crisp-pullbacks.lagda.md
│ ├── crisp-types.lagda.md
│ ├── dependent-universal-property-flat-discrete-crisp-types.lagda.md
│ ├── flat-discrete-crisp-types.lagda.md
│ ├── flat-modality.lagda.md
│ ├── flat-sharp-adjunction.lagda.md
│ ├── functoriality-flat-modality.lagda.md
│ ├── functoriality-sharp-modality.lagda.md
│ ├── sharp-codiscrete-maps.lagda.md
│ ├── sharp-codiscrete-types.lagda.md
│ ├── sharp-modality.lagda.md
│ ├── transport-along-crisp-identifications.lagda.md
│ └── universal-property-flat-discrete-crisp-types.lagda.md
├── order-theory.lagda.md
├── order-theory
│ ├── accessible-elements-relations.lagda.md
│ ├── bottom-elements-large-posets.lagda.md
│ ├── bottom-elements-posets.lagda.md
│ ├── bottom-elements-preorders.lagda.md
│ ├── chains-posets.lagda.md
│ ├── chains-preorders.lagda.md
│ ├── closure-operators-large-locales.lagda.md
│ ├── closure-operators-large-posets.lagda.md
│ ├── commuting-squares-of-galois-connections-large-posets.lagda.md
│ ├── commuting-squares-of-order-preserving-maps-large-posets.lagda.md
│ ├── coverings-locales.lagda.md
│ ├── decidable-posets.lagda.md
│ ├── decidable-preorders.lagda.md
│ ├── decidable-subposets.lagda.md
│ ├── decidable-subpreorders.lagda.md
│ ├── decidable-total-orders.lagda.md
│ ├── decidable-total-preorders.lagda.md
│ ├── deflationary-maps-posets.lagda.md
│ ├── deflationary-maps-preorders.lagda.md
│ ├── dependent-products-large-frames.lagda.md
│ ├── dependent-products-large-inflattices.lagda.md
│ ├── dependent-products-large-locales.lagda.md
│ ├── dependent-products-large-meet-semilattices.lagda.md
│ ├── dependent-products-large-posets.lagda.md
│ ├── dependent-products-large-preorders.lagda.md
│ ├── dependent-products-large-suplattices.lagda.md
│ ├── distributive-lattices.lagda.md
│ ├── finite-coverings-locales.lagda.md
│ ├── finite-posets.lagda.md
│ ├── finite-preorders.lagda.md
│ ├── finite-total-orders.lagda.md
│ ├── finitely-graded-posets.lagda.md
│ ├── frames.lagda.md
│ ├── galois-connections-large-posets.lagda.md
│ ├── galois-connections.lagda.md
│ ├── greatest-lower-bounds-large-posets.lagda.md
│ ├── greatest-lower-bounds-posets.lagda.md
│ ├── homomorphisms-frames.lagda.md
│ ├── homomorphisms-large-frames.lagda.md
│ ├── homomorphisms-large-locales.lagda.md
│ ├── homomorphisms-large-meet-semilattices.lagda.md
│ ├── homomorphisms-large-suplattices.lagda.md
│ ├── homomorphisms-meet-semilattices.lagda.md
│ ├── homomorphisms-meet-suplattices.lagda.md
│ ├── homomorphisms-suplattices.lagda.md
│ ├── ideals-preorders.lagda.md
│ ├── incidence-algebras.lagda.md
│ ├── increasing-sequences-posets.lagda.md
│ ├── inflationary-maps-posets.lagda.md
│ ├── inflationary-maps-preorders.lagda.md
│ ├── inflattices.lagda.md
│ ├── inhabited-chains-posets.lagda.md
│ ├── inhabited-chains-preorders.lagda.md
│ ├── inhabited-finite-total-orders.lagda.md
│ ├── interval-subposets.lagda.md
│ ├── join-preserving-maps-posets.lagda.md
│ ├── join-semilattices.lagda.md
│ ├── knaster-tarski-fixed-point-theorem.lagda.md
│ ├── large-frames.lagda.md
│ ├── large-inflattices.lagda.md
│ ├── large-join-semilattices.lagda.md
│ ├── large-locales.lagda.md
│ ├── large-meet-semilattices.lagda.md
│ ├── large-meet-subsemilattices.lagda.md
│ ├── large-posets.lagda.md
│ ├── large-preorders.lagda.md
│ ├── large-quotient-locales.lagda.md
│ ├── large-strict-orders.lagda.md
│ ├── large-strict-preorders.lagda.md
│ ├── large-subframes.lagda.md
│ ├── large-subposets.lagda.md
│ ├── large-subpreorders.lagda.md
│ ├── large-subsuplattices.lagda.md
│ ├── large-suplattices.lagda.md
│ ├── lattices.lagda.md
│ ├── least-upper-bounds-large-posets.lagda.md
│ ├── least-upper-bounds-posets.lagda.md
│ ├── locales.lagda.md
│ ├── locally-finite-posets.lagda.md
│ ├── lower-bounds-large-posets.lagda.md
│ ├── lower-bounds-posets.lagda.md
│ ├── lower-sets-large-posets.lagda.md
│ ├── lower-types-preorders.lagda.md
│ ├── maximal-chains-posets.lagda.md
│ ├── maximal-chains-preorders.lagda.md
│ ├── meet-semilattices.lagda.md
│ ├── meet-suplattices.lagda.md
│ ├── nuclei-large-locales.lagda.md
│ ├── opposite-large-posets.lagda.md
│ ├── opposite-large-preorders.lagda.md
│ ├── opposite-posets.lagda.md
│ ├── opposite-preorders.lagda.md
│ ├── order-preserving-maps-large-posets.lagda.md
│ ├── order-preserving-maps-large-preorders.lagda.md
│ ├── order-preserving-maps-posets.lagda.md
│ ├── order-preserving-maps-preorders.lagda.md
│ ├── ordinals.lagda.md
│ ├── posets.lagda.md
│ ├── powers-of-large-locales.lagda.md
│ ├── precategory-of-decidable-total-orders.lagda.md
│ ├── precategory-of-finite-posets.lagda.md
│ ├── precategory-of-finite-total-orders.lagda.md
│ ├── precategory-of-inhabited-finite-total-orders.lagda.md
│ ├── precategory-of-posets.lagda.md
│ ├── precategory-of-total-orders.lagda.md
│ ├── preorders.lagda.md
│ ├── principal-lower-sets-large-posets.lagda.md
│ ├── principal-upper-sets-large-posets.lagda.md
│ ├── reflective-galois-connections-large-posets.lagda.md
│ ├── resizing-posets.lagda.md
│ ├── resizing-preorders.lagda.md
│ ├── resizing-suplattices.lagda.md
│ ├── sequences-posets.lagda.md
│ ├── sequences-preorders.lagda.md
│ ├── sequences-strictly-preordered-sets.lagda.md
│ ├── similarity-of-elements-large-posets.lagda.md
│ ├── similarity-of-elements-large-preorders.lagda.md
│ ├── similarity-of-elements-large-strict-orders.lagda.md
│ ├── similarity-of-elements-large-strict-preorders.lagda.md
│ ├── similarity-of-elements-strict-orders.lagda.md
│ ├── similarity-of-elements-strict-preorders.lagda.md
│ ├── similarity-of-order-preserving-maps-large-posets.lagda.md
│ ├── similarity-of-order-preserving-maps-large-preorders.lagda.md
│ ├── strict-order-preserving-maps.lagda.md
│ ├── strict-orders.lagda.md
│ ├── strict-preorders.lagda.md
│ ├── strictly-increasing-sequences-strictly-preordered-sets.lagda.md
│ ├── strictly-inflationary-maps-strict-preorders.lagda.md
│ ├── strictly-preordered-sets.lagda.md
│ ├── subposets.lagda.md
│ ├── subpreorders.lagda.md
│ ├── suplattices.lagda.md
│ ├── supremum-preserving-maps-posets.lagda.md
│ ├── top-elements-large-posets.lagda.md
│ ├── top-elements-posets.lagda.md
│ ├── top-elements-preorders.lagda.md
│ ├── total-orders.lagda.md
│ ├── total-preorders.lagda.md
│ ├── transitive-well-founded-relations.lagda.md
│ ├── transposition-inequalities-along-order-preserving-retractions-posets.lagda.md
│ ├── transposition-inequalities-along-sections-of-order-preserving-maps-posets.lagda.md
│ ├── upper-bounds-chains-posets.lagda.md
│ ├── upper-bounds-large-posets.lagda.md
│ ├── upper-bounds-posets.lagda.md
│ ├── upper-sets-large-posets.lagda.md
│ ├── well-founded-relations.lagda.md
│ └── zorns-lemma.lagda.md
├── organic-chemistry.lagda.md
├── organic-chemistry
│ ├── alcohols.lagda.md
│ ├── alkanes.lagda.md
│ ├── alkenes.lagda.md
│ ├── alkynes.lagda.md
│ ├── ethane.lagda.md
│ ├── hydrocarbons.lagda.md
│ ├── methane.lagda.md
│ └── saturated-carbons.lagda.md
├── orthogonal-factorization-systems.lagda.md
├── orthogonal-factorization-systems
│ ├── cd-structures.lagda.md
│ ├── cellular-maps.lagda.md
│ ├── closed-modalities.lagda.md
│ ├── continuation-modalities.lagda.md
│ ├── double-lifts-families-of-elements.lagda.md
│ ├── double-negation-sheaves.lagda.md
│ ├── extensions-double-lifts-families-of-elements.lagda.md
│ ├── extensions-lifts-families-of-elements.lagda.md
│ ├── extensions-maps.lagda.md
│ ├── factorization-operations-function-classes.lagda.md
│ ├── factorization-operations-global-function-classes.lagda.md
│ ├── factorization-operations.lagda.md
│ ├── factorizations-of-maps-function-classes.lagda.md
│ ├── factorizations-of-maps-global-function-classes.lagda.md
│ ├── factorizations-of-maps.lagda.md
│ ├── families-of-types-local-at-maps.lagda.md
│ ├── fiberwise-orthogonal-maps.lagda.md
│ ├── function-classes.lagda.md
│ ├── functoriality-higher-modalities.lagda.md
│ ├── functoriality-localizations-at-global-subuniverses.lagda.md
│ ├── functoriality-pullback-hom.lagda.md
│ ├── functoriality-reflective-global-subuniverses.lagda.md
│ ├── global-function-classes.lagda.md
│ ├── higher-modalities.lagda.md
│ ├── identity-modality.lagda.md
│ ├── large-lawvere-tierney-topologies.lagda.md
│ ├── lawvere-tierney-topologies.lagda.md
│ ├── lifting-operations.lagda.md
│ ├── lifting-structures-on-squares.lagda.md
│ ├── lifts-families-of-elements.lagda.md
│ ├── lifts-maps.lagda.md
│ ├── localizations-at-global-subuniverses.lagda.md
│ ├── localizations-at-maps.lagda.md
│ ├── localizations-at-subuniverses.lagda.md
│ ├── locally-small-modal-operators.lagda.md
│ ├── maps-local-at-maps.lagda.md
│ ├── mere-lifting-properties.lagda.md
│ ├── modal-induction.lagda.md
│ ├── modal-operators.lagda.md
│ ├── modal-subuniverse-induction.lagda.md
│ ├── null-families-of-types.lagda.md
│ ├── null-maps.lagda.md
│ ├── null-types.lagda.md
│ ├── open-modalities.lagda.md
│ ├── orthogonal-factorization-systems.lagda.md
│ ├── orthogonal-maps.lagda.md
│ ├── precomposition-lifts-families-of-elements.lagda.md
│ ├── pullback-hom.lagda.md
│ ├── raise-modalities.lagda.md
│ ├── reflective-global-subuniverses.lagda.md
│ ├── reflective-modalities.lagda.md
│ ├── reflective-subuniverses.lagda.md
│ ├── regular-cd-structures.lagda.md
│ ├── sigma-closed-modalities.lagda.md
│ ├── sigma-closed-reflective-modalities.lagda.md
│ ├── sigma-closed-reflective-subuniverses.lagda.md
│ ├── stable-orthogonal-factorization-systems.lagda.md
│ ├── types-colocal-at-maps.lagda.md
│ ├── types-local-at-maps.lagda.md
│ ├── types-separated-at-maps.lagda.md
│ ├── uniquely-eliminating-modalities.lagda.md
│ ├── universal-property-localizations-at-global-subuniverses.lagda.md
│ ├── wide-function-classes.lagda.md
│ ├── wide-global-function-classes.lagda.md
│ └── zero-modality.lagda.md
├── polytopes.lagda.md
├── polytopes
│ └── abstract-polytopes.lagda.md
├── primitives.lagda.md
├── primitives
│ ├── characters.lagda.md
│ ├── floats.lagda.md
│ ├── machine-integers.lagda.md
│ └── strings.lagda.md
├── real-numbers.lagda.md
├── real-numbers
│ ├── absolute-value-real-numbers.lagda.md
│ ├── addition-lower-dedekind-real-numbers.lagda.md
│ ├── addition-real-numbers.lagda.md
│ ├── addition-upper-dedekind-real-numbers.lagda.md
│ ├── apartness-real-numbers.lagda.md
│ ├── arithmetically-located-dedekind-cuts.lagda.md
│ ├── cauchy-completeness-dedekind-real-numbers.lagda.md
│ ├── dedekind-real-numbers.lagda.md
│ ├── difference-real-numbers.lagda.md
│ ├── distance-real-numbers.lagda.md
│ ├── inequality-lower-dedekind-real-numbers.lagda.md
│ ├── inequality-real-numbers.lagda.md
│ ├── inequality-upper-dedekind-real-numbers.lagda.md
│ ├── isometry-addition-real-numbers.lagda.md
│ ├── isometry-negation-real-numbers.lagda.md
│ ├── lower-dedekind-real-numbers.lagda.md
│ ├── maximum-lower-dedekind-real-numbers.lagda.md
│ ├── maximum-real-numbers.lagda.md
│ ├── maximum-upper-dedekind-real-numbers.lagda.md
│ ├── metric-space-of-real-numbers.lagda.md
│ ├── minimum-lower-dedekind-real-numbers.lagda.md
│ ├── minimum-real-numbers.lagda.md
│ ├── minimum-upper-dedekind-real-numbers.lagda.md
│ ├── negation-lower-upper-dedekind-real-numbers.lagda.md
│ ├── negation-real-numbers.lagda.md
│ ├── nonnegative-real-numbers.lagda.md
│ ├── positive-real-numbers.lagda.md
│ ├── raising-universe-levels-real-numbers.lagda.md
│ ├── rational-lower-dedekind-real-numbers.lagda.md
│ ├── rational-real-numbers.lagda.md
│ ├── rational-upper-dedekind-real-numbers.lagda.md
│ ├── similarity-real-numbers.lagda.md
│ ├── strict-inequality-real-numbers.lagda.md
│ ├── transposition-addition-subtraction-cuts-dedekind-real-numbers.lagda.md
│ └── upper-dedekind-real-numbers.lagda.md
├── reflection.lagda.md
├── reflection
│ ├── abstractions.lagda.md
│ ├── arguments.lagda.md
│ ├── boolean-reflection.lagda.md
│ ├── definitions.lagda.md
│ ├── erasing-equality.lagda.md
│ ├── fixity.lagda.md
│ ├── group-solver.lagda.md
│ ├── literals.lagda.md
│ ├── metavariables.lagda.md
│ ├── names.lagda.md
│ ├── precategory-solver.lagda.md
│ ├── rewriting.lagda.md
│ ├── terms.lagda.md
│ └── type-checking-monad.lagda.md
├── ring-theory.lagda.md
├── ring-theory
│ ├── additive-orders-of-elements-rings.lagda.md
│ ├── algebras-rings.lagda.md
│ ├── binomial-theorem-rings.lagda.md
│ ├── binomial-theorem-semirings.lagda.md
│ ├── category-of-cyclic-rings.lagda.md
│ ├── category-of-rings.lagda.md
│ ├── central-elements-rings.lagda.md
│ ├── central-elements-semirings.lagda.md
│ ├── characteristics-rings.lagda.md
│ ├── commuting-elements-rings.lagda.md
│ ├── congruence-relations-rings.lagda.md
│ ├── congruence-relations-semirings.lagda.md
│ ├── cyclic-rings.lagda.md
│ ├── dependent-products-rings.lagda.md
│ ├── dependent-products-semirings.lagda.md
│ ├── division-rings.lagda.md
│ ├── free-rings-with-one-generator.lagda.md
│ ├── full-ideals-rings.lagda.md
│ ├── function-rings.lagda.md
│ ├── function-semirings.lagda.md
│ ├── generating-elements-rings.lagda.md
│ ├── groups-of-units-rings.lagda.md
│ ├── homomorphisms-cyclic-rings.lagda.md
│ ├── homomorphisms-rings.lagda.md
│ ├── homomorphisms-semirings.lagda.md
│ ├── ideals-generated-by-subsets-rings.lagda.md
│ ├── ideals-rings.lagda.md
│ ├── ideals-semirings.lagda.md
│ ├── idempotent-elements-rings.lagda.md
│ ├── initial-rings.lagda.md
│ ├── integer-multiples-of-elements-rings.lagda.md
│ ├── intersections-ideals-rings.lagda.md
│ ├── intersections-ideals-semirings.lagda.md
│ ├── invariant-basis-property-rings.lagda.md
│ ├── invertible-elements-rings.lagda.md
│ ├── isomorphisms-rings.lagda.md
│ ├── joins-ideals-rings.lagda.md
│ ├── joins-left-ideals-rings.lagda.md
│ ├── joins-right-ideals-rings.lagda.md
│ ├── kernels-of-ring-homomorphisms.lagda.md
│ ├── left-ideals-generated-by-subsets-rings.lagda.md
│ ├── left-ideals-rings.lagda.md
│ ├── local-rings.lagda.md
│ ├── localizations-rings.lagda.md
│ ├── maximal-ideals-rings.lagda.md
│ ├── multiples-of-elements-rings.lagda.md
│ ├── multiplicative-orders-of-units-rings.lagda.md
│ ├── nil-ideals-rings.lagda.md
│ ├── nilpotent-elements-rings.lagda.md
│ ├── nilpotent-elements-semirings.lagda.md
│ ├── opposite-rings.lagda.md
│ ├── poset-of-cyclic-rings.lagda.md
│ ├── poset-of-ideals-rings.lagda.md
│ ├── poset-of-left-ideals-rings.lagda.md
│ ├── poset-of-right-ideals-rings.lagda.md
│ ├── powers-of-elements-rings.lagda.md
│ ├── powers-of-elements-semirings.lagda.md
│ ├── precategory-of-rings.lagda.md
│ ├── precategory-of-semirings.lagda.md
│ ├── products-ideals-rings.lagda.md
│ ├── products-left-ideals-rings.lagda.md
│ ├── products-right-ideals-rings.lagda.md
│ ├── products-rings.lagda.md
│ ├── products-subsets-rings.lagda.md
│ ├── quotient-rings.lagda.md
│ ├── radical-ideals-rings.lagda.md
│ ├── right-ideals-generated-by-subsets-rings.lagda.md
│ ├── right-ideals-rings.lagda.md
│ ├── rings.lagda.md
│ ├── semirings.lagda.md
│ ├── subsets-rings.lagda.md
│ ├── subsets-semirings.lagda.md
│ ├── sums-of-finite-families-of-elements-rings.lagda.md
│ ├── sums-of-finite-families-of-elements-semirings.lagda.md
│ ├── sums-of-finite-sequences-of-elements-rings.lagda.md
│ ├── sums-of-finite-sequences-of-elements-semirings.lagda.md
│ ├── transporting-ring-structure-along-isomorphisms-abelian-groups.lagda.md
│ └── trivial-rings.lagda.md
├── set-theory.lagda.md
├── set-theory
│ ├── baire-space.lagda.md
│ ├── cantor-space.lagda.md
│ ├── cantors-diagonal-argument.lagda.md
│ ├── cardinalities.lagda.md
│ ├── countable-sets.lagda.md
│ ├── cumulative-hierarchy.lagda.md
│ ├── infinite-sets.lagda.md
│ ├── russells-paradox.lagda.md
│ └── uncountable-sets.lagda.md
├── species.lagda.md
├── species
│ ├── cartesian-exponents-species-of-types.lagda.md
│ ├── cartesian-products-species-of-types.lagda.md
│ ├── cauchy-composition-species-of-types-in-subuniverses.lagda.md
│ ├── cauchy-composition-species-of-types.lagda.md
│ ├── cauchy-exponentials-species-of-types-in-subuniverses.lagda.md
│ ├── cauchy-exponentials-species-of-types.lagda.md
│ ├── cauchy-products-species-of-types-in-subuniverses.lagda.md
│ ├── cauchy-products-species-of-types.lagda.md
│ ├── cauchy-series-species-of-types-in-subuniverses.lagda.md
│ ├── cauchy-series-species-of-types.lagda.md
│ ├── composition-cauchy-series-species-of-types-in-subuniverses.lagda.md
│ ├── composition-cauchy-series-species-of-types.lagda.md
│ ├── coproducts-species-of-types-in-subuniverses.lagda.md
│ ├── coproducts-species-of-types.lagda.md
│ ├── cycle-index-series-species-of-types.lagda.md
│ ├── derivatives-species-of-types.lagda.md
│ ├── dirichlet-exponentials-species-of-types-in-subuniverses.lagda.md
│ ├── dirichlet-exponentials-species-of-types.lagda.md
│ ├── dirichlet-products-species-of-types-in-subuniverses.lagda.md
│ ├── dirichlet-products-species-of-types.lagda.md
│ ├── dirichlet-series-species-of-finite-inhabited-types.lagda.md
│ ├── dirichlet-series-species-of-types-in-subuniverses.lagda.md
│ ├── dirichlet-series-species-of-types.lagda.md
│ ├── equivalences-species-of-types-in-subuniverses.lagda.md
│ ├── equivalences-species-of-types.lagda.md
│ ├── exponentials-cauchy-series-of-types-in-subuniverses.lagda.md
│ ├── exponentials-cauchy-series-of-types.lagda.md
│ ├── hasse-weil-species.lagda.md
│ ├── morphisms-finite-species.lagda.md
│ ├── morphisms-species-of-types.lagda.md
│ ├── pointing-species-of-types.lagda.md
│ ├── precategory-of-finite-species.lagda.md
│ ├── products-cauchy-series-species-of-types-in-subuniverses.lagda.md
│ ├── products-cauchy-series-species-of-types.lagda.md
│ ├── products-dirichlet-series-species-of-finite-inhabited-types.lagda.md
│ ├── products-dirichlet-series-species-of-types-in-subuniverses.lagda.md
│ ├── products-dirichlet-series-species-of-types.lagda.md
│ ├── small-cauchy-composition-species-of-finite-inhabited-types.lagda.md
│ ├── small-cauchy-composition-species-of-types-in-subuniverses.lagda.md
│ ├── species-of-finite-inhabited-types.lagda.md
│ ├── species-of-finite-types.lagda.md
│ ├── species-of-inhabited-types.lagda.md
│ ├── species-of-types-in-subuniverses.lagda.md
│ ├── species-of-types.lagda.md
│ ├── unit-cauchy-composition-species-of-types-in-subuniverses.lagda.md
│ ├── unit-cauchy-composition-species-of-types.lagda.md
│ └── unlabeled-structures-species.lagda.md
├── structured-types.lagda.md
├── structured-types
│ ├── cartesian-products-types-equipped-with-endomorphisms.lagda.md
│ ├── central-h-spaces.lagda.md
│ ├── commuting-squares-of-pointed-homotopies.lagda.md
│ ├── commuting-squares-of-pointed-maps.lagda.md
│ ├── commuting-triangles-of-pointed-maps.lagda.md
│ ├── conjugation-pointed-types.lagda.md
│ ├── constant-pointed-maps.lagda.md
│ ├── contractible-pointed-types.lagda.md
│ ├── cyclic-types.lagda.md
│ ├── dependent-products-h-spaces.lagda.md
│ ├── dependent-products-pointed-types.lagda.md
│ ├── dependent-products-wild-monoids.lagda.md
│ ├── dependent-types-equipped-with-automorphisms.lagda.md
│ ├── equivalences-h-spaces.lagda.md
│ ├── equivalences-pointed-arrows.lagda.md
│ ├── equivalences-types-equipped-with-automorphisms.lagda.md
│ ├── equivalences-types-equipped-with-endomorphisms.lagda.md
│ ├── faithful-pointed-maps.lagda.md
│ ├── fibers-of-pointed-maps.lagda.md
│ ├── finite-multiplication-magmas.lagda.md
│ ├── function-h-spaces.lagda.md
│ ├── function-magmas.lagda.md
│ ├── function-wild-monoids.lagda.md
│ ├── h-spaces.lagda.md
│ ├── initial-pointed-type-equipped-with-automorphism.lagda.md
│ ├── involutive-type-of-h-space-structures.lagda.md
│ ├── involutive-types.lagda.md
│ ├── iterated-cartesian-products-types-equipped-with-endomorphisms.lagda.md
│ ├── iterated-pointed-cartesian-product-types.lagda.md
│ ├── magmas.lagda.md
│ ├── mere-equivalences-types-equipped-with-endomorphisms.lagda.md
│ ├── morphisms-h-spaces.lagda.md
│ ├── morphisms-magmas.lagda.md
│ ├── morphisms-pointed-arrows.lagda.md
│ ├── morphisms-twisted-pointed-arrows.lagda.md
│ ├── morphisms-types-equipped-with-automorphisms.lagda.md
│ ├── morphisms-types-equipped-with-endomorphisms.lagda.md
│ ├── morphisms-wild-monoids.lagda.md
│ ├── noncoherent-h-spaces.lagda.md
│ ├── opposite-pointed-spans.lagda.md
│ ├── pointed-2-homotopies.lagda.md
│ ├── pointed-cartesian-product-types.lagda.md
│ ├── pointed-dependent-functions.lagda.md
│ ├── pointed-dependent-pair-types.lagda.md
│ ├── pointed-equivalences.lagda.md
│ ├── pointed-families-of-types.lagda.md
│ ├── pointed-homotopies.lagda.md
│ ├── pointed-isomorphisms.lagda.md
│ ├── pointed-maps.lagda.md
│ ├── pointed-retractions.lagda.md
│ ├── pointed-sections.lagda.md
│ ├── pointed-span-diagrams.lagda.md
│ ├── pointed-spans.lagda.md
│ ├── pointed-types-equipped-with-automorphisms.lagda.md
│ ├── pointed-types.lagda.md
│ ├── pointed-unit-type.lagda.md
│ ├── pointed-universal-property-contractible-types.lagda.md
│ ├── postcomposition-pointed-maps.lagda.md
│ ├── precomposition-pointed-maps.lagda.md
│ ├── sets-equipped-with-automorphisms.lagda.md
│ ├── small-pointed-types.lagda.md
│ ├── symmetric-elements-involutive-types.lagda.md
│ ├── symmetric-h-spaces.lagda.md
│ ├── transposition-pointed-span-diagrams.lagda.md
│ ├── types-equipped-with-automorphisms.lagda.md
│ ├── types-equipped-with-endomorphisms.lagda.md
│ ├── uniform-pointed-homotopies.lagda.md
│ ├── universal-property-pointed-equivalences.lagda.md
│ ├── unpointed-maps.lagda.md
│ ├── whiskering-pointed-2-homotopies-concatenation.lagda.md
│ ├── whiskering-pointed-homotopies-composition.lagda.md
│ ├── wild-category-of-pointed-types.lagda.md
│ ├── wild-groups.lagda.md
│ ├── wild-loops.lagda.md
│ ├── wild-monoids.lagda.md
│ ├── wild-quasigroups.lagda.md
│ └── wild-semigroups.lagda.md
├── synthetic-category-theory.lagda.md
├── synthetic-category-theory
│ ├── cone-diagrams-synthetic-categories.lagda.md
│ ├── cospans-synthetic-categories.lagda.md
│ ├── equivalences-synthetic-categories.lagda.md
│ ├── invertible-functors-synthetic-categories.lagda.md
│ ├── pullbacks-synthetic-categories.lagda.md
│ ├── retractions-synthetic-categories.lagda.md
│ ├── sections-synthetic-categories.lagda.md
│ └── synthetic-categories.lagda.md
├── synthetic-homotopy-theory.lagda.md
├── synthetic-homotopy-theory
│ ├── 0-acyclic-maps.lagda.md
│ ├── 0-acyclic-types.lagda.md
│ ├── 1-acyclic-types.lagda.md
│ ├── acyclic-maps.lagda.md
│ ├── acyclic-types.lagda.md
│ ├── category-of-connected-set-bundles-circle.lagda.md
│ ├── cavallos-trick.lagda.md
│ ├── circle.lagda.md
│ ├── cocartesian-morphisms-arrows.lagda.md
│ ├── cocones-under-pointed-span-diagrams.lagda.md
│ ├── cocones-under-sequential-diagrams.lagda.md
│ ├── cocones-under-spans.lagda.md
│ ├── codiagonals-of-maps.lagda.md
│ ├── coequalizers.lagda.md
│ ├── cofibers-of-maps.lagda.md
│ ├── cofibers-of-pointed-maps.lagda.md
│ ├── coforks-cocones-under-sequential-diagrams.lagda.md
│ ├── coforks.lagda.md
│ ├── conjugation-loops.lagda.md
│ ├── connected-set-bundles-circle.lagda.md
│ ├── connective-prespectra.lagda.md
│ ├── connective-spectra.lagda.md
│ ├── dependent-cocones-under-sequential-diagrams.lagda.md
│ ├── dependent-cocones-under-spans.lagda.md
│ ├── dependent-coforks.lagda.md
│ ├── dependent-descent-circle.lagda.md
│ ├── dependent-pullback-property-pushouts.lagda.md
│ ├── dependent-pushout-products.lagda.md
│ ├── dependent-sequential-diagrams.lagda.md
│ ├── dependent-suspension-structures.lagda.md
│ ├── dependent-universal-property-coequalizers.lagda.md
│ ├── dependent-universal-property-pushouts.lagda.md
│ ├── dependent-universal-property-sequential-colimits.lagda.md
│ ├── dependent-universal-property-suspensions.lagda.md
│ ├── descent-circle-constant-families.lagda.md
│ ├── descent-circle-dependent-pair-types.lagda.md
│ ├── descent-circle-equivalence-types.lagda.md
│ ├── descent-circle-function-types.lagda.md
│ ├── descent-circle-subtypes.lagda.md
│ ├── descent-circle.lagda.md
│ ├── descent-data-equivalence-types-over-pushouts.lagda.md
│ ├── descent-data-function-types-over-pushouts.lagda.md
│ ├── descent-data-identity-types-over-pushouts.lagda.md
│ ├── descent-data-pushouts.lagda.md
│ ├── descent-data-sequential-colimits.lagda.md
│ ├── descent-property-pushouts.lagda.md
│ ├── descent-property-sequential-colimits.lagda.md
│ ├── double-loop-spaces.lagda.md
│ ├── eckmann-hilton-argument.lagda.md
│ ├── equifibered-sequential-diagrams.lagda.md
│ ├── equivalences-cocones-under-equivalences-sequential-diagrams.lagda.md
│ ├── equivalences-coforks-under-equivalences-double-arrows.lagda.md
│ ├── equivalences-dependent-sequential-diagrams.lagda.md
│ ├── equivalences-descent-data-pushouts.lagda.md
│ ├── equivalences-sequential-diagrams.lagda.md
│ ├── families-descent-data-pushouts.lagda.md
│ ├── families-descent-data-sequential-colimits.lagda.md
│ ├── flattening-lemma-coequalizers.lagda.md
│ ├── flattening-lemma-pushouts.lagda.md
│ ├── flattening-lemma-sequential-colimits.lagda.md
│ ├── free-loops.lagda.md
│ ├── functoriality-loop-spaces.lagda.md
│ ├── functoriality-sequential-colimits.lagda.md
│ ├── functoriality-suspensions.lagda.md
│ ├── groups-of-loops-in-1-types.lagda.md
│ ├── hatchers-acyclic-type.lagda.md
│ ├── homotopy-groups.lagda.md
│ ├── identity-systems-descent-data-pushouts.lagda.md
│ ├── induction-principle-pushouts.lagda.md
│ ├── infinite-complex-projective-space.lagda.md
│ ├── infinite-cyclic-types.lagda.md
│ ├── infinite-real-projective-space.lagda.md
│ ├── interval-type.lagda.md
│ ├── iterated-loop-spaces.lagda.md
│ ├── iterated-suspensions-of-pointed-types.lagda.md
│ ├── join-powers-of-types.lagda.md
│ ├── joins-of-maps.lagda.md
│ ├── joins-of-types.lagda.md
│ ├── left-half-smash-products.lagda.md
│ ├── loop-homotopy-circle.lagda.md
│ ├── loop-spaces.lagda.md
│ ├── maps-of-prespectra.lagda.md
│ ├── mere-spheres.lagda.md
│ ├── morphisms-cocones-under-morphisms-sequential-diagrams.lagda.md
│ ├── morphisms-coforks-under-morphisms-double-arrows.lagda.md
│ ├── morphisms-dependent-sequential-diagrams.lagda.md
│ ├── morphisms-descent-data-circle.lagda.md
│ ├── morphisms-descent-data-pushouts.lagda.md
│ ├── morphisms-sequential-diagrams.lagda.md
│ ├── multiplication-circle.lagda.md
│ ├── null-cocones-under-pointed-span-diagrams.lagda.md
│ ├── plus-principle.lagda.md
│ ├── powers-of-loops.lagda.md
│ ├── premanifolds.lagda.md
│ ├── prespectra.lagda.md
│ ├── pullback-property-pushouts.lagda.md
│ ├── pushout-products.lagda.md
│ ├── pushouts-of-pointed-types.lagda.md
│ ├── pushouts.lagda.md
│ ├── recursion-principle-pushouts.lagda.md
│ ├── retracts-of-sequential-diagrams.lagda.md
│ ├── rewriting-pushouts.lagda.md
│ ├── sections-descent-circle.lagda.md
│ ├── sections-descent-data-pushouts.lagda.md
│ ├── sequential-colimits.lagda.md
│ ├── sequential-diagrams.lagda.md
│ ├── sequentially-compact-types.lagda.md
│ ├── shifts-sequential-diagrams.lagda.md
│ ├── smash-products-of-pointed-types.lagda.md
│ ├── spectra.lagda.md
│ ├── sphere-prespectrum.lagda.md
│ ├── spheres.lagda.md
│ ├── suspension-prespectra.lagda.md
│ ├── suspension-structures.lagda.md
│ ├── suspensions-of-pointed-types.lagda.md
│ ├── suspensions-of-propositions.lagda.md
│ ├── suspensions-of-types.lagda.md
│ ├── tangent-spheres.lagda.md
│ ├── total-cocones-families-sequential-diagrams.lagda.md
│ ├── total-sequential-diagrams.lagda.md
│ ├── triple-loop-spaces.lagda.md
│ ├── truncated-acyclic-maps.lagda.md
│ ├── truncated-acyclic-types.lagda.md
│ ├── universal-cover-circle.lagda.md
│ ├── universal-property-circle.lagda.md
│ ├── universal-property-coequalizers.lagda.md
│ ├── universal-property-pushouts.lagda.md
│ ├── universal-property-sequential-colimits.lagda.md
│ ├── universal-property-suspensions-of-pointed-types.lagda.md
│ ├── universal-property-suspensions.lagda.md
│ ├── wedges-of-pointed-types.lagda.md
│ └── zigzags-sequential-diagrams.lagda.md
├── trees.lagda.md
├── trees
│ ├── algebras-polynomial-endofunctors.lagda.md
│ ├── bases-directed-trees.lagda.md
│ ├── bases-enriched-directed-trees.lagda.md
│ ├── binary-w-types.lagda.md
│ ├── bounded-multisets.lagda.md
│ ├── coalgebra-of-directed-trees.lagda.md
│ ├── coalgebra-of-enriched-directed-trees.lagda.md
│ ├── coalgebras-polynomial-endofunctors.lagda.md
│ ├── combinator-directed-trees.lagda.md
│ ├── combinator-enriched-directed-trees.lagda.md
│ ├── directed-trees.lagda.md
│ ├── elementhood-relation-coalgebras-polynomial-endofunctors.lagda.md
│ ├── elementhood-relation-w-types.lagda.md
│ ├── empty-multisets.lagda.md
│ ├── enriched-directed-trees.lagda.md
│ ├── equivalences-directed-trees.lagda.md
│ ├── equivalences-enriched-directed-trees.lagda.md
│ ├── extensional-w-types.lagda.md
│ ├── fibers-directed-trees.lagda.md
│ ├── fibers-enriched-directed-trees.lagda.md
│ ├── full-binary-trees.lagda.md
│ ├── functoriality-combinator-directed-trees.lagda.md
│ ├── functoriality-fiber-directed-tree.lagda.md
│ ├── functoriality-w-types.lagda.md
│ ├── hereditary-w-types.lagda.md
│ ├── indexed-w-types.lagda.md
│ ├── induction-w-types.lagda.md
│ ├── inequality-w-types.lagda.md
│ ├── lower-types-w-types.lagda.md
│ ├── morphisms-algebras-polynomial-endofunctors.lagda.md
│ ├── morphisms-coalgebras-polynomial-endofunctors.lagda.md
│ ├── morphisms-directed-trees.lagda.md
│ ├── morphisms-enriched-directed-trees.lagda.md
│ ├── multiset-indexed-dependent-products-of-types.lagda.md
│ ├── multisets.lagda.md
│ ├── planar-binary-trees.lagda.md
│ ├── plane-trees.lagda.md
│ ├── polynomial-endofunctors.lagda.md
│ ├── raising-universe-levels-directed-trees.lagda.md
│ ├── ranks-of-elements-w-types.lagda.md
│ ├── rooted-morphisms-directed-trees.lagda.md
│ ├── rooted-morphisms-enriched-directed-trees.lagda.md
│ ├── rooted-quasitrees.lagda.md
│ ├── rooted-undirected-trees.lagda.md
│ ├── small-multisets.lagda.md
│ ├── submultisets.lagda.md
│ ├── transitive-multisets.lagda.md
│ ├── underlying-trees-elements-coalgebras-polynomial-endofunctors.lagda.md
│ ├── underlying-trees-of-elements-of-w-types.lagda.md
│ ├── undirected-trees.lagda.md
│ ├── universal-multiset.lagda.md
│ ├── universal-tree.lagda.md
│ ├── w-type-of-natural-numbers.lagda.md
│ ├── w-type-of-propositions.lagda.md
│ └── w-types.lagda.md
├── type-theories.lagda.md
├── type-theories
│ ├── comprehension-type-theories.lagda.md
│ ├── dependent-type-theories.lagda.md
│ ├── fibered-dependent-type-theories.lagda.md
│ ├── pi-types-precategories-with-attributes.lagda.md
│ ├── pi-types-precategories-with-families.lagda.md
│ ├── precategories-with-attributes.lagda.md
│ ├── precategories-with-families.lagda.md
│ ├── sections-dependent-type-theories.lagda.md
│ ├── simple-type-theories.lagda.md
│ └── unityped-type-theories.lagda.md
├── univalent-combinatorics.lagda.md
├── univalent-combinatorics
│ ├── 2-element-decidable-subtypes.lagda.md
│ ├── 2-element-subtypes.lagda.md
│ ├── 2-element-types.lagda.md
│ ├── binomial-types.lagda.md
│ ├── bracelets.lagda.md
│ ├── cartesian-product-types.lagda.md
│ ├── classical-finite-types.lagda.md
│ ├── complements-isolated-elements.lagda.md
│ ├── coproduct-types.lagda.md
│ ├── counting-decidable-subtypes.lagda.md
│ ├── counting-dependent-pair-types.lagda.md
│ ├── counting-fibers-of-maps.lagda.md
│ ├── counting-maybe.lagda.md
│ ├── counting.lagda.md
│ ├── cubes.lagda.md
│ ├── cycle-partitions.lagda.md
│ ├── cycle-prime-decomposition-natural-numbers.lagda.md
│ ├── cyclic-finite-types.lagda.md
│ ├── de-morgans-law.lagda.md
│ ├── decidable-dependent-function-types.lagda.md
│ ├── decidable-dependent-pair-types.lagda.md
│ ├── decidable-equivalence-relations.lagda.md
│ ├── decidable-propositions.lagda.md
│ ├── decidable-subtypes.lagda.md
│ ├── dedekind-finite-sets.lagda.md
│ ├── dependent-function-types.lagda.md
│ ├── dependent-pair-types.lagda.md
│ ├── discrete-sigma-decompositions.lagda.md
│ ├── distributivity-of-set-truncation-over-finite-products.lagda.md
│ ├── double-counting.lagda.md
│ ├── embeddings-standard-finite-types.lagda.md
│ ├── embeddings.lagda.md
│ ├── equality-finite-types.lagda.md
│ ├── equality-standard-finite-types.lagda.md
│ ├── equivalences-cubes.lagda.md
│ ├── equivalences-standard-finite-types.lagda.md
│ ├── equivalences.lagda.md
│ ├── ferrers-diagrams.lagda.md
│ ├── fibers-of-maps.lagda.md
│ ├── finite-choice.lagda.md
│ ├── finite-presentations.lagda.md
│ ├── finite-types.lagda.md
│ ├── finitely-many-connected-components.lagda.md
│ ├── finitely-presented-types.lagda.md
│ ├── function-types.lagda.md
│ ├── image-of-maps.lagda.md
│ ├── inequality-types-with-counting.lagda.md
│ ├── inhabited-finite-types.lagda.md
│ ├── injective-maps.lagda.md
│ ├── involution-standard-finite-types.lagda.md
│ ├── isotopies-latin-squares.lagda.md
│ ├── kuratowski-finite-sets.lagda.md
│ ├── latin-squares.lagda.md
│ ├── locally-finite-types.lagda.md
│ ├── main-classes-of-latin-hypercubes.lagda.md
│ ├── main-classes-of-latin-squares.lagda.md
│ ├── maybe.lagda.md
│ ├── necklaces.lagda.md
│ ├── orientations-complete-undirected-graph.lagda.md
│ ├── orientations-cubes.lagda.md
│ ├── partitions.lagda.md
│ ├── petri-nets.lagda.md
│ ├── pi-finite-types.lagda.md
│ ├── pigeonhole-principle.lagda.md
│ ├── presented-pi-finite-types.lagda.md
│ ├── quotients-finite-types.lagda.md
│ ├── ramsey-theory.lagda.md
│ ├── repetitions-of-values-sequences.lagda.md
│ ├── repetitions-of-values.lagda.md
│ ├── retracts-of-finite-types.lagda.md
│ ├── riffle-shuffles.lagda.md
│ ├── sequences-finite-types.lagda.md
│ ├── set-quotients-of-index-two.lagda.md
│ ├── sigma-decompositions.lagda.md
│ ├── skipping-element-standard-finite-types.lagda.md
│ ├── small-types.lagda.md
│ ├── standard-finite-pruned-trees.lagda.md
│ ├── standard-finite-trees.lagda.md
│ ├── standard-finite-types.lagda.md
│ ├── steiner-systems.lagda.md
│ ├── steiner-triple-systems.lagda.md
│ ├── sums-of-natural-numbers.lagda.md
│ ├── surjective-maps.lagda.md
│ ├── symmetric-difference.lagda.md
│ ├── trivial-sigma-decompositions.lagda.md
│ ├── type-duality.lagda.md
│ ├── unbounded-pi-finite-types.lagda.md
│ ├── unions-subtypes.lagda.md
│ ├── universal-property-standard-finite-types.lagda.md
│ ├── unlabeled-partitions.lagda.md
│ ├── unlabeled-rooted-trees.lagda.md
│ ├── unlabeled-trees.lagda.md
│ └── untruncated-pi-finite-types.lagda.md
├── universal-algebra.lagda.md
├── universal-algebra
│ ├── abstract-equations-over-signatures.lagda.md
│ ├── algebraic-theories.lagda.md
│ ├── algebraic-theory-of-groups.lagda.md
│ ├── algebras-of-theories.lagda.md
│ ├── congruences.lagda.md
│ ├── homomorphisms-of-algebras.lagda.md
│ ├── kernels.lagda.md
│ ├── models-of-signatures.lagda.md
│ ├── quotient-algebras.lagda.md
│ ├── signatures.lagda.md
│ └── terms-over-signatures.lagda.md
├── wild-category-theory.lagda.md
└── wild-category-theory
│ ├── coinductive-isomorphisms-in-noncoherent-large-omega-precategories.lagda.md
│ ├── coinductive-isomorphisms-in-noncoherent-omega-precategories.lagda.md
│ ├── colax-functors-noncoherent-large-omega-precategories.lagda.md
│ ├── colax-functors-noncoherent-omega-precategories.lagda.md
│ ├── maps-noncoherent-large-omega-precategories.lagda.md
│ ├── maps-noncoherent-omega-precategories.lagda.md
│ ├── noncoherent-large-omega-precategories.lagda.md
│ └── noncoherent-omega-precategories.lagda.md
├── tables
├── categories.md
├── composition.md
├── cyclic-types.md
├── fibers-of-maps.md
├── galois-connections.md
├── higher-modalities.md
├── identity-types.md
├── loop-spaces-concepts.md
├── metric-spaces.md
├── precategories.md
├── propositional-logic.md
├── pullbacks.md
├── pushouts.md
├── sequential-limits.md
└── wild-categories.md
├── theme
├── README.md
├── catppuccin-admonish.css
├── catppuccin.css
├── css
│ ├── chrome.css
│ ├── general.css
│ └── variables.css
├── head.hbs
├── index.hbs
├── pagetoc.css
└── pagetoc.js
└── website
├── benchmarks
└── index.html
├── css
├── Agda.css
├── agda-logo.css
├── bibliography.css
└── print.css
├── images
├── README.md
├── agda-unimath-black-and-gold.png
├── agda-unimath-logo.svg
├── favicon-dark.png
├── favicon.png
└── favicon.svg
├── js
└── custom.js
└── latex-macros.txt
/.codespellrc:
--------------------------------------------------------------------------------
1 | [codespell]
2 | skip = *.css,*.bib
3 | ignore-words = codespell-ignore.txt
4 |
5 | # Ignore all words with a capital letter after the first character
6 | ignore-regex = ```.*?```|\b\S+[A-Z]\S*\b
7 |
8 | # Check file names as well
9 | check-filenames = true
10 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | end_of_line = lf
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 | quote_type = single
11 | max_line_length = 80
12 | ij_visual_guides = 80
13 |
14 | [*.agda]
15 | indent_size = 2
16 |
17 | [*.css]
18 | indent_size = 2
19 |
20 | [*.javascript]
21 | indent_size = 2
22 |
23 | [*.jsonc?]
24 | indent_size = 2
25 |
26 | [*.md]
27 | indent_size = 2
28 |
29 | [*.py]
30 | indent_size = 4
31 |
32 | [*.{ya?ml,cff}]
33 | indent_size = 2
34 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.lagda.md linguist-language=Agda
2 |
--------------------------------------------------------------------------------
/.github/workflows/clean-up.yaml:
--------------------------------------------------------------------------------
1 | name: Clean up caches generated by pull requests
2 | on:
3 | pull_request:
4 | types:
5 | - closed
6 |
7 | jobs:
8 | cleanup:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Check out code
12 | uses: actions/checkout@v4
13 |
14 | - name: Cleanup
15 | run: |
16 | gh extension install actions/gh-actions-cache
17 |
18 | REPO=${{ github.repository }}
19 | BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
20 |
21 | echo "Fetching list of cache key"
22 | cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 )
23 |
24 | ## Setting this to not fail the workflow while deleting cache keys.
25 |
26 | set +e
27 | echo "Deleting caches..."
28 | for cacheKey in $cacheKeysForPR
29 | do
30 | gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
31 | done
32 | echo "Done"
33 | env:
34 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | book/
2 | docs/
3 | theme/index.hbs
4 | CITATION.cff
5 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "arrowParens": "always",
3 | "bracketSameLine": false,
4 | "bracketSpacing": true,
5 | "embeddedLanguageFormatting": "off",
6 | "htmlWhitespaceSensitivity": "css",
7 | "insertPragma": false,
8 | "jsxSingleQuote": true,
9 | "printWidth": 80,
10 | "proseWrap": "always",
11 | "quoteProps": "as-needed",
12 | "requirePragma": false,
13 | "semi": true,
14 | "singleAttributePerLine": false,
15 | "singleQuote": true,
16 | "tabWidth": 2,
17 | "trailingComma": "es5",
18 | "useTabs": false
19 | }
20 |
--------------------------------------------------------------------------------
/.vscode/agda.code-snippets:
--------------------------------------------------------------------------------
1 | {
2 | // * Remember to update `HOWTO-INSTALL.md` when making additions or changes
3 | "Diagonal lift (⧄)": {
4 | "body": ["⧄"],
5 | "description": "Diagonal lift",
6 | "prefix": ["diagonal", "lifting"]
7 | },
8 | "Full width equals sign (=)": {
9 | "body": ["="],
10 | "description": "Full width equals sign",
11 | "prefix": ["Id"]
12 | },
13 | "Yoneda embedding (ょ)": {
14 | "body": ["ょ"],
15 | "description": "Yoneda embedding",
16 | "prefix": ["yoneda"]
17 | },
18 |
19 | "Equational reasoning": {
20 | "body": ["equational-reasoning ? = ? by ?"],
21 | "description": "Equational reasoning",
22 | "prefix": ["equational-reasoning"]
23 | },
24 | "Homotopy-reasoning": {
25 | "body": ["homotopy-reasoning ? ~ ? by ?"],
26 | "description": "Homotopy-reasoning",
27 | "prefix": ["homotopy-reasoning"]
28 | },
29 | "Equivalence-reasoning": {
30 | "body": ["equivalence-reasoning ? ≃ ? by ?"],
31 | "description": "Equivalence-reasoning",
32 | "prefix": ["equivalence-reasoning"]
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "banacorn.agda-mode",
4 | "bbenoist.nix",
5 | "dbankier.vscode-quick-select",
6 | "eamodio.gitlens",
7 | "esbenp.prettier-vscode",
8 | "fredrikbakke.agda-syntax",
9 | "github.vscode-pull-request-github",
10 | "ms-python.python",
11 | "ms-python.vscode-pylance",
12 | "oderwat.indent-rainbow",
13 | "brunnerh.insert-unicode",
14 | "editorconfig.editorconfig"
15 | ]
16 | }
17 |
--------------------------------------------------------------------------------
/ART.md:
--------------------------------------------------------------------------------
1 | # Agda-unimath art
2 |
3 |
4 |
5 |
6 |
7 |
8 | {{#include website/images/agda_dependency_graph_legend.html}}
9 |
10 | A dependency graph of the library, color coded by namespace. Fredrik Bakke. 2025 — perpetuity
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | The graph of mathematical concepts. Andrej Bauer and Matej Petković. 2023
19 |
20 |
21 |
--------------------------------------------------------------------------------
/CITATION.cff:
--------------------------------------------------------------------------------
1 | cff-version: 1.2.0
2 | message: "If you use this software, please cite it as below."
3 | title: "The agda-unimath library"
4 | abstract: "The agda-unimath library is a community formalization project for univalent mathematics in Agda. Our goal is to formalize an extensive curriculum of mathematics from the univalent point of view. Furthermore, we think libraries of formalized mathematics have the potential to be useful, and informative resources for mathematicians. Our library is designed to work towards this goal, and we welcome contributions to the library about any topic in mathematics."
5 | authors:
6 | - family-names: "Rijke"
7 | given-names: "Egbert"
8 | - family-names: "Stenholm"
9 | given-names: "Elisabeth"
10 | - family-names: "Prieto-Cubides"
11 | given-names: "Jonathan"
12 | - family-names: "Bakke"
13 | given-names: "Fredrik"
14 | - name: "others"
15 | url: "https://unimath.github.io/agda-unimath/"
16 | repository-code: "https://github.com/UniMath/agda-unimath/"
17 | keywords:
18 | - type-theory
19 | - homotopy-type-theory
20 | - univalent-foundations
21 | license: MIT
22 |
--------------------------------------------------------------------------------
/CITE-THIS-LIBRARY.md:
--------------------------------------------------------------------------------
1 | # Citing the agda-unimath library
2 |
3 | If you wish to reference our library in your work, please use the following
4 | BibTeX entry:
5 |
6 | ```text
7 | @software{agda-unimath,
8 | author = {Rijke, Egbert and Stenholm, Elisabeth and Prieto-Cubides, Jonathan and Bakke, Fredrik and {others}},
9 | license = {MIT},
10 | title = {{The agda-unimath library}},
11 | url = {https://github.com/UniMath/agda-unimath/}
12 | }
13 | ```
14 |
--------------------------------------------------------------------------------
/GRANT-ACKNOWLEDGMENTS.md:
--------------------------------------------------------------------------------
1 | # Grant acknowledgments
2 |
3 | The agda-unimath maintainers and contributors are grateful for funding from the
4 | following grants:
5 |
6 | - The MURI grant (2024-present). US Air Force Office of Scientific Research,
7 | award number FA9550-21-1-0009.
8 | - The [TydiForm project](https://tydiform.fmf.uni-lj.si) (2021-2024). US Air
9 | Force Office of Scientific Research, award number FA9550-21-1-0024.
10 |
11 | If you are doing significant work for the agda-unimath library, such as work
12 | that leads to a preprint, or a conference or journal submission, please let us
13 | know so that we can acknowledge any funding and support you are receiving on
14 | this page.
15 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Egbert Maarten Rijke
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/PROJECTS.md:
--------------------------------------------------------------------------------
1 | # Projects using the agda-unimath library
2 |
3 | Here is a list of projects that use the agda-unimath library:
4 |
5 | -
6 | -
7 |
8 | If your project uses the agda-unimath library, let us know, so we can add your
9 | project to the list.
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 
2 |
3 | The agda-unimath library is a community formalization project for univalent
4 | mathematics in [Agda](https://github.com/agda/agda). The library project was
5 | created by [Elisabeth Stenholm](https://elisabeth.stenholm.one),
6 | [Jonathan Prieto-Cubides](https://jonaprieto.github.io), and
7 | [Egbert Rijke](https://egbertrijke.github.io), and is currently being maintained
8 | by Egbert Rijke, [Fredrik Bakke](https://www.ntnu.edu/employees/fredrik.bakke),
9 | and [Vojtěch Štěpančík](https://vojtechstep.eu/). Our goal is to formalize an
10 | extensive curriculum of mathematics from the univalent point of view.
11 | Furthermore, we think libraries of formalized mathematics have the potential to
12 | be useful, and informative resources for mathematicians. Our library is designed
13 | to work towards this goal, and we welcome contributions to the library about any
14 | topic in mathematics.
15 |
16 | ## Links
17 |
18 | 1. [The agda-unimath website](https://unimath.github.io/agda-unimath/)
19 | 2. [Discord](https://discord.gg/Zp2e8hYsuX)
20 | 3. [Twitch](https://www.twitch.tv/agdaunimath)
21 | 4. [Benchmarks](https://agda-unimath-benchmarks.netlify.app/)
22 |
--------------------------------------------------------------------------------
/STATEMENT-OF-INCLUSION.md:
--------------------------------------------------------------------------------
1 | # Statement of inclusion
2 |
3 | There are many reasons to contribute something to a library of formalized
4 | mathematics. Some do it just for fun, some do it for their research, some do it
5 | to learn something. Whatever your reason is, we welcome your contributions! To
6 | keep the experience of contributing something to our library enjoyable for
7 | everyone, we strive for an inclusive community of contributors. You can expect
8 | from us that we are kind and respectful in discussions, that we will be mindful
9 | of your pronouns and use
10 | [inclusive language](https://www.apa.org/about/apa/equity-diversity-inclusion/language-guidelines),
11 | and that we value your input regardless of your level of experience or status in
12 | the community. We're committed to providing a safe and welcoming environment to
13 | people of any gender identity, sexual orientation, race, color, age, ability,
14 | ethnicity, background, or fluency in English -- here on GitHub, in online
15 | communication channels, and in person. Homotopy type theory is difficult enough
16 | without all the barriers that many of us have to face, so we hope to bring some
17 | of those down a bit.
18 |
--------------------------------------------------------------------------------
/TEMPLATE.lagda.md:
--------------------------------------------------------------------------------
1 | # File title
2 |
3 | ```agda
4 | {-# OPTIONS --safe #-}
5 |
6 | module foundation.template where
7 |
8 | open import foundation-core.template public
9 | ```
10 |
11 | Imports
12 |
13 | ```agda
14 | open import ...
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | A **concept** `C` is a _insert abstract idea of concept_, and is defined as
22 | _insert definition using words_.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | concept : ...
28 | concept = ...
29 | ```
30 |
31 | ## Properties
32 |
33 | ### Concepts satisfy a property
34 |
35 | ```agda
36 | satisfies-property-concept : ...
37 | satisfies-property-concept = ...
38 | ```
39 |
40 | ## Examples
41 |
42 | ### The following subconcept is a concept
43 |
44 | ```agda
45 | concept-subconcept : ...
46 | concept-subconcept = ...
47 | ```
48 |
49 | ## See also
50 |
51 | - An instructive example of a file with the expected structure is
52 | [`order-theory.galois-connections`](https://raw.githubusercontent.com/UniMath/agda-unimath/master/src/order-theory/galois-connections.lagda.md).
53 |
--------------------------------------------------------------------------------
/agda-unimath.agda-lib:
--------------------------------------------------------------------------------
1 | name: agda-unimath
2 | include: src
3 | flags: --without-K --exact-split --no-import-sorts --auto-inline --no-require-unique-meta-solutions -WnoWithoutKFlagPrimEraseEquality --no-postfix-projections
4 |
--------------------------------------------------------------------------------
/codespell-dictionary.txt:
--------------------------------------------------------------------------------
1 | Kratowski->Kuratowski
2 | Kratowsky->Kuratowski
3 | Kuratowsky->Kuratowski
4 | Lavwere->Lawvere
5 | anamorhpism->anamorphism
6 | anamorhpisms->anamorphisms
7 | anamorphsim->anamorphism
8 | anamorphsim->anamorphism
9 | anamorphsims->anamorphisms
10 | automorhpism->automorphism
11 | automorhpisms->automorphisms
12 | automorphsim->automorphism
13 | automorphsims->automorphisms
14 | cagegory->category
15 | consistsing->consisting
16 | eacy->each,easy
17 | endomorhpism->endomorphism
18 | endomorhpisms->endomorphisms
19 | endomorphsim->endomorphism
20 | endomorphsims->endomorphisms
21 | epimorhpism->epimorphism
22 | epimorhpisms->epimorphisms
23 | epimorphsim->epimorphism
24 | epimorphsims->epimorphisms
25 | foundaiton->foundation
26 | homomorhpism->homomorphism
27 | homomorhpisms->homomorphisms
28 | homomorphsim->homomorphism
29 | homomorphsims->homomorphisms
30 | isomorhpism->isomorphism
31 | isomorhpisms->isomorphisms
32 | isomorphsim->isomorphism
33 | isomorphsims->isomorphisms
34 | monomorhpism->monomorphism
35 | monomorhpisms->monomorphisms
36 | monomorphsim->monomorphism
37 | monomorphsims->monomorphisms
38 | morhpism->morphism
39 | morhpisms->morphisms
40 | morphsim->morphism
41 | morphsims->morphisms
42 | outout->output
43 |
--------------------------------------------------------------------------------
/codespell-ignore.txt:
--------------------------------------------------------------------------------
1 | blacklist
2 | couldn
3 | crate
4 | hom
5 | homs
6 | iff
7 | intensional
8 | lets
9 | master
10 | whitelist
11 |
--------------------------------------------------------------------------------
/scripts/README.md:
--------------------------------------------------------------------------------
1 | # Scripts/hooks
2 |
3 | We have included Python scripts/hooks for continuous integration that runs on
4 | almost any platform. For installation instructions, please see the
5 | [installation guide](https://unimath.github.io/agda-unimath/HOWTO-INSTALL.html#pre-commit-hooks).
6 |
--------------------------------------------------------------------------------
/scripts/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UniMath/agda-unimath/eb1651e721527278a926d6957340476f99a8eb67/scripts/__init__.py
--------------------------------------------------------------------------------
/scripts/requirements.txt:
--------------------------------------------------------------------------------
1 | # * Keep in sync with the `flake.nix` file
2 | pre-commit
3 | pybtex
4 | requests
5 | tomli
6 | graphviz
7 |
--------------------------------------------------------------------------------
/scripts/utils/multithread.py:
--------------------------------------------------------------------------------
1 | import threading
2 |
3 |
4 | print_lock = threading.Lock()
5 |
6 |
7 | def thread_safe_print(*args, **kwargs):
8 | with print_lock:
9 | print(*args, **kwargs)
10 |
--------------------------------------------------------------------------------
/src/category-theory/discrete-categories.lagda.md:
--------------------------------------------------------------------------------
1 | # Discrete categories
2 |
3 | ```agda
4 | module category-theory.discrete-categories where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import category-theory.precategories
11 |
12 | open import foundation.dependent-pair-types
13 | open import foundation.identity-types
14 | open import foundation.sets
15 | open import foundation.strictly-involutive-identity-types
16 | open import foundation.universe-levels
17 | ```
18 |
19 |
20 |
21 | ### Discrete precategories
22 |
23 | Any set induces a discrete category whose objects are elements of the set and
24 | which contains no-nonidentity morphisms.
25 |
26 | ```agda
27 | module _
28 | {l : Level} (X : Set l)
29 | where
30 |
31 | discrete-precategory-Set : Precategory l l
32 | discrete-precategory-Set =
33 | make-Precategory
34 | ( type-Set X)
35 | ( λ x y → set-Prop (Id-Prop X x y))
36 | ( λ p q → q ∙ p)
37 | ( λ x → refl)
38 | ( λ h g f → inv (assoc f g h))
39 | ( λ _ → right-unit)
40 | ( λ _ → left-unit)
41 | ```
42 |
--------------------------------------------------------------------------------
/src/category-theory/equivalences-of-categories.lagda.md:
--------------------------------------------------------------------------------
1 | # Equivalences between categories
2 |
3 | ```agda
4 | module category-theory.equivalences-of-categories where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import category-theory.categories
11 | open import category-theory.equivalences-of-precategories
12 | open import category-theory.functors-categories
13 |
14 | open import foundation.universe-levels
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | A [functor](category-theory.functors-categories.md) `F : C → D` on
22 | [categories](category-theory.categories.md) is an **equivalence** if it is an
23 | [equivalence on the underlying precategories](category-theory.equivalences-of-precategories.md).
24 |
25 | ## Definition
26 |
27 | ```agda
28 | module _
29 | {l1 l2 l3 l4 : Level}
30 | (C : Category l1 l2)
31 | (D : Category l3 l4)
32 | where
33 |
34 | is-equiv-functor-Category : functor-Category C D → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4)
35 | is-equiv-functor-Category =
36 | is-equiv-functor-Precategory
37 | ( precategory-Category C)
38 | ( precategory-Category D)
39 |
40 | equiv-Category : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4)
41 | equiv-Category =
42 | equiv-Precategory (precategory-Category C) (precategory-Category D)
43 | ```
44 |
--------------------------------------------------------------------------------
/src/category-theory/initial-objects-large-categories.lagda.md:
--------------------------------------------------------------------------------
1 | # Initial objects of large categories
2 |
3 | ```agda
4 | module category-theory.initial-objects-large-categories where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import category-theory.initial-objects-large-precategories
11 | open import category-theory.large-categories
12 |
13 | open import foundation.universe-levels
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | An **initial object** in a [large category](category-theory.large-categories.md)
21 | `C` is an object `X` such that `hom X Y` is
22 | [contractible](foundation.contractible-types.md) for any object `Y`.
23 |
24 | ## Definitions
25 |
26 | ### Initial objects in large categories
27 |
28 | ```agda
29 | module _
30 | {α : Level → Level} {β : Level → Level → Level}
31 | (C : Large-Category α β)
32 | {l : Level} (X : obj-Large-Category C l)
33 | where
34 |
35 | is-initial-obj-Large-Category : UUω
36 | is-initial-obj-Large-Category =
37 | is-initial-obj-Large-Precategory (large-precategory-Large-Category C) X
38 | ```
39 |
--------------------------------------------------------------------------------
/src/category-theory/initial-objects-large-precategories.lagda.md:
--------------------------------------------------------------------------------
1 | # Initial objects of large precategories
2 |
3 | ```agda
4 | module category-theory.initial-objects-large-precategories where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import category-theory.large-precategories
11 |
12 | open import foundation.contractible-types
13 | open import foundation.universe-levels
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | An **initial object** in a [large category](category-theory.large-categories.md)
21 | `C` is an object `X` such that `hom X Y` is
22 | [contractible](foundation.contractible-types.md) for any object `Y`.
23 |
24 | ## Definitions
25 |
26 | ### Initial objects in large categories
27 |
28 | ```agda
29 | module _
30 | {α : Level → Level} {β : Level → Level → Level}
31 | (C : Large-Precategory α β)
32 | {l : Level} (X : obj-Large-Precategory C l)
33 | where
34 |
35 | is-initial-obj-Large-Precategory : UUω
36 | is-initial-obj-Large-Precategory =
37 | {l2 : Level} (Y : obj-Large-Precategory C l2) →
38 | is-contr (hom-Large-Precategory C X Y)
39 | ```
40 |
--------------------------------------------------------------------------------
/src/category-theory/large-subcategories.lagda.md:
--------------------------------------------------------------------------------
1 | # Large subcategories
2 |
3 | ```agda
4 | module category-theory.large-subcategories where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import category-theory.large-categories
11 | open import category-theory.large-subprecategories
12 |
13 | open import foundation.universe-levels
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | A **large subcategory** of a
21 | [large category](category-theory.large-categories.md) `C` is a
22 | [large subprecategory](category-theory.large-subprecategories.md) `P` of the
23 | underlying [large precategory](category-theory.large-precategories.md) of `C`.
24 |
25 | ## Definition
26 |
27 | ```agda
28 | module _
29 | {α : Level → Level} {β : Level → Level → Level}
30 | (γ : Level → Level) (δ : Level → Level → Level)
31 | (C : Large-Category α β)
32 | where
33 |
34 | Large-Subcategory : UUω
35 | Large-Subcategory =
36 | Large-Subprecategory γ δ (large-precategory-Large-Category C)
37 | ```
38 |
--------------------------------------------------------------------------------
/src/commutative-algebra/boolean-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # Boolean rings
2 |
3 | ```agda
4 | module commutative-algebra.boolean-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import commutative-algebra.commutative-rings
11 |
12 | open import foundation.dependent-pair-types
13 | open import foundation.universe-levels
14 |
15 | open import ring-theory.idempotent-elements-rings
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | A **boolean ring** is a commutative ring in which every element is idempotent.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | is-boolean-Commutative-Ring :
28 | {l : Level} (A : Commutative-Ring l) → UU l
29 | is-boolean-Commutative-Ring A =
30 | (x : type-Commutative-Ring A) →
31 | is-idempotent-element-Ring (ring-Commutative-Ring A) x
32 |
33 | Boolean-Ring : (l : Level) → UU (lsuc l)
34 | Boolean-Ring l = Σ (Commutative-Ring l) is-boolean-Commutative-Ring
35 |
36 | module _
37 | {l : Level} (A : Boolean-Ring l)
38 | where
39 |
40 | commutative-ring-Boolean-Ring : Commutative-Ring l
41 | commutative-ring-Boolean-Ring = pr1 A
42 | ```
43 |
--------------------------------------------------------------------------------
/src/commutative-algebra/discrete-fields.lagda.md:
--------------------------------------------------------------------------------
1 | # Discrete fields
2 |
3 | ```agda
4 | module commutative-algebra.discrete-fields where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import commutative-algebra.commutative-rings
11 |
12 | open import foundation.universe-levels
13 |
14 | open import ring-theory.division-rings
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | A **discrete field** is a commutative division ring. They are called discrete,
22 | because only nonzero elements are assumed to be invertible.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | is-discrete-field-Commutative-Ring : {l : Level} → Commutative-Ring l → UU l
28 | is-discrete-field-Commutative-Ring A =
29 | is-division-Ring (ring-Commutative-Ring A)
30 | ```
31 |
--------------------------------------------------------------------------------
/src/commutative-algebra/maximal-ideals-commutative-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # Maximal ideals of commutative rings
2 |
3 | ```agda
4 | module commutative-algebra.maximal-ideals-commutative-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | **Maximal ideals** in a
18 | [commutative ring](commutative-algebra.commutative-rings.md) `A` are proper
19 | ideals `I` such that any
20 | [ideal](commutative-algebra.ideals-commutative-rings.md) `J` such that `I ⊆ J`
21 | satisfies `1 ∉ J ⇒ I = J`.
22 |
23 | ## Definition
24 |
25 | This remains to be defined.
26 | [#731](https://github.com/UniMath/agda-unimath/issues/731)
27 |
--------------------------------------------------------------------------------
/src/domain-theory.lagda.md:
--------------------------------------------------------------------------------
1 | # Domain theory
2 |
3 | ## Modules in the domain theory namespace
4 |
5 | ```agda
6 | module domain-theory where
7 |
8 | open import domain-theory.directed-complete-posets public
9 | open import domain-theory.directed-families-posets public
10 | open import domain-theory.kleenes-fixed-point-theorem-omega-complete-posets public
11 | open import domain-theory.kleenes-fixed-point-theorem-posets public
12 | open import domain-theory.omega-complete-posets public
13 | open import domain-theory.omega-continuous-maps-omega-complete-posets public
14 | open import domain-theory.omega-continuous-maps-posets public
15 | open import domain-theory.reindexing-directed-families-posets public
16 | open import domain-theory.scott-continuous-maps-posets public
17 | ```
18 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/ackermann-function.lagda.md:
--------------------------------------------------------------------------------
1 | # The Ackermann function
2 |
3 | ```agda
4 | module elementary-number-theory.ackermann-function where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | The
18 | {{#concept "Ackermann-Péter function" WD="Ackermann function" WDID=Q341835 Agda=ackermann-péter-ℕ}}
19 | is a fast growing binary operation on the
20 | [natural numbers](elementary-number-theory.natural-numbers.md).
21 |
22 | ## Definition
23 |
24 | ### The Ackermann-Péter function
25 |
26 | ```agda
27 | ackermann-péter-ℕ : ℕ → ℕ → ℕ
28 | ackermann-péter-ℕ zero-ℕ n =
29 | succ-ℕ n
30 | ackermann-péter-ℕ (succ-ℕ m) zero-ℕ =
31 | ackermann-péter-ℕ m 1
32 | ackermann-péter-ℕ (succ-ℕ m) (succ-ℕ n) =
33 | ackermann-péter-ℕ m (ackermann-péter-ℕ (succ-ℕ m) n)
34 | ```
35 |
36 | ### The simplified Ackermann function
37 |
38 | ```agda
39 | simplified-ackermann-ℕ : ℕ → ℕ
40 | simplified-ackermann-ℕ n = ackermann-péter-ℕ n n
41 | ```
42 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/arithmetic-functions.lagda.md:
--------------------------------------------------------------------------------
1 | # Arithmetic functions
2 |
3 | ```agda
4 | module elementary-number-theory.arithmetic-functions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.nonzero-natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import ring-theory.rings
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | An arithmetic function is a function from the nonzero natural numbers into a
22 | (commutative) ring. The arithmetic functions form a ring under pointwise
23 | addition and dirichlet convolution.
24 |
25 | ## Definition
26 |
27 | ```agda
28 | module _
29 | {l : Level} (R : Ring l)
30 | where
31 |
32 | type-arithmetic-functions-Ring : UU l
33 | type-arithmetic-functions-Ring = nonzero-ℕ → type-Ring R
34 | ```
35 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/collatz-bijection.lagda.md:
--------------------------------------------------------------------------------
1 | # The Collatz bijection
2 |
3 | ```agda
4 | module elementary-number-theory.collatz-bijection where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.distance-natural-numbers
11 | open import elementary-number-theory.euclidean-division-natural-numbers
12 | open import elementary-number-theory.modular-arithmetic
13 | open import elementary-number-theory.multiplication-natural-numbers
14 | open import elementary-number-theory.natural-numbers
15 |
16 | open import foundation.coproduct-types
17 | open import foundation.identity-types
18 | ```
19 |
20 |
21 |
22 | ## Idea
23 |
24 | We define a bijection of Collatz
25 |
26 | ## Definition
27 |
28 | ```agda
29 | cases-map-collatz-bijection : (n : ℕ) (x : ℤ-Mod 3) (p : mod-ℕ 3 n = x) → ℕ
30 | cases-map-collatz-bijection n (inl (inl (inr _))) p =
31 | quotient-euclidean-division-ℕ 3 (2 *ℕ n)
32 | cases-map-collatz-bijection n (inl (inr _)) p =
33 | quotient-euclidean-division-ℕ 3 (dist-ℕ (4 *ℕ n) 1)
34 | cases-map-collatz-bijection n (inr _) p =
35 | quotient-euclidean-division-ℕ 3 (succ-ℕ (4 *ℕ n))
36 |
37 | map-collatz-bijection : ℕ → ℕ
38 | map-collatz-bijection n = cases-map-collatz-bijection n (mod-ℕ 3 n) refl
39 | ```
40 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/collatz-conjecture.lagda.md:
--------------------------------------------------------------------------------
1 | # The Collatz conjecture
2 |
3 | ```agda
4 | module elementary-number-theory.collatz-conjecture where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.modular-arithmetic-standard-finite-types
11 | open import elementary-number-theory.multiplication-natural-numbers
12 | open import elementary-number-theory.natural-numbers
13 |
14 | open import foundation.coproduct-types
15 | open import foundation.dependent-pair-types
16 | open import foundation.universe-levels
17 | ```
18 |
19 |
20 |
21 | ## Statement
22 |
23 | ```agda
24 | collatz : ℕ → ℕ
25 | collatz n with is-decidable-div-ℕ 2 n
26 | ... | inl (pair y p) = y
27 | ... | inr f = succ-ℕ (3 *ℕ n)
28 |
29 | iterate-collatz : ℕ → ℕ → ℕ
30 | iterate-collatz zero-ℕ n = n
31 | iterate-collatz (succ-ℕ k) n = collatz (iterate-collatz k n)
32 |
33 | Collatz-conjecture : UU lzero
34 | Collatz-conjecture =
35 | (n : ℕ) → is-nonzero-ℕ n → Σ ℕ (λ k → is-one-ℕ (iterate-collatz k n))
36 | ```
37 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/decidable-dependent-function-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Decidable dependent function types
2 |
3 | ```agda
4 | module elementary-number-theory.decidable-dependent-function-types where
5 |
6 | open import foundation.decidable-dependent-function-types public
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 |
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | We describe conditions under which dependent products are decidable.
20 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/half-integers.lagda.md:
--------------------------------------------------------------------------------
1 | # The half-integers
2 |
3 | ```agda
4 | module elementary-number-theory.half-integers where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.addition-integers
11 | open import elementary-number-theory.integers
12 |
13 | open import foundation.coproduct-types
14 | open import foundation.universe-levels
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | The **half-integers** are the numbers of the form `x + ½`, where `x : ℤ`.
22 |
23 | ## Definition
24 |
25 | ### The half-integers
26 |
27 | ```agda
28 | ℤ+½ : UU lzero
29 | ℤ+½ = ℤ
30 | ```
31 |
32 | ### The disjoint union of the half-integers with the integers
33 |
34 | ```agda
35 | ½ℤ : UU lzero
36 | ½ℤ = ℤ+½ + ℤ
37 | ```
38 |
39 | ### The zero element of `½ℤ`
40 |
41 | ```agda
42 | zero-½ℤ : ½ℤ
43 | zero-½ℤ = inr zero-ℤ
44 | ```
45 |
46 | ### Addition on `½ℤ`
47 |
48 | ```agda
49 | add-½ℤ : ½ℤ → ½ℤ → ½ℤ
50 | add-½ℤ (inl x) (inl y) = inr (succ-ℤ (x +ℤ y))
51 | add-½ℤ (inl x) (inr y) = inl (x +ℤ y)
52 | add-½ℤ (inr x) (inl y) = inl (x +ℤ y)
53 | add-½ℤ (inr x) (inr y) = inr (x +ℤ y)
54 |
55 | infixl 35 _+½ℤ_
56 | _+½ℤ_ = add-½ℤ
57 | ```
58 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/integer-partitions.lagda.md:
--------------------------------------------------------------------------------
1 | # Integer partitions
2 |
3 | ```agda
4 | module elementary-number-theory.integer-partitions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | An integer partition of a natural number n is a list of nonzero natural numbers
18 | that sum up to n, up to reordering. We define the number `p n` of integer
19 | partitions of `n` as the number of connected components in the type of finite
20 | Ferrer diagrams of `Fin n`.
21 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/mersenne-primes.lagda.md:
--------------------------------------------------------------------------------
1 | # Mersenne primes
2 |
3 | ```agda
4 | module elementary-number-theory.mersenne-primes where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.distance-natural-numbers
11 | open import elementary-number-theory.exponentiation-natural-numbers
12 | open import elementary-number-theory.natural-numbers
13 | open import elementary-number-theory.prime-numbers
14 |
15 | open import foundation.cartesian-product-types
16 | open import foundation.dependent-pair-types
17 | open import foundation.identity-types
18 | open import foundation.universe-levels
19 | ```
20 |
21 |
22 |
23 | ## Idea
24 |
25 | A Mersenne prime is a prime number that is one less than a power of two.
26 |
27 | ## Definition
28 |
29 | ```agda
30 | is-mersenne-prime : ℕ → UU lzero
31 | is-mersenne-prime n = is-prime-ℕ n × Σ ℕ (λ k → dist-ℕ (exp-ℕ 2 k) 1 = n)
32 |
33 | is-mersenne-prime-power : ℕ → UU lzero
34 | is-mersenne-prime-power k = is-prime-ℕ (dist-ℕ (exp-ℕ 2 k) 1)
35 | ```
36 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/multiplicative-units-integers.lagda.md:
--------------------------------------------------------------------------------
1 | # Multiplicative units in the integers
2 |
3 | ```agda
4 | module elementary-number-theory.multiplicative-units-integers where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | A **multiplicative unit** in the [ring](ring-theory.rings.md) `ℤ` of
18 | [integers](elementary-number-theory.integers.md) is an
19 | [invertible element](ring-theory.invertible-elements-rings.md) in `ℤ`. The only
20 | two multiplicative units in `ℤ` are `1` and `-1`.
21 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/multiplicative-units-standard-cyclic-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # Multiplicative units in modular arithmetic
2 |
3 | ```agda
4 | module elementary-number-theory.multiplicative-units-standard-cyclic-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## See also
16 |
17 | ### Table of files related to cyclic types, groups, and rings
18 |
19 | {{#include tables/cyclic-types.md}}
20 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/powers-integers.lagda.md:
--------------------------------------------------------------------------------
1 | # Powers of integers
2 |
3 | ```agda
4 | module elementary-number-theory.powers-integers where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import commutative-algebra.powers-of-elements-commutative-rings
11 |
12 | open import elementary-number-theory.integers
13 | open import elementary-number-theory.multiplication-integers
14 | open import elementary-number-theory.natural-numbers
15 | open import elementary-number-theory.ring-of-integers
16 |
17 | open import foundation.identity-types
18 | ```
19 |
20 |
21 |
22 | ## Idea
23 |
24 | The power operation on the integers is the map `n x ↦ xⁿ`, which is defined by
25 | iteratively multiplying `x` with itself `n` times.
26 |
27 | ## Definition
28 |
29 | ```agda
30 | power-ℤ : ℕ → ℤ → ℤ
31 | power-ℤ = power-Commutative-Ring ℤ-Commutative-Ring
32 | ```
33 |
34 | ## Properties
35 |
36 | ### `xⁿ⁺¹ = xⁿx`
37 |
38 | ```agda
39 | power-succ-ℤ : (n : ℕ) (x : ℤ) → power-ℤ (succ-ℕ n) x = (power-ℤ n x) *ℤ x
40 | power-succ-ℤ = power-succ-Commutative-Ring ℤ-Commutative-Ring
41 | ```
42 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/pythagorean-triples.lagda.md:
--------------------------------------------------------------------------------
1 | # Pythagorean triples
2 |
3 | ```agda
4 | module elementary-number-theory.pythagorean-triples where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.addition-natural-numbers
11 | open import elementary-number-theory.natural-numbers
12 | open import elementary-number-theory.squares-natural-numbers
13 |
14 | open import foundation.identity-types
15 | open import foundation.universe-levels
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | A Pythagorean triple is a triple `(a,b,c)` of natural numbers such that
23 | `a² + b² = c²`.
24 |
25 | ## Definition
26 |
27 | ```agda
28 | is-pythagorean-triple : ℕ → ℕ → ℕ → UU lzero
29 | is-pythagorean-triple a b c = ((square-ℕ a) +ℕ (square-ℕ b) = square-ℕ c)
30 | ```
31 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/retracts-of-natural-numbers.lagda.md:
--------------------------------------------------------------------------------
1 | # Retracts of the type of natural numbers
2 |
3 | ```agda
4 | module elementary-number-theory.retracts-of-natural-numbers where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.equality-natural-numbers
11 | open import elementary-number-theory.natural-numbers
12 |
13 | open import foundation.decidable-maps
14 | open import foundation.retractions
15 | open import foundation.universe-levels
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | If `i : A → ℕ` has a retraction, then `i` is a decidable map.
23 |
24 | ```agda
25 | is-decidable-map-retraction-ℕ :
26 | {l1 : Level} {A : UU l1} (i : A → ℕ) → retraction i → is-decidable-map i
27 | is-decidable-map-retraction-ℕ =
28 | is-decidable-map-retraction has-decidable-equality-ℕ
29 | ```
30 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/square-free-natural-numbers.lagda.md:
--------------------------------------------------------------------------------
1 | # Square-free natural numbers
2 |
3 | ```agda
4 | module elementary-number-theory.square-free-natural-numbers where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.divisibility-natural-numbers
11 | open import elementary-number-theory.natural-numbers
12 | open import elementary-number-theory.squares-natural-numbers
13 |
14 | open import foundation.universe-levels
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | A natural number `n` is said to be square-free if `x² | n ⇒ x = 1` for any
22 | natural number `x`.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | is-square-free-ℕ : ℕ → UU lzero
28 | is-square-free-ℕ n = (x : ℕ) → div-ℕ (square-ℕ x) n → is-one-ℕ x
29 | ```
30 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/stirling-numbers-of-the-second-kind.lagda.md:
--------------------------------------------------------------------------------
1 | # Stirling numbers of the second kind
2 |
3 | ```agda
4 | module elementary-number-theory.stirling-numbers-of-the-second-kind where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.addition-natural-numbers
11 | open import elementary-number-theory.multiplication-natural-numbers
12 | open import elementary-number-theory.natural-numbers
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | The stirling number of the second kind `{n m}` is the number of surjective maps
20 | from the standard `n`-element set to the standard `m`-element set
21 |
22 | ## Definition
23 |
24 | ```agda
25 | stirling-number-second-kind : ℕ → ℕ → ℕ
26 | stirling-number-second-kind zero-ℕ zero-ℕ = 1
27 | stirling-number-second-kind zero-ℕ (succ-ℕ n) = 0
28 | stirling-number-second-kind (succ-ℕ m) zero-ℕ = 0
29 | stirling-number-second-kind (succ-ℕ m) (succ-ℕ n) =
30 | ( (succ-ℕ n) *ℕ (stirling-number-second-kind m (succ-ℕ n))) +ℕ
31 | ( stirling-number-second-kind m n)
32 | ```
33 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/telephone-numbers.lagda.md:
--------------------------------------------------------------------------------
1 | # Telephone numbers
2 |
3 | ```agda
4 | module elementary-number-theory.telephone-numbers where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.addition-natural-numbers
11 | open import elementary-number-theory.multiplication-natural-numbers
12 | open import elementary-number-theory.natural-numbers
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | The
20 | {{#concept "telephone numbers" WD="Telephone number" WDID=Q7696507 Agda=telephone-number}}
21 | are a sequence of natural numbers that count the way `n` telephone lines can be
22 | connected to each other, where each line can be connected to at most one other
23 | line. They also occur in several other combinatorics problems.
24 |
25 | ## Definitions
26 |
27 | ```agda
28 | telephone-number : ℕ → ℕ
29 | telephone-number zero-ℕ = succ-ℕ zero-ℕ
30 | telephone-number (succ-ℕ zero-ℕ) = succ-ℕ zero-ℕ
31 | telephone-number (succ-ℕ (succ-ℕ n)) =
32 | (telephone-number (succ-ℕ n)) +ℕ ((succ-ℕ n) *ℕ (telephone-number n))
33 | ```
34 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/triangular-numbers.lagda.md:
--------------------------------------------------------------------------------
1 | # The triangular numbers
2 |
3 | ```agda
4 | module elementary-number-theory.triangular-numbers where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.addition-natural-numbers
11 | open import elementary-number-theory.natural-numbers
12 | ```
13 |
14 |
15 |
16 | ## Definition
17 |
18 | ```agda
19 | triangular-number-ℕ : ℕ → ℕ
20 | triangular-number-ℕ 0 = 0
21 | triangular-number-ℕ (succ-ℕ n) = (triangular-number-ℕ n) +ℕ (succ-ℕ n)
22 | ```
23 |
--------------------------------------------------------------------------------
/src/elementary-number-theory/twin-prime-conjecture.lagda.md:
--------------------------------------------------------------------------------
1 | # The Twin Prime conjecture
2 |
3 | ```agda
4 | module elementary-number-theory.twin-prime-conjecture where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.inequality-natural-numbers
11 | open import elementary-number-theory.natural-numbers
12 | open import elementary-number-theory.prime-numbers
13 |
14 | open import foundation.cartesian-product-types
15 | open import foundation.dependent-pair-types
16 | open import foundation.universe-levels
17 | ```
18 |
19 |
20 |
21 | ## Statement
22 |
23 | The twin prime conjecture asserts that there are infinitely many twin primes. We
24 | assert that there are infinitely twin primes by asserting that for every n : ℕ
25 | there is a twin prime that is larger than n.
26 |
27 | ```agda
28 | is-twin-prime-ℕ : ℕ → UU lzero
29 | is-twin-prime-ℕ n = (is-prime-ℕ n) × (is-prime-ℕ (succ-ℕ (succ-ℕ n)))
30 |
31 | twin-prime-conjecture : UU lzero
32 | twin-prime-conjecture =
33 | (n : ℕ) → Σ ℕ (λ p → (is-twin-prime-ℕ p) × (leq-ℕ n p))
34 | ```
35 |
--------------------------------------------------------------------------------
/src/finite-algebra.lagda.md:
--------------------------------------------------------------------------------
1 | # Finite algebra
2 |
3 | ## Modules in the finite algebra namespace
4 |
5 | ```agda
6 | module finite-algebra where
7 |
8 | open import finite-algebra.commutative-finite-rings public
9 | open import finite-algebra.dependent-products-commutative-finite-rings public
10 | open import finite-algebra.dependent-products-finite-rings public
11 | open import finite-algebra.finite-fields public
12 | open import finite-algebra.finite-rings public
13 | open import finite-algebra.homomorphisms-commutative-finite-rings public
14 | open import finite-algebra.homomorphisms-finite-rings public
15 | open import finite-algebra.products-commutative-finite-rings public
16 | open import finite-algebra.products-finite-rings public
17 | open import finite-algebra.semisimple-commutative-finite-rings public
18 | ```
19 |
--------------------------------------------------------------------------------
/src/finite-group-theory/alternating-concrete-groups.lagda.md:
--------------------------------------------------------------------------------
1 | # Alternating concrete groups
2 |
3 | ```agda
4 | module finite-group-theory.alternating-concrete-groups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import finite-group-theory.cartier-delooping-sign-homomorphism
13 | open import finite-group-theory.finite-type-groups
14 |
15 | open import foundation.universe-levels
16 |
17 | open import group-theory.concrete-groups
18 | open import group-theory.kernels-homomorphisms-concrete-groups
19 | ```
20 |
21 |
22 |
23 | ## Idea
24 |
25 | The alternating concrete groups are the kernels of the concrete sign
26 | homomorphism
27 |
28 | ## Definition
29 |
30 | ```agda
31 | module _
32 | (n : ℕ)
33 | where
34 |
35 | alternating-Concrete-Group : Concrete-Group (lsuc (lsuc lzero))
36 | alternating-Concrete-Group =
37 | concrete-group-kernel-hom-Concrete-Group
38 | ( Type-With-Cardinality-ℕ-Concrete-Group lzero n)
39 | ( Type-With-Cardinality-ℕ-Concrete-Group (lsuc lzero) 2)
40 | ( cartier-delooping-sign n)
41 | ```
42 |
--------------------------------------------------------------------------------
/src/finite-group-theory/alternating-groups.lagda.md:
--------------------------------------------------------------------------------
1 | # Alternating groups
2 |
3 | ```agda
4 | module finite-group-theory.alternating-groups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import finite-group-theory.sign-homomorphism
13 |
14 | open import group-theory.groups
15 | open import group-theory.kernels-homomorphisms-groups
16 | open import group-theory.symmetric-groups
17 |
18 | open import univalent-combinatorics.finite-types
19 | open import univalent-combinatorics.standard-finite-types
20 | ```
21 |
22 |
23 |
24 | ## Idea
25 |
26 | The alternating group on a finite set `X` is the group of even permutations of
27 | `X`, i.e. it is the kernel of the sign homomorphism `Aut(X) → Aut(2)`.
28 |
29 | ## Definition
30 |
31 | ```agda
32 | module _
33 | {l} (n : ℕ) (X : Type-With-Cardinality-ℕ l n)
34 | where
35 | alternating-Group : Group l
36 | alternating-Group = group-kernel-hom-Group
37 | ( symmetric-Group (set-Type-With-Cardinality-ℕ n X))
38 | ( symmetric-Group (Fin-Set 2))
39 | ( sign-homomorphism n X)
40 | ```
41 |
--------------------------------------------------------------------------------
/src/foundation-core/constant-maps.lagda.md:
--------------------------------------------------------------------------------
1 | # Constant maps
2 |
3 | ```agda
4 | module foundation-core.constant-maps where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | The {{#concept "constant map" Agda=const}} from `A` to `B` at an element `b : B`
18 | is the function `x ↦ b` mapping every element `x : A` to the given element
19 | `b : B`. In common type theoretic notation, the constant map at `b` is the
20 | function
21 |
22 | ```text
23 | λ x → b.
24 | ```
25 |
26 | ## Definition
27 |
28 | ```agda
29 | const : {l1 l2 : Level} (A : UU l1) {B : UU l2} → B → A → B
30 | const A b x = b
31 | ```
32 |
33 | ## See also
34 |
35 | - [Constant pointed maps](structured-types.constant-pointed-maps.md)
36 |
--------------------------------------------------------------------------------
/src/foundation-core/coproduct-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Coproduct types
2 |
3 | ```agda
4 | module foundation-core.coproduct-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | The {{#concept "coproduct" Disambiguation="of types"}} of two types `A` and `B`
18 | can be thought of as the disjoint union of `A` and `B`.
19 |
20 | ## Definition
21 |
22 | ### Coproduct types
23 |
24 | ```agda
25 | infixr 10 _+_
26 |
27 | data _+_ {l1 l2 : Level} (A : UU l1) (B : UU l2) : UU (l1 ⊔ l2)
28 | where
29 | inl : A → A + B
30 | inr : B → A + B
31 | ```
32 |
33 | ### The induction principle for coproduct types
34 |
35 | ```agda
36 | ind-coproduct :
37 | {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (C : A + B → UU l3) →
38 | ((x : A) → C (inl x)) → ((y : B) → C (inr y)) →
39 | (t : A + B) → C t
40 | ind-coproduct C f g (inl x) = f x
41 | ind-coproduct C f g (inr x) = g x
42 | ```
43 |
44 | ### The recursion principle for coproduct types
45 |
46 | ```agda
47 | rec-coproduct :
48 | {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : UU l3} →
49 | (A → C) → (B → C) → (A + B) → C
50 | rec-coproduct {C = C} = ind-coproduct (λ _ → C)
51 | ```
52 |
--------------------------------------------------------------------------------
/src/foundation-core/negation.lagda.md:
--------------------------------------------------------------------------------
1 | # Negation
2 |
3 | ```agda
4 | module foundation-core.negation where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import foundation-core.empty-types
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | The
20 | [Curry–Howard interpretation](https://en.wikipedia.org/wiki/Curry–Howard_correspondence)
21 | of _negation_ in type theory is the interpretation of the proposition `P ⇒ ⊥`
22 | using propositions as types. Thus, the
23 | {{#concept "negation" Disambiguation="of a type" WDID=Q190558 WD="logical negation" Agda=¬_}}
24 | of a type `A` is the type `A → empty`.
25 |
26 | ## Definition
27 |
28 | ```agda
29 | infix 25 ¬_
30 |
31 | ¬_ : {l : Level} → UU l → UU l
32 | ¬ A = A → empty
33 |
34 | map-neg :
35 | {l1 l2 : Level} {P : UU l1} {Q : UU l2} →
36 | (P → Q) → (¬ Q → ¬ P)
37 | map-neg f nq p = nq (f p)
38 | ```
39 |
40 | ## External links
41 |
42 | - [negation](https://ncatlab.org/nlab/show/negation) at $n$Lab
43 | - [Negation](https://en.wikipedia.org/wiki/Negation) at Wikipedia
44 |
--------------------------------------------------------------------------------
/src/foundation-core/postcomposition-functions.lagda.md:
--------------------------------------------------------------------------------
1 | # Postcomposition of functions
2 |
3 | ```agda
4 | module foundation-core.postcomposition-functions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import foundation-core.postcomposition-dependent-functions
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | Given a map `f : X → Y` and a type `A`, the
20 | {{#concept "postcomposition function" Agda=postcomp}}
21 |
22 | ```text
23 | f ∘ - : (A → X) → (A → Y)
24 | ```
25 |
26 | is defined by `λ h x → f (h x)`.
27 |
28 | ## Definitions
29 |
30 | ```agda
31 | module _
32 | {l1 l2 l3 : Level} (A : UU l1) {X : UU l2} {Y : UU l3}
33 | where
34 |
35 | postcomp : (X → Y) → (A → X) → (A → Y)
36 | postcomp f = postcomp-Π A f
37 | ```
38 |
--------------------------------------------------------------------------------
/src/foundation-core/precomposition-functions.lagda.md:
--------------------------------------------------------------------------------
1 | # Precomposition of functions
2 |
3 | ```agda
4 | module foundation-core.precomposition-functions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import foundation-core.function-types
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | Given a function `f : A → B` and a type `X`, the **precomposition function** by
20 | `f`
21 |
22 | ```text
23 | - ∘ f : (B → X) → (A → X)
24 | ```
25 |
26 | is defined by `λ h x → h (f x)`.
27 |
28 | ## Definitions
29 |
30 | ### The precomposition operation on ordinary functions
31 |
32 | ```agda
33 | module _
34 | {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (f : A → B) (C : UU l3)
35 | where
36 |
37 | precomp : (B → C) → (A → C)
38 | precomp = _∘ f
39 | ```
40 |
--------------------------------------------------------------------------------
/src/foundation-core/truncation-levels.lagda.md:
--------------------------------------------------------------------------------
1 | # Truncation levels
2 |
3 | ```agda
4 | module foundation-core.truncation-levels where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | The type of **truncation levels** is a type similar to the type of
18 | [natural numbers](elementary-number-theory.natural-numbers.md), but starting the
19 | count at -2, so that [sets](foundation-core.sets.md) have
20 | [truncation](foundation-core.truncated-types.md) level 0.
21 |
22 | ## Definitions
23 |
24 | ### The type of truncation levels
25 |
26 | ```agda
27 | data 𝕋 : UU lzero where
28 | neg-two-𝕋 : 𝕋
29 | succ-𝕋 : 𝕋 → 𝕋
30 | ```
31 |
32 | ### Aliases for common truncation levels
33 |
34 | ```agda
35 | neg-one-𝕋 : 𝕋
36 | neg-one-𝕋 = succ-𝕋 neg-two-𝕋
37 |
38 | zero-𝕋 : 𝕋
39 | zero-𝕋 = succ-𝕋 neg-one-𝕋
40 |
41 | one-𝕋 : 𝕋
42 | one-𝕋 = succ-𝕋 zero-𝕋
43 |
44 | two-𝕋 : 𝕋
45 | two-𝕋 = succ-𝕋 one-𝕋
46 | ```
47 |
--------------------------------------------------------------------------------
/src/foundation/2-types.lagda.md:
--------------------------------------------------------------------------------
1 | # `2`-Types
2 |
3 | ```agda
4 | module foundation.2-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 |
13 | open import foundation-core.truncated-types
14 | open import foundation-core.truncation-levels
15 | ```
16 |
17 |
18 |
19 | ## Definition
20 |
21 | A 2-type is a type that is 2-truncated
22 |
23 | ```agda
24 | is-2-type : {l : Level} → UU l → UU l
25 | is-2-type = is-trunc (two-𝕋)
26 |
27 | UU-2-Type : (l : Level) → UU (lsuc l)
28 | UU-2-Type l = Σ (UU l) is-2-type
29 |
30 | type-2-Type :
31 | {l : Level} → UU-2-Type l → UU l
32 | type-2-Type = pr1
33 |
34 | abstract
35 | is-2-type-type-2-Type :
36 | {l : Level} (A : UU-2-Type l) → is-2-type (type-2-Type A)
37 | is-2-type-type-2-Type = pr2
38 | ```
39 |
--------------------------------------------------------------------------------
/src/foundation/automorphisms.lagda.md:
--------------------------------------------------------------------------------
1 | # Automorphisms
2 |
3 | ```agda
4 | module foundation.automorphisms where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 |
13 | open import foundation-core.equivalences
14 | open import foundation-core.sets
15 |
16 | open import structured-types.pointed-types
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | An automorphism on a type `A` is an equivalence `A ≃ A`. We will just reuse the
24 | infrastructure of equivalences for automorphisms.
25 |
26 | ## Definitions
27 |
28 | ### The type of automorphisms on a type
29 |
30 | ```agda
31 | Aut : {l : Level} → UU l → UU l
32 | Aut Y = Y ≃ Y
33 |
34 | is-set-Aut : {l : Level} {A : UU l} → is-set A → is-set (Aut A)
35 | is-set-Aut H = is-set-equiv-is-set H H
36 |
37 | Aut-Set : {l : Level} → Set l → Set l
38 | pr1 (Aut-Set A) = Aut (type-Set A)
39 | pr2 (Aut-Set A) = is-set-Aut (is-set-type-Set A)
40 |
41 | Aut-Pointed-Type : {l : Level} → UU l → Pointed-Type l
42 | pr1 (Aut-Pointed-Type A) = Aut A
43 | pr2 (Aut-Pointed-Type A) = id-equiv
44 | ```
45 |
--------------------------------------------------------------------------------
/src/foundation/bands.lagda.md:
--------------------------------------------------------------------------------
1 | # Bands
2 |
3 | ```agda
4 | module foundation.bands where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.set-truncations
11 | open import foundation.universe-levels
12 |
13 | open import foundation-core.equivalences
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | A **band** from $X$ to $Y$ is an element of the
21 | [set-truncation](foundation.set-truncations.md) of the type of
22 | [equivalences](foundation-core.equivalences.md) from $X$ to $Y$.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | band : {l1 l2 : Level} → UU l1 → UU l2 → UU (l1 ⊔ l2)
28 | band A B = type-trunc-Set (A ≃ B)
29 |
30 | unit-band : {l1 l2 : Level} {A : UU l1} {B : UU l2} → (A ≃ B) → band A B
31 | unit-band = unit-trunc-Set
32 |
33 | refl-band : {l : Level} (A : UU l) → band A A
34 | refl-band A = unit-band id-equiv
35 | ```
36 |
--------------------------------------------------------------------------------
/src/foundation/binary-equivalences-unordered-pairs-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Binary equivalences on unordered pairs of types
2 |
3 | ```agda
4 | module foundation.binary-equivalences-unordered-pairs-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.binary-operations-unordered-pairs-of-types
11 | open import foundation.products-unordered-pairs-of-types
12 | open import foundation.universe-levels
13 | open import foundation.unordered-pairs
14 |
15 | open import foundation-core.equivalences
16 | open import foundation-core.function-types
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | A binary operation `f : ((i : I) → A i) → B` is a binary equivalence if for each
24 | `i : I` and each `x : A i` the map `f ∘ pair x : A (swap i) → B` is an
25 | equivalence.
26 |
27 | ## Definition
28 |
29 | ```agda
30 | is-binary-equiv-unordered-pair-types :
31 | {l1 l2 : Level} (A : unordered-pair (UU l1)) {B : UU l2}
32 | (f : binary-operation-unordered-pair-types A B) → UU (l1 ⊔ l2)
33 | is-binary-equiv-unordered-pair-types A f =
34 | (i : type-unordered-pair A) (x : element-unordered-pair A i) →
35 | is-equiv (f ∘ pair-product-unordered-pair-types A i x)
36 | ```
37 |
--------------------------------------------------------------------------------
/src/foundation/binary-operations-unordered-pairs-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Binary operations on unordered pairs of types
2 |
3 | ```agda
4 | module foundation.binary-operations-unordered-pairs-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.products-unordered-pairs-of-types
11 | open import foundation.universe-levels
12 | open import foundation.unordered-pairs
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | A binary operation on an unordered pair of types A indexed by a 2-element type I
20 | is a map `((i : I) → A i) → B`.
21 |
22 | ## Definition
23 |
24 | ```agda
25 | binary-operation-unordered-pair-types :
26 | {l1 l2 : Level} (A : unordered-pair (UU l1)) (B : UU l2) → UU (l1 ⊔ l2)
27 | binary-operation-unordered-pair-types A B = product-unordered-pair-types A → B
28 | ```
29 |
--------------------------------------------------------------------------------
/src/foundation/coalgebras-maybe.lagda.md:
--------------------------------------------------------------------------------
1 | # Coalgebras of the maybe monad
2 |
3 | ```agda
4 | module foundation.coalgebras-maybe where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.maybe
12 | open import foundation.universe-levels
13 |
14 | open import trees.polynomial-endofunctors
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | A
22 | {{#concept "coalgebra" Disambiguation="of the maybe monad" Agda=coalgebra-Maybe}}
23 | is a type `X` [equipped](foundation.structure.md) with a map
24 |
25 | ```text
26 | X → Maybe X.
27 | ```
28 |
29 | ## Definitions
30 |
31 | ### Maybe-coalgebra structure on a type
32 |
33 | ```agda
34 | coalgebra-structure-Maybe : {l : Level} → UU l → UU l
35 | coalgebra-structure-Maybe X = X → Maybe X
36 | ```
37 |
38 | ### Maybe-coalgebras
39 |
40 | ```agda
41 | coalgebra-Maybe : (l : Level) → UU (lsuc l)
42 | coalgebra-Maybe l = Σ (UU l) (coalgebra-structure-Maybe)
43 |
44 | module _
45 | {l : Level} (X : coalgebra-Maybe l)
46 | where
47 |
48 | type-coalgebra-Maybe : UU l
49 | type-coalgebra-Maybe = pr1 X
50 |
51 | map-coalgebra-Maybe : type-coalgebra-Maybe → Maybe type-coalgebra-Maybe
52 | map-coalgebra-Maybe = pr2 X
53 | ```
54 |
--------------------------------------------------------------------------------
/src/foundation/codiagonal-maps-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Codiagonal maps of types
2 |
3 | ```agda
4 | module foundation.codiagonal-maps-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import foundation-core.coproduct-types
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | The codiagonal map `∇ : A + A → A` of `A` is the map that projects `A + A` onto
20 | `A`.
21 |
22 | ## Definitions
23 |
24 | ```agda
25 | module _
26 | { l1 : Level} (A : UU l1)
27 | where
28 |
29 | codiagonal : A + A → A
30 | codiagonal (inl a) = a
31 | codiagonal (inr a) = a
32 | ```
33 |
--------------------------------------------------------------------------------
/src/foundation/complements.lagda.md:
--------------------------------------------------------------------------------
1 | # Complements of type families
2 |
3 | ```agda
4 | module foundation.complements where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 |
13 | open import foundation-core.empty-types
14 | open import foundation-core.function-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | The **complement** of a type family `B` over `A` consists of the type of points
22 | in `A` at which `B x` is [empty](foundation-core.empty-types.md).
23 |
24 | ```agda
25 | complement :
26 | {l1 l2 : Level} {A : UU l1} (B : A → UU l2) → UU (l1 ⊔ l2)
27 | complement {l1} {l2} {A} B = Σ A (is-empty ∘ B)
28 | ```
29 |
--------------------------------------------------------------------------------
/src/foundation/dependent-sequences.lagda.md:
--------------------------------------------------------------------------------
1 | # Dependent sequences
2 |
3 | ```agda
4 | module foundation.dependent-sequences where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import foundation-core.function-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | A **dependent sequence** of elements in a family of types `A : ℕ → UU` is a
22 | dependent map `(n : ℕ) → A n`.
23 |
24 | ## Definition
25 |
26 | ### Dependent sequences of elements in a family of types
27 |
28 | ```agda
29 | dependent-sequence : {l : Level} → (ℕ → UU l) → UU l
30 | dependent-sequence B = (n : ℕ) → B n
31 | ```
32 |
33 | ### Functorial action on maps of dependent sequences
34 |
35 | ```agda
36 | map-dependent-sequence :
37 | {l1 l2 : Level} {A : ℕ → UU l1} {B : ℕ → UU l2} →
38 | ((n : ℕ) → A n → B n) → dependent-sequence A → dependent-sequence B
39 | map-dependent-sequence f a = map-Π f a
40 | ```
41 |
--------------------------------------------------------------------------------
/src/foundation/descent-empty-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Descent for the empty type
2 |
3 | ```agda
4 | module foundation.descent-empty-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cones-over-cospan-diagrams
11 | open import foundation.dependent-pair-types
12 | open import foundation.universe-levels
13 |
14 | open import foundation-core.empty-types
15 | open import foundation-core.pullbacks
16 | ```
17 |
18 |
19 |
20 | ## Theorem
21 |
22 | ```agda
23 | module _
24 | {l1 l2 l3 : Level} {B : UU l1} {X : UU l2} {C : UU l3} (g : B → X)
25 | where
26 |
27 | cone-empty : is-empty C → (C → B) → cone ex-falso g C
28 | pr1 (cone-empty p q) = p
29 | pr1 (pr2 (cone-empty p q)) = q
30 | pr2 (pr2 (cone-empty p q)) c = ex-falso (p c)
31 |
32 | abstract
33 | descent-empty : (c : cone ex-falso g C) → is-pullback ex-falso g c
34 | descent-empty c =
35 | is-pullback-is-fiberwise-equiv-map-fiber-vertical-map-cone _ g c ind-empty
36 |
37 | abstract
38 | descent-empty' :
39 | (p : C → empty) (q : C → B) → is-pullback ex-falso g (cone-empty p q)
40 | descent-empty' p q = descent-empty (cone-empty p q)
41 | ```
42 |
--------------------------------------------------------------------------------
/src/foundation/diagonal-span-diagrams.lagda.md:
--------------------------------------------------------------------------------
1 | # Diagonal span diagrams
2 |
3 | ```agda
4 | module foundation.diagonal-span-diagrams where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.span-diagrams
11 | open import foundation.universe-levels
12 | ```
13 |
14 |
15 |
16 | ## Idea
17 |
18 | Consider a map `f : A → B`. The
19 | {{#concept "diagonal span diagram" Agda=diagonal-span-diagram}} of `f` is the
20 | [span diagram](foundation.span-diagrams.md)
21 |
22 | ```text
23 | f f
24 | B <----- A -----> B.
25 | ```
26 |
27 | ## Definitions
28 |
29 | ### Diagonal span diagrams of maps
30 |
31 | ```agda
32 | module _
33 | {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B)
34 | where
35 |
36 | diagonal-span-diagram : span-diagram l2 l2 l1
37 | diagonal-span-diagram = make-span-diagram f f
38 | ```
39 |
--------------------------------------------------------------------------------
/src/foundation/fixed-points-endofunctions.lagda.md:
--------------------------------------------------------------------------------
1 | # Fixed points of endofunctions
2 |
3 | ```agda
4 | module foundation.fixed-points-endofunctions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 |
13 | open import foundation-core.identity-types
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | Given an [endofunction](foundation-core.endomorphisms.md) `f : A → A`, the type
21 | of {{#concept "fixed points"}} is the type of elements `x : A` such that
22 | `f x = x`.
23 |
24 | ## Definitions
25 |
26 | ```agda
27 | module _
28 | {l : Level} {A : UU l} (f : A → A)
29 | where
30 |
31 | fixed-point : UU l
32 | fixed-point = Σ A (λ x → f x = x)
33 |
34 | fixed-point' : UU l
35 | fixed-point' = Σ A (λ x → x = f x)
36 | ```
37 |
--------------------------------------------------------------------------------
/src/foundation/functoriality-disjunction.lagda.md:
--------------------------------------------------------------------------------
1 | # Functoriality of disjunction
2 |
3 | ```agda
4 | module foundation.functoriality-disjunction where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.disjunction
11 | open import foundation.function-types
12 | open import foundation.propositions
13 | open import foundation.universe-levels
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | Any two implications `f : A ⇒ B` and `g : C ⇒ D` induce an implication
21 | `map-disjunction f g : (A ∨ B) ⇒ (C ∨ D)`.
22 |
23 | ## Definitions
24 |
25 | ### The functorial action of disjunction
26 |
27 | ```agda
28 | module _
29 | {l1 l2 l3 l4 : Level} (A : Prop l1) (B : Prop l2) (C : Prop l3) (D : Prop l4)
30 | (f : type-Prop (A ⇒ B)) (g : type-Prop (C ⇒ D))
31 | where
32 |
33 | map-disjunction : type-Prop ((A ∨ C) ⇒ (B ∨ D))
34 | map-disjunction =
35 | elim-disjunction (B ∨ D) (inl-disjunction ∘ f) (inr-disjunction ∘ g)
36 | ```
37 |
--------------------------------------------------------------------------------
/src/foundation/identity-truncated-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Identity types of truncated types
2 |
3 | ```agda
4 | module foundation.identity-truncated-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.univalence
11 | open import foundation.universe-levels
12 |
13 | open import foundation-core.equivalences
14 | open import foundation-core.identity-types
15 | open import foundation-core.truncated-types
16 | open import foundation-core.truncation-levels
17 | ```
18 |
19 |
20 |
21 | ### The type of identity of truncated types is truncated
22 |
23 | ```agda
24 | module _
25 | {l : Level} {A B : UU l}
26 | where
27 |
28 | is-trunc-id-is-trunc :
29 | (k : 𝕋) → is-trunc k A → is-trunc k B → is-trunc k (A = B)
30 | is-trunc-id-is-trunc k is-trunc-A is-trunc-B =
31 | is-trunc-equiv k
32 | ( A ≃ B)
33 | ( equiv-univalence)
34 | ( is-trunc-equiv-is-trunc k is-trunc-A is-trunc-B)
35 | ```
36 |
--------------------------------------------------------------------------------
/src/foundation/impredicative-universes.lagda.md:
--------------------------------------------------------------------------------
1 | # Impredicative universes
2 |
3 | ```agda
4 | module foundation.impredicative-universes where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import foundation-core.propositions
13 | open import foundation-core.small-types
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | A universe `𝒰` is {{#concept "impredicative"}} if the type of
21 | [propositions](foundation-core.propositions.md) in `𝒰` is `𝒰`-small.
22 |
23 | ## Definition
24 |
25 | ```agda
26 | is-impredicative-UU : (l : Level) → UU (lsuc l)
27 | is-impredicative-UU l = is-small l (Prop l)
28 | ```
29 |
30 | ## See also
31 |
32 | - [Impredicative encodings of the logical operations](foundation.impredicative-encodings.md)
33 |
--------------------------------------------------------------------------------
/src/foundation/large-dependent-pair-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Large dependent pair types
2 |
3 | ```agda
4 | module foundation.large-dependent-pair-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | When `B` is a family of large types over `A`, then we can form the large type of
18 | pairs `pairω a b` consisting of an element `a : A` and an element `b : B a`.
19 | Such pairs are called dependent pairs, since the type of the second component
20 | depends on the first component.
21 |
22 | ## Definition
23 |
24 | ```agda
25 | record Σω (A : UUω) (B : A → UUω) : UUω where
26 | constructor pairω
27 | field
28 | prω1 : A
29 | prω2 : B prω1
30 |
31 | open Σω public
32 |
33 | infixr 3 _,ω_
34 | pattern _,ω_ a b = pairω a b
35 | ```
36 |
37 | ### Families on dependent pair types
38 |
39 | ```agda
40 | module _
41 | {l : Level} {A : UUω} {B : A → UUω}
42 | where
43 |
44 | fam-Σω : ((x : A) → B x → UU l) → Σω A B → UU l
45 | fam-Σω C (pairω x y) = C x y
46 | ```
47 |
--------------------------------------------------------------------------------
/src/foundation/large-homotopies.lagda.md:
--------------------------------------------------------------------------------
1 | # Large homotopies
2 |
3 | ```agda
4 | module foundation.large-homotopies where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.large-identity-types
11 | open import foundation.universe-levels
12 | ```
13 |
14 |
15 |
16 | ## Idea
17 |
18 | A large homotopy of identifications is a pointwise equality between large
19 | dependent functions.
20 |
21 | ## Definitions
22 |
23 | ```agda
24 | module _
25 | {X : UUω} {P : X → UUω} (f g : (x : X) → P x)
26 | where
27 |
28 | eq-large-value : X → UUω
29 | eq-large-value x = (f x =ω g x)
30 | ```
31 |
32 | ```agda
33 | module _
34 | {A : UUω} {B : A → UUω}
35 | where
36 |
37 | _~ω_ : (f g : (x : A) → B x) → UUω
38 | f ~ω g = (x : A) → eq-large-value f g x
39 | ```
40 |
41 | ## Properties
42 |
43 | ### Reflexivity
44 |
45 | ```agda
46 | module _
47 | {A : UUω} {B : A → UUω}
48 | where
49 |
50 | refl-large-htpy : {f : (x : A) → B x} → f ~ω f
51 | refl-large-htpy x = reflω
52 |
53 | refl-large-htpy' : (f : (x : A) → B x) → f ~ω f
54 | refl-large-htpy' f = refl-large-htpy
55 | ```
56 |
--------------------------------------------------------------------------------
/src/foundation/large-identity-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Large identity types
2 |
3 | ```agda
4 | module foundation.large-identity-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 | ```
12 |
13 |
14 |
15 | ## Definition
16 |
17 | ```agda
18 | module _
19 | {A : UUω}
20 | where
21 |
22 | data Idω (x : A) : A → UUω where
23 | reflω : Idω x x
24 |
25 | _=ω_ : A → A → UUω
26 | (a =ω b) = Idω a b
27 | ```
28 |
--------------------------------------------------------------------------------
/src/foundation/lifts-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Lifts of types
2 |
3 | ```agda
4 | module foundation.lifts-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 | ```
13 |
14 |
15 |
16 | ## Idea
17 |
18 | Consider a type `X`. A {{#concept "lift" Disambiguation="type" Agda=lift-type}}
19 | of `X` is an object in the [slice](foundation.slice.md) over `X`, i.e., it
20 | consists of a type `Y` and a map `f : Y → X`.
21 |
22 | In the above definition of lifts of types our aim is to capture the most general
23 | concept of what it means to be an lift of a type. Similarly, in any
24 | [category](category-theory.categories.md) we would say that an lift of an object
25 | `X` consists of an object `Y` equipped with a morphism `f : Y → X`.
26 |
27 | ## Definitions
28 |
29 | ```agda
30 | lift-type : {l1 : Level} (l2 : Level) (X : UU l1) → UU (l1 ⊔ lsuc l2)
31 | lift-type l2 X = Σ (UU l2) (λ Y → Y → X)
32 |
33 | module _
34 | {l1 l2 : Level} {X : UU l1} (Y : lift-type l2 X)
35 | where
36 |
37 | type-lift-type : UU l2
38 | type-lift-type = pr1 Y
39 |
40 | projection-lift-type : type-lift-type → X
41 | projection-lift-type = pr2 Y
42 | ```
43 |
--------------------------------------------------------------------------------
/src/foundation/multivariable-correspondences.lagda.md:
--------------------------------------------------------------------------------
1 | # Multivariable correspondences
2 |
3 | ```agda
4 | module foundation.multivariable-correspondences where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import univalent-combinatorics.standard-finite-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | Consider a family of types `A` indexed by `Fin n`. An `n`-ary correspondence of
22 | tuples `(x₁, …, xₙ)` where `xᵢ : A i` is a type family over `(i : Fin n) → A i`.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | multivariable-correspondence :
28 | {l1 : Level} (l2 : Level) (n : ℕ) (A : Fin n → UU l1) → UU (l1 ⊔ lsuc l2)
29 | multivariable-correspondence l2 n A = ((i : Fin n) → A i) → UU l2
30 | ```
31 |
--------------------------------------------------------------------------------
/src/foundation/multivariable-relations.lagda.md:
--------------------------------------------------------------------------------
1 | # Multivariable relations
2 |
3 | ```agda
4 | module foundation.multivariable-relations where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.multivariable-correspondences
13 | open import foundation.universe-levels
14 |
15 | open import foundation-core.subtypes
16 |
17 | open import univalent-combinatorics.standard-finite-types
18 | ```
19 |
20 |
21 |
22 | ## Idea
23 |
24 | A `n`-ary relation on a type `A` is a subtype of `Fin n → A`.
25 |
26 | ## Definition
27 |
28 | ```agda
29 | multivariable-relation :
30 | {l1 : Level} (l2 : Level) (n : ℕ) (A : Fin n → UU l1) → UU (l1 ⊔ lsuc l2)
31 | multivariable-relation l2 n A = subtype l2 ((i : Fin n) → A i)
32 |
33 | module _
34 | {l1 l2 : Level} {n : ℕ} {A : Fin n → UU l1}
35 | (R : multivariable-relation l2 n A)
36 | where
37 |
38 | multivariable-correspondence-multivariable-relation :
39 | multivariable-correspondence l2 n A
40 | multivariable-correspondence-multivariable-relation =
41 | is-in-subtype R
42 | ```
43 |
--------------------------------------------------------------------------------
/src/foundation/products-binary-relations.lagda.md:
--------------------------------------------------------------------------------
1 | # Products of binary relations
2 |
3 | ```agda
4 | module foundation.products-binary-relations where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.binary-relations
11 | open import foundation.dependent-pair-types
12 | open import foundation.universe-levels
13 |
14 | open import foundation-core.cartesian-product-types
15 | open import foundation-core.propositions
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | Given two relations `R` and `S`, their product is given by
23 | `(R × S) (a , b) (a' , b')` iff `R a a'` and `S b b'`.
24 |
25 | ## Definition
26 |
27 | ### The product of two relations
28 |
29 | ```agda
30 | module _
31 | {l1 l2 l3 l4 : Level}
32 | {A : UU l1} (R : Relation-Prop l2 A)
33 | {B : UU l3} (S : Relation-Prop l4 B)
34 | where
35 |
36 | product-Relation-Prop :
37 | Relation-Prop (l2 ⊔ l4) (A × B)
38 | product-Relation-Prop (a , b) (a' , b') =
39 | product-Prop
40 | ( R a a')
41 | ( S b b')
42 | ```
43 |
--------------------------------------------------------------------------------
/src/foundation/products-of-tuples-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Products of tuples of types
2 |
3 | ```agda
4 | module foundation.products-of-tuples-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.tuples-of-types
13 | open import foundation.universe-levels
14 |
15 | open import univalent-combinatorics.standard-finite-types
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | The product of an `n`-tuple of types is their dependent product.
23 |
24 | ## Definition
25 |
26 | ### Products of `n`-tuples of types
27 |
28 | ```agda
29 | product-tuple-types :
30 | {l : Level} (n : ℕ) → tuple-types l n → UU l
31 | product-tuple-types n A = (i : Fin n) → A i
32 | ```
33 |
34 | ### The projection maps
35 |
36 | ```agda
37 | pr-product-tuple-types :
38 | {l : Level} {n : ℕ} (A : tuple-types l n) (i : Fin n) →
39 | product-tuple-types n A → A i
40 | pr-product-tuple-types A i f = f i
41 | ```
42 |
--------------------------------------------------------------------------------
/src/foundation/proper-subtypes.lagda.md:
--------------------------------------------------------------------------------
1 | # Proper subsets
2 |
3 | ```agda
4 | module foundation.proper-subtypes where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.complements-subtypes
11 | open import foundation.inhabited-subtypes
12 | open import foundation.universe-levels
13 |
14 | open import foundation-core.propositions
15 | open import foundation-core.subtypes
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | A subtype of a type is said to be **proper** if its complement is inhabited.
23 |
24 | ```agda
25 | is-proper-subtype-Prop :
26 | {l1 l2 : Level} {A : UU l1} → subtype l2 A → Prop (l1 ⊔ l2)
27 | is-proper-subtype-Prop P =
28 | is-inhabited-subtype-Prop (complement-subtype P)
29 | ```
30 |
--------------------------------------------------------------------------------
/src/foundation/sequences.lagda.md:
--------------------------------------------------------------------------------
1 | # Sequences
2 |
3 | ```agda
4 | module foundation.sequences where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-sequences
11 | open import foundation.universe-levels
12 |
13 | open import foundation-core.function-types
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | A {{#concept "sequence" Agda=sequence}} of elements of type `A` is a map `ℕ → A`
21 | from the [natural numbers](elementary-number-theory.natural-numbers.md) into
22 | `A`.
23 |
24 | For a list of number sequences from the
25 | [On-Line Encyclopedia of Integer Sequences](https://oeis.org) {{#cite oeis}}
26 | that are formalized in agda-unimath, see the page
27 | [`literature.oeis`](literature.oeis.md).
28 |
29 | ## Definition
30 |
31 | ### Sequences of elements of a type
32 |
33 | ```agda
34 | sequence : {l : Level} → UU l → UU l
35 | sequence A = dependent-sequence (λ _ → A)
36 | ```
37 |
38 | ### Functorial action on maps of sequences
39 |
40 | ```agda
41 | map-sequence :
42 | {l1 l2 : Level} {A : UU l1} {B : UU l2} → (A → B) → sequence A → sequence B
43 | map-sequence f a = f ∘ a
44 | ```
45 |
46 | ## References
47 |
48 | {{#bibliography}}
49 |
--------------------------------------------------------------------------------
/src/foundation/shifting-sequences.lagda.md:
--------------------------------------------------------------------------------
1 | # Shifting sequences
2 |
3 | ```agda
4 | module foundation.shifting-sequences where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | Given a sequence `f : ℕ → A` and an element `a : A` we define
20 | `shift-ℕ a f : ℕ → A` by
21 |
22 | ```text
23 | shift-ℕ a f zero-ℕ := a
24 | shift-ℕ a f (succ-ℕ n) := f n
25 | ```
26 |
27 | ## Definition
28 |
29 | ```agda
30 | shift-ℕ : {l : Level} {A : UU l} (a : A) (f : ℕ → A) → ℕ → A
31 | shift-ℕ a f zero-ℕ = a
32 | shift-ℕ a f (succ-ℕ n) = f n
33 | ```
34 |
--------------------------------------------------------------------------------
/src/foundation/small-universes.lagda.md:
--------------------------------------------------------------------------------
1 | # Small universes
2 |
3 | ```agda
4 | module foundation.small-universes where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import foundation-core.cartesian-product-types
13 | open import foundation-core.small-types
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | A [universe](foundation.universe-levels.md) `𝒰` is said to be
21 | {{#concept "small" Disambiguation="universe of types" Agda=is-small-universe}}
22 | with respect to `𝒱` if `𝒰` is a `𝒱`-[small](foundation-core.small-types.md) type
23 | and each `X : 𝒰` is a `𝒱`-small type.
24 |
25 | ```agda
26 | is-small-universe :
27 | (l l1 : Level) → UU (lsuc l1 ⊔ lsuc l)
28 | is-small-universe l l1 = is-small l (UU l1) × ((X : UU l1) → is-small l X)
29 | ```
30 |
--------------------------------------------------------------------------------
/src/foundation/sorial-type-families.lagda.md:
--------------------------------------------------------------------------------
1 | # Sorial type families
2 |
3 | ```agda
4 | module foundation.sorial-type-families where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import foundation-core.equivalences
13 |
14 | open import structured-types.pointed-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | The notion of _sorial type family_ is a generalization of the notion of
22 | [torsorial type family](foundation.torsorial-type-families.md). Recall that if a
23 | type family `E` over a [pointed type](structured-types.pointed-types.md) `B` is
24 | torsorial, then we obtain in a canonical way, for each `x : B` an action
25 |
26 | ```text
27 | E x → (E pt ≃ E x)
28 | ```
29 |
30 | A **sorial type family** is a type family `E` over a pointed type `B` for which
31 | we have such an action.
32 |
33 | ## Definitions
34 |
35 | ### Sorial type families
36 |
37 | ```agda
38 | module _
39 | {l1 l2 : Level} (B : Pointed-Type l1) (E : type-Pointed-Type B → UU l2)
40 | where
41 |
42 | is-sorial-family-of-types : UU (l1 ⊔ l2)
43 | is-sorial-family-of-types =
44 | (x : type-Pointed-Type B) → E x → (E (point-Pointed-Type B) ≃ E x)
45 | ```
46 |
--------------------------------------------------------------------------------
/src/foundation/strongly-extensional-maps.lagda.md:
--------------------------------------------------------------------------------
1 | # Strongly extensional maps
2 |
3 | ```agda
4 | module foundation.strongly-extensional-maps where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.apartness-relations
11 | open import foundation.universe-levels
12 | ```
13 |
14 |
15 |
16 | ## Idea
17 |
18 | Consider a function `f : A → B` between types equipped with apartness relations.
19 | Then we say that `f` is **strongly extensional** if
20 |
21 | ```text
22 | f x # f y → x # y
23 | ```
24 |
25 | ## Definition
26 |
27 | ```agda
28 | strongly-extensional :
29 | {l1 l2 l3 l4 : Level} (A : Type-With-Apartness l1 l2)
30 | (B : Type-With-Apartness l3 l4) →
31 | (type-Type-With-Apartness A → type-Type-With-Apartness B) → UU (l1 ⊔ l2 ⊔ l4)
32 | strongly-extensional A B f =
33 | (x y : type-Type-With-Apartness A) →
34 | apart-Type-With-Apartness B (f x) (f y) → apart-Type-With-Apartness A x y
35 | ```
36 |
37 | ## Properties
38 |
39 | ```text
40 | is-strongly-extensional :
41 | {l1 l2 l3 l4 : Level} (A : Type-With-Apartness l1 l2)
42 | (B : Type-With-Apartness l3 l4) →
43 | (f : type-Type-With-Apartness A → type-Type-With-Apartness B) →
44 | strongly-extensional A B f
45 | is-strongly-extensional A B f x y H = {!!}
46 | ```
47 |
--------------------------------------------------------------------------------
/src/foundation/total-partial-elements.lagda.md:
--------------------------------------------------------------------------------
1 | # Total partial elements
2 |
3 | ```agda
4 | module foundation.total-partial-elements where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.partial-elements
12 | open import foundation.universe-levels
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | A [partial element](foundation.partial-elements.md) `a` of `A` is said to be
20 | {{#concept "total" Disambiguation="partial element" Agda=total-partial-element}}
21 | if it is defined. The type of total partial elements of `A` is
22 | [equivalent](foundation-core.equivalences.md) to the type `A`.
23 |
24 | ## Definitions
25 |
26 | ### The type of total partial elements
27 |
28 | ```agda
29 | total-partial-element :
30 | {l1 : Level} (l2 : Level) (A : UU l1) → UU (l1 ⊔ lsuc l2)
31 | total-partial-element l2 A =
32 | Σ (partial-element l2 A) is-defined-partial-element
33 | ```
34 |
--------------------------------------------------------------------------------
/src/foundation/truncated-equality.lagda.md:
--------------------------------------------------------------------------------
1 | # Truncated equality
2 |
3 | ```agda
4 | module foundation.truncated-equality where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.truncations
11 | open import foundation.universe-levels
12 |
13 | open import foundation-core.identity-types
14 | open import foundation-core.truncated-types
15 | open import foundation-core.truncation-levels
16 | ```
17 |
18 |
19 |
20 | ## Definition
21 |
22 | ```agda
23 | trunc-eq : {l : Level} (k : 𝕋) {A : UU l} → A → A → Truncated-Type l k
24 | trunc-eq k x y = trunc k (x = y)
25 | ```
26 |
--------------------------------------------------------------------------------
/src/foundation/tuples-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Tuples of types
2 |
3 | ```agda
4 | module foundation.tuples-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import univalent-combinatorics.standard-finite-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | An `n`-tuple of types is a type family `Fin n → UU`.
22 |
23 | ## Definition
24 |
25 | ```agda
26 | tuple-types : (l : Level) (n : ℕ) → UU (lsuc l)
27 | tuple-types l n = Fin n → UU l
28 | ```
29 |
30 | ## Properties
31 |
32 | ### The tuple of types `A j` for `i ≠ j`, given `i`
33 |
34 | ```agda
35 | {-
36 | tuple-types-complement-point :
37 | {l : Level} {n : ℕ} (A : tuple-types l (succ-ℕ n)) (i : Fin (succ-ℕ n)) →
38 | tuple-types l n
39 | tuple-types-complement-point A i = {!!}
40 | -}
41 | ```
42 |
--------------------------------------------------------------------------------
/src/foundation/universe-levels.lagda.md:
--------------------------------------------------------------------------------
1 | # Universe levels
2 |
3 | ```agda
4 | module foundation.universe-levels where
5 |
6 | open import Agda.Primitive
7 | using (Level ; lzero ; lsuc ; _⊔_)
8 | renaming (Set to UU ; Setω to UUω)
9 | public
10 | ```
11 |
12 | ## Idea
13 |
14 | We import Agda's built in mechanism of universe levels. The universes are called
15 | `UU`, which stands for _univalent universe_, although we will not immediately
16 | assume that universes are univalent. This is done in
17 | [`foundation.univalence`](foundation.univalence.md).
18 |
--------------------------------------------------------------------------------
/src/globular-types/constant-globular-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Constant globular types
2 |
3 | ```agda
4 | {-# OPTIONS --guardedness #-}
5 |
6 | module globular-types.constant-globular-types where
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 | open import foundation.universe-levels
13 |
14 | open import globular-types.globular-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | Consider a type `A`. The
22 | {{#concept "constant globular type" Agda=constant-Globular-Type}} at `A` is the
23 | [globular type](globular-types.globular-types.md) `𝐀` given by
24 |
25 | ```text
26 | 𝐀₀ := A
27 | 𝐀₁ x y := 𝐀.
28 | ```
29 |
30 | ## Definitions
31 |
32 | ### The constant globular type at a type
33 |
34 | ```agda
35 | module _
36 | {l : Level} (A : UU l)
37 | where
38 |
39 | constant-Globular-Type : Globular-Type l l
40 | 0-cell-Globular-Type constant-Globular-Type =
41 | A
42 | 1-cell-globular-type-Globular-Type constant-Globular-Type x y =
43 | constant-Globular-Type
44 | ```
45 |
--------------------------------------------------------------------------------
/src/globular-types/terminal-globular-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Terminal globular types
2 |
3 | ```agda
4 | {-# OPTIONS --guardedness #-}
5 |
6 | module globular-types.terminal-globular-types where
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 | open import foundation.contractible-types
13 | open import foundation.universe-levels
14 |
15 | open import globular-types.globular-maps
16 | open import globular-types.globular-types
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | A [globular type](globular-types.globular-types.md) `G` is said to be
24 | {{#concept "terminal" Disambiguation="globular type" Agda=is-terminal-Globular-Type}}
25 | if for any globular type `H` the type of
26 | [globular maps](globular-types.globular-maps.md) `H → G` is
27 | [contractible](foundation-core.contractible-types.md).
28 |
29 | ## Definitions
30 |
31 | ### The predicate of being a terminal globular type
32 |
33 | ```agda
34 | is-terminal-Globular-Type :
35 | {l1 l2 : Level} → Globular-Type l1 l2 → UUω
36 | is-terminal-Globular-Type G =
37 | {l3 l4 : Level} (H : Globular-Type l3 l4) → is-contr (globular-map H G)
38 | ```
39 |
--------------------------------------------------------------------------------
/src/globular-types/unit-globular-type.lagda.md:
--------------------------------------------------------------------------------
1 | # The unit globular type
2 |
3 | ```agda
4 | {-# OPTIONS --guardedness #-}
5 |
6 | module globular-types.unit-globular-type where
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 | open import foundation.unit-type
13 | open import foundation.universe-levels
14 |
15 | open import globular-types.constant-globular-types
16 | open import globular-types.globular-types
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | The {{#concept "unit globular type" Agda=unit-Globular-Type}} is the
24 | [constant globular type](globular-types.constant-globular-types.md) at the
25 | [unit type](foundation.unit-type.md). That is, the unit globular type is the
26 | [globular type](globular-types.globular-types.md) `𝟏` given by
27 |
28 | ```text
29 | 𝟏₀ := unit
30 | 𝟏' x y := 𝟏.
31 | ```
32 |
33 | ## Definitions
34 |
35 | ### The unit globular type
36 |
37 | ```agda
38 | unit-Globular-Type : Globular-Type lzero lzero
39 | unit-Globular-Type = constant-Globular-Type unit
40 | ```
41 |
--------------------------------------------------------------------------------
/src/graph-theory/undirected-graph-structures-on-standard-finite-sets.lagda.md:
--------------------------------------------------------------------------------
1 | # Undirected graph structures on standard finite sets
2 |
3 | ```agda
4 | module graph-theory.undirected-graph-structures-on-standard-finite-sets where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.dependent-pair-types
13 | open import foundation.universe-levels
14 | open import foundation.unordered-pairs
15 |
16 | open import univalent-combinatorics.standard-finite-types
17 | ```
18 |
19 |
20 |
21 | ## Definition
22 |
23 | ```agda
24 | Undirected-Graph-Fin : UU (lsuc lzero)
25 | Undirected-Graph-Fin = Σ ℕ (λ V → unordered-pair (Fin V) → ℕ)
26 | ```
27 |
28 | ## External links
29 |
30 | - [Graph](https://ncatlab.org/nlab/show/graph) at $n$Lab
31 | - [Graph](https://www.wikidata.org/entity/Q141488) on Wikidata
32 | - [Graph (discrete mathematics)]()
33 | at Wikipedia
34 | - [Graph](https://mathworld.wolfram.com/Graph.html) at Wolfram MathWorld
35 |
--------------------------------------------------------------------------------
/src/group-theory/category-of-concrete-groups.lagda.md:
--------------------------------------------------------------------------------
1 | # The category of concrete groups
2 |
3 | ```agda
4 | module group-theory.category-of-concrete-groups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Definitions
16 |
17 | ### The category of concrete groups
18 |
19 | ```text
20 | is-category-Concrete-Group-Large-Precategory :
21 | is-large-category-Large-Precategory Concrete-Group-Large-Precategory
22 | is-category-Concrete-Group-Large-Precategory = {!!}
23 | ```
24 |
--------------------------------------------------------------------------------
/src/group-theory/contravariant-pushforward-concrete-group-actions.lagda.md:
--------------------------------------------------------------------------------
1 | # Contravariant pushforwards of concrete group actions
2 |
3 | ```agda
4 | module group-theory.contravariant-pushforward-concrete-group-actions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import group-theory.concrete-groups
13 | open import group-theory.homomorphisms-concrete-groups
14 | ```
15 |
16 |
17 |
18 | ## Definition
19 |
20 | ```agda
21 | module _
22 | {l1 l2 : Level} (G : Concrete-Group l1) (H : Concrete-Group l2)
23 | (f : hom-Concrete-Group G H)
24 | where
25 |
26 | {-
27 | contravariant-pushforward-action-Concrete-Group :
28 | {l : Level} → action-Concrete-Group l G → action-Concrete-Group {!!} H
29 | contravariant-pushforward-action-Concrete-Group X y = {!!}
30 |
31 | -- The following should be constructed as a set
32 | hom-action-Concrete-Group G X
33 | ( subst-action-Concrete-Group G H f (λ y → Id (shape-Concrete-Group H) y))
34 | -}
35 | ```
36 |
--------------------------------------------------------------------------------
/src/group-theory/dihedral-groups.lagda.md:
--------------------------------------------------------------------------------
1 | # The dihedral groups
2 |
3 | ```agda
4 | module group-theory.dihedral-groups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 | open import elementary-number-theory.standard-cyclic-groups
12 |
13 | open import foundation.universe-levels
14 |
15 | open import group-theory.dihedral-group-construction
16 | open import group-theory.groups
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | The dihedral group `Dₖ` is defined by the dihedral group construction applied to
24 | the cyclic group `ℤ-Mod k`.
25 |
26 | ## Definition
27 |
28 | ```agda
29 | dihedral-group : ℕ → Group lzero
30 | dihedral-group k = dihedral-group-Ab (ℤ-Mod-Ab k)
31 | ```
32 |
--------------------------------------------------------------------------------
/src/group-theory/e8-lattice.lagda.md:
--------------------------------------------------------------------------------
1 | # The `E₈`-lattice
2 |
3 | ```agda
4 | module group-theory.e8-lattice where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.integers
11 |
12 | open import foundation.equality-coproduct-types
13 | open import foundation.sets
14 | open import foundation.universe-levels
15 |
16 | open import univalent-combinatorics.standard-finite-types
17 | ```
18 |
19 |
20 |
21 | ## Definition
22 |
23 | ### The ambient set of the E₈ lattice
24 |
25 | The E₈ lattice itself is a subset of the following set.
26 |
27 | ```agda
28 | ambient-set-E8-lattice : Set lzero
29 | ambient-set-E8-lattice =
30 | coproduct-Set (hom-set-Set (Fin-Set 8) ℤ-Set) (hom-set-Set (Fin-Set 8) ℤ-Set)
31 | ```
32 |
--------------------------------------------------------------------------------
/src/group-theory/furstenberg-groups.lagda.md:
--------------------------------------------------------------------------------
1 | # Furstenberg groups
2 |
3 | ```agda
4 | module group-theory.furstenberg-groups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cartesian-product-types
11 | open import foundation.dependent-pair-types
12 | open import foundation.identity-types
13 | open import foundation.propositional-truncations
14 | open import foundation.sets
15 | open import foundation.universe-levels
16 | ```
17 |
18 |
19 |
20 | ## Definition
21 |
22 | ```agda
23 | Furstenberg-Group : (l : Level) → UU (lsuc l)
24 | Furstenberg-Group l =
25 | Σ ( Set l)
26 | ( λ X →
27 | ( type-trunc-Prop (type-Set X)) ×
28 | ( Σ ( type-Set X → type-Set X → type-Set X)
29 | ( λ μ →
30 | ( (x y z : type-Set X) → Id (μ (μ x z) (μ y z)) (μ x y)) ×
31 | ( Σ ( type-Set X → type-Set X → type-Set X)
32 | ( λ δ → (x y : type-Set X) → Id (μ x (δ x y)) y)))))
33 | ```
34 |
--------------------------------------------------------------------------------
/src/group-theory/generating-sets-groups.lagda.md:
--------------------------------------------------------------------------------
1 | # Generating sets of groups
2 |
3 | ```agda
4 | module group-theory.generating-sets-groups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import group-theory.full-subgroups
13 | open import group-theory.groups
14 | open import group-theory.subgroups-generated-by-subsets-groups
15 | open import group-theory.subsets-groups
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | A **generating set** of a [group](group-theory.groups.md) `G` is a subset
23 | `S ⊆ G` such that the
24 | [subgroup generated by `S`](group-theory.subgroups-generated-by-subsets-groups.md)
25 | is the [full subgroup](group-theory.full-subgroups.md).
26 |
27 | ## Definition
28 |
29 | ### The predicate of being a generating set
30 |
31 | ```agda
32 | module _
33 | {l1 l2 : Level} (G : Group l1) (S : subset-Group l2 G)
34 | where
35 |
36 | is-generating-set-Group : UU (l1 ⊔ l2)
37 | is-generating-set-Group = is-full-Subgroup G (subgroup-subset-Group G S)
38 | ```
39 |
--------------------------------------------------------------------------------
/src/group-theory/isomorphisms-concrete-groups.lagda.md:
--------------------------------------------------------------------------------
1 | # Isomorphisms of concrete groups
2 |
3 | ```agda
4 | module group-theory.isomorphisms-concrete-groups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import category-theory.isomorphisms-in-large-precategories
11 |
12 | open import foundation.universe-levels
13 |
14 | open import group-theory.concrete-groups
15 | open import group-theory.precategory-of-concrete-groups
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | **Isomorphisms** of [concrete groups](group-theory.concrete-groups.md) are
23 | [isomorphisms](category-theory.isomorphisms-in-large-precategories.md) in the
24 | [large precategory of concrete groups](group-theory.precategory-of-concrete-groups.md).
25 |
26 | ## Definition
27 |
28 | ```agda
29 | iso-Concrete-Group :
30 | {l1 l2 : Level} → Concrete-Group l1 → Concrete-Group l2 → UU (l1 ⊔ l2)
31 | iso-Concrete-Group = iso-Large-Precategory Concrete-Group-Large-Precategory
32 | ```
33 |
34 | ## Properties
35 |
36 | ### Equivalences of concrete groups are isomorphisms of concrete groups
37 |
38 | This remains to be shown.
39 | [#736](https://github.com/UniMath/agda-unimath/issues/736)
40 |
--------------------------------------------------------------------------------
/src/group-theory/mere-equivalences-group-actions.lagda.md:
--------------------------------------------------------------------------------
1 | # Mere equivalences of group actions
2 |
3 | ```agda
4 | module group-theory.mere-equivalences-group-actions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.propositional-truncations
11 | open import foundation.propositions
12 | open import foundation.universe-levels
13 |
14 | open import group-theory.equivalences-group-actions
15 | open import group-theory.group-actions
16 | open import group-theory.groups
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | A **mere equivalence** of [group actions](group-theory.group-actions.md) is an
24 | element of the
25 | [propositional truncation](foundation.propositional-truncations.md) of the type
26 | of [equivalences of group actions](group-theory.equivalences-group-actions.md).
27 |
28 | ## Definition
29 |
30 | ```agda
31 | module _
32 | {l1 l2 l3 : Level} (G : Group l1)
33 | (X : action-Group G l2) (Y : action-Group G l3)
34 | where
35 |
36 | mere-equiv-prop-action-Group : Prop (l1 ⊔ l2 ⊔ l3)
37 | mere-equiv-prop-action-Group = trunc-Prop (equiv-action-Group G X Y)
38 |
39 | mere-equiv-action-Group : UU (l1 ⊔ l2 ⊔ l3)
40 | mere-equiv-action-Group = type-Prop mere-equiv-prop-action-Group
41 | ```
42 |
--------------------------------------------------------------------------------
/src/group-theory/orbits-group-actions.lagda.md:
--------------------------------------------------------------------------------
1 | # Orbits of group actions
2 |
3 | ```agda
4 | module group-theory.orbits-group-actions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.identity-types
12 | open import foundation.universe-levels
13 |
14 | open import group-theory.group-actions
15 | open import group-theory.groups
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | The [groupoid](category-theory.groupoids.md) of **orbits** of a
23 | [group action](group-theory.group-actions.md) consists of elements of `X`, and a
24 | morphism from `x` to `y` is given by an element `g` of the
25 | [group](group-theory.groups.md) `G` such that `gx = y`.
26 |
27 | ## Definition
28 |
29 | ```agda
30 | module _
31 | {l1 l2 : Level} (G : Group l1) (X : action-Group G l2)
32 | where
33 |
34 | hom-orbit-action-Group :
35 | (x y : type-action-Group G X) → UU (l1 ⊔ l2)
36 | hom-orbit-action-Group x y =
37 | Σ (type-Group G) (λ g → mul-action-Group G X g x = y)
38 | ```
39 |
--------------------------------------------------------------------------------
/src/group-theory/perfect-subgroups.lagda.md:
--------------------------------------------------------------------------------
1 | # Perfect subgroups
2 |
3 | ```agda
4 | module group-theory.perfect-subgroups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.propositions
11 | open import foundation.universe-levels
12 |
13 | open import group-theory.groups
14 | open import group-theory.perfect-groups
15 | open import group-theory.subgroups
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | A [subgroup](group-theory.subgroups.md) `H` of a [group](group-theory.groups.md)
23 | `G` is a **perfect subgroup** if it is a
24 | [perfect group](group-theory.perfect-groups.md) on its own.
25 |
26 | ## Definitions
27 |
28 | ### The predicate of being a perfect subgroup
29 |
30 | ```agda
31 | module _
32 | {l1 l2 : Level} (G : Group l1) (H : Subgroup l2 G)
33 | where
34 |
35 | is-perfect-prop-Subgroup : Prop (l1 ⊔ l2)
36 | is-perfect-prop-Subgroup = is-perfect-prop-Group (group-Subgroup G H)
37 |
38 | is-perfect-Subgroup : UU (l1 ⊔ l2)
39 | is-perfect-Subgroup = type-Prop is-perfect-prop-Subgroup
40 |
41 | is-prop-is-perfect-Subgroup : is-prop is-perfect-Subgroup
42 | is-prop-is-perfect-Subgroup = is-prop-type-Prop is-perfect-prop-Subgroup
43 | ```
44 |
45 | ## External links
46 |
47 | A wikidata identifier was not available for this concept.
48 |
--------------------------------------------------------------------------------
/src/group-theory/precategory-of-semigroups.lagda.md:
--------------------------------------------------------------------------------
1 | # The precategory of semigroups
2 |
3 | ```agda
4 | module group-theory.precategory-of-semigroups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import category-theory.large-precategories
11 |
12 | open import foundation.universe-levels
13 |
14 | open import group-theory.homomorphisms-semigroups
15 | open import group-theory.semigroups
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | Semigroups and semigroup homomorphisms form a precategory.
23 |
24 | ## Definition
25 |
26 | ### The large precategory of semigroups
27 |
28 | ```agda
29 | Semigroup-Large-Precategory : Large-Precategory lsuc (_⊔_)
30 | Semigroup-Large-Precategory =
31 | make-Large-Precategory
32 | ( Semigroup)
33 | ( hom-set-Semigroup)
34 | ( λ {l1} {l2} {l3} {G} {H} {K} → comp-hom-Semigroup G H K)
35 | ( λ {l} {G} → id-hom-Semigroup G)
36 | ( λ {l1} {l2} {l3} {l4} {G} {H} {K} {L} →
37 | associative-comp-hom-Semigroup G H K L)
38 | ( λ {l1} {l2} {G} {H} → left-unit-law-comp-hom-Semigroup G H)
39 | ( λ {l1} {l2} {G} {H} → right-unit-law-comp-hom-Semigroup G H)
40 | ```
41 |
--------------------------------------------------------------------------------
/src/group-theory/principal-group-actions.lagda.md:
--------------------------------------------------------------------------------
1 | # Principal group actions
2 |
3 | ```agda
4 | module group-theory.principal-group-actions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.equivalence-extensionality
12 | open import foundation.universe-levels
13 |
14 | open import group-theory.group-actions
15 | open import group-theory.groups
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | The **principal group action** is the [action](group-theory.group-actions.md) of
23 | a [group](group-theory.groups.md) on itself by multiplication from the left.
24 |
25 | ## Definition
26 |
27 | ```agda
28 | module _
29 | {l1 : Level} (G : Group l1)
30 | where
31 |
32 | principal-action-Group : action-Group G l1
33 | pr1 principal-action-Group = set-Group G
34 | pr1 (pr2 principal-action-Group) g = equiv-mul-Group G g
35 | pr2 (pr2 principal-action-Group) {g} {h} =
36 | eq-htpy-equiv (associative-mul-Group G g h)
37 | ```
38 |
--------------------------------------------------------------------------------
/src/group-theory/principal-torsors-concrete-groups.lagda.md:
--------------------------------------------------------------------------------
1 | # Principal torsors of concrete groups
2 |
3 | ```agda
4 | module group-theory.principal-torsors-concrete-groups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import group-theory.concrete-group-actions
13 | open import group-theory.concrete-groups
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | The **principal torsor** of a [concrete group](group-theory.concrete-groups.md)
21 | `G` is the [identity type](foundation-core.identity-types.md) of `BG`.
22 |
23 | ## Definition
24 |
25 | ```agda
26 | module _
27 | {l1 : Level} (G : Concrete-Group l1)
28 | where
29 |
30 | principal-torsor-Concrete-Group :
31 | classifying-type-Concrete-Group G → action-Concrete-Group l1 G
32 | principal-torsor-Concrete-Group = Id-BG-Set G
33 | ```
34 |
--------------------------------------------------------------------------------
/src/group-theory/sheargroups.lagda.md:
--------------------------------------------------------------------------------
1 | # Sheargroups
2 |
3 | ```agda
4 | module group-theory.sheargroups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cartesian-product-types
11 | open import foundation.dependent-pair-types
12 | open import foundation.identity-types
13 | open import foundation.sets
14 | open import foundation.universe-levels
15 | ```
16 |
17 |
18 |
19 | ## Definition
20 |
21 | ```agda
22 | Sheargroup : (l : Level) → UU (lsuc l)
23 | Sheargroup l =
24 | Σ ( Set l)
25 | ( λ X →
26 | Σ ( type-Set X)
27 | ( λ e →
28 | Σ (type-Set X → type-Set X → type-Set X)
29 | ( λ m →
30 | ( (x : type-Set X) → Id (m e x) x) ×
31 | ( ( (x : type-Set X) → Id (m x x) e) ×
32 | ( (x y z : type-Set X) →
33 | Id (m x (m y z)) (m (m (m x (m y e)) e) z))))))
34 | ```
35 |
--------------------------------------------------------------------------------
/src/group-theory/shriek-concrete-group-actions.lagda.md:
--------------------------------------------------------------------------------
1 | # Shriek of concrete group homomorphisms
2 |
3 | ```agda
4 | module group-theory.shriek-concrete-group-actions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cartesian-product-types
11 | open import foundation.dependent-pair-types
12 | open import foundation.identity-types
13 | open import foundation.set-truncations
14 | open import foundation.sets
15 | open import foundation.universe-levels
16 |
17 | open import group-theory.concrete-group-actions
18 | open import group-theory.concrete-groups
19 | open import group-theory.homomorphisms-concrete-groups
20 | ```
21 |
22 |
23 |
24 | ## Definition
25 |
26 | ### Operations on group actions
27 |
28 | ```agda
29 | module _
30 | {l1 l2 : Level} (G : Concrete-Group l1) (H : Concrete-Group l2)
31 | (f : hom-Concrete-Group G H)
32 | where
33 |
34 | left-adjoint-subst-action-Concrete-Group :
35 | {l : Level} → (action-Concrete-Group l G) →
36 | (action-Concrete-Group (l1 ⊔ l2 ⊔ l) H)
37 | left-adjoint-subst-action-Concrete-Group X y =
38 | trunc-Set
39 | ( Σ ( classifying-type-Concrete-Group G)
40 | ( λ x →
41 | type-Set (X x) × Id (classifying-map-hom-Concrete-Group G H f x) y))
42 | ```
43 |
--------------------------------------------------------------------------------
/src/group-theory/substitution-functor-concrete-group-actions.lagda.md:
--------------------------------------------------------------------------------
1 | # The substitution functor of concrete group actions
2 |
3 | ```agda
4 | module group-theory.substitution-functor-concrete-group-actions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import group-theory.concrete-group-actions
13 | open import group-theory.concrete-groups
14 | open import group-theory.homomorphisms-concrete-groups
15 | ```
16 |
17 |
18 |
19 | ## Definition
20 |
21 | ### Substitution of concrete group actions
22 |
23 | ```agda
24 | module _
25 | {l1 l2 : Level} (G : Concrete-Group l1) (H : Concrete-Group l2)
26 | (f : hom-Concrete-Group G H)
27 | where
28 |
29 | subst-action-Concrete-Group :
30 | {l : Level} →
31 | action-Concrete-Group l H → action-Concrete-Group l G
32 | subst-action-Concrete-Group Y x =
33 | Y (classifying-map-hom-Concrete-Group G H f x)
34 | ```
35 |
--------------------------------------------------------------------------------
/src/group-theory/unordered-tuples-in-commutative-monoids.lagda.md:
--------------------------------------------------------------------------------
1 | # Unordered tuples of elements in commutative monoids
2 |
3 | ```agda
4 | module group-theory.unordered-tuples-in-commutative-monoids where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 | open import foundation.unordered-tuples
14 |
15 | open import group-theory.commutative-monoids
16 | ```
17 |
18 |
19 |
20 | ## Definition
21 |
22 | ```agda
23 | unordered-tuple-Commutative-Monoid :
24 | {l : Level} (n : ℕ) (M : Commutative-Monoid l) → UU (lsuc lzero ⊔ l)
25 | unordered-tuple-Commutative-Monoid n M =
26 | unordered-tuple n (type-Commutative-Monoid M)
27 |
28 | module _
29 | {l : Level} {n : ℕ} (M : Commutative-Monoid l)
30 | (x : unordered-tuple-Commutative-Monoid n M)
31 | where
32 |
33 | type-unordered-tuple-Commutative-Monoid : UU lzero
34 | type-unordered-tuple-Commutative-Monoid = type-unordered-tuple n x
35 |
36 | element-unordered-tuple-Commutative-Monoid :
37 | type-unordered-tuple-Commutative-Monoid → type-Commutative-Monoid M
38 | element-unordered-tuple-Commutative-Monoid =
39 | element-unordered-tuple n x
40 | ```
41 |
--------------------------------------------------------------------------------
/src/higher-group-theory/fixed-points-higher-group-actions.lagda.md:
--------------------------------------------------------------------------------
1 | # Fixed points of higher group actions
2 |
3 | ```agda
4 | module higher-group-theory.fixed-points-higher-group-actions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import higher-group-theory.higher-group-actions
13 | open import higher-group-theory.higher-groups
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | The type of fixed points of a higher group action `X : BG → UU` is the type of
21 | sections `(u : BG) → X u`.
22 |
23 | ## Definition
24 |
25 | ```agda
26 | fixed-point-action-∞-Group :
27 | {l1 l2 : Level} (G : ∞-Group l1) (X : action-∞-Group l2 G) → UU (l1 ⊔ l2)
28 | fixed-point-action-∞-Group G X = (u : classifying-type-∞-Group G) → X u
29 | ```
30 |
--------------------------------------------------------------------------------
/src/higher-group-theory/orbits-higher-group-actions.lagda.md:
--------------------------------------------------------------------------------
1 | # Orbits of higher group actions
2 |
3 | ```agda
4 | module higher-group-theory.orbits-higher-group-actions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 |
13 | open import higher-group-theory.higher-group-actions
14 | open import higher-group-theory.higher-groups
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | The type of orbits of a higher group action `X` acted upon by `G` is the total
22 | space of `X`.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | orbit-action-∞-Group :
28 | {l1 l2 : Level} (G : ∞-Group l1) (X : action-∞-Group l2 G) → UU (l1 ⊔ l2)
29 | orbit-action-∞-Group G X = Σ (classifying-type-∞-Group G) X
30 | ```
31 |
--------------------------------------------------------------------------------
/src/linear-algebra/constant-matrices.lagda.md:
--------------------------------------------------------------------------------
1 | # Constant matrices
2 |
3 | ```agda
4 | module linear-algebra.constant-matrices where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import linear-algebra.constant-tuples
15 | open import linear-algebra.matrices
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | Constant matrices are [matrices](linear-algebra.matrices.md) in which all
23 | elements are the same.
24 |
25 | ## Definition
26 |
27 | ```agda
28 | constant-matrix : {l : Level} {A : UU l} {m n : ℕ} → A → matrix A m n
29 | constant-matrix a = constant-tuple (constant-tuple a)
30 | ```
31 |
--------------------------------------------------------------------------------
/src/linear-algebra/constant-tuples.lagda.md:
--------------------------------------------------------------------------------
1 | # Diagonal tuples
2 |
3 | ```agda
4 | module linear-algebra.constant-tuples where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import lists.tuples
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | Diagonal tuples are [tuples](lists.tuples.md) on the diagonal, i.e., they are
22 | tuples of which all coefficients are equal.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | constant-tuple : {l : Level} {A : UU l} {n : ℕ} → A → tuple A n
28 | constant-tuple {n = zero-ℕ} _ = empty-tuple
29 | constant-tuple {n = succ-ℕ n} x = x ∷ (constant-tuple x)
30 | ```
31 |
--------------------------------------------------------------------------------
/src/linear-algebra/functoriality-matrices.lagda.md:
--------------------------------------------------------------------------------
1 | # Functoriality of the type of matrices
2 |
3 | ```agda
4 | module linear-algebra.functoriality-matrices where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import linear-algebra.matrices
15 |
16 | open import lists.functoriality-tuples
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | Any map `f : A → B` induces a map between [matrices](linear-algebra.matrices.md)
24 | `matrix A m n → matrix B m n`.
25 |
26 | ## Definition
27 |
28 | ```agda
29 | module _
30 | {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B)
31 | where
32 |
33 | map-matrix : {m n : ℕ} → matrix A m n → matrix B m n
34 | map-matrix = map-tuple (map-tuple f)
35 | ```
36 |
37 | ### Binary maps
38 |
39 | ```agda
40 | module _
41 | {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : UU l3} (f : A → B → C)
42 | where
43 |
44 | binary-map-matrix :
45 | {m n : ℕ} → matrix A m n → matrix B m n → matrix C m n
46 | binary-map-matrix = binary-map-tuple (binary-map-tuple f)
47 | ```
48 |
--------------------------------------------------------------------------------
/src/linear-algebra/scalar-multiplication-matrices.lagda.md:
--------------------------------------------------------------------------------
1 | # Scalar multiplication on matrices
2 |
3 | ```agda
4 | module linear-algebra.scalar-multiplication-matrices where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import linear-algebra.matrices
15 | open import linear-algebra.scalar-multiplication-tuples
16 | ```
17 |
18 |
19 |
20 | ```agda
21 | scalar-mul-matrix :
22 | {l1 l2 : Level} {B : UU l1} {A : UU l2} {m n : ℕ} →
23 | (B → A → A) → B → matrix A m n → matrix A m n
24 | scalar-mul-matrix μ = scalar-mul-tuple (scalar-mul-tuple μ)
25 | ```
26 |
--------------------------------------------------------------------------------
/src/linear-algebra/scalar-multiplication-tuples.lagda.md:
--------------------------------------------------------------------------------
1 | # Scalar multiplication of tuples
2 |
3 | ```agda
4 | module linear-algebra.scalar-multiplication-tuples where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import lists.functoriality-tuples
15 | open import lists.tuples
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | Any operation `B → A → A` for some type `B` of formal scalars induces an
23 | operation on [tuples](lists.tuples.md) `B → tuple n A → tuple n A`.
24 |
25 | ## Definition
26 |
27 | ```agda
28 | scalar-mul-tuple :
29 | {l1 l2 : Level} {B : UU l1} {A : UU l2} {n : ℕ} →
30 | (B → A → A) → B → tuple A n → tuple A n
31 | scalar-mul-tuple μ x = map-tuple (μ x)
32 | ```
33 |
--------------------------------------------------------------------------------
/src/lists.lagda.md:
--------------------------------------------------------------------------------
1 | # Lists
2 |
3 | ## Modules in the lists namespace
4 |
5 | ```agda
6 | module lists where
7 |
8 | open import lists.arrays public
9 | open import lists.concatenation-lists public
10 | open import lists.equivalence-tuples-finite-sequences public
11 | open import lists.finite-sequences public
12 | open import lists.flattening-lists public
13 | open import lists.functoriality-finite-sequences public
14 | open import lists.functoriality-lists public
15 | open import lists.functoriality-tuples public
16 | open import lists.functoriality-tuples-finite-sequences public
17 | open import lists.lists public
18 | open import lists.lists-discrete-types public
19 | open import lists.permutation-lists public
20 | open import lists.permutation-tuples public
21 | open import lists.predicates-on-lists public
22 | open import lists.quicksort-lists public
23 | open import lists.reversing-lists public
24 | open import lists.sort-by-insertion-lists public
25 | open import lists.sort-by-insertion-tuples public
26 | open import lists.sorted-lists public
27 | open import lists.sorted-tuples public
28 | open import lists.sorting-algorithms-lists public
29 | open import lists.sorting-algorithms-tuples public
30 | open import lists.tuples public
31 | open import lists.universal-property-lists-wild-monoids public
32 | ```
33 |
--------------------------------------------------------------------------------
/src/lists/predicates-on-lists.lagda.md:
--------------------------------------------------------------------------------
1 | # Predicates on lists
2 |
3 | ```agda
4 | module lists.predicates-on-lists where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.propositions
11 | open import foundation.unit-type
12 | open import foundation.universe-levels
13 |
14 | open import lists.lists
15 | ```
16 |
17 |
18 |
19 | ## Definitions
20 |
21 | ### For all
22 |
23 | ```agda
24 | module _
25 | {l1 l2 : Level} (X : UU l1) (P : X → Prop l2)
26 | where
27 |
28 | for-all-list-Prop :
29 | (l : list X) → Prop l2
30 | for-all-list-Prop nil = raise-unit-Prop l2
31 | for-all-list-Prop (cons x l) = product-Prop (P x) (for-all-list-Prop l)
32 |
33 | for-all-list :
34 | (l : list X) → UU l2
35 | for-all-list l = type-Prop (for-all-list-Prop l)
36 |
37 | is-prop-for-all-list :
38 | (l : list X) → is-prop (for-all-list l)
39 | is-prop-for-all-list l = is-prop-type-Prop (for-all-list-Prop l)
40 | ```
41 |
--------------------------------------------------------------------------------
/src/literature.lagda.md:
--------------------------------------------------------------------------------
1 | # Formalization of results from the literature
2 |
3 | > This page is currently under construction. To see what's happening behind the
4 | > scenes, see the associated GitHub issue
5 | > [#1055](https://github.com/UniMath/agda-unimath/issues/1055).
6 |
7 | ## Modules in the literature namespace
8 |
9 | ```agda
10 | module literature where
11 |
12 | open import literature.100-theorems public
13 | open import literature.1000plus-theorems public
14 | open import literature.idempotents-in-intensional-type-theory public
15 | open import literature.introduction-to-homotopy-type-theory public
16 | open import literature.oeis public
17 | open import literature.sequential-colimits-in-homotopy-type-theory public
18 | ```
19 |
20 | ## References
21 |
22 | {{#bibliography}} {{#reference SvDR20}} {{#reference Shu17}}
23 | {{#reference 100theorems}} {{#reference oeis}} {{#reference Rij22}}
24 |
--------------------------------------------------------------------------------
/src/logic.lagda.md:
--------------------------------------------------------------------------------
1 | # Logic
2 |
3 | ## Modules in the logic namespace
4 |
5 | ```agda
6 | module logic where
7 |
8 | open import logic.complements-de-morgan-subtypes public
9 | open import logic.complements-decidable-subtypes public
10 | open import logic.complements-double-negation-stable-subtypes public
11 | open import logic.de-morgan-embeddings public
12 | open import logic.de-morgan-maps public
13 | open import logic.de-morgan-propositions public
14 | open import logic.de-morgan-subtypes public
15 | open import logic.de-morgan-types public
16 | open import logic.de-morgans-law public
17 | open import logic.double-negation-eliminating-maps public
18 | open import logic.double-negation-elimination public
19 | open import logic.double-negation-stable-embeddings public
20 | open import logic.double-negation-stable-subtypes public
21 | open import logic.functoriality-existential-quantification public
22 | open import logic.markovian-types public
23 | open import logic.markovs-principle public
24 | ```
25 |
--------------------------------------------------------------------------------
/src/metric-spaces/sequences-metric-spaces.lagda.md:
--------------------------------------------------------------------------------
1 | # Sequences in metric spaces
2 |
3 | ```agda
4 | module metric-spaces.sequences-metric-spaces where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import metric-spaces.dependent-products-metric-spaces
15 | open import metric-spaces.metric-spaces
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | A
23 | {{#concept "sequence" Disambiguation="in a metric space" Agda=sequence-type-Metric-Space}}
24 | in a [metric space](metric-spaces.metric-spaces.md) is a
25 | [sequence](foundation.sequences.md) in its underlying type.
26 |
27 | ## Definitions
28 |
29 | ### The metric space of sequences in a metric space
30 |
31 | ```agda
32 | module _
33 | {l1 l2 : Level} (M : Metric-Space l1 l2)
34 | where
35 |
36 | sequence-Metric-Space : Metric-Space l1 l2
37 | sequence-Metric-Space = Π-Metric-Space ℕ (λ _ → M)
38 |
39 | sequence-type-Metric-Space : UU l1
40 | sequence-type-Metric-Space =
41 | type-Metric-Space sequence-Metric-Space
42 | ```
43 |
--------------------------------------------------------------------------------
/src/metric-spaces/sequences-premetric-spaces.lagda.md:
--------------------------------------------------------------------------------
1 | # Sequences in premetric spaces
2 |
3 | ```agda
4 | module metric-spaces.sequences-premetric-spaces where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.sequences
11 | open import foundation.universe-levels
12 |
13 | open import metric-spaces.premetric-spaces
14 | ```
15 |
16 |
17 |
18 | ## Ideas
19 |
20 | A
21 | {{#concept "sequence" Disambiguation="in a premetric space" Agda=sequence-type-Premetric-Space}}
22 | in a [premetric space](metric-spaces.premetric-spaces.md) is a
23 | [sequence](foundation.sequences.md) in its underlying type.
24 |
25 | ## Definitions
26 |
27 | ### Sequences in premetric spaces
28 |
29 | ```agda
30 | module _
31 | {l1 l2 : Level} (M : Premetric-Space l1 l2)
32 | where
33 |
34 | sequence-type-Premetric-Space : UU l1
35 | sequence-type-Premetric-Space = sequence (type-Premetric-Space M)
36 | ```
37 |
--------------------------------------------------------------------------------
/src/metric-spaces/sequences-pseudometric-spaces.lagda.md:
--------------------------------------------------------------------------------
1 | # Sequences in pseudometric spaces
2 |
3 | ```agda
4 | module metric-spaces.sequences-pseudometric-spaces where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import metric-spaces.pseudometric-spaces
13 | open import metric-spaces.sequences-premetric-spaces
14 | ```
15 |
16 |
17 |
18 | ## Ideas
19 |
20 | A
21 | {{#concept "sequence" Disambiguation="in a pseudometric space" Agda=sequence-type-Pseudometric-Space}}
22 | in a [pseudometric space](metric-spaces.pseudometric-spaces.md) is a
23 | [sequence](foundation.sequences.md) in its underlying type.
24 |
25 | ## Definition
26 |
27 | ### Sequences in pseudometric spaces
28 |
29 | ```agda
30 | module _
31 | {l1 l2 : Level} (M : Pseudometric-Space l1 l2)
32 | where
33 |
34 | sequence-type-Pseudometric-Space : UU l1
35 | sequence-type-Pseudometric-Space =
36 | sequence-type-Premetric-Space (premetric-Pseudometric-Space M)
37 | ```
38 |
--------------------------------------------------------------------------------
/src/modal-type-theory/sharp-codiscrete-maps.lagda.md:
--------------------------------------------------------------------------------
1 | # Sharp codiscrete maps
2 |
3 | ```agda
4 | {-# OPTIONS --cohesion --flat-split #-}
5 |
6 | module modal-type-theory.sharp-codiscrete-maps where
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 | open import foundation.fibers-of-maps
13 | open import foundation.propositions
14 | open import foundation.universe-levels
15 |
16 | open import modal-type-theory.sharp-codiscrete-types
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | A map is said to be
24 | {{#concept "sharp codiscrete" Disambiguation="map" Agda=is-sharp-codiscrete-map}}
25 | if its [fibers](foundation-core.fibers-of-maps.md) are
26 | [sharp codiscrete](modal-type-theory.sharp-codiscrete-types.md).
27 |
28 | ## Definition
29 |
30 | ```agda
31 | module _
32 | {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B)
33 | where
34 |
35 | is-sharp-codiscrete-map : UU (l1 ⊔ l2)
36 | is-sharp-codiscrete-map = is-sharp-codiscrete-family (fiber f)
37 |
38 | is-sharp-codiscrete-map-Prop : Prop (l1 ⊔ l2)
39 | is-sharp-codiscrete-map-Prop = is-sharp-codiscrete-family-Prop (fiber f)
40 |
41 | is-prop-is-sharp-codiscrete-map : is-prop is-sharp-codiscrete-map
42 | is-prop-is-sharp-codiscrete-map =
43 | is-prop-type-Prop is-sharp-codiscrete-map-Prop
44 | ```
45 |
--------------------------------------------------------------------------------
/src/order-theory/ideals-preorders.lagda.md:
--------------------------------------------------------------------------------
1 | # Ideals in preorders
2 |
3 | ```agda
4 | module order-theory.ideals-preorders where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cartesian-product-types
11 | open import foundation.dependent-pair-types
12 | open import foundation.inhabited-types
13 | open import foundation.universe-levels
14 |
15 | open import order-theory.lower-types-preorders
16 | open import order-theory.preorders
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | **Ideals** in preorders are inhabited lower types `L` that contain an upper
24 | bound for every pair of elements in `L`.
25 |
26 | ## Definition
27 |
28 | ```agda
29 | module _
30 | {l1 l2 : Level} (P : Preorder l1 l2)
31 | where
32 |
33 | is-ideal-lower-type-Preorder :
34 | {l3 : Level} (L : lower-type-Preorder l3 P) → UU (l1 ⊔ l2 ⊔ l3)
35 | is-ideal-lower-type-Preorder L =
36 | ( is-inhabited (type-lower-type-Preorder P L)) ×
37 | ( (x y : type-lower-type-Preorder P L) →
38 | is-inhabited
39 | ( Σ ( type-lower-type-Preorder P L)
40 | ( λ z →
41 | ( leq-lower-type-Preorder P L x z) ×
42 | ( leq-lower-type-Preorder P L y z))))
43 | ```
44 |
--------------------------------------------------------------------------------
/src/order-theory/sequences-strictly-preordered-sets.lagda.md:
--------------------------------------------------------------------------------
1 | # Sequences in strictly preordered sets
2 |
3 | ```agda
4 | module order-theory.sequences-strictly-preordered-sets where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.sequences
11 | open import foundation.universe-levels
12 |
13 | open import order-theory.strictly-preordered-sets
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | A
21 | {{#concept "sequence" Disambiguation="in a strictly preordered set" Agda=type-sequence-Strictly-Preordered-Set}}
22 | in a [strictly preordered set](order-theory.strictly-preordered-sets.md) is a
23 | [sequence](foundation.sequences.md) in its underlying type.
24 |
25 | ## Definition
26 |
27 | ### Sequences in a strictly preordered set
28 |
29 | ```agda
30 | module _
31 | {l1 l2 : Level} (A : Strictly-Preordered-Set l1 l2)
32 | where
33 |
34 | type-sequence-Strictly-Preordered-Set : UU l1
35 | type-sequence-Strictly-Preordered-Set =
36 | sequence (type-Strictly-Preordered-Set A)
37 | ```
38 |
--------------------------------------------------------------------------------
/src/organic-chemistry.lagda.md:
--------------------------------------------------------------------------------
1 | # Organic chemistry
2 |
3 | ## Modules in the organic chemistry namespace
4 |
5 | ```agda
6 | module organic-chemistry where
7 |
8 | open import organic-chemistry.alcohols public
9 | open import organic-chemistry.alkanes public
10 | open import organic-chemistry.alkenes public
11 | open import organic-chemistry.alkynes public
12 | open import organic-chemistry.ethane public
13 | open import organic-chemistry.hydrocarbons public
14 | open import organic-chemistry.methane public
15 | open import organic-chemistry.saturated-carbons public
16 | ```
17 |
--------------------------------------------------------------------------------
/src/organic-chemistry/alkanes.lagda.md:
--------------------------------------------------------------------------------
1 | # Alkanes
2 |
3 | ```agda
4 | module organic-chemistry.alkanes where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import organic-chemistry.hydrocarbons
13 | open import organic-chemistry.saturated-carbons
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | An **alkane** is a hydrocarbon that only has saturated carbons, i.e., it does
21 | not have any double or triple carbon-carbon bonds.
22 |
23 | ## Definition
24 |
25 | ```agda
26 | is-alkane-hydrocarbon : {l1 l2 : Level} → hydrocarbon l1 l2 → UU (l1 ⊔ l2)
27 | is-alkane-hydrocarbon H =
28 | (c : vertex-hydrocarbon H) → is-saturated-carbon-hydrocarbon H c
29 | ```
30 |
--------------------------------------------------------------------------------
/src/organic-chemistry/alkynes.lagda.md:
--------------------------------------------------------------------------------
1 | # Alkynes
2 |
3 | ```agda
4 | module organic-chemistry.alkynes where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.dependent-pair-types
13 | open import foundation.embeddings
14 | open import foundation.universe-levels
15 |
16 | open import organic-chemistry.hydrocarbons
17 | open import organic-chemistry.saturated-carbons
18 |
19 | open import univalent-combinatorics.finite-types
20 | ```
21 |
22 |
23 |
24 | ## Idea
25 |
26 | An **n-alkyne** is a hydrocarbon equipped with a choice of $n$ carbons, each of
27 | which has a triple bond.
28 |
29 | ## Definition
30 |
31 | ```agda
32 | n-alkyne : {l1 l2 : Level} → hydrocarbon l1 l2 → ℕ → UU (lsuc l1 ⊔ l2)
33 | n-alkyne {l1} {l2} H n =
34 | Σ ( Type-With-Cardinality-ℕ l1 n)
35 | ( λ carbons →
36 | Σ ( type-Type-With-Cardinality-ℕ n carbons ↪ vertex-hydrocarbon H)
37 | ( λ embed-carbons →
38 | (c : type-Type-With-Cardinality-ℕ n carbons) →
39 | has-triple-bond-hydrocarbon H (pr1 embed-carbons c)))
40 | ```
41 |
--------------------------------------------------------------------------------
/src/orthogonal-factorization-systems/factorization-operations.lagda.md:
--------------------------------------------------------------------------------
1 | # Factorization operations
2 |
3 | ```agda
4 | module orthogonal-factorization-systems.factorization-operations where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import orthogonal-factorization-systems.factorizations-of-maps
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | A **factorization operation** on a function type `A → B` is a choice of
20 | [factorization](orthogonal-factorization-systems.factorizations-of-maps.md) for
21 | every map `f` in `A → B`.
22 |
23 | ```text
24 | Im f
25 | ∧ \
26 | / \
27 | / ∨
28 | A ------> B
29 | f
30 | ```
31 |
32 | ## Definition
33 |
34 | ### Factorization operations
35 |
36 | ```agda
37 | instance-factorization-operation :
38 | {l1 l2 : Level} (l3 : Level) (A : UU l1) (B : UU l2) → UU (l1 ⊔ l2 ⊔ lsuc l3)
39 | instance-factorization-operation l3 A B = (f : A → B) → factorization l3 f
40 |
41 | factorization-operation : (l1 l2 l3 : Level) → UU (lsuc l1 ⊔ lsuc l2 ⊔ lsuc l3)
42 | factorization-operation l1 l2 l3 =
43 | {A : UU l1} {B : UU l2} → instance-factorization-operation l3 A B
44 | ```
45 |
--------------------------------------------------------------------------------
/src/orthogonal-factorization-systems/regular-cd-structures.lagda.md:
--------------------------------------------------------------------------------
1 | # Regular cd-structures
2 |
3 | ```agda
4 | module orthogonal-factorization-systems.regular-cd-structures where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | A {{#concept "regular cd-structure"}} is a
18 | [cd-structure](orthogonal-factorization-systems.cd-structures.md) which
19 | satisfies the following three axioms:
20 |
21 | 1. Every distinguished square is [cartesian](foundation.pullbacks.md).
22 | 2. The codomain of every distinguished square is an
23 | [embedding](foundation.embeddings.md).
24 | 3. The [diagonal](foundation.diagonals-of-morphisms-arrows.md) of every
25 | distinguished square
26 | ```text
27 | Δ i
28 | A -----> A ×_X A
29 | | |
30 | f | | functoriality Δ g
31 | ∨ ∨
32 | B -----> B ×_Y B.
33 | Δ j
34 | ```
35 | is again a distinguished square.
36 |
--------------------------------------------------------------------------------
/src/orthogonal-factorization-systems/types-separated-at-maps.lagda.md:
--------------------------------------------------------------------------------
1 | # Types separated at maps
2 |
3 | ```agda
4 | module orthogonal-factorization-systems.types-separated-at-maps where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.identity-types
11 | open import foundation.universe-levels
12 |
13 | open import orthogonal-factorization-systems.types-local-at-maps
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | A type `A` is said to be **separated** with respect to a map `f`, or
21 | **`f`-separated**, if its [identity types](foundation-core.identity-types.md)
22 | are [`f`-local](orthogonal-factorization-systems.types-local-at-maps.md).
23 |
24 | ## Definitions
25 |
26 | ```agda
27 | module _
28 | {l1 l2 l3 : Level} {X : UU l1} {Y : UU l2} (f : X → Y)
29 | where
30 |
31 | is-map-separated-family : (X → UU l3) → UU (l1 ⊔ l2 ⊔ l3)
32 | is-map-separated-family A = (x : X) (y z : A x) → is-local f (y = z)
33 |
34 | is-map-separated : UU l3 → UU (l1 ⊔ l2 ⊔ l3)
35 | is-map-separated A = is-map-separated-family (λ _ → A)
36 | ```
37 |
38 | ## References
39 |
40 | {{#bibliography}} {{#reference Rij19}}
41 |
--------------------------------------------------------------------------------
/src/polytopes.lagda.md:
--------------------------------------------------------------------------------
1 | # Polytopes
2 |
3 | ## Modules in the polytopes namespace
4 |
5 | ```agda
6 | module polytopes where
7 |
8 | open import polytopes.abstract-polytopes public
9 | ```
10 |
--------------------------------------------------------------------------------
/src/primitives.lagda.md:
--------------------------------------------------------------------------------
1 | # Primitives
2 |
3 | ## Modules in the primitives namespace
4 |
5 | ```agda
6 | module primitives where
7 |
8 | open import primitives.characters public
9 | open import primitives.floats public
10 | open import primitives.machine-integers public
11 | open import primitives.strings public
12 | ```
13 |
--------------------------------------------------------------------------------
/src/primitives/characters.lagda.md:
--------------------------------------------------------------------------------
1 | # Characters
2 |
3 | ```agda
4 | module primitives.characters where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.booleans
13 | open import foundation.universe-levels
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | The `Char` type represents a character. Agda provides primitive functions to
21 | manipulate them. Characters are written between single quotes, e.g. `'a'`.
22 |
23 | ## Definitions
24 |
25 | ```agda
26 | postulate
27 | Char : UU lzero
28 |
29 | {-# BUILTIN CHAR Char #-}
30 |
31 | primitive
32 | primIsLower primIsDigit primIsAlpha primIsSpace primIsAscii
33 | primIsLatin1 primIsPrint primIsHexDigit : Char → bool
34 | primToUpper primToLower : Char → Char
35 | primCharToNat : Char → ℕ
36 | primNatToChar : ℕ → Char
37 | primCharEquality : Char → Char → bool
38 | ```
39 |
--------------------------------------------------------------------------------
/src/primitives/machine-integers.lagda.md:
--------------------------------------------------------------------------------
1 | # Machine integers
2 |
3 | ```agda
4 | module primitives.machine-integers where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.identity-types
13 | open import foundation.universe-levels
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | The `Word64` type represents 64-bit machine words. Agda provides primitive
21 | functions to manipulate them.
22 |
23 | ## Definitions
24 |
25 | ```agda
26 | postulate
27 | Word64 : UU lzero
28 |
29 | {-# BUILTIN WORD64 Word64 #-}
30 |
31 | primitive
32 | primWord64ToNat : Word64 → ℕ
33 | primWord64FromNat : ℕ → Word64
34 | primWord64ToNatInjective :
35 | (a b : Word64) → primWord64ToNat a = primWord64ToNat b → a = b
36 | ```
37 |
--------------------------------------------------------------------------------
/src/primitives/strings.lagda.md:
--------------------------------------------------------------------------------
1 | # Strings
2 |
3 | ```agda
4 | module primitives.strings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.booleans
13 | open import foundation.dependent-pair-types
14 | open import foundation.maybe
15 | open import foundation.universe-levels
16 |
17 | open import lists.lists
18 |
19 | open import primitives.characters
20 | ```
21 |
22 |
23 |
24 | ## Idea
25 |
26 | The `String` type represents strings. Agda provides primitive functions to
27 | manipulate them. Strings are written between double quotes, e.g.
28 | `"agda-unimath"`.
29 |
30 | ## Definitions
31 |
32 | ```agda
33 | postulate
34 | String : UU lzero
35 |
36 | {-# BUILTIN STRING String #-}
37 |
38 | primitive
39 | primStringUncons : String → Maybe' (Σ Char (λ _ → String))
40 | primStringToList : String → list Char
41 | primStringFromList : list Char → String
42 | primStringAppend : String → String → String
43 | primStringEquality : String → String → bool
44 | primShowChar : Char → String
45 | primShowString : String → String
46 | primShowNat : ℕ → String
47 | ```
48 |
--------------------------------------------------------------------------------
/src/real-numbers/nonnegative-real-numbers.lagda.md:
--------------------------------------------------------------------------------
1 | # Nonnegative real numbers
2 |
3 | ```agda
4 | {-# OPTIONS --lossy-unification #-}
5 |
6 | module real-numbers.nonnegative-real-numbers where
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 | open import foundation.propositions
13 | open import foundation.subtypes
14 | open import foundation.universe-levels
15 |
16 | open import real-numbers.dedekind-real-numbers
17 | open import real-numbers.inequality-real-numbers
18 | open import real-numbers.rational-real-numbers
19 | ```
20 |
21 |
22 |
23 | ## Idea
24 |
25 | A real number `x` is
26 | {{#concept "nonnegative" Disambiguation="real number" Agda=is-nonnegative-ℝ}} if
27 | `0 ≤ x`.
28 |
29 | ## Definitions
30 |
31 | ```agda
32 | is-nonnegative-ℝ : {l : Level} → ℝ l → UU l
33 | is-nonnegative-ℝ = leq-ℝ zero-ℝ
34 |
35 | is-nonnegative-prop-ℝ : {l : Level} → ℝ l → Prop l
36 | is-nonnegative-prop-ℝ = leq-ℝ-Prop zero-ℝ
37 |
38 | nonnegative-ℝ : (l : Level) → UU (lsuc l)
39 | nonnegative-ℝ l = type-subtype (is-nonnegative-prop-ℝ {l})
40 | ```
41 |
--------------------------------------------------------------------------------
/src/reflection.lagda.md:
--------------------------------------------------------------------------------
1 | # Reflection
2 |
3 | ```agda
4 | {-# OPTIONS --rewriting #-}
5 | ```
6 |
7 | ## Modules in the reflection namespace
8 |
9 | ```agda
10 | module reflection where
11 |
12 | open import reflection.abstractions public
13 | open import reflection.arguments public
14 | open import reflection.boolean-reflection public
15 | open import reflection.definitions public
16 | open import reflection.erasing-equality public
17 | open import reflection.fixity public
18 | open import reflection.group-solver public
19 | open import reflection.literals public
20 | open import reflection.metavariables public
21 | open import reflection.names public
22 | open import reflection.precategory-solver public
23 | open import reflection.rewriting public
24 | open import reflection.terms public
25 | open import reflection.type-checking-monad public
26 | ```
27 |
--------------------------------------------------------------------------------
/src/reflection/abstractions.lagda.md:
--------------------------------------------------------------------------------
1 | # Abstractions
2 |
3 | ```agda
4 | module reflection.abstractions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import primitives.strings
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | The `Abstraction-Agda` type represents a lambda abstraction.
20 |
21 | ## Definition
22 |
23 | ```agda
24 | data Abstraction-Agda {l : Level} (A : UU l) : UU l where
25 | cons-Abstraction-Agda : String → A → Abstraction-Agda A
26 |
27 | {-# BUILTIN ABS Abstraction-Agda #-}
28 | {-# BUILTIN ABSABS cons-Abstraction-Agda #-}
29 | ```
30 |
--------------------------------------------------------------------------------
/src/reflection/rewriting.lagda.md:
--------------------------------------------------------------------------------
1 | # Rewriting
2 |
3 | ```agda
4 | {-# OPTIONS --rewriting #-}
5 |
6 | module reflection.rewriting where
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 | open import foundation-core.identity-types
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | Agda's rewriting functionality allows us to add new strict equalities to our
20 | type theory. Given an [identification](foundation-core.identity-types.md)
21 | `β : x = y`, then adding a rewrite rule for `β` with
22 |
23 | ```text
24 | {-# REWRITE β #-}
25 | ```
26 |
27 | will make it so `x` rewrites to `y`, i.e., `x ≐ y`.
28 |
29 | **Warning.** Rewriting is by nature a very unsafe tool so we advice exercising
30 | abundant caution when defining such rules.
31 |
32 | ## Definitions
33 |
34 | We declare to Agda that the
35 | [standard identity relation](foundation.identity-types.md) may be used to define
36 | rewrite rules.
37 |
38 | ```agda
39 | {-# BUILTIN REWRITE _=_ #-}
40 | ```
41 |
42 | ## See also
43 |
44 | - [Erasing equality](reflection.erasing-equality.md)
45 |
46 | ## External links
47 |
48 | - [Rewriting](https://agda.readthedocs.io/en/latest/language/rewriting.html) at
49 | Agda's documentation pages
50 |
--------------------------------------------------------------------------------
/src/ring-theory/characteristics-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # Characteristics of rings
2 |
3 | ```agda
4 | module ring-theory.characteristics-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.ring-of-integers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import ring-theory.ideals-rings
15 | open import ring-theory.kernels-of-ring-homomorphisms
16 | open import ring-theory.rings
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | The **characteristic** of a [ring](ring-theory.rings.md) `R` is defined to be
24 | the kernel of the
25 | [initial ring homomorphism](elementary-number-theory.ring-of-integers.md) from
26 | the [ring `ℤ` of integers](elementary-number-theory.ring-of-integers.md) to `R`.
27 |
28 | ## Definitions
29 |
30 | ### Characteristics of rings
31 |
32 | ```agda
33 | module _
34 | {l : Level} (R : Ring l)
35 | where
36 |
37 | characteristic-Ring : ideal-Ring l ℤ-Ring
38 | characteristic-Ring = kernel-hom-Ring ℤ-Ring R (initial-hom-Ring R)
39 | ```
40 |
--------------------------------------------------------------------------------
/src/ring-theory/division-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # Division rings
2 |
3 | ```agda
4 | module ring-theory.division-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cartesian-product-types
11 | open import foundation.negated-equality
12 | open import foundation.universe-levels
13 |
14 | open import ring-theory.invertible-elements-rings
15 | open import ring-theory.rings
16 | open import ring-theory.trivial-rings
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | Division rings are nontrivial rings in which all nonzero elements are
24 | invertible.
25 |
26 | ## Definition
27 |
28 | ```agda
29 | is-division-Ring :
30 | { l : Level} → Ring l → UU l
31 | is-division-Ring R =
32 | (is-nontrivial-Ring R) ×
33 | ((x : type-Ring R) → zero-Ring R ≠ x → is-invertible-element-Ring R x)
34 | ```
35 |
--------------------------------------------------------------------------------
/src/ring-theory/generating-elements-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # Generating elements of rings
2 |
3 | ```agda
4 | module ring-theory.generating-elements-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.propositions
11 | open import foundation.universe-levels
12 |
13 | open import group-theory.generating-elements-groups
14 |
15 | open import ring-theory.rings
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | A **generating element** of a [ring](ring-theory.rings.md) `R` is an element `g`
23 | which is a [generating element](group-theory.generating-elements-groups.md) of
24 | the underlying additive [group](group-theory.groups.md) of `R`. That is, `g` is
25 | a generating element of a ring `R` if for every element `x : R` there exists an
26 | integer `k` such that `kg = x`.
27 |
28 | ## Definitions
29 |
30 | ### Generating elements of a ring
31 |
32 | ```agda
33 | module _
34 | {l : Level} (R : Ring l) (g : type-Ring R)
35 | where
36 |
37 | is-generating-element-prop-Ring : Prop l
38 | is-generating-element-prop-Ring =
39 | is-generating-element-prop-Group (group-Ring R) g
40 | ```
41 |
--------------------------------------------------------------------------------
/src/ring-theory/initial-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # Initial rings
2 |
3 | ```agda
4 | module ring-theory.initial-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import category-theory.initial-objects-large-categories
11 |
12 | open import foundation.universe-levels
13 |
14 | open import ring-theory.category-of-rings
15 | open import ring-theory.rings
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | The **initial ring** is a [ring](ring-theory.rings.md) `R` that satisfies the
23 | universal property that for any ring `S`, the type
24 |
25 | ```text
26 | hom-Ring R S
27 | ```
28 |
29 | of [ring homomorphisms](ring-theory.homomorphisms-rings.md) from `R` to `S` is
30 | contractible.
31 |
32 | In
33 | [`elementary-number-theory.ring-of-integers`](elementary-number-theory.ring-of-integers.md)
34 | we will show that `ℤ` is the initial ring.
35 |
36 | ## Definitions
37 |
38 | ```agda
39 | module _
40 | {l : Level} (R : Ring l)
41 | where
42 |
43 | is-initial-Ring : UUω
44 | is-initial-Ring = is-initial-obj-Large-Category Ring-Large-Category R
45 | ```
46 |
--------------------------------------------------------------------------------
/src/ring-theory/invariant-basis-property-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # The invariant basis property of rings
2 |
3 | ```agda
4 | module ring-theory.invariant-basis-property-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.identity-types
13 | open import foundation.universe-levels
14 |
15 | open import ring-theory.dependent-products-rings
16 | open import ring-theory.isomorphisms-rings
17 | open import ring-theory.rings
18 |
19 | open import univalent-combinatorics.standard-finite-types
20 | ```
21 |
22 |
23 |
24 | ## Idea
25 |
26 | A ring R is said to satisfy the invariant basis property if `R^m ≅ R^n` implies
27 | `m = n` for any two natural numbers `m` and `n`.
28 |
29 | ## Definition
30 |
31 | ```agda
32 | invariant-basis-property-Ring :
33 | {l1 : Level} → Ring l1 → UU l1
34 | invariant-basis-property-Ring R =
35 | (m n : ℕ) →
36 | iso-Ring (Π-Ring (Fin m) (λ i → R)) (Π-Ring (Fin n) (λ i → R)) →
37 | Id m n
38 | ```
39 |
--------------------------------------------------------------------------------
/src/ring-theory/maximal-ideals-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # Maximal ideals of rings
2 |
3 | ```agda
4 | module ring-theory.maximal-ideals-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | A **maximal ideal** in a [ring](ring-theory.rings.md) `R` is a proper ideal `I`
18 | of `R` such that for any [ideal](ring-theory.ideals-rings.md) `J` containing `I`
19 | is either `I` or the entire ring `R`.
20 |
21 | ## Definition
22 |
23 | This remains to be defined.
24 | [#731](https://github.com/UniMath/agda-unimath/issues/731)
25 |
--------------------------------------------------------------------------------
/src/ring-theory/multiplicative-orders-of-units-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # Multiplicative orders of elements of rings
2 |
3 | ```agda
4 | module ring-theory.multiplicative-orders-of-units-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | The **multiplicative order** of an
18 | [invertible element](ring-theory.invertible-elements-rings.md) `x` of a
19 | [ring](ring-theory.rings.md) `R` is the order of `x` in the
20 | [group of multiplicative units](ring-theory.groups-of-units-rings.md). In other
21 | words, it is the [normal subgroup](group-theory.normal-subgroups.md) of the
22 | [group of integers](elementary-number-theory.group-of-integers.md) consisting of
23 | all [integers](elementary-number-theory.integers.md) `k` such that `xᵏ = 1`.
24 |
--------------------------------------------------------------------------------
/src/ring-theory/opposite-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # Opposite rings
2 |
3 | ```agda
4 | module ring-theory.opposite-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.identity-types
12 | open import foundation.universe-levels
13 |
14 | open import ring-theory.rings
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | The opposite of a ring R is a ring with the same underlying abelian group, but
22 | with multiplication given by `x·y := yx`.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | module _
28 | {l : Level} (R : Ring l)
29 | where
30 |
31 | op-Ring : Ring l
32 | pr1 op-Ring = ab-Ring R
33 | pr1 (pr1 (pr2 op-Ring)) = mul-Ring' R
34 | pr2 (pr1 (pr2 op-Ring)) x y z = inv (associative-mul-Ring R z y x)
35 | pr1 (pr1 (pr2 (pr2 op-Ring))) = one-Ring R
36 | pr1 (pr2 (pr1 (pr2 (pr2 op-Ring)))) = right-unit-law-mul-Ring R
37 | pr2 (pr2 (pr1 (pr2 (pr2 op-Ring)))) = left-unit-law-mul-Ring R
38 | pr1 (pr2 (pr2 (pr2 op-Ring))) x y z = right-distributive-mul-add-Ring R y z x
39 | pr2 (pr2 (pr2 (pr2 op-Ring))) x y z = left-distributive-mul-add-Ring R z x y
40 | ```
41 |
--------------------------------------------------------------------------------
/src/ring-theory/poset-of-cyclic-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # The poset of cyclic rings
2 |
3 | ```agda
4 | module ring-theory.poset-of-cyclic-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import order-theory.large-posets
13 |
14 | open import ring-theory.category-of-cyclic-rings
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | The **large poset** of [cyclic rings](ring-theory.cyclic-rings.md) is just the
22 | [large category of cyclic rings](ring-theory.category-of-cyclic-rings.md), which
23 | happens to be a [large poset](order-theory.large-posets.md).
24 |
25 | The large poset of cyclic rings is dual to the large poset of
26 | [subgroups](group-theory.subgroups.md) of the
27 | [group of integers](elementary-number-theory.group-of-integers.md).
28 |
29 | ## Definition
30 |
31 | ### The large poset of cyclic rings
32 |
33 | ```agda
34 | Cyclic-Ring-Large-Poset : Large-Poset lsuc (_⊔_)
35 | Cyclic-Ring-Large-Poset =
36 | large-poset-Large-Category
37 | ( Cyclic-Ring-Large-Category)
38 | ( is-large-poset-Cyclic-Ring-Large-Category)
39 | ```
40 |
41 | ## See also
42 |
43 | ### Table of files related to cyclic types, groups, and rings
44 |
45 | {{#include tables/cyclic-types.md}}
46 |
--------------------------------------------------------------------------------
/src/ring-theory/radical-ideals-rings.lagda.md:
--------------------------------------------------------------------------------
1 | # Radical ideals of rings
2 |
3 | ```agda
4 | module ring-theory.radical-ideals-rings where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.propositions
11 | open import foundation.universe-levels
12 |
13 | open import ring-theory.ideals-rings
14 | open import ring-theory.invertible-elements-rings
15 | open import ring-theory.rings
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | A radical ideal in a ring R is an ideal I such that `1 + x` is a multiplicative
23 | unit for every `x ∈ I`.
24 |
25 | ## Definition
26 |
27 | ```agda
28 | module _
29 | {l1 l2 : Level} (R : Ring l1) (I : ideal-Ring l2 R)
30 | where
31 |
32 | is-radical-ideal-prop-Ring : Prop (l1 ⊔ l2)
33 | is-radical-ideal-prop-Ring =
34 | Π-Prop
35 | ( type-ideal-Ring R I)
36 | ( λ x →
37 | is-invertible-element-prop-Ring R
38 | ( add-Ring R (one-Ring R) (inclusion-ideal-Ring R I x)))
39 |
40 | is-radical-ideal-Ring : UU (l1 ⊔ l2)
41 | is-radical-ideal-Ring =
42 | type-Prop is-radical-ideal-prop-Ring
43 |
44 | is-prop-is-radical-ideal-Ring :
45 | is-prop is-radical-ideal-Ring
46 | is-prop-is-radical-ideal-Ring =
47 | is-prop-type-Prop is-radical-ideal-prop-Ring
48 | ```
49 |
--------------------------------------------------------------------------------
/src/species/cartesian-exponents-species-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Cartesian exponents of species
2 |
3 | ```agda
4 | module species.cartesian-exponents-species-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import species.species-of-types
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | The **Cartesian exponent** of two species `F` and `G` is the pointwise exponent
20 | of `F` and `G`.
21 |
22 | Note that we call such exponents cartesian to disambiguate from other notions of
23 | exponents, such as
24 | [Cauchy exponentials](species.cauchy-exponentials-species-of-types.md).
25 |
26 | ## Definitions
27 |
28 | ### Cartesian exponents of species of types
29 |
30 | ```agda
31 | function-species-types :
32 | {l1 l2 l3 : Level} →
33 | species-types l1 l2 → species-types l1 l3 → species-types l1 (l2 ⊔ l3)
34 | function-species-types F G X = F X → G X
35 | ```
36 |
--------------------------------------------------------------------------------
/src/species/cauchy-products-species-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Cauchy products of species of types
2 |
3 | ```agda
4 | module species.cauchy-products-species-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cartesian-product-types
11 | open import foundation.coproduct-decompositions
12 | open import foundation.dependent-pair-types
13 | open import foundation.universe-levels
14 |
15 | open import species.species-of-types
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | The Cauchy product of two species of types `S` and `T` on `X` is defined as
23 |
24 | ```text
25 | Σ (k : UU) (Σ (k' : UU) (Σ (e : k + k' ≃ X) S(k) × T(k')))
26 | ```
27 |
28 | ## Definition
29 |
30 | ```agda
31 | module _
32 | {l1 l2 l3 : Level}
33 | (S : species-types l1 l2)
34 | (T : species-types l1 l3)
35 | where
36 |
37 | cauchy-product-species-types : species-types l1 (lsuc l1 ⊔ l2 ⊔ l3)
38 | cauchy-product-species-types X =
39 | Σ ( binary-coproduct-Decomposition l1 l1 X)
40 | ( λ d →
41 | S (left-summand-binary-coproduct-Decomposition d) ×
42 | T (right-summand-binary-coproduct-Decomposition d))
43 | ```
44 |
--------------------------------------------------------------------------------
/src/species/derivatives-species-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Derivatives of species
2 |
3 | ```agda
4 | module species.derivatives-species-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.coproduct-types
11 | open import foundation.unit-type
12 | open import foundation.universe-levels
13 |
14 | open import species.species-of-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | When we think of a species of types as the coefficients of a formal power
22 | series, the derivative of a species of types is the species of types
23 | representing the derivative of that formal power series.
24 |
25 | ## Definition
26 |
27 | ```agda
28 | derivative-species-types :
29 | {l1 l2 : Level} → species-types l1 l2 → species-types l1 l2
30 | derivative-species-types F X = F (X + unit)
31 | ```
32 |
--------------------------------------------------------------------------------
/src/species/dirichlet-products-species-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Dirichlet products of species of types
2 |
3 | ```agda
4 | module species.dirichlet-products-species-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cartesian-product-types
11 | open import foundation.dependent-pair-types
12 | open import foundation.product-decompositions
13 | open import foundation.universe-levels
14 |
15 | open import species.species-of-types
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | The Dirichlet product of two species of types `S` and `T` on `X` is defined as
23 |
24 | ```text
25 | Σ (k : UU) (Σ (k' : UU) (Σ (e : k × k' ≃ X) S(k) × T(k')))
26 | ```
27 |
28 | ## Definition
29 |
30 | ```agda
31 | module _
32 | {l1 l2 l3 : Level}
33 | (S : species-types l1 l2)
34 | (T : species-types l1 l3)
35 | where
36 |
37 | dirichlet-product-species-types : species-types l1 (lsuc l1 ⊔ l2 ⊔ l3)
38 | dirichlet-product-species-types X =
39 | Σ ( binary-product-Decomposition l1 l1 X)
40 | ( λ d →
41 | S (left-summand-binary-product-Decomposition d) ×
42 | T (right-summand-binary-product-Decomposition d))
43 | ```
44 |
--------------------------------------------------------------------------------
/src/species/equivalences-species-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Equivalences of species of types
2 |
3 | ```agda
4 | module species.equivalences-species-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.equivalences
11 | open import foundation.identity-types
12 | open import foundation.univalence
13 | open import foundation.universe-levels
14 |
15 | open import species.species-of-types
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | An equivalence of species of types from `F` to `G` is a pointwise equivalence.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | equiv-species-types :
28 | {l1 l2 l3 : Level} → species-types l1 l2 → species-types l1 l3 →
29 | UU (lsuc l1 ⊔ l2 ⊔ l3)
30 | equiv-species-types {l1} F G = (X : UU l1) → F X ≃ G X
31 | ```
32 |
33 | ## Properties
34 |
35 | ### The identity type of two species of types is equivalent to the type of equivalences between them
36 |
37 | ```agda
38 | extensionality-species-types :
39 | {l1 l2 : Level} (F : species-types l1 l2) (G : species-types l1 l2) →
40 | (Id F G) ≃ (equiv-species-types F G)
41 | extensionality-species-types = extensionality-fam
42 | ```
43 |
--------------------------------------------------------------------------------
/src/species/pointing-species-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Pointing of species of types
2 |
3 | ```agda
4 | module species.pointing-species-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cartesian-product-types
11 | open import foundation.universe-levels
12 |
13 | open import species.species-of-types
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | A pointing of a species of types `F` is the species of types `F*` given by
21 | `F* X := X × (F X)`. In other words, it is the species of pointed `F`-structures
22 |
23 | ## Definition
24 |
25 | ```agda
26 | pointing-species-types :
27 | {l1 l2 : Level} → species-types l1 l2 → species-types l1 (l1 ⊔ l2)
28 | pointing-species-types F X = X × F X
29 | ```
30 |
--------------------------------------------------------------------------------
/src/species/products-dirichlet-series-species-of-finite-inhabited-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Products of Dirichlet series of species of finite inhabited types
2 |
3 | ```agda
4 | module species.products-dirichlet-series-species-of-finite-inhabited-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cartesian-product-types
11 | open import foundation.universe-levels
12 |
13 | open import species.dirichlet-series-species-of-finite-inhabited-types
14 | open import species.species-of-finite-inhabited-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | The product of two Dirichlet series is the pointwise product.
22 |
23 | ## Definition
24 |
25 | ```agda
26 | product-dirichlet-series-species-Inhabited-Finite-Type :
27 | {l1 l2 l3 l4 : Level} → species-Inhabited-Finite-Type l1 l2 →
28 | species-Inhabited-Finite-Type l1 l3 →
29 | UU l4 → UU (lsuc l1 ⊔ l2 ⊔ l3 ⊔ l4)
30 | product-dirichlet-series-species-Inhabited-Finite-Type S T X =
31 | dirichlet-series-species-Inhabited-Finite-Type S X ×
32 | dirichlet-series-species-Inhabited-Finite-Type T X
33 | ```
34 |
--------------------------------------------------------------------------------
/src/species/species-of-finite-inhabited-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Species of finite inhabited types
2 |
3 | ```agda
4 | module species.species-of-finite-inhabited-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import species.species-of-types-in-subuniverses
13 |
14 | open import univalent-combinatorics.finite-types
15 | open import univalent-combinatorics.inhabited-finite-types
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | A **species of finite inhabited types** is a map from the subuniverse of finite
23 | inhabited types to a universe of finite types.
24 |
25 | ## Definition
26 |
27 | ```agda
28 | species-Inhabited-Finite-Type : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2)
29 | species-Inhabited-Finite-Type l1 l2 =
30 | species-subuniverse (is-finite-and-inhabited-Prop {l1}) (is-finite-Prop {l2})
31 | ```
32 |
--------------------------------------------------------------------------------
/src/species/species-of-finite-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Species of finite types
2 |
3 | ```agda
4 | module species.species-of-finite-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import species.species-of-types-in-subuniverses
13 |
14 | open import univalent-combinatorics.finite-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | A **species of finite types** is a map from `Finite-Type` to a `Finite-Type`.
22 |
23 | ## Definition
24 |
25 | ```agda
26 | finite-species : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2)
27 | finite-species l1 l2 =
28 | species-subuniverse (is-finite-Prop {l1}) (is-finite-Prop {l2})
29 | ```
30 |
--------------------------------------------------------------------------------
/src/species/species-of-inhabited-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Species of inhabited types
2 |
3 | ```agda
4 | module species.species-of-inhabited-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.inhabited-types
11 | open import foundation.unit-type
12 | open import foundation.universe-levels
13 |
14 | open import species.species-of-types-in-subuniverses
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | A **species of inhabited types** is a map from the subuniverse of inhabited
22 | types to a universe.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | species-inhabited-types : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2)
28 | species-inhabited-types l1 l2 =
29 | species-subuniverse (is-inhabited-Prop {l1}) λ (X : UU l2) → unit-Prop
30 | ```
31 |
--------------------------------------------------------------------------------
/src/species/species-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Species of types
2 |
3 | ```agda
4 | module species.species-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cartesian-product-types
11 | open import foundation.equivalences
12 | open import foundation.transport-along-identifications
13 | open import foundation.univalence
14 | open import foundation.universe-levels
15 | ```
16 |
17 |
18 |
19 | ### Idea
20 |
21 | A **species of types** is defined to be a map from a universe to a universe.
22 |
23 | ## Definitions
24 |
25 | ### Species of types
26 |
27 | ```agda
28 | species-types : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2)
29 | species-types l1 l2 = UU l1 → UU l2
30 | ```
31 |
32 | ### The predicate that a species preserves cartesian products
33 |
34 | ```agda
35 | preserves-product-species-types :
36 | {l1 l2 : Level}
37 | (S : species-types l1 l2) →
38 | UU (lsuc l1 ⊔ l2)
39 | preserves-product-species-types {l1} S = (X Y : UU l1) → S (X × Y) ≃ (S X × S Y)
40 | ```
41 |
42 | ### Transport in species
43 |
44 | ```agda
45 | tr-species-types :
46 | {l1 l2 : Level} (F : species-types l1 l2) (X Y : UU l1) →
47 | X ≃ Y → F X → F Y
48 | tr-species-types F X Y e = tr F (eq-equiv e)
49 | ```
50 |
--------------------------------------------------------------------------------
/src/species/unit-cauchy-composition-species-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # The unit of Cauchy composition of types
2 |
3 | ```agda
4 | module species.unit-cauchy-composition-species-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.contractible-types
11 | open import foundation.universe-levels
12 |
13 | open import species.species-of-types
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | The **unit** of Cauchy composition of species of types is the species
21 |
22 | ```text
23 | X ↦ is-contr X.
24 | ```
25 |
26 | ## Definition
27 |
28 | ```agda
29 | unit-species-types : {l1 : Level} → species-types l1 l1
30 | unit-species-types = is-contr
31 | ```
32 |
--------------------------------------------------------------------------------
/src/structured-types/contractible-pointed-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Contractible pointed types
2 |
3 | ```agda
4 | module structured-types.contractible-pointed-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.contractible-types
11 | open import foundation.propositions
12 | open import foundation.universe-levels
13 |
14 | open import structured-types.pointed-types
15 | ```
16 |
17 |
18 |
19 | ## Definition
20 |
21 | ```agda
22 | is-contr-pointed-type-Prop : {l : Level} → Pointed-Type l → Prop l
23 | is-contr-pointed-type-Prop A = is-contr-Prop (type-Pointed-Type A)
24 |
25 | is-contr-Pointed-Type : {l : Level} → Pointed-Type l → UU l
26 | is-contr-Pointed-Type A = type-Prop (is-contr-pointed-type-Prop A)
27 |
28 | is-prop-is-contr-Pointed-Type :
29 | {l : Level} (A : Pointed-Type l) → is-prop (is-contr-Pointed-Type A)
30 | is-prop-is-contr-Pointed-Type A =
31 | is-prop-type-Prop (is-contr-pointed-type-Prop A)
32 | ```
33 |
--------------------------------------------------------------------------------
/src/structured-types/dependent-products-pointed-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Dependent products of pointed types
2 |
3 | ```agda
4 | module structured-types.dependent-products-pointed-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 |
13 | open import structured-types.pointed-types
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | Given a family of [pointed types](structured-types.pointed-types.md) `Mᵢ`
21 | indexed by `i : I`, the dependent product `Π(i : I), Mᵢ` is a pointed type
22 | consisting of dependent functions taking `i : I` to an element of the underlying
23 | type of `Mᵢ`. The base point is given pointwise.
24 |
25 | ## Definition
26 |
27 | ```agda
28 | Π-Pointed-Type :
29 | {l1 l2 : Level} (I : UU l1) (P : I → Pointed-Type l2) → Pointed-Type (l1 ⊔ l2)
30 | pr1 (Π-Pointed-Type I P) = (x : I) → type-Pointed-Type (P x)
31 | pr2 (Π-Pointed-Type I P) x = point-Pointed-Type (P x)
32 | ```
33 |
--------------------------------------------------------------------------------
/src/structured-types/fibers-of-pointed-maps.lagda.md:
--------------------------------------------------------------------------------
1 | # Fibers of pointed maps
2 |
3 | ```agda
4 | module structured-types.fibers-of-pointed-maps where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.fibers-of-maps
12 | open import foundation.universe-levels
13 |
14 | open import structured-types.pointed-maps
15 | open import structured-types.pointed-types
16 | ```
17 |
18 |
19 |
20 | ## Definition
21 |
22 | ```agda
23 | fiber-Pointed-Type :
24 | {l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2} →
25 | (A →∗ B) → Pointed-Type (l1 ⊔ l2)
26 | pr1 (fiber-Pointed-Type f) = fiber (map-pointed-map f) (point-Pointed-Type _)
27 | pr1 (pr2 (fiber-Pointed-Type f)) = point-Pointed-Type _
28 | pr2 (pr2 (fiber-Pointed-Type f)) = preserves-point-pointed-map f
29 | ```
30 |
--------------------------------------------------------------------------------
/src/structured-types/function-magmas.lagda.md:
--------------------------------------------------------------------------------
1 | # Function magmas
2 |
3 | ```agda
4 | module structured-types.function-magmas where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 |
13 | open import structured-types.magmas
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | Given a magma `M` and a type `X`, the function magma `M^X` consists of functions
21 | from `X` into the underlying type of `M`. The operation on `M^X` is defined
22 | pointwise.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | module _
28 | {l1 l2 : Level} (M : Magma l1) (X : UU l2)
29 | where
30 |
31 | type-function-Magma : UU (l1 ⊔ l2)
32 | type-function-Magma = X → type-Magma M
33 |
34 | mul-function-Magma :
35 | type-function-Magma → type-function-Magma → type-function-Magma
36 | mul-function-Magma f g x = mul-Magma M (f x) (g x)
37 |
38 | function-Magma : Magma (l1 ⊔ l2)
39 | pr1 function-Magma = type-function-Magma
40 | pr2 function-Magma = mul-function-Magma
41 | ```
42 |
--------------------------------------------------------------------------------
/src/structured-types/iterated-cartesian-products-types-equipped-with-endomorphisms.lagda.md:
--------------------------------------------------------------------------------
1 | # Iterated cartesian products of types equipped with endomorphisms
2 |
3 | ```agda
4 | module
5 | structured-types.iterated-cartesian-products-types-equipped-with-endomorphisms
6 | where
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 | open import foundation.universe-levels
13 |
14 | open import lists.lists
15 |
16 | open import structured-types.cartesian-products-types-equipped-with-endomorphisms
17 | open import structured-types.types-equipped-with-endomorphisms
18 | ```
19 |
20 |
21 |
22 | ## Idea
23 |
24 | From a list of a types equipped with endomorphisms, we define its iterated
25 | cartesian product recursively via the cartesian product of types equipped with
26 | endomorphism.
27 |
28 | ## Definitions
29 |
30 | ```agda
31 | iterated-product-list-Type-With-Endomorphism :
32 | {l : Level} → list (Type-With-Endomorphism l) → Type-With-Endomorphism l
33 | iterated-product-list-Type-With-Endomorphism nil =
34 | trivial-Type-With-Endomorphism
35 | iterated-product-list-Type-With-Endomorphism (cons A L) =
36 | product-Type-With-Endomorphism A
37 | ( iterated-product-list-Type-With-Endomorphism L)
38 | ```
39 |
--------------------------------------------------------------------------------
/src/structured-types/iterated-pointed-cartesian-product-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Iterated cartesian products of pointed types
2 |
3 | ```agda
4 | module structured-types.iterated-pointed-cartesian-product-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.unit-type
12 | open import foundation.universe-levels
13 |
14 | open import lists.lists
15 |
16 | open import structured-types.pointed-cartesian-product-types
17 | open import structured-types.pointed-types
18 | ```
19 |
20 |
21 |
22 | ## Idea
23 |
24 | Given a list of pointed types `l` we define recursively the iterated pointed
25 | cartesian product of `l`.
26 |
27 | ## Definition
28 |
29 | ```agda
30 | iterated-product-Pointed-Type :
31 | {l : Level} → (L : list (Pointed-Type l)) → Pointed-Type l
32 | iterated-product-Pointed-Type nil = raise-unit _ , raise-star
33 | iterated-product-Pointed-Type (cons x L) =
34 | x ×∗ (iterated-product-Pointed-Type L)
35 | ```
36 |
--------------------------------------------------------------------------------
/src/structured-types/morphisms-magmas.lagda.md:
--------------------------------------------------------------------------------
1 | # Morphisms of magmas
2 |
3 | ```agda
4 | module structured-types.morphisms-magmas where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.identity-types
12 | open import foundation.universe-levels
13 |
14 | open import structured-types.magmas
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | A morphism of magmas from `M` to `N` is a map between their underlying type that
22 | preserves the binary operation
23 |
24 | ## Definition
25 |
26 | ```agda
27 | module _
28 | {l1 l2 : Level} (M : Magma l1) (N : Magma l2)
29 | where
30 |
31 | preserves-mul-Magma : (type-Magma M → type-Magma N) → UU (l1 ⊔ l2)
32 | preserves-mul-Magma f =
33 | (x y : type-Magma M) → Id (f (mul-Magma M x y)) (mul-Magma N (f x) (f y))
34 |
35 | hom-Magma : UU (l1 ⊔ l2)
36 | hom-Magma = Σ (type-Magma M → type-Magma N) preserves-mul-Magma
37 |
38 | map-hom-Magma : hom-Magma → type-Magma M → type-Magma N
39 | map-hom-Magma = pr1
40 |
41 | preserves-mul-map-hom-Magma :
42 | (f : hom-Magma) → preserves-mul-Magma (map-hom-Magma f)
43 | preserves-mul-map-hom-Magma = pr2
44 | ```
45 |
--------------------------------------------------------------------------------
/src/structured-types/pointed-dependent-pair-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Pointed dependent pair types
2 |
3 | ```agda
4 | module structured-types.pointed-dependent-pair-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 |
13 | open import structured-types.pointed-families-of-types
14 | open import structured-types.pointed-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | Given a pointed type `(A , a)` and a pointed family over it `(B , b)`, then the
22 | dependent pair type `Σ A B` is again canonically pointed at `(a , b)`.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | module _
28 | {l1 l2 : Level}
29 | where
30 |
31 | Σ-Pointed-Type :
32 | (A : Pointed-Type l1) (B : Pointed-Fam l2 A) → Pointed-Type (l1 ⊔ l2)
33 | pr1 (Σ-Pointed-Type (A , a) (B , b)) = Σ A B
34 | pr2 (Σ-Pointed-Type (A , a) (B , b)) = a , b
35 |
36 | Σ∗ = Σ-Pointed-Type
37 | ```
38 |
39 | **Note**: the subscript asterisk symbol used for the pointed dependent pair type
40 | `Σ∗`, and pointed type constructions in general, is the
41 | [asterisk operator](https://codepoints.net/U+2217) `∗` (agda-input: `\ast`), not
42 | the [asterisk](https://codepoints.net/U+002A) `*`.
43 |
--------------------------------------------------------------------------------
/src/structured-types/pointed-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Pointed types
2 |
3 | ```agda
4 | module structured-types.pointed-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 | ```
13 |
14 |
15 |
16 | ## Idea
17 |
18 | A **pointed type** is a type `A` equipped with an element `a : A`.
19 |
20 | ## Definition
21 |
22 | ### The universe of pointed types
23 |
24 | ```agda
25 | Pointed-Type : (l : Level) → UU (lsuc l)
26 | Pointed-Type l = Σ (UU l) (λ X → X)
27 |
28 | module _
29 | {l : Level} (A : Pointed-Type l)
30 | where
31 |
32 | type-Pointed-Type : UU l
33 | type-Pointed-Type = pr1 A
34 |
35 | point-Pointed-Type : type-Pointed-Type
36 | point-Pointed-Type = pr2 A
37 | ```
38 |
39 | ### Evaluation at the base point
40 |
41 | ```agda
42 | ev-point-Pointed-Type :
43 | {l1 l2 : Level} (A : Pointed-Type l1) {B : UU l2} →
44 | (type-Pointed-Type A → B) → B
45 | ev-point-Pointed-Type A f = f (point-Pointed-Type A)
46 | ```
47 |
48 | ## See also
49 |
50 | - The notion of _nonempty types_ is treated in
51 | [`foundation.empty-types`](foundation.empty-types.md).
52 | - The notion of _inhabited types_ is treated in
53 | [`foundation.inhabited-types`](foundation.inhabited-types.md).
54 |
--------------------------------------------------------------------------------
/src/structured-types/postcomposition-pointed-maps.lagda.md:
--------------------------------------------------------------------------------
1 | # Postcomposition of pointed maps
2 |
3 | ```agda
4 | module structured-types.postcomposition-pointed-maps where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import structured-types.pointed-maps
13 | open import structured-types.pointed-types
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | The
21 | {{#concept "postcomposition operation" Disambiguation="pointed maps" Agda=postcomp-pointed-map}}
22 | on [pointed maps](structured-types.pointed-maps.md) by a pointed map
23 | `f : A →∗ B` is a family of operations
24 |
25 | ```text
26 | f ∘∗ - : (X →∗ A) → (X →∗ B)
27 | ```
28 |
29 | indexed by a [pointed type](structured-types.pointed-types.md) `X`.
30 |
31 | ## Definitions
32 |
33 | ### Postcomposition by pointed maps
34 |
35 | ```agda
36 | postcomp-pointed-map :
37 | {l1 l2 l3 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2} (f : A →∗ B)
38 | (X : Pointed-Type l3) → (X →∗ A) → (X →∗ B)
39 | postcomp-pointed-map f X g = comp-pointed-map f g
40 | ```
41 |
--------------------------------------------------------------------------------
/src/structured-types/precomposition-pointed-maps.lagda.md:
--------------------------------------------------------------------------------
1 | # Precomposition of pointed maps
2 |
3 | ```agda
4 | module structured-types.precomposition-pointed-maps where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import structured-types.pointed-maps
13 | open import structured-types.pointed-types
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | The
21 | {{#concept "precomposition operation" Disambiguation="pointed maps" Agda=precomp-pointed-map}}
22 | on [pointed maps](structured-types.pointed-maps.md) by a pointed map
23 | `f : A →∗ B` is a family of operations
24 |
25 | ```text
26 | - ∘∗ f : (B →∗ C) → (A →∗ C)
27 | ```
28 |
29 | indexed by a [pointed type](structured-types.pointed-types.md) `C`.
30 |
31 | ## Definitions
32 |
33 | ### Precomposition by pointed maps
34 |
35 | ```agda
36 | precomp-pointed-map :
37 | {l1 l2 l3 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2} (f : A →∗ B)
38 | (C : Pointed-Type l3) → (B →∗ C) → (A →∗ C)
39 | precomp-pointed-map f C g = comp-pointed-map g f
40 | ```
41 |
--------------------------------------------------------------------------------
/src/structured-types/symmetric-elements-involutive-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Symmetric elements of involutive types
2 |
3 | ```agda
4 | module structured-types.symmetric-elements-involutive-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import structured-types.involutive-types
13 |
14 | open import univalent-combinatorics.2-element-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | Symmetric elements of involutive types are fixed points of the involution. In
22 | other words, the type of symmetric elements of an involutive type `A` is defined
23 | to be
24 |
25 | ```text
26 | (X : 2-Element-Type lzero) → A X
27 | ```
28 |
29 | ## Definition
30 |
31 | ```agda
32 | symmetric-element-Involutive-Type :
33 | {l : Level} (A : Involutive-Type l) → UU (lsuc lzero ⊔ l)
34 | symmetric-element-Involutive-Type A = (X : 2-Element-Type lzero) → A X
35 | ```
36 |
--------------------------------------------------------------------------------
/src/structured-types/unpointed-maps.lagda.md:
--------------------------------------------------------------------------------
1 | # Unpointed maps between pointed types
2 |
3 | ```agda
4 | module structured-types.unpointed-maps where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 |
13 | open import structured-types.pointed-types
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | The type of unpointed maps between pointed types is a pointed type, pointed at
21 | the constant function.
22 |
23 | ## Definition
24 |
25 | ```agda
26 | unpointed-map-Pointed-Type :
27 | {l1 l2 : Level} → Pointed-Type l1 → Pointed-Type l2 → Pointed-Type (l1 ⊔ l2)
28 | pr1 (unpointed-map-Pointed-Type A B) = type-Pointed-Type A → type-Pointed-Type B
29 | pr2 (unpointed-map-Pointed-Type A B) x = point-Pointed-Type B
30 | ```
31 |
--------------------------------------------------------------------------------
/src/structured-types/wild-groups.lagda.md:
--------------------------------------------------------------------------------
1 | # Wild groups
2 |
3 | ```agda
4 | module structured-types.wild-groups where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.binary-equivalences
11 | open import foundation.dependent-pair-types
12 | open import foundation.universe-levels
13 |
14 | open import structured-types.wild-monoids
15 | ```
16 |
17 |
18 |
19 | ```agda
20 | is-wild-group-Wild-Monoid :
21 | {l : Level} (M : Wild-Monoid l) → UU l
22 | is-wild-group-Wild-Monoid M = is-binary-equiv (mul-Wild-Monoid M)
23 |
24 | Wild-Group : (l : Level) → UU (lsuc l)
25 | Wild-Group l = Σ (Wild-Monoid l) is-wild-group-Wild-Monoid
26 | ```
27 |
--------------------------------------------------------------------------------
/src/synthetic-homotopy-theory/infinite-complex-projective-space.lagda.md:
--------------------------------------------------------------------------------
1 | # The infinite dimensional complex projective space
2 |
3 | ```agda
4 | module synthetic-homotopy-theory.infinite-complex-projective-space where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.equivalences
12 | open import foundation.set-truncations
13 | open import foundation.universe-levels
14 |
15 | open import synthetic-homotopy-theory.circle
16 | ```
17 |
18 |
19 |
20 | ## Definitions
21 |
22 | ### `ℂP∞` as the `1`-connected component of the universe at the circle
23 |
24 | ```agda
25 | ℂP∞ : UU (lsuc lzero)
26 | ℂP∞ = Σ (UU lzero) (λ X → type-trunc-Set (𝕊¹ ≃ X))
27 |
28 | point-ℂP∞ : ℂP∞
29 | pr1 point-ℂP∞ = 𝕊¹
30 | pr2 point-ℂP∞ = unit-trunc-Set id-equiv
31 | ```
32 |
33 | ### `ℂP∞` as the `2`-truncation of the `2`-sphere
34 |
35 | This remains to be defined.
36 | [#742](https://github.com/UniMath/agda-unimath/issues/742)
37 |
38 | ## See also
39 |
40 | - [The infinite dimensional real projective space](synthetic-homotopy-theory.infinite-real-projective-space.md)
41 |
--------------------------------------------------------------------------------
/src/synthetic-homotopy-theory/iterated-suspensions-of-pointed-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Iterated suspensions of pointed types
2 |
3 | ```agda
4 | module synthetic-homotopy-theory.iterated-suspensions-of-pointed-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.iterating-functions
13 | open import foundation.universe-levels
14 |
15 | open import structured-types.pointed-types
16 |
17 | open import synthetic-homotopy-theory.suspensions-of-pointed-types
18 | ```
19 |
20 |
21 |
22 | ## Idea
23 |
24 | Given a [pointed type](structured-types.pointed-types.md) `X` and a
25 | [natural number](elementary-number-theory.natural-numbers.md) `n`, we can form
26 | the **`n`-iterated suspension** of `X`.
27 |
28 | ## Definitions
29 |
30 | ### The iterated suspension of a pointed type
31 |
32 | ```agda
33 | iterated-suspension-Pointed-Type :
34 | {l : Level} (n : ℕ) → Pointed-Type l → Pointed-Type l
35 | iterated-suspension-Pointed-Type n = iterate n suspension-Pointed-Type
36 | ```
37 |
--------------------------------------------------------------------------------
/src/synthetic-homotopy-theory/join-powers-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Join powers of types
2 |
3 | ```agda
4 | module synthetic-homotopy-theory.join-powers-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.empty-types
13 | open import foundation.iterating-functions
14 | open import foundation.universe-levels
15 |
16 | open import synthetic-homotopy-theory.joins-of-types
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | The `n`-th **join power** of a type `A` is defined by taking the
24 | [`n`-fold](foundation.iterating-functions.md)
25 | [join](synthetic-homotopy-theory.joins-of-types.md) of `A` with itself.
26 |
27 | ## Definitions
28 |
29 | ### Join powers of types
30 |
31 | ```agda
32 | join-power : {l1 : Level} → ℕ → UU l1 → UU l1
33 | join-power n A = iterate n (join A) (raise-empty _)
34 | ```
35 |
36 | ### Join powers of type families
37 |
38 | ```agda
39 | join-power-family-of-types :
40 | {l1 l2 : Level} → ℕ → {A : UU l1} → (A → UU l2) → (A → UU l2)
41 | join-power-family-of-types n B a = join-power n (B a)
42 | ```
43 |
--------------------------------------------------------------------------------
/src/synthetic-homotopy-theory/plus-principle.lagda.md:
--------------------------------------------------------------------------------
1 | # The plus-principle
2 |
3 | ```agda
4 | module synthetic-homotopy-theory.plus-principle where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.connected-types
11 | open import foundation.contractible-types
12 | open import foundation.truncation-levels
13 | open import foundation.universe-levels
14 |
15 | open import synthetic-homotopy-theory.acyclic-types
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | The **plus-principle** asserts that any
23 | [acyclic](synthetic-homotopy-theory.acyclic-types.md)
24 | [1-connected type](foundation.connected-types.md) is
25 | [contractible](foundation.contractible-types.md).
26 |
27 | ## Definition
28 |
29 | ```agda
30 | plus-principle : (l : Level) → UU (lsuc l)
31 | plus-principle l =
32 | (A : UU l) → is-acyclic A → is-connected one-𝕋 A → is-contr A
33 | ```
34 |
--------------------------------------------------------------------------------
/src/trees/coalgebra-of-directed-trees.lagda.md:
--------------------------------------------------------------------------------
1 | # The coalgebra of directed trees
2 |
3 | ```agda
4 | module trees.coalgebra-of-directed-trees where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.dependent-pair-types
11 | open import foundation.universe-levels
12 |
13 | open import trees.bases-directed-trees
14 | open import trees.coalgebras-polynomial-endofunctors
15 | open import trees.directed-trees
16 | open import trees.fibers-directed-trees
17 | ```
18 |
19 |
20 |
21 | ## Idea
22 |
23 | Using the fibers of base elements, the type of directed trees, of which the type
24 | of nodes and the types of edges are of the same universe level, has the
25 | structure of a coalgebra for the polynomial endofunctor
26 |
27 | ```text
28 | A ↦ Σ (X : UU), X → A
29 | ```
30 |
31 | ## Definition
32 |
33 | ```agda
34 | coalgebra-Directed-Tree :
35 | (l : Level) → coalgebra-polynomial-endofunctor (lsuc l) (UU l) (λ X → X)
36 | pr1 (coalgebra-Directed-Tree l) = Directed-Tree l l
37 | pr1 (pr2 (coalgebra-Directed-Tree l) T) = base-Directed-Tree T
38 | pr2 (pr2 (coalgebra-Directed-Tree l) T) = fiber-base-Directed-Tree T
39 | ```
40 |
--------------------------------------------------------------------------------
/src/trees/full-binary-trees.lagda.md:
--------------------------------------------------------------------------------
1 | # Full binary trees
2 |
3 | ```agda
4 | module trees.full-binary-trees where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.empty-types
13 | open import foundation.universe-levels
14 |
15 | open import univalent-combinatorics.standard-finite-types
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | A
23 | {{#concept "full binary tree" Agda=full-binary-tree WD="full binary tree" WDID=Q29791667}}
24 | is a finite [directed tree](trees.directed-trees.md) in which every non-leaf
25 | node has a specified left branch and a specified right branch. More precisely, a
26 | full binary tree consists of a root, a left full binary subtree and a right full
27 | binary subtree.
28 |
29 | ## Definitions
30 |
31 | ### Full binary trees
32 |
33 | ```agda
34 | data full-binary-tree : UU lzero where
35 | leaf-full-binary-tree : full-binary-tree
36 | join-full-binary-tree : (s t : full-binary-tree) → full-binary-tree
37 | ```
38 |
--------------------------------------------------------------------------------
/src/trees/multiset-indexed-dependent-products-of-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Multiset-indexed dependent products of types
2 |
3 | ```agda
4 | module trees.multiset-indexed-dependent-products-of-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import trees.multisets
15 | open import trees.w-types
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | Consider a [multiset](trees.multisets.md) `M`. Then `M` can be seen as a tower
23 | of type families, via the inclusion from the type of all multisets, which are
24 | the well-founded trees, into the type of all trees.
25 |
26 | This leads to the idea that we should be able to take the iterated dependent
27 | product of this tower of type families.
28 |
29 | ## Definitions
30 |
31 | ### The iterated dependent product of types indexed by a multiset
32 |
33 | ```agda
34 | iterated-Π-𝕍 : {l : Level} → ℕ → 𝕍 l → UU l
35 | iterated-Π-𝕍 zero-ℕ (tree-𝕎 X Y) = X
36 | iterated-Π-𝕍 (succ-ℕ n) (tree-𝕎 X Y) = (x : X) → iterated-Π-𝕍 n (Y x)
37 | ```
38 |
--------------------------------------------------------------------------------
/src/trees/rooted-quasitrees.lagda.md:
--------------------------------------------------------------------------------
1 | # Rooted quasitrees
2 |
3 | ```agda
4 | module trees.rooted-quasitrees where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.contractible-types
11 | open import foundation.dependent-pair-types
12 | open import foundation.universe-levels
13 |
14 | open import graph-theory.trails-undirected-graphs
15 | open import graph-theory.undirected-graphs
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | A **rooted quasitree** is an undirected graph `G` equipped with a marked
23 | vertex`r`, to be called the root, such that for every vertex `x` there is a
24 | unique trail from `r` to `x`.
25 |
26 | ## Definition
27 |
28 | ```agda
29 | is-rooted-quasitree-Undirected-Graph :
30 | {l1 l2 : Level} (G : Undirected-Graph l1 l2) →
31 | vertex-Undirected-Graph G → UU (lsuc lzero ⊔ l1 ⊔ l2)
32 | is-rooted-quasitree-Undirected-Graph G r =
33 | (x : vertex-Undirected-Graph G) → is-contr (trail-Undirected-Graph G r x)
34 |
35 | Rooted-Quasitree : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2)
36 | Rooted-Quasitree l1 l2 =
37 | Σ ( Undirected-Graph l1 l2)
38 | ( λ G →
39 | Σ ( vertex-Undirected-Graph G)
40 | ( is-rooted-quasitree-Undirected-Graph G))
41 | ```
42 |
--------------------------------------------------------------------------------
/src/trees/submultisets.lagda.md:
--------------------------------------------------------------------------------
1 | # Submultisets
2 |
3 | ```agda
4 | module trees.submultisets where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.embeddings
11 | open import foundation.equivalences
12 | open import foundation.universe-levels
13 |
14 | open import trees.multisets
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | Given two multisets `x` and `y`, we say that `x` is a **submultiset** of `y` if
22 | for every `z ∈-𝕍 x` we have `z ∈-𝕍 x ↪ z ∈-𝕍 y`.
23 |
24 | ## Definition
25 |
26 | ### Submultisets
27 |
28 | ```agda
29 | is-submultiset-𝕍 : {l : Level} → 𝕍 l → 𝕍 l → UU (lsuc l)
30 | is-submultiset-𝕍 {l} y x = (z : 𝕍 l) → z ∈-𝕍 x → (z ∈-𝕍 x) ↪ (z ∈-𝕍 y)
31 |
32 | infix 6 _⊆-𝕍_
33 | _⊆-𝕍_ : {l : Level} → 𝕍 l → 𝕍 l → UU (lsuc l)
34 | x ⊆-𝕍 y = is-submultiset-𝕍 y x
35 | ```
36 |
37 | ### Full submultisets
38 |
39 | ```agda
40 | is-full-submultiset-𝕍 : {l : Level} → 𝕍 l → 𝕍 l → UU (lsuc l)
41 | is-full-submultiset-𝕍 {l} y x = (z : 𝕍 l) → z ∈-𝕍 x → (z ∈-𝕍 x) ≃ (z ∈-𝕍 y)
42 |
43 | _⊑-𝕍_ : {l : Level} → 𝕍 l → 𝕍 l → UU (lsuc l)
44 | x ⊑-𝕍 y = is-full-submultiset-𝕍 y x
45 | ```
46 |
--------------------------------------------------------------------------------
/src/trees/transitive-multisets.lagda.md:
--------------------------------------------------------------------------------
1 | # Transitive multisets
2 |
3 | ```agda
4 | module trees.transitive-multisets where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.universe-levels
11 |
12 | open import trees.multisets
13 | open import trees.submultisets
14 | ```
15 |
16 |
17 |
18 | ## Idea
19 |
20 | A multiset `x` is said to be **transitive** if `y ⊑-𝕍 x` for every `y ∈-𝕍 x`.
21 | That is, `x` is transitive if for every `z ∈-𝕍 y ∈-𝕍 x` we have
22 | `z ∈-𝕍 y ≃ z ∈-𝕍 x`.
23 |
24 | Similarly, we say that `x` is **weakly transitive** if `y ⊆-𝕍 x` for every
25 | `y ∈-𝕍 x`. That is, `x` is weakly transitive if for every `z ∈-𝕍 y ∈-𝕍 x` we
26 | have `z ∈-𝕍 y ↪ z ∈-𝕍 x`.
27 |
28 | ## Definition
29 |
30 | ### Transitive multisets
31 |
32 | ```agda
33 | is-transitive-𝕍 : {l : Level} → 𝕍 l → UU (lsuc l)
34 | is-transitive-𝕍 {l} x = (y : 𝕍 l) → y ∈-𝕍 x → y ⊑-𝕍 x
35 | ```
36 |
37 | ### Wealky transitive multisets
38 |
39 | ```agda
40 | is-weakly-transitive-𝕍 : {l : Level} → 𝕍 l → UU (lsuc l)
41 | is-weakly-transitive-𝕍 {l} x = (y : 𝕍 l) → y ∈-𝕍 x → y ⊆-𝕍 x
42 | ```
43 |
--------------------------------------------------------------------------------
/src/trees/universal-tree.lagda.md:
--------------------------------------------------------------------------------
1 | # The universal tree
2 |
3 | ```agda
4 | {-# OPTIONS --guardedness #-}
5 |
6 | module trees.universal-tree where
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 | open import foundation.universe-levels
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | The universal tree is the coinductive type associated to the
20 | [polynomial endofunctor](trees.polynomial-endofunctors.md)
21 |
22 | ```text
23 | X ↦ Σ 𝒰 (λ T → Xᵀ).
24 | ```
25 |
26 | Note that this is the same polynomial endofunctor that we used to define the
27 | type of [multisets](trees.multisets.md), which is the universal _well-founded_
28 | tree.
29 |
30 | ## Definitions
31 |
32 | ### The universal tree of small trees
33 |
34 | ```agda
35 | module _
36 | (l : Level)
37 | where
38 |
39 | record Universal-Tree : UU (lsuc l)
40 | where
41 | coinductive
42 | field
43 | type-Universal-Tree :
44 | UU l
45 | branch-Universal-Tree :
46 | (x : type-Universal-Tree) → Universal-Tree
47 |
48 | open Universal-Tree public
49 | ```
50 |
--------------------------------------------------------------------------------
/src/type-theories.lagda.md:
--------------------------------------------------------------------------------
1 | # Type theories
2 |
3 | ```agda
4 | {-# OPTIONS --guardedness #-}
5 | ```
6 |
7 | ## Modules in the type theories namespace
8 |
9 | ```agda
10 | module type-theories where
11 |
12 | open import type-theories.comprehension-type-theories public
13 | open import type-theories.dependent-type-theories public
14 | open import type-theories.fibered-dependent-type-theories public
15 | open import type-theories.pi-types-precategories-with-attributes public
16 | open import type-theories.pi-types-precategories-with-families public
17 | open import type-theories.precategories-with-attributes public
18 | open import type-theories.precategories-with-families public
19 | open import type-theories.sections-dependent-type-theories public
20 | open import type-theories.simple-type-theories public
21 | open import type-theories.unityped-type-theories public
22 | ```
23 |
--------------------------------------------------------------------------------
/src/type-theories/comprehension-type-theories.lagda.md:
--------------------------------------------------------------------------------
1 | # Comprehension of fibered type theories
2 |
3 | ```agda
4 | {-# OPTIONS --guardedness #-}
5 |
6 | module type-theories.comprehension-type-theories where
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 |
13 | ```
14 |
15 |
16 |
17 | ## Idea
18 |
19 | Given a fibered type theory `S` over `T`, we can form the comprehension type
20 | theory `∫ST` analogous to the Grothendieck construction.
21 |
22 | ## Definition
23 |
24 | ```agda
25 | {-
26 | record comprehension
27 | {l1 l2 l3 l4 : Level} {A : type-theory l1 l2}
28 | {B : fibered.fibered-type-theory l3 l4 A} : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4)
29 | where
30 | coinductive
31 | field
32 | type : {!!}
33 | element : {!!}
34 | slice : {!!}
35 | -}
36 | ```
37 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/bracelets.lagda.md:
--------------------------------------------------------------------------------
1 | # Bracelets
2 |
3 | ```agda
4 | module univalent-combinatorics.bracelets where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.dependent-pair-types
13 | open import foundation.universe-levels
14 |
15 | open import graph-theory.polygons
16 |
17 | open import univalent-combinatorics.standard-finite-types
18 | ```
19 |
20 |
21 |
22 | ## Definition
23 |
24 | ### Bracelets
25 |
26 | ```agda
27 | bracelet : ℕ → ℕ → UU (lsuc lzero)
28 | bracelet m n = Σ (Polygon m) (λ X → vertex-Polygon m X → Fin n)
29 | ```
30 |
31 | ## See also
32 |
33 | ### Table of files related to cyclic types, groups, and rings
34 |
35 | {{#include tables/cyclic-types.md}}
36 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/counting-fibers-of-maps.lagda.md:
--------------------------------------------------------------------------------
1 | # Counting the elements of the fiber of a map
2 |
3 | ```agda
4 | module univalent-combinatorics.counting-fibers-of-maps where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/equivalences.lagda.md:
--------------------------------------------------------------------------------
1 | # Equivalences between finite types
2 |
3 | ```agda
4 | module univalent-combinatorics.equivalences where
5 |
6 | open import foundation.equivalences public
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 | open import foundation.decidable-types
13 | open import foundation.dependent-pair-types
14 | open import foundation.universe-levels
15 |
16 | open import univalent-combinatorics.embeddings
17 | open import univalent-combinatorics.finite-types
18 | open import univalent-combinatorics.surjective-maps
19 | ```
20 |
21 |
22 |
23 | ## Properties
24 |
25 | ### For a map between finite types, being an equivalence is decidable
26 |
27 | ```agda
28 | is-decidable-is-equiv-is-finite :
29 | {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B) →
30 | is-finite A → is-finite B → is-decidable (is-equiv f)
31 | is-decidable-is-equiv-is-finite f HA HB =
32 | is-decidable-iff
33 | ( λ p → is-equiv-is-emb-is-surjective (pr1 p) (pr2 p))
34 | ( λ K → pair (is-surjective-is-equiv K) (is-emb-is-equiv K))
35 | ( is-decidable-product
36 | ( is-decidable-is-surjective-is-finite f HA HB)
37 | ( is-decidable-is-emb-is-finite f HA HB))
38 | ```
39 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/finite-presentations.lagda.md:
--------------------------------------------------------------------------------
1 | # Finite presentations of types
2 |
3 | ```agda
4 | module univalent-combinatorics.finite-presentations where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | Finitely presented types are types A equipped with a map f : Fin k → A such that
18 | the composite
19 |
20 | ```text
21 | Fin k → A → type-trunc-Set A
22 | ```
23 |
24 | is an equivalence.
25 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/involution-standard-finite-types.lagda.md:
--------------------------------------------------------------------------------
1 | # An involution on the standard finite types
2 |
3 | ```agda
4 | module univalent-combinatorics.involution-standard-finite-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.modular-arithmetic-standard-finite-types
11 | open import elementary-number-theory.natural-numbers
12 |
13 | open import foundation.action-on-identifications-functions
14 | open import foundation.identity-types
15 | open import foundation.involutions
16 |
17 | open import univalent-combinatorics.standard-finite-types
18 | ```
19 |
20 |
21 |
22 | ## Idea
23 |
24 | Every standard finite type `Fin k` has an involution operation given by
25 | `x ↦ -x - 1`, using the group operations on `Fin k`.
26 |
27 | ## Definition
28 |
29 | ```agda
30 | opposite-Fin : (k : ℕ) → Fin k → Fin k
31 | opposite-Fin k x = pred-Fin k (neg-Fin k x)
32 | ```
33 |
34 | ## Properties
35 |
36 | ### The opposite function on `Fin k` is an involution
37 |
38 | ```agda
39 | is-involution-opposite-Fin : (k : ℕ) → is-involution (opposite-Fin k)
40 | is-involution-opposite-Fin k x =
41 | ( ap (pred-Fin k) (neg-pred-Fin k (neg-Fin k x))) ∙
42 | ( ( is-retraction-pred-Fin k (neg-Fin k (neg-Fin k x))) ∙
43 | ( neg-neg-Fin k x))
44 | ```
45 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/maybe.lagda.md:
--------------------------------------------------------------------------------
1 | # The maybe monad on finite types
2 |
3 | ```agda
4 | module univalent-combinatorics.maybe where
5 |
6 | open import foundation.maybe public
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 | open import elementary-number-theory.natural-numbers
13 |
14 | open import foundation.universe-levels
15 |
16 | open import univalent-combinatorics.coproduct-types
17 | open import univalent-combinatorics.finite-types
18 | ```
19 |
20 |
21 |
22 | ```agda
23 | add-free-point-Type-With-Cardinality-ℕ :
24 | {l1 : Level} (k : ℕ) →
25 | Type-With-Cardinality-ℕ l1 k →
26 | Type-With-Cardinality-ℕ l1 (succ-ℕ k)
27 | add-free-point-Type-With-Cardinality-ℕ k X =
28 | coproduct-Type-With-Cardinality-ℕ k 1 X unit-Type-With-Cardinality-ℕ
29 | ```
30 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/presented-pi-finite-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Finitely π-presented types
2 |
3 | ```agda
4 | module univalent-combinatorics.presented-pi-finite-types where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | A type `A` is said to be finitely `π₀`-presented if there is a standard pruned
18 | tree `T` of height 1 so that `A` has a presentation of cardinality `width T`,
19 | and `A` is said to be finitely `πₙ₊₁`-presented if there is a standard pruned
20 | tree `T` of height `n+2` and a map `f : Fin (width T) → A` so that
21 | `η ∘ f : Fin (width T) → ║A║₀` is an equivalence, and for each
22 | `x : Fin (width T)` the type `Ω (A, f x)` is
23 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/repetitions-of-values-sequences.lagda.md:
--------------------------------------------------------------------------------
1 | # Repetitions of values in sequences
2 |
3 | ```agda
4 | module univalent-combinatorics.repetitions-of-values-sequences where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Properties
16 |
17 | ```text
18 | is-decidable-is-ordered-repetition-of-values-ℕ-Fin :
19 | (k : ℕ) (f : ℕ → Fin k) (x : ℕ) →
20 | is-decidable (is-ordered-repetition-of-values-ℕ f x)
21 | is-decidable-is-ordered-repetition-of-values-ℕ-Fin k f x = {!!}
22 |
23 | {-
24 | is-decidable-strictly-bounded-Σ-ℕ' x
25 | ( λ y → Id (f y) (f x))
26 | ( λ y → has-decidable-equality-Fin k (f y) (f x))
27 | -}
28 |
29 | is-decidable-is-ordered-repetition-of-values-ℕ-count :
30 | {l : Level} {A : UU l} (e : count A) (f : ℕ → A) (x : ℕ) →
31 | is-decidable (is-ordered-repetition-of-values-ℕ f x)
32 | is-decidable-is-ordered-repetition-of-values-ℕ-count e f x = {!!}
33 |
34 | {-
35 | is-decidable-strictly-bounded-Σ-ℕ' x
36 | ( λ y → Id (f y) (f x))
37 | ( λ y → has-decidable-equality-count e (f y) (f x))
38 | -}
39 | ```
40 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/small-types.lagda.md:
--------------------------------------------------------------------------------
1 | # Small types
2 |
3 | ```agda
4 | module univalent-combinatorics.small-types where
5 |
6 | open import foundation.small-types public
7 | ```
8 |
9 | Imports
10 |
11 | ```agda
12 | open import elementary-number-theory.natural-numbers
13 |
14 | open import foundation.dependent-pair-types
15 | open import foundation.propositional-truncations
16 | open import foundation.universe-levels
17 |
18 | open import univalent-combinatorics.finite-types
19 | open import univalent-combinatorics.standard-finite-types
20 | ```
21 |
22 |
23 |
24 | ## Propositions
25 |
26 | Every finite type is small.
27 |
28 | ```agda
29 | is-small-Fin :
30 | (l : Level) → (k : ℕ) → is-small l (Fin k)
31 | pr1 (is-small-Fin l k) = raise-Fin l k
32 | pr2 (is-small-Fin l k) = compute-raise-Fin l k
33 |
34 | is-small-is-finite :
35 | {l1 : Level} (l2 : Level) (A : Finite-Type l1) →
36 | is-small l2 (type-Finite-Type A)
37 | is-small-is-finite l2 A =
38 | apply-universal-property-trunc-Prop
39 | ( is-finite-type-Finite-Type A)
40 | ( is-small l2 (type-Finite-Type A) ,
41 | is-prop-is-small l2 (type-Finite-Type A))
42 | ( λ p → is-small-equiv' (Fin (pr1 p)) (pr2 p) (is-small-Fin l2 (pr1 p)))
43 | ```
44 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/standard-finite-pruned-trees.lagda.md:
--------------------------------------------------------------------------------
1 | # Standard finite pruned trees
2 |
3 | ```agda
4 | module univalent-combinatorics.standard-finite-pruned-trees where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import univalent-combinatorics.standard-finite-types
15 | ```
16 |
17 |
18 |
19 | ## Idea
20 |
21 | A standard finite pruned tree of height `n` can be thought of as a standard
22 | finite tree in which each path from the root to a leaf has length `n + 1`.
23 |
24 | ## Definition
25 |
26 | ```agda
27 | data Pruned-Tree-Fin : ℕ → UU lzero where
28 | root-Pruned-Tree-Fin : Pruned-Tree-Fin zero-ℕ
29 | tree-Pruned-Tree-Fin :
30 | (n k : ℕ) → (Fin k → Pruned-Tree-Fin n) → Pruned-Tree-Fin (succ-ℕ n)
31 |
32 | width-Pruned-Tree-Fin : (n : ℕ) → Pruned-Tree-Fin (succ-ℕ n) → ℕ
33 | width-Pruned-Tree-Fin n (tree-Pruned-Tree-Fin .n k x) = k
34 | ```
35 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/steiner-triple-systems.lagda.md:
--------------------------------------------------------------------------------
1 | # Steiner triple systems
2 |
3 | ```agda
4 | module univalent-combinatorics.steiner-triple-systems where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import elementary-number-theory.natural-numbers
11 |
12 | open import foundation.universe-levels
13 |
14 | open import univalent-combinatorics.steiner-systems
15 | ```
16 |
17 |
18 |
19 | ## Definition
20 |
21 | ```agda
22 | Steiner-Triple-System : ℕ → UU (lsuc lzero)
23 | Steiner-Triple-System n = Steiner-System 2 3 n
24 | ```
25 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/unlabeled-partitions.lagda.md:
--------------------------------------------------------------------------------
1 | # Unlabeled partitions
2 |
3 | ```agda
4 | module univalent-combinatorics.unlabeled-partitions where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | Unlabeled partitions are
18 | [Ferrers diagrams](univalent-combinatorics.ferrers-diagrams.md).
19 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/unlabeled-rooted-trees.lagda.md:
--------------------------------------------------------------------------------
1 | # Unlabeled rooted trees
2 |
3 | ```agda
4 | module univalent-combinatorics.unlabeled-rooted-trees where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | An **unlabeled rooted tree** is an
18 | [unlabeled tree](univalent-combinatorics.unlabeled-trees.md) equipped with a
19 | vertex.
20 |
21 | ## Definition
22 |
23 | This remains to be defined.
24 | [#749](https://github.com/UniMath/agda-unimath/issues/749)
25 |
--------------------------------------------------------------------------------
/src/univalent-combinatorics/unlabeled-trees.lagda.md:
--------------------------------------------------------------------------------
1 | # Unlabeled trees
2 |
3 | ```agda
4 | module univalent-combinatorics.unlabeled-trees where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 |
11 | ```
12 |
13 |
14 |
15 | ## Idea
16 |
17 | An unlabeled tree is an undirected graph `G` such that any cycle in `G` must
18 | have length 1.
19 |
--------------------------------------------------------------------------------
/src/universal-algebra.lagda.md:
--------------------------------------------------------------------------------
1 | # Universal algebra
2 |
3 | ## Modules in the universal algebra namespace
4 |
5 | ```agda
6 | module universal-algebra where
7 |
8 | open import universal-algebra.abstract-equations-over-signatures public
9 | open import universal-algebra.algebraic-theories public
10 | open import universal-algebra.algebraic-theory-of-groups public
11 | open import universal-algebra.algebras-of-theories public
12 | open import universal-algebra.congruences public
13 | open import universal-algebra.homomorphisms-of-algebras public
14 | open import universal-algebra.kernels public
15 | open import universal-algebra.models-of-signatures public
16 | open import universal-algebra.quotient-algebras public
17 | open import universal-algebra.signatures public
18 | open import universal-algebra.terms-over-signatures public
19 | ```
20 |
--------------------------------------------------------------------------------
/src/universal-algebra/abstract-equations-over-signatures.lagda.md:
--------------------------------------------------------------------------------
1 | # Abstract equations over signatures
2 |
3 | ```agda
4 | module universal-algebra.abstract-equations-over-signatures where
5 | ```
6 |
7 | Imports
8 |
9 | ```agda
10 | open import foundation.cartesian-product-types
11 | open import foundation.dependent-pair-types
12 | open import foundation.universe-levels
13 |
14 | open import universal-algebra.signatures
15 | open import universal-algebra.terms-over-signatures
16 | ```
17 |
18 |
19 |
20 | ## Idea
21 |
22 | An **abstract equation** over a signature `Sg` is a statement of a form "`x`
23 | equals `y`", where `x` and `y` are terms over `Sg`. Thus, the data of an
24 | abstract equation is simply two terms over a common signature.
25 |
26 | ## Definitions
27 |
28 | ### Abstract equations
29 |
30 | ```agda
31 | module _
32 | {l1 : Level} (Sg : signature l1)
33 | where
34 |
35 | Abstract-Equation : UU l1
36 | Abstract-Equation = Term Sg × Term Sg
37 |
38 | lhs-Abstract-Equation : Abstract-Equation → Term Sg
39 | lhs-Abstract-Equation = pr1
40 |
41 | rhs-Abstract-Equation : Abstract-Equation → Term Sg
42 | rhs-Abstract-Equation = pr2
43 | ```
44 |
--------------------------------------------------------------------------------
/src/wild-category-theory.lagda.md:
--------------------------------------------------------------------------------
1 | # Wild category theory
2 |
3 | ```agda
4 | {-# OPTIONS --guardedness #-}
5 | ```
6 |
7 | ## Instances of wild categories
8 |
9 | {{#include tables/wild-categories.md}}
10 |
11 | ## Modules in the wild category theory namespace
12 |
13 | ```agda
14 | module wild-category-theory where
15 |
16 | open import wild-category-theory.coinductive-isomorphisms-in-noncoherent-large-omega-precategories public
17 | open import wild-category-theory.coinductive-isomorphisms-in-noncoherent-omega-precategories public
18 | open import wild-category-theory.colax-functors-noncoherent-large-omega-precategories public
19 | open import wild-category-theory.colax-functors-noncoherent-omega-precategories public
20 | open import wild-category-theory.maps-noncoherent-large-omega-precategories public
21 | open import wild-category-theory.maps-noncoherent-omega-precategories public
22 | open import wild-category-theory.noncoherent-large-omega-precategories public
23 | open import wild-category-theory.noncoherent-omega-precategories public
24 | ```
25 |
--------------------------------------------------------------------------------
/tables/wild-categories.md:
--------------------------------------------------------------------------------
1 | | Wild category | File |
2 | | ------------- | ------------------------------------------------------------------------------------------------------- |
3 | | Types | [`foundation.wild-category-of-types`](foundation.wild-category-of-types.md) |
4 | | Pointed types | [`structured-types.wild-category-of-pointed-types`](structured-types.wild-category-of-pointed-types.md) |
5 |
--------------------------------------------------------------------------------
/theme/README.md:
--------------------------------------------------------------------------------
1 | This directory serves as a source of overrides for mdbook's theme. Only the
2 | files which override mdbook's default theme should go here; if you want to add
3 | new support files, put them in the `website` directory in the repo root, and
4 | update `additional-css` and `additional-js` accordingly.
5 |
6 | - `index.hbs`
7 | - `head.hbs`
8 | - `header.hbs`
9 | - `css/`
10 | - `chrome.css`
11 | - `general.css`
12 | - `print.css` <- note that we're disabling the `output.html.print` option, so
13 | a modified version of this file is instead maintained in `website/css`
14 | - `variables.css`
15 | - `book.js`
16 | - `highlight.js`
17 | - `highlight.css`
18 | - `pagetoc.js`
19 | - `pagetoc.css`
20 | - `catppuccin.css`
21 | - `catppuccin-highlight.css`
22 | - `favicon.svg`
23 | - `favicons.png`
24 | - `fonts/fonts.css`
25 |
--------------------------------------------------------------------------------
/theme/head.hbs:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/website/css/agda-logo.css:
--------------------------------------------------------------------------------
1 | .fg {
2 | stroke: var(--fg);
3 | }
4 |
--------------------------------------------------------------------------------
/website/css/bibliography.css:
--------------------------------------------------------------------------------
1 | /* Reset for any previous styles to ensure consistent starting point */
2 | .bibliography * {
3 | box-sizing: border-box;
4 | }
5 |
6 | /* Container style to handle bibliography entries */
7 | .bibliography dl {
8 | width: 100%;
9 | }
10 |
11 | /* Style for the label (dt) */
12 | .bibliography dt {
13 | float: left; /* Float label to the left */
14 | font-weight: bold; /* Make label bold */
15 | width: 9ch; /* Set fixed width for label */
16 | clear: both; /* Ensure label is on its own line and not affected by previous floats */
17 | text-align: right;
18 | padding-right: 0.5ch;
19 | }
20 |
21 | /* Style for the content (dd) */
22 | .bibliography dd {
23 | margin-left: 9.5ch; /* Offset content to the right of the label */
24 | padding-right: 1em; /* Provide some padding for legibility */
25 | }
26 |
27 | /* Specifically targets elements with the .citation-link class to style links */
28 | .citation-link {
29 | text-decoration: none; /* Removes the underline from links */
30 | }
31 |
--------------------------------------------------------------------------------
/website/css/print.css:
--------------------------------------------------------------------------------
1 | /* Based on https://github.com/rust-lang/mdBook/blob/master/src/theme/css/print.css */
2 |
3 | /* Our additions */
4 |
5 | div.sidetoc {
6 | display: none;
7 | }
8 |
9 | /* Original contents */
10 |
11 | #sidebar,
12 | #menu-bar,
13 | .nav-chapters,
14 | .mobile-nav-chapters {
15 | display: none;
16 | }
17 |
18 | #page-wrapper.page-wrapper {
19 | transform: none;
20 | margin-inline-start: 0px;
21 | overflow-y: initial;
22 | }
23 |
24 | #content {
25 | max-width: none;
26 | margin: 0;
27 | padding: 0;
28 | }
29 |
30 | .page {
31 | overflow-y: initial;
32 | }
33 |
34 | code {
35 | direction: ltr !important;
36 | }
37 |
38 | pre > .buttons {
39 | z-index: 2;
40 | }
41 |
42 | a,
43 | a:visited,
44 | a:active,
45 | a:hover {
46 | color: #4183c4;
47 | text-decoration: none;
48 | }
49 |
50 | h1,
51 | h2,
52 | h3,
53 | h4,
54 | h5,
55 | h6 {
56 | page-break-inside: avoid;
57 | page-break-after: avoid;
58 | }
59 |
60 | pre,
61 | code {
62 | page-break-inside: avoid;
63 | white-space: pre-wrap;
64 | }
65 |
66 | .fa {
67 | display: none !important;
68 | }
69 |
--------------------------------------------------------------------------------
/website/images/README.md:
--------------------------------------------------------------------------------
1 | The agda-unimath logo is a modified version of the Official Agda logo, licensed
2 | under the terms stipulated at
3 | https://commons.wikimedia.org/wiki/File:Agda%27s_official_logo.svg.
4 |
--------------------------------------------------------------------------------
/website/images/agda-unimath-black-and-gold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UniMath/agda-unimath/eb1651e721527278a926d6957340476f99a8eb67/website/images/agda-unimath-black-and-gold.png
--------------------------------------------------------------------------------
/website/images/favicon-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UniMath/agda-unimath/eb1651e721527278a926d6957340476f99a8eb67/website/images/favicon-dark.png
--------------------------------------------------------------------------------
/website/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UniMath/agda-unimath/eb1651e721527278a926d6957340476f99a8eb67/website/images/favicon.png
--------------------------------------------------------------------------------
/website/images/favicon.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/website/latex-macros.txt:
--------------------------------------------------------------------------------
1 | \grad:{\nabla}
2 | \R:{\mathbb{R}^{#1 \times #2}}
3 |
--------------------------------------------------------------------------------