agda-stdlib
cryptominisat
Our great sponsors
agda-stdlib | cryptominisat | |
---|---|---|
4 | 2 | |
556 | 788 | |
2.0% | - | |
9.3 | 9.7 | |
6 days ago | 6 days ago | |
Agda | C++ | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
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.
agda-stdlib
-
Static Type Safety with Variadic Functions: an Idea and a Question
For further reading, there's a paper on arity generic programming and some solutions using dependent typing in Agda.
-
When do you find it better to use non-ASCII identifiers?
In Rust I have never seen it. However, in Agda it's a convention, and the code looks beautifully https://github.com/agda/agda-stdlib/blob/master/src/Algebra/Lattice/Structures.agda
-
Should programming languages switch to special characters (gliphs) for it's code?
Agda is a good example, as it allows you to define arbitrary Unicode-based operators and names: https://github.com/agda/agda-stdlib/blob/master/src/Data/Product.agda
-
Separating the type and value namespaces?
Most of the times you want the first three arguments to be passed implicitly, not just the first. And the syntax for passing arguments implicitly is the same for the type argument A and the term arguments n and m. (For Agda, see e.g. l.49 here: https://github.com/agda/agda-stdlib/blob/master/src/Data/Star/Vec.agda)
cryptominisat
-
The Silent (R)evolution of SAT
ManySAT: http://www.cril.univ-artois.fr/~jabbour/manysat.htm
It shares short conflict clauses between parallel solvers and achieves superlinear speedup in some cases, e.g., 4 parallel solvers solve faster than one forth of the single solver soolution time.
Short conflict clauses are rare so there is little communication between solvers required.
CryptoMiniSAT: https://github.com/msoos/cryptominisat
Author's goal to have solver that is good in computing range from single CPU up to cluster. Judging from CryptoMiniSAT successes, he has mostly reached the goal.
-
kotlin-satlib: SAT solver wrappers for Kotlin
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!
What are some alternatives?
agdarsec - Total Parser Combinators in Agda
cadical - CaDiCaL SAT Solver
l4v - seL4 specification and proofs
kotlin-satlib - 🗿 SAT solver wrappers for Kotlin
creusot - Creusot helps you prove your code is correct in an automated fashion. [Moved to: https://github.com/creusot-rs/creusot]
xorstr - heavily vectorized c++17 compile time string encryption.
template-agda - An Agda template, configured for Gitpod (www.gitpod.io) to give you pre-built, ephemeral development environments in the cloud.
jnisat - Java JNI bindings for the PicoSat and MiniSat SAT solvers
agda-life - Conway's Game of Life in Agda.
ipasir - The Standard Interface for Incremental Satisfiability Solving
next-700-module-systems - PhD research ;; What's the difference between a typeclass/trait and a record/class/struct? Nothing really, or so I argue.
peekaboo - Simple undetectable shellcode and code injector launcher example. Inspired by RTO malware development course.