|about 2 months ago||almost 2 years ago|
|GNU General Public License v3.0 or later||Apache License 2.0|
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
kotlin-satlib: SAT solver wrappers for Kotlin
5 projects | reddit.com/r/Kotlin | 13 Jul 2021
Alongside with the SAT solver interface and its extensions, `kotlin-satlib` provides wrappers for native SAT solvers (these days, most of them are written in C/C++) implemented using JNI technology. Currently, the solvers included are: MiniSat, Glucose, Cadical and CryptoMiniSat. Sadly, `kotlin-satlib` won't work out-of-the-box, you have to provide it with some external SAT solver, either in the form of a library or a binary. Luckily, there are build instructions for each of the supported SAT solver, both for Linux and Windows. Checkout the README!
Mathematics: our overlooked ability
1 project | reddit.com/r/agi | 30 Apr 2021
I have spent a good deal of time trying to formalize elementary mathematics and computer science textbooks in the Lean Theorem Prover, and in trying to extend and improve Lean to make the process easier. I have been able to translate entire chapters of several textbooks into Lean in a natural way, with every line of Lean seemingly isomorphic to the informal presentation. However, once in a while I will hit a statement or proof step that may seem simple to me but that requires a major refactor, or adding new features to Lean itself, or just seems like a brick wall. My brain is able to perform massive refactorings of mathematical knowledge and abstractions, synthesize the equivalent of tens of thousands of lines of tricky and performance-critical software, and maybe even expand the logic I am effectively operating in, all in the blink of an eye.
How do I get back into math?
3 projects | reddit.com/r/math | 26 Mar 2021
However, mathlib makes some weird design choices. For example, (semi)groups are defined using multiplicative notation -- and then immediately followed by an entire section giving the exact same definitions using additive notation! The claimed reason for this is that the more abstract approach is inconvenient for automation. I did it in Coq using the abstract approach, and indeed, noticed that doing so broke automation, which I then worked around in various ways. But it's just weird to me as a mathematician to have additive and multiplicative groups be different objects, so I wouldn't want to do it the Lean way come hell or high water. The Lean approach causes practical difficulties as well: you have to prove every theorem about groups twice. In some cases (e.g. product groups), you have to prove every theorem FOUR times. Ugh.
What are some alternatives?
Agda - Agda is a dependently typed programming language / interactive theorem prover.
FStar - A Proof-oriented Programming Language
HoTT - Homotopy type theory
agda-stdlib - The Agda standard library
CoqGym - A Learning Environment for Theorem Proving with the Coq proof assistant
cadical - CaDiCaL SAT Solver
ttlite - A SuperCompiler for Martin-Löf's Type Theory
daisy-nfsd - DaisyNFS is an NFS server verified using Dafny and Perennial.
kotlin-satlib - :moyai: SAT solver wrappers for Kotlin
ipasir - The Standard Interface for Incremental Satisfiability Solving
OEISbot - Automatically posts links to OEIS sequences on Reddit