I am trying to learn agda. However, I got a problem. All the tutorials which I found on agda wiki are too complex for me and cover different aspects of programming. After parallel reading of 3 tutorials on agda I was able to write simple proofs but I still don't have enough knowledge to use it for real word algorithm correctness.
Can you recommend me any tutorials on the subject? Something similar to Learn Yourself a Haskell but for Agda.
Agda is hard. After some time, though, Agda's inherent awesomeness comes to the fore, and it all just clicks. If you encounter obstacles in your Agda learning, don't be discouraged!
Because of strong typing and dependent types, Agda can be used as a proof assistant, allowing to prove mathematical theorems (in a constructive setting) and to run such proofs as algorithms.
AGDA is a lead member of the International Council of Graphic Design Organisations, forming a global network of 187 member associations in 56 countries and consultative status with UNESCO, UNIDO, ISO and WIPO. AGDA was founded in June 1988 by a small, dedicated group of Melbourne-based designers.
When I started learning Agda about a year ago I think I tried all available tutorials and each taught me something new.
You should probably give Coq a try, because it has a larger user base and there are two nice books available for it:
Software Foundations is also very nice.
The nice thing is that the theories Agda and Coq are based on are somewhat similar, so many examples can be translated from one to another. Programming in Martin-Löf's Type Theory is a really nice and readable introduction to the dependent type theory, it can clear some things for you.
It would help to know what do you mean by "real world algorithms". Many example developments are described in papers which mention Agda.
Conor McBride gave a great series of lectures last year on dependently-typed programming using Agda. It's a good place to go if you want a break from pouring through terse tutorials on the topic. I believe there are also accompanying exercises.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With