Systemy wspomagania dowodzenia
Transkrypt
Systemy wspomagania dowodzenia
Paweł Marczewski Systemy wspomagania dowodzenia jak wytłumaczyć matematykę komputerowi Formalne dowody Zasady są bardzo proste... aksjomaty systemu hilbertowskiego, Wikipedia ...ale dowody mogą być długie http://us.metamath.org, Logicomix: An Epic Search for Truth Idealne zadanie dla komputera (demonstracja) Potem... ● takie proste rzeczy potrafi "auto" ● ciągle trzeba komputerowi podpowiadać ● czytelniejsze dowody trudniej pisać Moje wrażenia ● niezła zabawa! ● trzeba dobrze rozumieć, co chcemy napisać ● trochę jak programowanie, ale nie do końca Programming in Lisp is like playing with the primordial forces of the universe. It feels like lightning between your fingertips. ● tu można pod palcami czuć Prawdę :) Glenn Ehrlich, http://cooking-with-lisp.blogspot.com/2004/05/my-road-to-lisp-answer.html Trzeba dobrze rozumieć I have this sort of statement: the difference between science and art is that science is something that we understand well enough to explain it to a computer, and art is everything else. - Donald Knuth ● formalizując matematykę, można zrozumieć ją lepiej ● z drugiej strony: co z dowodami, które rozumie tylko komputer? (tw. o czterech kolorach) Ciekawy pomysł - ProofPeer ● systemów i formalizmów jest wiele ● jak ułatwić innym korzystanie z naszej pracy? ● pomysł: wspólna platforma, "GitHub dla matematyków" Inne zastosowanie: dowodzenie poprawności programów ● statyczne typy (int f(int a, char b)) usuwają całą klasę błędów ● dowodzenie pozwala to uogólnić ● jest nawet formalnie zweryfikowany kompilator C ● proof-carrying code: alternatywa dla podpisywania kodu Dziękuję za uwagę pytania?