Agda
Agda is a dependently typed programming language / interactive theorem prover. (by agda)
lean
Lean Theorem Prover (by leanprover)
DISCONTINUED
Our great sponsors
Agda | lean | |
---|---|---|
9 | 2 | |
1,816 | 1,915 | |
2.0% | - | |
9.6 | 0.0 | |
7 days ago | almost 2 years ago | |
Haskell | C++ | |
LicenseRef-OtherLicense | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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
Posts with mentions or reviews of Agda.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-05-15.
-
I solved collatz, but I have no idea how to write a paper.
Learn how to use a formal proof assistant. Coq and Agda are the most popular. Both allow you to write a proof as a program instead of as a paper, and provide various tools for formally checking your proof.
-
Eli5, What is a proof assistant
Some programming languages are, https://github.com/agda/agda
-
Today, Thanks to this sub Reddit. I discovered 3 awesome new languages....
If you're looking for stuff pushing the boundaries of PL research, Agda (especially Cubical Agda) might be cool to look at. It's got lots of cutting edge stuff in it, pushing the boundaries of what is currently possible with dependent type theory. It's not the only language out there with cubical features (see also: cooltt), but it's probably one of the more fleshed-out implementations in terms of being practically useful. The 1Lab makes heavy use of it. There's also Introduction to Univalent Foundations of Mathematics with Agda that might be interesting to look at too!
- Ask HN: What technology is “cutting edge” in 2022?
- Integer overflow causes Russel's paradox
-
What input method would you prefer for Unicode characters in a neovim plugin?
My best guess is that it has not really been maintained lately, there were only 12 commits in the last 7 years, some of which are just global modifications, which include this file as well: https://github.com/agda/agda/commits/136f85386ec43245745b76f03505bda4f5d1ed3f/src/full/Agda/Interaction/Highlighting/Vim.hs
-
Type in type and HoTT exercises
Also I would suggest is that you import a paradox (e.g., https://github.com/agda/agda/blob/master/test/Succeed/Hurkens.agda) and see what it actually does when you construct values with it that you evaluate or proofs that you use.
-
Trouble with Proving Termination without K
Andrea had some code relaxing these restrictions at the last AIM (cf. "trying to make termination checker accept more definitions --without-K, fixing #4527" in the wrap-up section) but I don't know if it has been merged into master yet.
-
Road to 1.0/ Zig
Significant nit: this isn't true. The whole domain of "high-assurance software" is about this, with examples such as CompCert and seL4. There are tools like Frama-C that support you in proving things about your C; [proof assistants]() that let you extract Haskell, OCaml, or Scheme from proofs so the code is correct by construction; and languages like CakeML, F*, Agda, Idris, ATS... that are both programming languages and proof assistants.
lean
Posts with mentions or reviews of lean.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-03-26.
-
Mathematics: our overlooked ability
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?
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?
When comparing Agda and lean you can also consider the following projects:
FStar - A Proof-oriented Programming Language
HoTT - Homotopy type theory
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
HoleyMonoid - Automatically exported from code.google.com/p/monoid-cont
open-typerep - Open type representations and dynamic types
distributive - Dual Traversable
agda-vim - Agda interaction in vim
miso - :ramen: A tasty Haskell front-end framework
permutation - git import of patrick perry permutations lib from darcs
eliminators - Dependently typed elimination functions using singletons
CoqGym - A Learning Environment for Theorem Proving with the Coq proof assistant
fgl - A Functional Graph Library for Haskell