Best Logic & formal methods Videos
「Logic & formal methods」下面有33部被不同的人、在不同月份推荐过的视频。挑的时候先看对象:入门6部,适合还没学过的人;进阶18部,适合已经懂术语的人;普通向6部,按兴趣就能看;更硬的3部,留给想看推导或细节的人。这一类数量最多的是演讲,所以它们的共同点是一位讲者把一个判断讲完,例子是为了撑住这个判断。常出现的频道包括Strange Loop Conference、jasonofthel33t、Veritasium。目录给这个主题划的范围是:Logic and formal verification: proof assistants, Coq, Lean, TLA+, type theory and proofs, SAT solvers, model checking, program correctness, foundations of mathematics, set theory.如果只看三部,就从《Brian Beckman: Don't fear the Monad》开始,它负责把问题讲出画面;然后看《28c3: The Science of Insecurity》,换一种讲法或例子;最后看《"Propositions as Types" by Philip Wadler》,留给已经有基础的人。页面按每页24部切开,顺序看的是被推荐跨越了多少个月,不是播放量。每条标题下面那一句是这部片子自己的内容说明,用来区分它在讲定义、过程、演示还是观点。点进去能看到推荐原话、原文链接和适合谁看。看的时候把强烈推荐当成有人明确叫你去看,把引用当成只是拿来举例,把批评留下来对照,不要把每条评论都当成同一力度。

Brian Beckman: Don't fear the Monad
Microsoft's Brian Beckman gives an hour-long, whiteboard-style walk through monads, building from function composition and monoids using school-level math.

28c3: The Science of Insecurity
Meredith Patterson and Sergey Bratus argue that networked software stays insecure because protocols and inputs are too complex to recognize safely.

"Propositions as Types" by Philip Wadler
Philip Wadler's Strange Loop talk on Propositions as Types, the link between logic and computation (the Curry-Howard correspondence).

Math's Fundamental Flaw
Veritasium's explainer on Godel's incompleteness theorems and the limits of mathematical proof, tracing set theory, Hilbert's program and the road to Turing and modern computing.

The Banach–Tarski Paradox
Vsauce's roughly 24 minute explainer on the Banach-Tarski paradox, building from infinity and set theory to the decomposition of a sphere into pieces that form two spheres.

The Future of Mathematics?
Mathematician Kevin Buzzard explains why he believes the Lean theorem prover will shape the future of mathematics, and describes digitizing his university curriculum in Lean with undergraduates, plus the cultural challenges.

Leslie Lamport: Thinking Above the Code
Leslie Lamport argues that programmers, like architects, should write rigorous specifications before coding, especially for concurrent and distributed systems.

How To Count Past Infinity
Vsauce's Michael Stevens takes viewers past infinity using transfinite numbers, ordinals and cardinals, with input from mathematician Hugh Woodin.

"Finding bugs without running or even looking at code" by Jay Parlar
Jay Parlar's Strange Loop talk shows how model checkers such as Alloy can find complex bugs in a system's design without running or reading any code.

Edwin Brady - Idris 2 - Type-driven Development of Idris
Edwin Brady, creator of Idris, presents Idris 2 and demonstrates type-driven development, where the compiler assists by filling holes and suggesting implementations from types.

Infinity is bigger than you think - Numberphile
Numberphile's James Grime explains Cantor's result that some infinities are bigger than others, including why the reals outnumber the integers.

2017 ACM PPoPP Keynote: It's Time for a New Old Language
Guy Steele's PPoPP 2017 keynote surveying the history of computer science metanotation, including BNF, inference rules, and overline notation.

Edwin Brady - Idris 2: Type-driven development of Idris | Code Mesh LDN 18
Edwin Brady presents Idris 2, a rewrite of the Idris dependently typed language, and shows type-driven development in practice.

"A (Not So Gentle) Introduction To Systems Programming In ATS" by Aditya Siram
Aditya Siram introduces ATS, a statically typed ML-like language that compiles to C and offers type-safe pointer arithmetic and a full proof language.

Hillel Wayne - Beyond Unit Tests: Taking Your Testing to the Next Level - PyCon 2018
Hillel Wayne's PyCon 2018 talk on testing beyond pytest and mypy.

Lec 1 | MIT 6.042J Mathematics for Computer Science, Fall 2010
The first lecture of MIT 6.042J Mathematics for Computer Science, taught by Tom Leighton, introducing mathematical proofs.

What if Current Foundations of Mathematics are Inconsistent? | Vladimir Voevodsky
Vladimir Voevodsky's IAS lecture starts from Godel's second incompleteness theorem to explore whether first-order arithmetic could be inconsistent.

"Tackling Concurrency Bugs with TLA+" by Hillel Wayne
Hillel Wayne's Strange Loop talk introducing TLA+ as a specification language for finding concurrency bugs in designs.

MIT Godel Escher Bach Lecture 1
The first lecture of an MIT course on Douglas Hofstadter's Godel, Escher, Bach, covering themes like self-reference, recursion and incompleteness.

A Tour of Prolog
Markus Triska tours Prolog's most distinctive features, including its use as a database and query language, rule processing, constraint solving and compile-time rewriting.

Philip Wadler - Propositions as Types (Lambda Days 2016)
Philip Wadler's Lambda Days talk on propositions as types, the link between logic and computation that underlies theorem provers and programming language design.

Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt
A Clojure/conj 2016 talk demoing Barliman, a prototype smart editor that does program synthesis.

"Type-Driven Program Synthesis" by Nadia Polikarpova
Nadia Polikarpova's Strange Loop talk on program synthesis driven by refinement types, as in Synquid.

"A Little Taste of Dependent Types" by David Christiansen
David Christiansen gives a Strange Loop 2018 introduction to dependent types, where one language serves for both compile-time and run-time code and programs unite with proofs.