Skip to content

Documentation and contributor guidelines - #185

Draft
samtoth wants to merge 27 commits into
mainfrom
Docs
Draft

Documentation and contributor guidelines#185
samtoth wants to merge 27 commits into
mainfrom
Docs

Conversation

@samtoth

@samtoth samtoth commented Jun 6, 2026

Copy link
Copy Markdown
Owner

See #94

@samtoth

samtoth commented Jun 6, 2026

Copy link
Copy Markdown
Owner Author

Managed to get preview working again :D http://agda-synthetic-categories.toth.co.uk/preview/185/tot-0001/index.xml

Comment thread trees/stt/stt-0001.tree Outdated
Comment thread trees/stt/stt-0002.tree Outdated
Comment thread trees/stt/stt-0002.tree Outdated
Comment thread trees/stt/stt-0002.tree Outdated
Comment thread trees/stt/stt-0002.tree Outdated
Comment thread trees/stt/stt-0002.tree Outdated
Comment thread trees/stt/stt-0001.tree
Comment thread trees/stt/stt-0002.tree Outdated
Comment thread trees/stt/stt-0002.tree Outdated
Comment thread trees/stt/stt-0002.tree Outdated
Comment thread trees/stt/stt-0002.tree Outdated
Comment thread trees/stt/tot-0004.tree Outdated
Comment thread trees/stt/tot-0004.tree Outdated
Comment thread trees/stt/tot-00FA.tree Outdated
Comment thread trees/index.tree Outdated
Comment thread trees/stt/stt-0002.tree Outdated
Comment thread trees/stt/stt-0002.tree Outdated
Comment thread trees/stt/stt-0001.tree Outdated
Comment thread trees/stt/stt-0002.tree Outdated
Comment on lines +6 to +13
\p{This project began as an experiment in formalising simplicial (or triangulated)
type theory inside the Agda proof assistant, with the goal of creating a library
for doing synthetic higher category theory.}

\p{The project was also an experiment in literate formalisation using the
[[forester]] system, with the goal that mathematics in the informal language of
HoTT could live side by side with the Agda formalisation, with each bringing
their own benefits.}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
\p{This project began as an experiment in formalising simplicial (or triangulated)
type theory inside the Agda proof assistant, with the goal of creating a library
for doing synthetic higher category theory.}
\p{The project was also an experiment in literate formalisation using the
[[forester]] system, with the goal that mathematics in the informal language of
HoTT could live side by side with the Agda formalisation, with each bringing
their own benefits.}
\p{This project began as an experiment in formalising simplicial (or triangulated)
type theory inside the Agda proof assistant, with the goal of creating a library
for doing synthetic higher category theory. The project was also an experiment
in literate formalisation using the [[forester]] system, with the goal that
mathematics in the informal language of HoTT could live side by side with the
Agda formalisation, with each bringing their own benefits.}

This doesn't address what the current goals of the library are. Consider commenting that this document is incomplete.

Comment thread trees/stt/stt-0012.tree
Comment on lines 7 to 18
\p{
Names should generally be in kebab-case.

If a descriptive or common name exists for a theorem, then use that, otherwise
the name can be informed from the type: Conclusion should go to the left of premises, separated by
a unicode left arrow ←. This matches the order of function application/composition and makes reading the code easier.
other defined mixfix operations e.g. =, ≃ or ¬ may also be used in place of a '-'.
If a descriptive or common name exists for a theorem or definition, then that
should be used, otherwise the name can be informed from the type: Conclusion
should go to the left of premises, separated by a unicode left arrow ←. This
matches the order of function application/composition and makes reading the code
easier. Other defined mixfix operations e.g. =, ≃ or ¬ may also be used in place
of a '-'. Note that some discretion is advised when giving these \em{derived}
names; premises that are inferable from the context should be omitted, so that
the names have a balance of brevity and descriptiveness.
}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This paragraph need some prefacing I think. I.e., what are the naming conventions about, why do we need them, how strict are they?

Comment thread trees/stt/stt-0012.tree Outdated
Comment thread trees/stt/stt-0012.tree
Comment on lines +32 to +36
This means that some types that are proposition-like aren't written in the way
it is tempting to write them - most notably this includes the data of a
functions inverse, called a [quasi-inverse](Foundations.QuasiEquivalences). When
we make this notion [coherent](Foundations.Equivalences), it becomes a
proposition, and so is written\code{is-equiv}. When referring to things which

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i'm not entirely convinced about this convention yet. For instance being coherently idempotent is not a proposition, but I am still tempted to use "is", or "are" for it. Maybe more reasons can be given supporting your naming style? E.g. you reserve it for a logical fragment of the library, which only considers propositions. In other words you consider it a logical connective

Comment thread trees/stt/stt-0012.tree
Comment on lines +43 to +45
\todo{ (Sam): I wonder, we should also rename propositions like \code{FunExt} to
\code{has-fun-ext}, referring to the proposition that a pair of universes have
the function extensionality property.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally I'm very happy with just writing FunExt/fun-ext

Comment thread trees/stt/stt-0012.tree
Comment on lines +47 to +48
Along a similar vein, maybe we should rename the \code{UP-such-and-such} to
\code{has-UP-such-and-such}.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy with this suggestion!

Comment thread trees/stt/stt-0012.tree
Comment on lines +51 to +55
\subtree[tot-NTYP]{
\title{Naming non propositional types}

This means that some types that are proposition-like aren't written in the way it is tempting to write them - most notably this
includes the data of a functions inverse, called a [quasi-inverse](Foundations.QuasiEquivalences). When we make this notion
[coherent](Foundations.Equivalences), it becomes a proposition, and so is written \code{is-equiv}.
\p{Types should be also be named in \code{Kebab-case} but with the first word
capitalised.}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incoherent subtree.

Do you mean that we can write "Is-coherently-idempotent" even though it is not a propositions?

@samtoth samtoth Jun 7, 2026

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first thought it coherent-idempotent-witness I suppose... but I see the argument that this is ugly. My rationale for the convention of is-... or has-... is that:

A) it's not obvious whether things are propositions are not (there are things that feel like they should be propositions that aren't), so when you see something phrased like a proposition you can be sure it is one, and the you can use all of your intutition for propositions.

B) For things that really aren't propositions there should be a nice way to think about them that makes it clear that they aren't propositions. E.g. I find is-...-witness dissatisfying for this reason, but quasi-inverse feels like a good name.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually according to this scheme it should be Quasi-inverse.... How do you feel about capitalising things?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually according to this scheme it should be Quasi-inverse.... How do you feel about capitalising things?

hate it

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose this means you want "left/right inverse" over "split-mono/epi witness" then

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, I would be quite happy to remove capitalisation too. I think in my head I thought there would be a clash between instances of a type and the type itself... but it feels like this just doesn't really come up in practice

Comment thread trees/stt/tot-0001.tree Outdated
Comment on lines +5 to +6
\remark{This page is a work in progress and still evolving as we continue to work
on the library.}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sounds like it is suggesting the introduction can never be finished. Is that true? Maybe a better formulation is

Suggested change
\remark{This page is a work in progress and still evolving as we continue to work
on the library.}
\remark{
This page is a work in progress and still evolving as we continue to lay the
groundworks of the library.
}

Comment thread trees/stt/tot-0002.tree Outdated
Comment thread trees/stt/tot-0002.tree Outdated
Comment thread trees/stt/tot-0002.tree Outdated
Comment thread trees/stt/tot-0004.tree
\date{2026-06-06}
\import{stt-macros}

\p{Agda uses the concept of [modules]() to organise code bases. }

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing link

Comment thread trees/stt/tot-0004.tree
\import{stt-macros}

\p{Agda uses the concept of [modules]() to organise code bases. }
\p{Currently we have the following set of top-level modules:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In agda-unimath we call these namespaces.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although I've heard some people complain that what Agda implements is not namespaces. I.e. where you can extend a namespace with new definitions outside of its original place of definition.

Is the suggestion here to replace top-level modules with namespaces - in which case I think this would be appropriate, since there is no module Foundations or Core

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yes, that's right. you heard it from me for instance 😄

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can always extend Foundations with a new module...

Comment thread trees/stt/tot-0004.tree Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants