The problem is that if you cross your advisor, good luck getting a job later.
172 karma · joined July 28, 2019
The problem is that if you cross your advisor, good luck getting a job later.
1. When under an abuser, frequently you internalize their narrative.
2. Allegedly the professor threatened to kill him if he "ruined his reputation."
3. If he was an international student (I do not know if he was), he could quite literally lose his visa for losing his spot in the program.
4. If your advisor hates you and you haven't managed to safely switch advisors, good luck getting a letter for any future academic pursuits. (Unless you're willing to speak out about what happened, or you have someone willing to write an explanatory letter on your behalf.)
5. When you're being abused and threatened with retaliation for speaking out and so on, you aren't thinking rationally. It's really traumatic and scary, and sometimes it's hard to imagine a path out that is tolerable, and death sounds safer and easier.
We in academia need to respond by setting up better systems to recognize and safely escape abusive situations without permanent harm to one's career and mental or physical wellbeing. And also by making those systems known to students and very easy to access and use.
Anonymous comments scare me because there are (a few, thankfully not many) abusive people in the PL community I am afraid of engaging with. I don't want to accidentally find myself arguing with one of them. I need to know when to exit the conversation.
Proof relevant mathematics, higher category theory, lots of topology. Sorry. I don't spend all of time on HackerNews, I sometimes don't get around to responding to things. I am talking to Kevin about this framing so we can figure out how to make it healthier in the future. Some of my comments about Kevin were likewise out of line because I interpreted some of our previous interactions as rooted in a gender-based power dynamic when they were actually just rooted in something Kevin finds difficult and wants to do better at, and that is my honest mistake.
But if that is too hard to read, I recommend telling Anders directly when you get confused. He is open to improving the notes.
I know Kevin. He does good work. He also heckled every talk at ITP, including my own, in the middle to express his opinions. I have never met another researcher in my life who does that. Media outlets interview him and not the other 50 years of researchers doing work on proof assistants and using them both for mathematics and for verifying systems. I wrote a whole book about the history of program verification and for sure nobody has ever interviewed me about it. Kevin is loud and bold, that is why his opinions spread like fire. But they are just that, opinions.
Lean is the calculus of inductive constructions with uniqueness of identity proofs. Classical logic in Lean requires using axioms.
Anonymous comments are cowardly; please show yourself. If you stay anonymous I am not aware of power dynamics, and I cannot adjust my response accordingly.
Lean is not weak, it just commits to something called Uniqueness of Identity Proofs (UIP). This is inconsistent with Univalence, a property that cubical type theories have. Necessarily, neither system can express "all of math." So it goes.
Leo chose UIP to get a novel way to get really powerful automation of equality proofs. Leo is very, very good at this; this is his whole shindig. But he had to hack around things a bit in order to get what he wanted. The paper by Bas and his student shows that in cubical, you don't have to hack around things; this automation of equality proofs arises in the natural way.
The gap is not fundamental, and it irritates me when it is attributed to the choice of UIP. The reason Lean is so useful is because the people working on it are good at building automation. The people working on cubical are much more interested in foundations. We need people who are interested in automating cubical; once we get that, the proof assistant that arises from it will be better than anything we have ever seen.
The difference is that no cubical proof assistant has been implemented by Leo de Moura. Get Leo de Moura to implement cubical, and you will have a proof assistant more powerful than you could ever imagine, built on extremely satisfying foundations.
This race didn't follow the rules so he could do whatever he wanted. Under official rules, you can have a custom drink placed on a table, which you run by and pick up yourself. Most marathons with an elite wave do this for elite runners. Nobody can hand you your drink.
However, it is not common to have very calorie-dense drinks because it is just not necessary over that distance. You want a little bit of carbohydrate so that you don't deplete your glycogen stores or get low blood sugar. That is about it. So most runners will consume maybe 200-300 calories during a marathon. Elite runners will typically consume less, again since they are more efficient.
Also just not a sanctioned course, not proper testing protocol for doping, not open to other competitors, and so on.
(Former USATF apprentice official, though stopped officiating once I started grad school)
I suspect the one difficulty there would be finding such incremental changes on Github. It was surprisingly difficult to find small changes to specifications in Git history for a different project that I did. Too many large commits and too much history revision, so you often lose the incremental changes. Still, it is worth trying.
Let's say you write those proofs via induction over the natural numbers. You can choose between arguments to induct over if your functions take multiple inputs. The most effective choice often depends on the definitions of your functions. This means to pick the best argument, already you need to unfold your definition. Chances are you do that unfolding in your head, not using a tactic, or at least not one that you keep in your final proof.
So already, an ML technique for ITPs that does not unfold definitions in goals for more information is missing out on the essential piece that makes a user choose one argument for induction over another, even when syntactically the hypotheses and goals may look identical (I can define "add" to break down the first argument or the second argument, my call).
In general, I think the ITP community likes to pretend that we are using tactics to interact with a black box, but in practice, most of us have internalized heuristics that involve introspecting on the structures of terms and types. So any model that lacks the information to internalize those heuristics is missing out.
Another problem is that you will very rarely find examples of failing proofs, since users rarely commit them. I'm working on a joint UW-UCSD project on collecting and analyzing development data, and this is one of the goals. But our dataset is not very large, since it is hard to get users to agree to something so invasive, and there are still only 1000 or so active Coq users in total in the world right now.
Another big problem is that it is very, very difficult to define what it means for a proof to be "almost" correct. This makes it difficult to apply many existing techniques fruitfully.
Nonetheless, I think the general spirit is right. The biggest gains in proof automation in ITPs this decade are going to come from automation that makes use in some way of existing proofs, rather than starting from scratch and "blindly" (often very effectively or even decideably for certain fragments of the logic or certain domains if the user knows the right tactic to call) searching for some term with a given type.
I met a few people on OKCupid during that time and was not sure if I had the potential to like them or not because my ex was in close proximity and that was messing with my feelings a lot. I told them to just be friends and expect nothing else, and that I'd revisit the question in June. One said he was out; that was fine, I'd just met him. The other is one of my close friends now, even though the answer was still no in June.
This happened with someone who was already my one of best friends, too. He was hurt for a few weeks, but then everything went back to normal and now we are still best friends.
I can understand why this would be hard after a long-term relationship with someone you are in love with. My ex and I are still very, very far from friendship, despite both wanting it eventually. But with someone you have never even been in a relationship with? It's ridiculous to take rejection personally and let it get in the way of your friendship.
My current boyfriend, I met when I was running away to another state to get away from my ex. I was looking for people to practice my Russian with. The expectation was that we would hang out and speak Russian once in a while, and then probably never see each other once I returned home. And now I'm in a very rewarding long-distance relationship.
I don't think it's that the stakes made it exciting. I think it's that the lack of expectations made it feel safer.
It is just the opposite. So you feel OK getting to know the person just to get to know them. Then your heart does its own thing. And that's why I think people say that love "just happens" and not to look for it. You can look for it, but by doing that, you are setting expectations that might preclude you from getting to know the person you might at some point love, just for the sake of knowing them. Not specifically to love them.
The ambiguity is good.
If I were single again, I think I would like an app that deliberately makes it ambiguous whether someone likes you or just wants to hang out with you. You'd have to figure that out yourselves. So you'd choose people you genuinely enjoyed spending time with, which would increase your potential dating pool, but you wouldn't go into it without the magic of ambiguity.
Data is always cool though.