Zulip Chat Archive

Stream: new members

Topic: Elijah Beregovsky


Elijah Beregovsky (Sep 01 2024 at 14:10):

Hi, everyone!
My name is Elijah and I've just finished my Bachelor's (a weird mix of physics, chemistry and biology) and am now embarking on my Master's. I knew about Lean for a while, but only last week I finally got to learning it, and I'm absolutely in love with it already. The NNG was addictive as heck, and as a result lasted me only two days, and now I want more. (I also immediately saw its power as a teaching tool, because it was the first time I got my younger brothers enthusiastic about maths, and not for lack of trying.)
At the moment I'm looking at the graph theory part of mathlib and I can't help but notice how many very basic undergrad results are missing from there. I would love to contribute! However, my knowledge of the language and the library is not enough to do that yet, so I'd appreciate some pointers. For example, I can't quite understand how one would write an induction on vertex number
PS: I also love combinatorial optimisation and integer sequences, so I also want to look into some OEIS-like theorems

Yaël Dillies (Sep 01 2024 at 14:13):

Welcome! It's always good to have more people interested in graph theory. If you want to contribute, I would suggest you find a self-contained graph theory result with a not-so-long proof. Then we will be able to help you more concretely.

Daniel Weber (Sep 01 2024 at 14:22):

You might also want to take a look at #graph theory

Elijah Beregovsky (Sep 01 2024 at 14:23):

Self-contained as in "not requiring to prove a large number of theorems not already in the library"? Right now I'm trying (and failing miserably. oh well, learning is a process) to prove a couple very basic tree-related theorems that are not in Acyclic. Specifically I want to prove the converse of IsTree.card_edgeFinset -- if the number of edges in a connected graph is one less than the number of its vertices then the graph is a tree. I want to do that by induction on the vertex number, but I can't figure out how to formalise it. (I also feel like I'd need a lemma like "a tree has a leaf vertex" for it, which seems like a useful lemma to have anyway)

Rida Hamadani (Sep 01 2024 at 14:36):

Welcome Elijah, happy to see that you are interested in formalizing graph theory too. Can you post a #mwe of the problem you are facing?

On the other hand, do you want recommendations for such "self-contained" results to work on and contribute?

Elijah Beregovsky (Sep 01 2024 at 14:39):

Rida Hamadani said:

On the other hand, do you want recommendations for such "self-contained" results to work on and contribute?

Yes! Absolutely!

Yaël Dillies (Sep 01 2024 at 14:39):

That sounds like a self-contained result indeed! I would suggest you do something like

set n := Fintype.card V with hn
clear_value n
induction' n using Nat.induction with n ih generalizing V

where V is your type of vertices

Daniel Weber (Sep 01 2024 at 14:45):

Would it be easier to use docs#Fintype.induction_empty_option ?

Yaël Dillies (Sep 01 2024 at 14:47):

Possibly! I would need to see the code to give more precise suggestions

Rida Hamadani (Sep 01 2024 at 14:49):

Elijah Beregovsky said:

Yes! Absolutely!

There is a TODO item in the SimpleGraph/Diam.leam file that I believe is ready to be worked on (sorry can't link, on mobile). The definitions are all there, we might want to add 1 more definition to make the proof cleaner, but also maybe not.

I plan to do this once I'm done with what I'm working on at the moment, but feel free to work on it.

Daniel Weber (Sep 01 2024 at 14:50):

You can do file#Mathlib/Combinatorics/SimpleGraph/Diam to link to it


Last updated: May 02 2025 at 03:31 UTC