Skip to content

Commit

Permalink
footnotes
Browse files Browse the repository at this point in the history
  • Loading branch information
YaelDillies committed Jul 25, 2024
1 parent 1088859 commit 9da3983
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions posts/tradeoff-of-defining-types-as-subobjects.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ title: Tradeoffs of defining types as subobjects
type: text
---

It often happens in formalisation that a type of interest is a subobject of another type of interest. For example, the unit circle in the complex plane is naturally a submonoid (nevermind that it is actually a subgroup, we currently can't talk about subgroups of fields).
It often happens in formalisation that a type of interest is a subobject of another type of interest. For example, the unit circle in the complex plane is naturally a submonoid[^1].

What is the best way of defining this unit circle in terms of `Complex`? This blog post examines the pros and cons of the available designs.

Expand Down Expand Up @@ -116,4 +116,7 @@ Subobjects are not the only ones having a coercion to `Type`: Concrete categorie

For example, [`AlgebraicGeometry.Scheme`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=AlgebraicGeometry.Scheme#doc) sees widespread use in algebraic geometry and [`AlgebraicGeometry.Proj`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=AlgebraicGeometry.Proj#doc) is a term of type `Scheme` that is also used as a type.

This raises issues of its own, as `Proj π’œ` is (mathematically) also a smooth manifold for some graded algebras `π’œ`. Since terms only have one type, we can't hope to have both `Proj π’œ : Scheme` and `Proj π’œ : SmoothMnfld` (this last category does not exist yet in Mathlib). One option would be to have a separate `DifferentialGeometry.Proj π’œ` of type `SmoothMnfld`. Another one would be to provide the instances saying that `AlgebraicGeometry.Proj π’œ` is a smooth manifold.
This raises issues of its own, as `Proj π’œ` is (mathematically) also a smooth manifold for some graded algebras `π’œ`. Since terms only have one type, we can't hope to have both `Proj π’œ : Scheme` and `Proj π’œ : SmoothMnfld`[^2]. One option would be to have a separate `DifferentialGeometry.Proj π’œ` of type `SmoothMnfld`. Another one would be to provide the instances saying that `AlgebraicGeometry.Proj π’œ` is a smooth manifold.

[^1]: Nevermind that it is actually a subgroup. Mathlib currently can't talk about subgroups of fields.
[^2]: The `SmoothMnfld` category does not exist yet in Mathlib

0 comments on commit 9da3983

Please sign in to comment.