mathstodon.xyz is one of the many independent Mastodon servers you can use to participate in the fediverse.
A Mastodon instance for maths people. We have LaTeX rendering in the web interface!

Server stats:

3.1K
active users

#Lean4

3 posts3 participants0 posts today

I'm still fumbling about in the dark with Lean, but my goal for my first big project is to implement system F sub omega and prove its type safety. I'm going to try some simpler lambda calculi first, probably, because I fear that which I do not understand.

Question: Does anyone have tips/examples/guides as to how to start to practically describe a type theory? I started out trying to define evaluation and de Bruijn indices etc and got lost in the weeds. Is there a way to operate fully at a higher level, and only really talk about the types? And if I'm only interested in proving the theory, and not with efficient execution, is there a better way for me to represent scopes/contexts?

Some strange behaviour with Lean's evaluation of thunks. I wonder if is intentional that this result in [[forcing]] being printed twice?

Keep in mind that if I do a variation on this without using an inductive type constructor, [[forcing]] is printed only once.

i did a very basic proof for #lean4's batteries module and, despite procrastination on my part, it was merged! github.com/leanprover-communit

PRs are always nerve-racking for me, but i felt like a million bucks when i got the proof right (i looked at the structure! and did things smart way good!)

Co-authored-by: François G. Dorais <fgdorais@gmail.com>
GitHubfeat: prove `Array.toList_erase` (#1101) · leanprover-community/batteries@61dd720Co-authored-by: François G. Dorais <fgdorais@gmail.com>
Replied in thread

@whitequark i don’t really know anything about SMT-LIB but do know something about formal (and first order specifically) logic but this documentation has a long section on quantifiers: philipzucker.com/z3-rise4fun/g

Then it’s much heavier than an SMT solver but is really powerful with good documentation on using quantifiers. I really like it. But it has a heavy emphasis on using tooling and I’m the kind of person who likes rustfmt. lean-lang.org/theorem_proving_

As a step towards computer-formalizing the classification of low-dimensional Lie algebras, we finally formalized our first non-boring theorem in !

If L is a 3-dimensional Lie algebra (over any field) with a one-dimensional commutator subalgebra which is contained in the center of L, then L is isomorphic to the 3D Heisenberg algebra - that is, it has a basis (𝑒₀, 𝑒₁, 𝑒₂) such that the bracket is determined by
[𝑒₁,𝑒₂]=𝑒₀,
[𝑒₀,𝑒₁]=0,
[𝑒₀,𝑒₂]=0.

Now we're working on the analogous results for higher dimensional commutator subalgebras. These are going to be harder because
a) there's no one-size-fits-all classification statement for arbitrary fields, and
b) they rely on certain normal forms of matrices which aren't yet implemented in .