add lessons file
This commit is contained in:
parent
5bb2c7859d
commit
c06793b018
1 changed files with 19 additions and 0 deletions
19
lessons.md
Normal file
19
lessons.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
Things I would do differently with hindsight:
|
||||||
|
|
||||||
|
* Make pointed dependent maps primitive:
|
||||||
|
```lean
|
||||||
|
structure ppi (A : Type*) (P : A → Type) (p : P pt) :=
|
||||||
|
(to_fun : Π a : A, P a)
|
||||||
|
(resp_pt : to_fun (Point A) = p)
|
||||||
|
```
|
||||||
|
(maybe the last argument should be `[p : pointed (P pt)]`). Define pointed (non-dependent) maps as a special case.
|
||||||
|
Note: assuming `P : A → Type*` is not general enough.
|
||||||
|
|
||||||
|
* Use squares, also for maps, pointed maps, ... heavily
|
||||||
|
|
||||||
|
* Type classes for equivalences don't really work
|
||||||
|
|
||||||
|
* Coercions should all be defined *immediately* after defining a structure, *before* declaring any
|
||||||
|
instances. This is because the coercion graph is updated after each declared coercion.
|
||||||
|
|
||||||
|
* [maybe] make bundled structures primitive
|
Loading…
Reference in a new issue