Sigma bases
Description
This PR defines a notion of "Σ-basis", which is a nice encoding of an equivalence to a Σ type. It also defines some
general reasoning principles for Σ-bases, with an eye to fixing #463 in a modular fashion. I've used them a bit
in Cat.Displayed.Total to prove some basic results, and they seem relatively ergonomic.
Some prose still needs to be written, so I've marked this as a draft for now to get some feedback on the general design first.
Checklist
Before submitting a merge request, please check the items below:
- [x] I've read the contributing guidelines.
- [x] The imports of new modules have been sorted with
support/sort-imports.hs(ornix run --experimental-features nix-command -f . sort-imports). - [x] All new code blocks have "agda" as their language.
If your change affects many files without adding substantial content, and
you don't want your name to appear on those pages (for example, treewide
refactorings or reformattings), start the commit message and PR title with chore:.
New pages
- 1Lab.Type.Sigma.Basis (+471, -0)
Changed pages
- Cat.Displayed.Total (+115, -55)
- 1Lab.Type.Sigma (+71, -30)
- Cat.Morphism (+54, -2)
- Cat.Displayed.Morphism (+40, -0)
- 1Lab.Path.IdentitySystem (+21, -10)
- 1Lab.Type (+23, -0)
- Cat.Displayed.Univalence (+2, -18)
- 1Lab.HLevel.Closure (+19, -0)
- 1Lab.Type.Pi (+11, -0)