is constructive logic relevant for computer science
play

Is Constructive Logic relevant for Computer Science? Thorsten - PowerPoint PPT Presentation

Is Constructive Logic relevant for Computer Science? Thorsten Altenkirch University of Nottingham BCTCS 05 p.1/16 Birth of Modern Mathematics BCTCS 05 p.2/16 Birth of Modern Mathematics Isaac Newton (1642 - 1727) BCTCS 05 p.2/16


  1. Is Constructive Logic relevant for Computer Science? Thorsten Altenkirch University of Nottingham BCTCS 05 – p.1/16

  2. Birth of Modern Mathematics BCTCS 05 – p.2/16

  3. Birth of Modern Mathematics Isaac Newton (1642 - 1727) BCTCS 05 – p.2/16

  4. Birth of Modern Mathematics Isaac Newton (1642 - 1727) 1687: Philosophiae Naturalis Principia Mathematica BCTCS 05 – p.2/16

  5. 19/20th century: Foundations? BCTCS 05 – p.3/16

  6. 19/20th century: Foundations? Frege (1848-1925) Russell (1872-1970) BCTCS 05 – p.3/16

  7. � 1925: ZF set theory Zermelo (1871-1953) Fraenkel (1891-1965) BCTCS 05 – p.4/16

  8. � 1925: ZF set theory Zermelo (1871-1953) Fraenkel (1891-1965) End of story ? BCTCS 05 – p.4/16

  9. Mathematics is universal The foundations which are good for mathematical reasoning within natural sciences are equally useful in Computer Science. BCTCS 05 – p.5/16

  10. Constructivism? BCTCS 05 – p.6/16

  11. ✁ Constructivism? Computer Science focusses on constructive solutions to problems. BCTCS 05 – p.6/16

  12. ✁ ✁ Constructivism? Computer Science focusses on constructive solutions to problems. Classical Mathematics is based on the platonic idea of truth. BCTCS 05 – p.6/16

  13. ✁ ✁ ✁ Constructivism? Computer Science focusses on constructive solutions to problems. Classical Mathematics is based on the platonic idea of truth. Constructive Mathematics is based on the notion of evidence or proof. BCTCS 05 – p.6/16

  14. BHK: Programs are evidence BCTCS 05 – p.7/16

  15. BHK: Programs are evidence Brouwer (1881-1966) Heyting (1898-1980) Kolmogorov (1903-1987) BCTCS 05 – p.7/16

  16. ✝ ✟ ✝ ✞ ✟ ✠ ✡ ☛ ✆ ✠ ✆ ✠ ✞ ✆ ✂ ✄ ✂☎✄ ✂☎✄ , classically BCTCS 05 – p.8/16

  17. BCTCS 05 – p.8/16 ✘ ✙ ✙ ✘ ✘ ✙ ✙ ✘ ✙ ✘ ✘ ✘ ✙ ✘ ✙ ✘ ✘ ✙ ✘ ✘ ✘ ✘ ✘ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✘ ✘ ✙ ✙ ✙ ✙ ✙ ✙ ✘ ✙ ✙ ✙ ✘ ✆ ✞ ✍ ✌ ☞ ✠ ✟ ✄ ✂ ✆ ✠ ✘ ✝ ✆ ☛ ✡ ✠ ✟ ✞ ✝ ✎ ✏ ✔ ✘ ✖ ✗ ✏ ✎ ✍ ✑ ☞ ✓ ✌ ✑ ☞ ✏ ✖ ✕ ✍ ✔ ✌ ✘ , classically ✂☎✄ ☞✒✑ ✂☎✄

  18. BCTCS 05 – p.8/16 ✘ ✙ ✙ ✙ ✙ ✘ ✙ ✙ ✘ ✘ ✘ ✙ ✙ ✙ ✘ ✘ ✙ ✙ ✘ ✙ ✘ ✘ ✘ ✙ ✙ ✘ ✙ ✍ ✕ ✍ ✓ ✔ ✕ ✌ ✓ ✗ ✚ ✕ ✔ ✙ ✌ ✓ ✁ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✙ ✆ ✘ ✘ ✂ ✘ ✏ ✎ ✍ ✌ ☞ ✠ ✟ ✄ ✆ ✔ ✞ ✠ ✝ ✆ ☛ ✡ ✠ ✟ ✞ ✝ ✌ ✓ ✍ ✎ ✙ ✘ ✘ ✙ ✘ ✘ ✘ ✘ ✘ ✖ ✗ ✕ ✏ ✖ ✍ ✑ ☞ ✔ ✌ ✑ ☞ ✏ , classically The same truth table shows that ☞✒✑ ☞✒✑ ✂☎✄ ☞✒✑ ☞✒✑ ✂☎✄

  19. BHK semantics BCTCS 05 – p.9/16

  20. ✤ ✏ ✕ ☞ ✑ ✌ ✦ ✓ ✣ ✁ ✥ ✑ ✦ BHK semantics Evidence for is given by pairs: ✛✢✜ ✥★✧ BCTCS 05 – p.9/16

  21. ✔ ✯ ✥ ✌ ✔ ☞ ✦ ✌ ✁ ☞ ✏ ✁ ✕ ✦ ✓ ✛ ✏ ✦ ✑ ✥ ✤ ✣ ✥ ✰ ✌ ✑ ☞ ✦ ✪ BHK semantics Evidence for is given by pairs: ✛✢✜ ✥★✧ Evidence for is tagged evidence for or . ✩✫✪ ✬✮✭ ✬✮✭✱ BCTCS 05 – p.9/16

  22. ✔ ✏ ✌ ✥ ✤ ✛ ✪ ✥ ✁ ✦ ✣ ☞ ✯ ✥ ✰ ☞ ✦ ✁ ✌ ☞ ✏ ✏ ✗ ✌ ✑ ✦ ☞ ✑ ✌ ✲ ✥ ✣ ✤ ✥ ✦ ✌ ✏ ✓ ✏ ✦ ✕ ✁ ✦ ☞ ✔ ✗ BHK semantics Evidence for is given by pairs: ✛✢✜ ✥★✧ Evidence for is tagged evidence for or . ✩✫✪ ✬✮✭ ✬✮✭✱ Evidence for is a program constructing evidence for from evidence for . ✛✢✜ BCTCS 05 – p.9/16

  23. ✝ ✟ ✝ ✞ ✟ ✠ ✡ ☛ ✆ ✠ ✆ ✠ ✞ ✆ ✂ ✄ ✂☎✄ ✂☎✄ , constructively BCTCS 05 – p.10/16

  24. ✓ ✯ ✕ ✔ ✆ ✥ ✑ ✶ ✕ ✳ ✓ ✥ ✧ ✱ ✦ ✑ ✕ ✏ ✭ ✯ ✓ ✬ ✦ ✕ ✳ ✓ ✥ ✧ ✏ ✦ ✥ ✕ ✂ ✝ ✞ ✟ ✠ ✡ ☛ ✆ ✕ ✝ ✠ ✞ ✆ ✄ ✓ ✟ ✠ ✶ ✓ ✴ ✥ ✑ ✓ ✦ ✔ ✶ ✕ ✲ ✶ ✂☎✄ ✂☎✄ , constructively ✳✵✴ ✬✮✭ ✬✮✭ ✥★✧ ✬✮✭✱ ✥★✧ BCTCS 05 – p.10/16

  25. ✑ ✦ ✔ ✓ ✥ ✆ ✶ ✕ ✳ ✓ ✥ ✧ ✓ ✯ ✕ ✦ ✏ ✱ ✯ ✓ ✭ ✦ ✕ ✳ ✓ ✥ ✧ ✬ ✶ ✕ ✑ ✏ ✄ ✝ ✞ ✟ ✠ ✡ ☛ ✆ ✁ ✝ ✠ ✞ ✆ ✂ ✟ ✥ ✠ ✕ ✶ ✴ ✥ ✑ ✓ ✦ ✔ ✶ ✕ ✲ ✓ ✕ ✂☎✄ ✂☎✄ , constructively ✳✵✴ ✬✮✭ ✬✮✭ ✥★✧ ✬✮✭✱ ✥★✧ The program is invertible, because the right hand sides are patterns. BCTCS 05 – p.10/16

  26. ✶ ✕ ✔ ✓ ✥ ✑ ✆ ✕ ✳ ✓ ✥ ✧ ✶ ✯ ✦ ✏ ✦ ✓ ✯ ✓ ✱ ✦ ✕ ✳ ✓ ✥ ✧ ✭ ✶ ✕ ✕ ✑ ✬ ✄ ✝ ✞ ✟ ✠ ✡ ☛ ✆ ✁ ✝ ✠ ✞ ✆ ✂ ✟ ✥ ✠ ✁ ✕ ✴ ✥ ✑ ✓ ✦ ✔ ✶ ✕ ✲ ✓ ✏ ✂☎✄ ✂☎✄ , constructively ✳✵✴ ✬✮✭ ✬✮✭ ✥★✧ ✬✮✭✱ ✥★✧ The program is invertible, because the right hand sides are patterns. This shows that the types are isomorphic . BCTCS 05 – p.10/16

  27. Predicate logic BCTCS 05 – p.11/16

  28. ✾ ✿ ✿ ✽ ✴ ✺ ✽ ✸ ✴ ✁ Predicate logic Evidence for is a function which assigns to each ✷✹✸ ✺✼✻ evidence for . BCTCS 05 – p.11/16

  29. ✸ ✽ ✧ ✸ ✽ ❁ ✴ ✁ ❀ ✕ ✁ ✿ ✿ ✴ ✿ ✺ ✴ ✿ ✺ ✾ ❁ ✸ ✽ ✴ ✴ ✽ ✿ ✓ Predicate logic Evidence for is a function which assigns to each ✷✹✸ ✺✼✻ evidence for . Evidence for is a pair where and . ✺✼✻ BCTCS 05 – p.11/16

  30. ✴ ✽ ✓ ❁ ✸ ✽ ✕ ✁ ✸ ❀ ✿ ✁ ✴ ✿ ✺ ✧ ✺ ✴ ✿ ❁ ✾ ✴ ✸ ✽ ✽ ✴ ✿ ✁ ✿ Predicate logic Evidence for is a function which assigns to each ✷✹✸ ✺✼✻ evidence for . Evidence for is a pair where and . ✺✼✻ We need dependent types ! BCTCS 05 – p.11/16

  31. Propositions = Types BCTCS 05 – p.12/16

  32. Propositions = Types Per Martin-L¨ of BCTCS 05 – p.12/16

  33. ✁ Propositions = Types Per Martin-L¨ of Martin-L¨ of Type Theory BCTCS 05 – p.12/16

  34. ✁ ✁ Propositions = Types Per Martin-L¨ of Martin-L¨ of Type Theory Implementations: NuPRL, LEGO, ALF , COQ, AGDA, Epigram . . . BCTCS 05 – p.12/16

  35. ❂ BCTCS 05 – p.13/16

  36. ❂ ☞ ☞ ❄ ✗ ✏ ☞ ✁ ✏ ❃ ☞ ❃ ✔ ☞ We cannot prove , where , for an undecided proposition . BCTCS 05 – p.13/16

  37. ❂ ❃ ❅ ■ ❋ ● ✻ ❈ ■ ✴ ❅ ✁ ✁ ☞ ✔ ❄ ✗ ✏ ☞ ✏ ☞ ❃ ☞ ❃ ✔ ☞ We cannot prove , where , for an undecided proposition . ✷✹❅ ❆✫❇ ❉✮❊ ❋❍● ❉✮❊ BCTCS 05 – p.13/16

  38. ❂ ☞ ❅ ■ ● ❋ ❃ ✔ ❅ ■ ✻ ❈ ✴ ✁ ✁ ✔ ☞ ❃ ☞ ❃ ☞ ☞ ✏ ✏ ✗ ❄ We cannot prove , where , for an undecided proposition . ✷✹❅ ❆✫❇ ❉✮❊ ❋❍● ❉✮❊ is provable, i.e. Prime is decidable . BCTCS 05 – p.13/16

  39. ❂ ❋ ❃ ✔ ❅ ■ ■ ❅ ✻ ❈ ✁ ✴ ✁ ✁ ☞ ● ❄ ✗ ✏ ☞ ✏ ☞ ❃ ☞ ❃ ✔ ☞ We cannot prove , where , for an undecided proposition . ✷✹❅ ❆✫❇ ❉✮❊ ❋❍● ❉✮❊ is provable, i.e. Prime is decidable . Indeed, the proof is the program which decides Prime. BCTCS 05 – p.13/16

  40. ❂ ✴ ✁ ✔ ❃ ❋ ● ■ ❅ ✁ ✁ ❈ ✻ ✻ ❑ ❈ ❅ ✔ ❃ ❑ ❈ ❅ ■ ❅ ❈ ✔ ☞ ❃ ☞ ☞ ✏ ☞ ✏ ✗ ❄ ☞ ✁ ✴ ❃ We cannot prove , where , for an undecided proposition . ✷✹❅ ❆✫❇ ❉✮❊ ❋❍● ❉✮❊ is provable, i.e. Prime is decidable . Indeed, the proof is the program which decides Prime. ✷✹❅ ❆✫❇ ❏✫❇ ❏✫❇ BCTCS 05 – p.13/16

  41. ❂ ✴ ✁ ✔ ❃ ❋ ● ■ ❅ ✁ ✁ ❈ ✻ ✻ ❑ ❈ ❅ ✔ ❃ ❑ ❈ ❅ ■ ❅ ❈ ✔ ☞ ❃ ☞ ☞ ✏ ☞ ✏ ✗ ❄ ☞ ✁ ✴ ❃ We cannot prove , where , for an undecided proposition . ✷✹❅ ❆✫❇ ❉✮❊ ❋❍● ❉✮❊ is provable, i.e. Prime is decidable . Indeed, the proof is the program which decides Prime. ✷✹❅ ❆✫❇ ❏✫❇ ❏✫❇ is not provable, because Halt is undecidable . BCTCS 05 – p.13/16

  42. The classical Babelfish BCTCS 05 – p.14/16

  43. The classical Babelfish Classical reasoner says: Babelfish translates to: BCTCS 05 – p.14/16

  44. ☞ ✔ ✌ The classical Babelfish Classical reasoner says: Babelfish translates to: BCTCS 05 – p.14/16

  45. ☞ ✔ ✌ ❃ ✓ ❃ ❃ ✌ ✕ The classical Babelfish Classical reasoner says: Babelfish translates to: ☞✒✑ BCTCS 05 – p.14/16

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend