├── .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 | A dependency graph of the library, color coded by namespace. Fredrik Bakke. 2025 — perpetuity 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 | The graph of mathematical concepts. Andrej Bauer and Matej Petković. 2023 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 | # ![The agda-unimath library](https://github.com/UniMath/agda-unimath/assets/1252282/cbd9b67e-581c-41c7-bc1e-34862127bad2) 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 | 2 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /website/latex-macros.txt: -------------------------------------------------------------------------------- 1 | \grad:{\nabla} 2 | \R:{\mathbb{R}^{#1 \times #2}} 3 | --------------------------------------------------------------------------------