779 karma · joined September 15, 2018
The Lean language is known to be equivalent to ZFC + {existence of n < omega inaccessible cardinals}, which is roughly the common language of mathematics. The actual implementation of the kernel _may_ have bugs, but that's sort of separate from the language definition.
The sentiment I see for the purpose of Lean now and in the near future is for more collaborative mathematics. Theorems and structures are more transparent and concrete (the code is right there). Results are more consumable. The community does not seem to see its main purpose being a way to quell doubts of a paper proof.
> various stacks of libraries that other humans have written
If you're referring to mathlib here, I'm not sure this is correct. As again all mathlib code compiles down to code that is processed by the kernel.
Indeed this is reinforced by the draft paper on the website [0]:
> Lean is a large project, but one need only trust its kernel to ensure that accepted proofs are correct. If a tactic were to output an incorrect proof term, then the kernel would have the opportunity to find this mistake before the proof were to be accepted.
In another life maybe.
However, that's from a sampled drum beat. I generally agree though that this generated snippet doesn't remind me of Aphex Twin much at all.
It's a lot harder than I expected. Especially since the terminal has no notion of focus, and with Rust it's really hard to not just clone everything you get your hands on when writing a UI library. The borrow checker really feels like it gets in the way of features like signals [1], and partial re-renders.
[0]: https://docs.rs/intuitive/latest/intuitive/ [1]: https://preactjs.com/guide/v10/signals/
- Seven trees in one [0], a paper showing a bijection between binary trees and seven-tuples of binary trees.
- The algebra of algebraic data types [1] discusses Taylor expansions of data types.
- Differentiation of higher-order types [2] is commenting on OP's paper.
I used to be really interested in type theory, but haven't had as much time to explore it, but over the years I've saved these links (and the one posted).
[0]: https://arxiv.org/pdf/math/9405205.pdf
[1]: https://codewords.recurse.com/issues/three/algebra-and-calcu...
[2]: http://conal.net/blog/posts/differentiation-of-higher-order-...
Disclaimer: Version 0.6.x has a pretty severe flaw where the constraints around hook order are way too strict, and this also prevents conditional renders [1]. I'm working on a full rewrite which will be released as version 0.7.0, which exists on github as a branch right now [2]. Docs also exist for an alpha version of 0.7.0 [3].
[0]: https://docs.rs/intuitive/latest/intuitive/
[1]: https://github.com/enricozb/intuitive/issues/4
[2]: https://github.com/enricozb/intuitive/tree/0.7.0
[3]: https://docs.rs/intuitive/0.7.0-alpha.0/intuitive/index.html
Right now it's in between a proof-of-concept and an alpha version of the crate. I'm in the process of re-writing one of my TUI apps using Intuitive, and so far it has proven itself as a way to greatly reduce the amount of code necessary for a TUI.
I would be grateful for any feedback on the idea, the design, and/or the implementation. I hope it's well-received!
There are also (unofficial) iOS and Android clients that sync to a git repo.
> We are currently offline for maintenance
On https://stackoverflow.com/, but I see nothing on https://stackstatus.net/