if i had to describe Lean in a few sentences, i’d say that in Lean, each statement you’d think of as boolean (e.g. “is X equal to Y?”) is itself a type. so you can construct proofs, which are objects *of* that type. so a function can accept a number X *and also* a proof of “X is even” or “X > 10”