How to prove a theorem:
1. stare at it so hard that your brain gets tired.
2. go for a long walk.
3. did you get proof?
3.1. yes (congratulations)
3.2. no (go to step 1 and repeat)
I have gone through this process so many times that I have internalised it.
Finally, I started recording my Coq tutorial videos for beginners [1]. To make theorem proving accessible for everyone, we need to start small and build things incrementally, which is my goal for these videos.
[1]
During my 2 years postdoc at Cambridge University, I wrote almost 40,000 lines of Coq code and proof (thanks to quotient types!), but I will get one paper at a nice conference (A*) hopefully, and it takes an awful lot of time to make everything precise.We will open source it soon
Yesterday I deleted more than 3000 lines of Coq proof because I found a simple proof but I was able to realise this simple proof only after writing so many lines of code.
If you’ve ever wondered how mathematicians come up with such clever arguments, I strongly recommend “How to Prove It”
It’s an extremely gentle introduction that starts with the absolute basics and eventually teaches you how to construct a mathematical argument or “proof”.
Even though, I am looking for a research job which does not involve any teaching. Today, I got one such opportunity for a possible interview for Research Scientist position at Facebook, but I politely declined it because Facebook is a terrible company.
Third lecture in the series of 'Function Programming in Coq theorem prover' [1]. In this video, I introduce induction on natural numbers, few more tactics, and more importantly, how to keep induction hypothesis as general as possible.
@CoqLang
[1]
Second lecture in 'Functional Programming in Coq theorem prover' series [1]. In this video, I continue to explore the boolean logic, with more tricks and a bit of exploration what goes under the hood when we write tactics.
@CoqLang
.
[1]
Having done some competitive programming in my undergrad and implemented many data structures, it feels nostalgic to read some of it in this book. Good old days!
Today, I am excited to join University of Melbourne as a Postdoc researcher in Toby (
@tobycmurray
) group. Time to do some good research. Wish me good luck.
More dependent type programming in Coq (
@CoqLang
). In this video [1], I explore few properties of append function, mainly appending empty vector (Nil) in the beginning of a vector and in the end of a vector.
[1]
Today was my last day at the university of Melbourne. From tomorrow onwards, I am joining the university of Cambridge as a senior research associate. I was lucky to work with
@tobycmurray
and learnt a lot from him, specially asking a lot of questions about the problem.
What is the most ridiculous thing you have done as a procrastination?
I go with mine: I proved in Coq that (x -x1) * (x-x2) ..... (x -xn) = x^n + .... + x1 * x2 ... xn . It took me a week though [1] but it was fun.
[1]
This is so unfair!
Many Iranian students with scholarships remain in limbo due to Australian visa delays
Dear academic colleagues in
#Australia
:
Please urge your government to take action. This is hurting the career & future of many talented people.
I was sitting in the Cambridge CS building lobby for sometime and the words I heard was federated learning, learning, data set, differential privacy (everything related to machine learning). Not a single student mentioned the word formal verification.
I see so many tweet related to people attending
@acm_ccs
. Unfortunately, I can’t attend it despite having a paper because I could not get a visa appointment for Denmark, Sweden, Netherlands, and France (these are the countries I tried with VFS and TLA connect)
Recently, I had a chance to read few pages of this book and I am totally blown away by the abstraction (I am formalising abstract algebraic path problems and using it as a reference. Also, I gave a short presentation which was a complete disaster 😂)
Home sweet home! Visiting my village after almost 9 years and plenty of things have changed but most notable we now have a nice road and 18 hours electricity supply.
Finally, packed everything to move to Cambridge. I worked from this place for almost 1.5 years with Toby Murray (
@tobycmurray
) for the Uni Melbourne. I am feeling a bit sad but it’s part of academic life and I hope that some day I will get back to Australia, a beautiful place.
Someone emailed me that they found my Coq videos helpful, which is a bit surprising to me because I really suck at giving presentation (panic, anxiety, elevated heart beat, etc). Going to add some more videos this week (probably dependent type pattern matching).
I am working in formal methods since 2016 and this is first time I have encountered a job application where Formal methods and Programming languages are two separate entries. Thanks to the person who was so thoughtful because you can use formal methods (ITP in my case) anywhere.
You don’t need dependent types in Haskell because you can write the same thing more elegantly in Lean4 (for well-founded functions, you can use ‘decreasing_by sorry’ at end of your function and miraculously it still computes. I was shocked when I learnt this yesterday).
Getting Schengen visa is more difficult than US visa (in fact, US visa is one of most easiest one in terms of paper work). For Schengen, you need to submit a letter from your employer at the top all the craps, e.g., hotel, flight, etc., and the visa itself is just for 90 days.
@absidd
I am so sorry for your experience, Abu. I am living in Cambridge for almost 2 years and tried thrice to get Europe visa and could not succeed. I really like the US system where they offer 10 years visa.
One of my favourite weekend activity in Cambridge is to browse books in Cambridge universities press bookshop, located in the city centre. It has a lot of books that I want to buy but I don’t because I don’t know where I will go next and I feel very sad when I leave books behind.
I guess incidents like this are a good reminder that we should organise conferences in a visa friendly countries and those countries are certainly not the first world countries. We should try South America, Africa, or Asia.
Indian PhD students from
@iiscbangalore
, who have first-authored papers at prestigious conferences like
@CVPR
, are facing unjust denials of Canadian visas. With Shocking reasons "limited employment possibilities in India" and "purpose of visit not consistent with a temp. stay."
Michael Norrish,
@ANUmedia
; Thomas Sewell,
@Cambridge_Uni
; Simon Winwood,
@galois
, receive the 2022 ACM Software System Award! Learn more about their award-winning research here:
Today I had a chat with few professors at a Dutch university and they asked me, “why have I not put their PL group as a preference in my job application?” I was mildly surprised, and to be honest honoured, because I consider PL people way more smarter than me.
@diwan_vinod
@netshrink
Agree that there are no free lunches and someone has to pay for it but you are portraying it as a bad thing, isn’t the case? I don’t think this meagre spending to make bus rides free for women is anything near to the money that go down the drain because of rampant corruption.
We don't want to do formal verification because it's hard and time consuming, but I don't want to say this in the paper. Instead, we say there was a formally verified software which had bugs without saying that it was in the unverified part of the software.
This genius locked their bike in my bike than the pipe. With the help of one more person, I can literally take his bike home, but I am waiting for him.
@SwagatikaDash28
@AcademicChatter
The most important thing during the PhD is your mentor and everything else is secondary. After sometime, you can even carry the research by yourself (but, of course, it has to be aligned with supervisor’s interest).
I spent the whole day figuring out the solution of a problem posted on Coq's mailing list. I would call it a nice day because I figured out the solution :)
@hypergeometer
Wow, this is so low, and I am surprised that regardless of low salaries, their researcher are producing incredible results. Are the CNRS salaries same as Inria?
This India Canada thing is really getting out of hand. I feel India suspending visa applications in Canada is childish. Whoever is dealing with this on Indian side is literally burning the bridge between two countries.
My school which unfortunately no longer exists. I have studied here up to class 4 and then moved to a nearby town Mughalsarai (my privilege) where my father was a school teacher.
Dark side of my village: these kids belong to the lowest socioeconomic ladder. Their parents make probably 3£ a day so these kids help their parents in making some extra money with livestock. They never attend any school and never get any chance to escape the poverty.
We are living in such a crazy time. Two months ago, I joined university of Cambridge and I was offered to work two months from Melbourne, before moving to the UK. My flight is on 7th January and currently, I am not sure if I can travel on 7th January or not.
Finally I recorded a video [1] to demystify dependent type programming in Coq (
@CoqLang
). In this video, I encoded length indexed list (vector) and wrote a function, 'vector_append', to append two vectors in various ways to demonstrate the concepts.
[1]
Someone emailed me that they found my Coq videos helpful, which is a bit surprising to me because I really suck at giving presentation (panic, anxiety, elevated heart beat, etc). Going to add some more videos this week (probably dependent type pattern matching).
I have utmost respect to the people who can prove theorems without using a theorem prover. I just can’t because (i) I am not trained as a mathematician and (ii) pen-and-paper proof is nice but I am always skeptical if it’s correct.
No offence Lean people but I thought it was just for mathematicians :) I am yet to see a software verified in Lean so if you know, please post it as an reply.
@debasishg
I haven’t read Robert Harper book but I have read ML for working programmer by Larry Paulson (
@LawrPaulson
) [1] and it’s a fantastic book, specifically reasoning about functional programs (chapter 6). Besides, you can get a printed copy.
[1]
Academic job stress is nothing compared to visa stress. I had very hard time in Australia but thanks to Toby (
@tobycmurray
) and Dirk who helped in getting a PR there. Now, I am in the UK going through the same stress. I will know the outcome of my application in next 5 days🤞
Harvard, you can do better. Now I know why some of your research is fraudulent. They have invited two biggest conman Sadhguru and Deepak Chopra, both of them have sold and are selling nonsense in the name of spirituality, to discuss spirituality,
Join us for a captivating discussion on consciousness, bridging science & spirituality at the Consciousness Science Panel featuring
@RudyTanzi
,
@SadhguruJV
,
@DeepakChopra
, Christof Koch, & Bernard Carr.
Register:
Submit Abstract:
@ShriramKMurthi
This looks very interesting! I want to write a beginner friendly tutorial for well founded induction in theorem provers (Lean and Coq) and this seems a very good opportunity to do it. Thanks for organising it!
Hiring: A QuICS/PLUM Postdoctoral scholar, part of ongoing project to develop theoretical and computational tools for quantum computation on realistic devices. QC background optional. We are doing formal reasoning & verification, language design; eg,
Something is wrong with me. Rather that finishing my job application, I am learning dependent inversion using small inversions in Coq. Theorem proving is such an addictive thing.
I love this identity and have been collecting proofs of it for some time. It's simple enough that a variety of proof strategies work to solve it in non trivial ways :)
The train I am travelling right now with my mom to Varanasi. All these people going to Varanasi to take a dip in Ganges, holy river for Hindus, tomorrow for a festival. Unfortunately, I was not aware and booked a ticket for today and now I am regretting it.
It feels good when people understand that using theorem prover to verify something is difficult, specially if you’re solving a real-world software (yes, real-world). No, I could not make it final faculty interview but transparency in Scandinavia is crazy :)
Formal verification as a service: you write your Coq —pick a any tool you like— code and the top level theorem and let the service prove it. I will be happy to pay for it.
You would never see that your code has bugs until you try to prove it. Theorem provers really help you in navigating some remote corners, which otherwise would be very difficult (almost next to impossible). I always get this feeling when I am trying to prove something.
I open sourced one my Coq projects [1] about computing group generators in a verifiable way (FIPS 186-4 A.2.3 and A.2.4) [1], useful for may application but my motivation is voting.
[1]
Is there any work where someone has formalised a differential privacy algorithm in Coq and extracted OCaml from the Coq formalisation and ran the extracted code on some dataset?
I happen to meet a big professor today who is charging 80k USD per week for coming up with invariant for smart contract for many solidity contracts. He tried to hire many people in audience bit everyone was vocal against cryptocurrency