Zulip Chat Archive
Stream: new members
Topic: Hello
Harry Gindi (Nov 10 2018 at 18:35):
Hiya, some of you probably know me from mathoverflow. I was curious how things are going in here.
Johan Commelin (Nov 10 2018 at 18:35):
Hey, welcome! Good to see you.
Johan Commelin (Nov 10 2018 at 18:35):
Things are going pretty good here (-;
Harry Gindi (Nov 10 2018 at 18:36):
I'm a complete noob on the whole theorem proving thing, but I feel like it's something worth learning
Johan Commelin (Nov 10 2018 at 18:36):
One of our biggest problems is lack of (wo)man-power
Harry Gindi (Nov 10 2018 at 18:36):
I'd like to eventually work on the library for simplicial sets, but I'm completely worthless at programming
Johan Commelin (Nov 10 2018 at 18:37):
Right. The first thing you need to learn is that you should ask lots of questions here :lol:
Johan Commelin (Nov 10 2018 at 18:37):
You don't need that much programming experience. Coincidentally, I did some stuff on simplicial sets a couple of months ago.
Johan Commelin (Nov 10 2018 at 18:38):
In the mean time, Scott wrote a very very nice category library.
Harry Gindi (Nov 10 2018 at 18:38):
Does it have Grothendieck constructions
Johan Commelin (Nov 10 2018 at 18:38):
I've been meaning to update my stuff, but haven't done so yet.
Johan Commelin (Nov 10 2018 at 18:38):
It only has the basics so far. We are in the process of adding limits and colimits.
Harry Gindi (Nov 10 2018 at 18:38):
If it does, maybe it's already time to introduce the Theta construction that I use in my research
Harry Gindi (Nov 10 2018 at 18:38):
Ah, ok!
Johan Commelin (Nov 10 2018 at 18:39):
For example: we don't have abelian categories yet.
Harry Gindi (Nov 10 2018 at 18:39):
If there's a simplicial library and a category theory library, you might be able to use simplicial objects in Cat to get monoidal categories
Johan Commelin (Nov 10 2018 at 18:39):
No fundamental obstructions. Just that there are only 3 people working on this in their spare time.
Harry Gindi (Nov 10 2018 at 18:39):
via Segal's observation
Harry Gindi (Nov 10 2018 at 18:39):
Also, are Abelian categories really that fundamental for theorem proving?
Johan Commelin (Nov 10 2018 at 18:40):
Practice seems to show that theorem provers need a delicate balance between hands-on constructions and big theoretical hammers.
Johan Commelin (Nov 10 2018 at 18:40):
Not for theorem proving, but they are for applying theorem provers to (some, eg my) mathematical research.
Harry Gindi (Nov 10 2018 at 18:41):
mhm, do you know where I can get bootstrapped with experience to start contributing?
Johan Commelin (Nov 10 2018 at 18:41):
First you need to install a Lean environment.
Johan Commelin (Nov 10 2018 at 18:41):
What editor do you use to type LaTeX and the likes?
Harry Gindi (Nov 10 2018 at 18:41):
vscode
Johan Commelin (Nov 10 2018 at 18:41):
Great!
Johan Commelin (Nov 10 2018 at 18:41):
There is a Lean extension for VScode
Harry Gindi (Nov 10 2018 at 18:42):
Is the Windows lean environment crippled?
Johan Commelin (Nov 10 2018 at 18:42):
Install it, and open an empty Lean file. It will then ask if you want it to install Lean for you.
Harry Gindi (Nov 10 2018 at 18:42):
oh, that's neat!
Johan Commelin (Nov 10 2018 at 18:42):
I think it was fixed. I am not sure. I haven't touched Windows in 10 years.
Andrew Ashworth (Nov 10 2018 at 18:42):
If you like textbooks I would recommend Theorem Proving in Lean
Johan Commelin (Nov 10 2018 at 18:42):
Maybe it is about to be fixed.
Harry Gindi (Nov 10 2018 at 18:43):
If it's not working, I have the Win10 Linux emulator installed
Harry Gindi (Nov 10 2018 at 18:43):
that's why I'm asking
Andrew Ashworth (Nov 10 2018 at 18:43):
Lean on Windows works great
Kenny Lau (Nov 10 2018 at 18:44):
@Harry Gindi here is my (controversal) instructions on how to get Lean on windows
Andrew Ashworth (Nov 10 2018 at 18:44):
There are some issues with setting $PATH correctly. However, if you are the kind of person to have WSL installed, I'm sure you'll be able to fix it
Harry Gindi (Nov 10 2018 at 18:45):
Thanks!
Kenny Lau (Nov 10 2018 at 18:45):
oh wait, you said you're working in Linux, never mind then
Harry Gindi (Nov 10 2018 at 18:45):
Both work, Kenny. WSL is slow though
Harry Gindi (Nov 10 2018 at 18:46):
Disk I/O is extremely bad
Harry Gindi (Nov 10 2018 at 18:46):
then again, so is mingw64 =D
Kenny Lau (Nov 10 2018 at 18:46):
what do you mean?
Harry Gindi (Nov 10 2018 at 18:47):
iirc disk i/o on cygwin and msys is benchmarked just as slow as WSL
Harry Gindi (Nov 10 2018 at 18:47):
it's the main reason why things are so slow.
Harry Gindi (Nov 10 2018 at 18:48):
I was really active on the WSL github for like two years, and performance is on-par with linux now except for disk i/o
Johan Commelin (Nov 10 2018 at 18:49):
@Harry Gindi Once you have Lean installed, you will want to fork https://github.com/leanprover-community/mathlib/
Then you need to run leanpkg build
in that directory. After that, get yourself some tea. Your computer will be warming your room for about an hour.
Harry Gindi (Nov 10 2018 at 18:49):
but I also used msys2 before, and it was even slower
Kenny Lau (Nov 10 2018 at 18:49):
then what's the best one?
Harry Gindi (Nov 10 2018 at 18:49):
Kenny Lau, meh, nothing's great. The best thing you could do probably is run a VM
Harry Gindi (Nov 10 2018 at 18:49):
if you're concerned about performance
Harry Gindi (Nov 10 2018 at 18:49):
Thanks Johan!
Andrew Ashworth (Nov 10 2018 at 18:50):
I compile Lean with MSYS2, disk i/o is far from the limiting factor when it comes to performance
Kenny Lau (Nov 10 2018 at 18:50):
and you need to rewarm your room for an hour every time you update mathlib, isn't Lean wonderful!
Harry Gindi (Nov 10 2018 at 18:51):
Andrew Ashworth, then maybe performance on WSL is better than msys2 on everything but disk I/O
Kenny Lau (Nov 10 2018 at 18:51):
@Harry Gindi ping
Harry Gindi (Nov 10 2018 at 18:51):
hello!
Kenny Lau (Nov 10 2018 at 18:51):
Harry Gindi, not ping
Harry Gindi (Nov 10 2018 at 18:51):
I'm aware, I'm just using the web UI
Andrew Ashworth (Nov 10 2018 at 18:51):
is it now? I can't imagine there being a huge difference
Harry Gindi (Nov 10 2018 at 18:52):
Andrew, they did benchmarks on phoronix, and on cpu-only tasks, WSL performs at 95-100% of native
Harry Gindi (Nov 10 2018 at 18:52):
once it hits disk i/o, it crashes to like 20%
Harry Gindi (Nov 10 2018 at 18:53):
it has to do with the fact that NTFS doesn't use inodes and therefore can't cache them effectively
Harry Gindi (Nov 10 2018 at 18:54):
also, windows defender, and a bunch of other things just kill it on disk i/o
Harry Gindi (Nov 10 2018 at 18:54):
anyway, going to get this lean system installed
Harry Gindi (Nov 10 2018 at 18:54):
does arch have a lean-git AUR package?
Harry Gindi (Nov 10 2018 at 18:55):
Looks like it does
Andrew Ashworth (Nov 10 2018 at 18:55):
ah, I was aware of that. I think you can compile Lean with visual studio and get a totally native binary, if i recall correctly
Andrew Ashworth (Nov 10 2018 at 18:55):
i've never investigated it though, so ymmv
Harry Gindi (Nov 10 2018 at 18:55):
blech, I have an arch installation on this pc
Andrew Ashworth (Nov 10 2018 at 18:56):
disk access is not an issue at 20% or 100% anyway
Harry Gindi (Nov 10 2018 at 18:56):
but every time I decide to jump into linux, I get sidetracked
Harry Gindi (Nov 10 2018 at 18:56):
I end up staying up all night messing around with it, it's unhealthy for me
Johan Commelin (Nov 10 2018 at 18:56):
Don't use that arch thing.
Harry Gindi (Nov 10 2018 at 18:56):
oh, it's bad?
Harry Gindi (Nov 10 2018 at 18:57):
or are you saying don't use arch in general :D
Johan Commelin (Nov 10 2018 at 18:57):
The VScode Lean extension is better. It sets up a useful wrapper called elan
.
Johan Commelin (Nov 10 2018 at 18:57):
No, I run arch as OS :lol: So that's fine.
Harry Gindi (Nov 10 2018 at 18:57):
the arch thing is just a lean system, I thought
Harry Gindi (Nov 10 2018 at 18:58):
anyway gonna work on this tomorrow morning
Harry Gindi (Nov 10 2018 at 18:58):
cheers all
Kevin Buzzard (Nov 10 2018 at 20:00):
@Kenny Lau I think https://github.com/leanprover/mathlib/blob/master/docs/elan.md is a better place to direct computer-savvy Windows users to than your link
Kenny Lau (Nov 10 2018 at 20:08):
fair
Scott Morrison (Nov 10 2018 at 21:30):
Yes --- please, please, everyone should now be using elan, no messing around with $PATH, no installing complicated things like msys2 or WSL, just go with the bare minimum provided by "git bash" and its installer, then work entirely inside VS Code.
Kevin Buzzard (Nov 10 2018 at 21:30):
@Harry Gindi ^^ that
Scott Morrison (Nov 10 2018 at 21:33):
Also, welcome @Harry Gindi. :-)
Harry Gindi (Nov 10 2018 at 21:33):
Got it, thanks!
Harry Gindi (Nov 10 2018 at 21:34):
Also hello, Kevin and Scott, it's been a while since I saw you on MO
Kevin Buzzard (Nov 10 2018 at 21:34):
Here is a roadmap to getting started. First read through all of Theorem Proving In Lean and do all the exercises. Then choose a project to work on, and work on it.
Kevin Buzzard (Nov 10 2018 at 21:34):
The projects I chose were: (1) do all the exercises in the undergraduate class I was teaching at the time and then (2) define schemes and prove that an affine scheme is a scheme.
Kevin Buzzard (Nov 10 2018 at 21:35):
Do not underestimate how difficult all of this is at this point.
Harry Gindi (Nov 10 2018 at 21:35):
It seems like it'll be really annoying, don't worry =)
Harry Gindi (Nov 10 2018 at 21:36):
I think maybe a good project to work on would be weak factorization systems once I learn stuff
Kevin Buzzard (Nov 10 2018 at 21:36):
Working with isomorphisms is difficult. Working with categories is even more difficult, for several reasons -- some associated with dependent type theory (it is difficult to transport structure along isomorphisms at this point, although things will change one day), some associated with universe issues (mathematicians being sloppy about universes, basically) and other things too
Kevin Buzzard (Nov 10 2018 at 21:37):
But there is no better recommendation than "start on something and whenever you get stuck, ask here"
Kevin Buzzard (Nov 10 2018 at 21:37):
The first thing you will probably have to ask is a question of the form "here's a link to a pdf, I want to make definition 2.3 of that paper in Lean, where do I even start?". There will be an answer.
Harry Gindi (Nov 10 2018 at 21:38):
WFS would be useful if anyone wants to go full bore and do model categories, and it can be done with monads for algebraic weak factorization systems
Harry Gindi (Nov 10 2018 at 21:38):
I'm guessing that monads work well?
Kevin Buzzard (Nov 10 2018 at 21:38):
Listen, honestly, categories are really like jumping in at the deep end
Harry Gindi (Nov 10 2018 at 21:38):
ah
Kevin Buzzard (Nov 10 2018 at 21:38):
groups work well
Kevin Buzzard (Nov 10 2018 at 21:38):
but it is not impossible, and you have to jump in somewhere
Harry Gindi (Nov 10 2018 at 21:39):
I mean, my research is in category theory
Harry Gindi (Nov 10 2018 at 21:39):
but I'll see how hard it is
Kevin Buzzard (Nov 10 2018 at 21:39):
well, when I arrived here a year ago people were already talking about formalising categories, and one year later they still haven't managed to do adjoint functors.
Kevin Buzzard (Nov 10 2018 at 21:40):
This is basically for two reasons: (1) universes make this harder than you think and (2) lack of manpower or personpower or whatever it should be called nowadays
Harry Gindi (Nov 10 2018 at 21:40):
I would have assumed that monads might be easier than adjunctions, but maybe this is a mistake
Kevin Buzzard (Nov 10 2018 at 21:40):
I'm also exaggerating a little. But dependent type theory is perhaps not set up with category theory in mind
Kevin Buzzard (Nov 10 2018 at 21:41):
On the other hand, "difficult" is certainly not the same as "impossible"
Harry Gindi (Nov 10 2018 at 21:41):
Do presheaves of sets make sense?
Kevin Buzzard (Nov 10 2018 at 21:41):
and there is no actual obstruction to doing adjoints and a whole bunch more. It's just that people really like (a) working in the maximal generality and (b) writing automation as they go
Kevin Buzzard (Nov 10 2018 at 21:41):
they call them presheaves of types here
Kevin Buzzard (Nov 10 2018 at 21:42):
but I defined these in a hands-on way when doing schemes, no problem
Harry Gindi (Nov 10 2018 at 21:42):
Neat, I'll have to look at what you've done already before I try to jump in
Kevin Buzzard (Nov 10 2018 at 21:42):
I did not use the category theory machinery though, I just wrote down the axioms for a functor in that specific case rather than relying on a general theory (which at that time was not there anyway)
Kevin Buzzard (Nov 10 2018 at 21:42):
My code sucks though
Kevin Buzzard (Nov 10 2018 at 21:43):
because it was the code I wrote to learn how to do mathematics in dependent type theory
Kevin Buzzard (Nov 10 2018 at 21:43):
I am currently refactoring all of it with an MSc student
Harry Gindi (Nov 10 2018 at 21:43):
so when you defined schemes, did you follow e.g. Toën?
Harry Gindi (Nov 10 2018 at 21:44):
working with functors of points the whole way?
Harry Gindi (Nov 10 2018 at 21:44):
or is that exactly the kind of non-kosher thing that implicitly uses universes
Kevin Buzzard (Nov 10 2018 at 21:44):
I followed the stacks project
Kevin Buzzard (Nov 10 2018 at 21:44):
https://github.com/kbuzzard/lean-stacks-project/blob/master/src/tag009I.lean
Kevin Buzzard (Nov 10 2018 at 21:44):
there's presheaves of types on a basis of open sets of a top space
Kevin Buzzard (Nov 10 2018 at 21:44):
But nowadays we would not write it like that
Kevin Buzzard (Nov 10 2018 at 21:45):
we'd use the category theory machinery, which seems to be just about ready to do that sort of thing.
Kevin Buzzard (Nov 10 2018 at 21:45):
As of about last week
Harry Gindi (Nov 10 2018 at 21:45):
neat!
Harry Gindi (Nov 10 2018 at 21:45):
I heard that some simplicial set machinery was developed up-thread
Harry Gindi (Nov 10 2018 at 21:46):
was this done entirely without model structures using e.g. Ex^∞?
Kevin Buzzard (Nov 10 2018 at 21:47):
In that code I linked to, I am literally saying that a presheaf of types is a function F which takes a basis element to a type, plus a restriction F(U)->F(V), plus the axioms that res from U to U is id and res of res is res. So I am avoiding explicit usage of any category theory formalism.
Kevin Buzzard (Nov 10 2018 at 21:47):
You'll have to ask @Johan Commelin where he put his simplicial set stuff. That was also written before categories were available, I believe.
Harry Gindi (Nov 10 2018 at 21:47):
mhm
Harry Gindi (Nov 10 2018 at 21:47):
alright let's not but the cart before the horse, I've gotta do the exercises and stuff
Harry Gindi (Nov 10 2018 at 21:48):
cheers, this seems exciting
Kevin Buzzard (Nov 10 2018 at 21:48):
it's the future
Kevin Buzzard (Nov 10 2018 at 21:48):
but I might have died before it becomes really important
Kevin Buzzard (Nov 10 2018 at 21:48):
I have no idea of the time frame before it becomes (a) useful (b) powerful (c) better than us
Harry Gindi (Nov 10 2018 at 21:48):
ascended to robothood
Kevin Buzzard (Nov 10 2018 at 21:48):
but currently we are still a long way from (a)
Kevin Buzzard (Nov 10 2018 at 21:49):
"proof assistants" currently do nothing but make mathematician's lives harder, for the most part.
Harry Gindi (Nov 10 2018 at 21:49):
like any assistant they must be trained =p
Harry Gindi (Nov 10 2018 at 21:49):
otherwise all they do is spill coffee on you
Kevin Buzzard (Nov 10 2018 at 21:50):
right. And my view (and I do say this firmly with my tongue in my cheek and slightly provocatively, but there is a grain of truth in it) is that currently the main problem is that for the most part they are being trained to do mathematics by computer scientists, which is in my opinion not driving development in the right directions.
Harry Gindi (Nov 10 2018 at 21:51):
I'm going to try to get my friend in the US involved on this
Kevin Buzzard (Nov 10 2018 at 21:51):
There are a few mathematicians here who are trying to change all this, mostly by saying things such as "mathematicians will not be able to use your software unless you make stuff like (x+y)^3=x^3+3x^2y+3xy^2+y^3 easy to do"
Harry Gindi (Nov 10 2018 at 21:51):
he did a math undergrad and he's doing a CS Ph.D., but he hates CS
Harry Gindi (Nov 10 2018 at 21:52):
this might be a nice change of pace for him
Kevin Buzzard (Nov 10 2018 at 21:52):
https://xenaproject.wordpress.com/2018/06/13/ab3/
Harry Gindi (Nov 10 2018 at 21:52):
is anyone doing analysis-related stuff?
Kevin Buzzard (Nov 10 2018 at 21:52):
Yes, but it's happening very slowly
Harry Gindi (Nov 10 2018 at 21:52):
because he always liked analysis
Harry Gindi (Nov 10 2018 at 21:52):
alright, I'll try to cajole him into helping =)
Kevin Buzzard (Nov 10 2018 at 21:53):
and in my opinion there is a problem with the development plan we have
Kevin Buzzard (Nov 10 2018 at 21:53):
In fact Harry to be honest basic freshman one variable analysis would be a perfect project to learn Lean with
Kevin Buzzard (Nov 10 2018 at 21:53):
because the maths is basically very well known and well understood, and putting it into a theorem prover would be a formidable challenge for a beginner, however there would be plenty of people around to help
Kevin Buzzard (Nov 10 2018 at 21:54):
The problem is that the general position here is "do everything in the correct generality" which means "the maximal generality"
Harry Gindi (Nov 10 2018 at 21:54):
break out a copy of Bourbaki's 'analysis in one real variable' haha
Kevin Buzzard (Nov 10 2018 at 21:55):
so instead of developing a basic theory of analysis of functions of one real variable, everyone wants to do stuff on normed spaces and Banach spaces etc etc and then prove all the single-variable theorems in one fell swoop by specialising to this case
Harry Gindi (Nov 10 2018 at 21:55):
Is that even possible?
Kevin Buzzard (Nov 10 2018 at 21:55):
In my mind a good analogy here is what happened with polynomials
Kevin Buzzard (Nov 10 2018 at 21:55):
A computer scientist developed a fabulous library of polynomials in an arbitrary number of variables (in fact for an arbitrary set of variables)
Kevin Buzzard (Nov 10 2018 at 21:56):
but when mathematicians wanted to actually use it to prove basic stuff like quadratic reciprocity or finite fields or whatever
Harry Gindi (Nov 10 2018 at 21:56):
For example, defining C^\infty functions requires you do have partial derivatives, which come from the 1-dimensional case, if I remember correctly (I haven't done analysis in around 8 years =\)
Kevin Buzzard (Nov 10 2018 at 21:56):
they found they really just wanted a much deeper theory of polynomials in one variable
Kevin Buzzard (Nov 10 2018 at 21:57):
so at the end of the day an undergraduate here at Imperial, Chris Hughes, just wrote the theory of polynomials in one variable anyway.
Kevin Buzzard (Nov 10 2018 at 21:57):
And I kind of suspect that the same might happen for differentiable functions.
Kevin Buzzard (Nov 10 2018 at 21:57):
Eventually we'll have them on Banach manifolds or something
Harry Gindi (Nov 10 2018 at 21:57):
oh, you're saying that you agree that the 1-variable case is separate and important
Kevin Buzzard (Nov 10 2018 at 21:57):
but then when someone wants to prove that the derivative of sin is cos (which we do not have at this point)
Kevin Buzzard (Nov 10 2018 at 21:58):
they will not want to work on a Banach manifold
Harry Gindi (Nov 10 2018 at 21:58):
it's not even meaningful on a banach manifold
Harry Gindi (Nov 10 2018 at 21:58):
the derivative of a map of manifolds is a map on tangent bundles
Kevin Buzzard (Nov 10 2018 at 21:58):
I know, I'm just saying that if you write general functions which work in some big generality then you will just end up constantly having to tell these functions to specialise to the case of the real numbers
Harry Gindi (Nov 10 2018 at 21:59):
sure, yes
Kevin Buzzard (Nov 10 2018 at 21:59):
the derivative of a map of manifolds is a map on tangent bundles
right, and you'll then have to identify the tangent space of the reals with the reals etc
Kevin Buzzard (Nov 10 2018 at 21:59):
What I am saying is that in my opinion there is a need for a theory of functions in one real variable
Harry Gindi (Nov 10 2018 at 21:59):
and that identification is not obvious without additional structure
Kevin Buzzard (Nov 10 2018 at 21:59):
I believe that there is a little about functions in one complex variable, somewhere in the modular forms work
Harry Gindi (Nov 10 2018 at 21:59):
I get ya!
Harry Gindi (Nov 10 2018 at 22:00):
I fully agree with this
Harry Gindi (Nov 10 2018 at 22:01):
there's almost always a distinguished most important 1-dimensional case of whatever
Harry Gindi (Nov 10 2018 at 22:01):
imagine if people tried to write the categories library starting with 2-categories
Harry Gindi (Nov 10 2018 at 22:01):
It's also why e.g. Lawvere's ETCC was dead on arrival
Harry Gindi (Nov 10 2018 at 22:02):
anyway, I'm going to give some of this a shot tomorrow morning
Harry Gindi (Nov 10 2018 at 22:02):
cheers!
Cris Perdue (Mar 22 2022 at 00:20):
I am a software developer and longtime aficionado of computerized deduction, taking a scenic excursion from building a web GUI proof assistant "for beginners" (https://prooftoys.org/) to the modern world of Lean.
Last updated: Dec 20 2023 at 11:08 UTC