Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Analyzing Programs with Z3

    Compose Conference

    2 HN recommenders · recommended in 3 months, 2016–2021

    YouTube

    43:31 · 24K views · Jul 21, 2016

    Tikhon Jelvis's Compose Conference talk on using the Z3 SMT solver to analyze and verify programs, including checking invariants with bounded loops. He demonstrates verifying programs in a small language by compiling them to Z3.

    HN lists it among the practical entry points for learning Z3 and formal verification.

    Mathematics & Theoretical CSLogic & formal methodsFunctional programmingCompilers, interpreters & program analysis
    1. 1:07:10
      Brian Beckman: Don't fear the Monadjasonofthel33t415K views • 13 years ago
    2. 1:14:52
      Effective Programs - 10 Years of Clojure - Rich HickeyClojureTV176K views • 9 years ago
    3. 34:55
      "Outperforming Imperative with Pure Functional Languages" by Richard FeldmanStrange Loop Conference98K views • 5 years ago
    4. 1:10:16
      Saša Jurić - Parsing from first principles - WebCamp Zagreb 2019WebCamp Zagreb6.3K views • 6 years ago
    5. 1:02:26
      Solving Problems the Clojure Way - Rafal DittwaldClojure/north87K views • 7 years ago
    6. 36:14
      Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg RosenblattClojureTV7.9K views • 9 years ago
    7. 40:50
      Ruby Manor 3 - Programming with Nothing by Tom StuartConfreaks13K views • 13 years ago
    8. 1:05:51
      The Functional Programmer's Toolkit - Scott WlaschinNDC Conferences79K views • 7 years ago
    9. 51:40
      Domain Modeling Made Functional - Scott WlaschinNDC Conferences71K views • 9 years ago
    10. 1:12:56
      Lecture 1A: Overview and Introduction to LispMIT OpenCourseWare421K views • 7 years ago
    11. 1:07:22
      Invited Talk - Guy SteeleClojureTV39K views • 9 years ago
    12. 38:36
      "A Little Taste of Dependent Types" by David ChristiansenStrange Loop Conference48K views • 8 years ago
    13. 58:22
      Lecture 1B | MIT 6.001 Structure and Interpretation, 1986MIT OpenCourseWare116K views • 17 years ago
    14. 1:01:39
      "Simple Made Easy" - Rich Hickey (2011)Strange Loop Conference220K views • 5 years ago
    15. 59:23
      28c3: The Science of Insecurity28c342K views • 14 years ago
    16. 1:12:56
      Lecture 1A | MIT 6.001 Structure and Interpretation, 1986MIT OpenCourseWare995K views • 17 years ago
    17. 53:22
      Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim WeirichConfreaks66K views • 13 years ago
    18. 43:23
      Edwin Brady - Idris 2: Type-driven development of Idris | Code Mesh LDN 18Code Sync20K views • 7 years ago
    19. 39:40
      "Type-Driven Program Synthesis" by Nadia PolikarpovaStrange Loop Conference15K views • 8 years ago
    20. 1:03:29
      Maybe Not - Rich HickeyClojureTV181K views • 7 years ago

    3 comments from Hacker News

    1. @buckieJul 2017· in “Show HN: Dharma – Programmable Peer-To-Peer Loans Using Ethereum Smart Contracts”

      ### FV Resources These are few and far between. My paper on it is soup to nuts for how we do it in Pact which, while technical, should be somewhat approachable for most devs to grasp (I tried at least -- representing a program as equations is just an abstract concept). Until it comes out, the best one I've found as an entry point was the approach they use in Cryptol: this video . Cryptol, generally is a great project to look to for guidance. We're not going with the interactive approach. An EDSL in the docstrings is our approach so that you can pull a contract from the chain (pact is interpreted so the code on chain is the code that executes... well after it gets inlined and validated) and do the verification for yourself. Pact inlines at module creation/update time as a safety feature -- this way if a dep upgrades the code your contract runs doesn't change though the dep can revoke your code's right to access its tables/data until you update your contract. The "no leftpad" approach to deps. All the imported code that's pure, however, still works. This way, when you are building a module, you know that the code you formally verified/tested against is the only code that will ever run (until you update it). ### Whitepapers Thanks for the offer but I've already got enough people looking at them currently and we're keeping them confidential for now... a glaring stupid mistake would be embarrassing. Subscribe to the mailing list on kadena.io and you'll get updated with them the secon

      RecommendsView on HN
    2. @tikhonjAug 2016· in “Z3 SMT solver interactive tutorial”

      If you want a fun example of using Z3, I gave a talk recently that walks you through verifying programs in a tiny little imperative language by compiling them to Z3 formulas. It's easier than it sounds! It was recorded [1] and I have example code and additional resources (papers, etc) on my site [2]. [1]: this video [2]: [LINK] If you want to do more, you can extend the same process to synthesizing programs, not just verifying them. It doesn't scale too far, but otherwise it's like magic.

      RecommendsView on HN
    3. @philzookJan 2021· in “Software Verification and Analysis Using Z3”

      These are other good resources: - rise4fun [LINK] - [LINK] - Programming Z3 - [LINK] - Nikolaj Bjorner's tutorial [LINK] - Hakank's examples [LINK] - Yurichev's book "SMT by Example" [LINK] - [LINK] - this video Tikhon Jelvis - Analyzing Programs with Z3 - [LINK] - Nadia Polykarpova on Z3 - SAT SMT school [LINK] - Emina Torlak's course [LINK] - Lindsey Kuper - SMT Solving and Solver-Aided Systems [LINK] - [LINK]

      CitesView on HN