Agda 入門@ProofSummit 2011

4,011 views
3,944 views

Published on

対話的定理証明支援系 Agda の紹介です

Published in: Technology
1 Comment
8 Likes
Statistics
Notes
  • 複数の誤りとその正答をお寄せいただいていますが、このスライドには反映されておりません。どうぞご留意ください。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
4,011
On SlideShare
0
From Embeds
0
Number of Embeds
58
Actions
Shares
0
Downloads
43
Comments
1
Likes
8
Embeds 0
No embeds

No notes for slide

Agda 入門@ProofSummit 2011

  1. 1. Agda @ikegami _ _Proof Summit 2011 2011-09-25
  2. 2. Agda• • = • =• • tactic
  3. 3. Agda• tactic • = • = • = • Agda • Agda
  4. 4. UniverseUnicode subscriptSet1 Set1
  5. 5. TAB
  6. 6. TAB
  7. 7. TAB
  8. 8. TAB
  9. 9. TAB
  10. 10. TAB
  11. 11. TAB
  12. 12. ℕ ℕ ℕ ℕ
  13. 13. ℕ ℕtotal
  14. 14. Hidden arguments
  15. 15. lambda
  16. 16. Unicode / ASCII UTF8
  17. 17. mixfix ℕ ℕ ℕ
  18. 18. mixfix
  19. 19. ℕ∷ ℕ
  20. 20. ℕ∷ ℕ
  21. 21. ℕ∷ ℕ
  22. 22.
  23. 23. Agda AgdaA BAA BA B
  24. 24. Proposition as Set• • proof object •
  25. 25. A B• • •
  26. 26. :A A
  27. 27. Agda AgdaA BAA BA B
  28. 28. A• • •
  29. 29. Agda AgdaA BAA BA B
  30. 30. disjoint union ⊎ ⊎ ⊎
  31. 31. Agda AgdaA BAA B ⊎A B
  32. 32. sigma
  33. 33. times
  34. 34. Agda AgdaA BAA B ⊎A B
  35. 35. • double negation elimination •• Law of the excluded middle • ⊎•• etc.
  36. 36. ℕ ℕ
  37. 37. Agda
  38. 38. forall ℕ ℕ ℕ
  39. 39. forall ℕ ℕ ℕ
  40. 40. Hidden argument ℕ m
  41. 41. Hidden argument ℕ m
  42. 42. let where
  43. 43. ()
  44. 44. wildcard
  45. 45. with
  46. 46. dot ℕ ℕ
  47. 47. dot ℕ ℕ ℕ
  48. 48. dot ℕ ℕ ℕm
  49. 49. dot ℕ ℕ ℕ
  50. 50. dot ℕ ℕ ℕ
  51. 51. dot ℕ ℕ ℕ
  52. 52. dot ℕ ℕ ℕ
  53. 53. mutual Agda 2.2.12
  54. 54. mutual Agda 2.2.12
  55. 55. mutual Agda 2.2.12
  56. 56. postulateAgda
  57. 57. postulateAgda
  58. 58. postulateAgda
  59. 59. parametrized module
  60. 60. Agda moduleUlf (2006) 30 …
  61. 61. module lib/src/Data/Nat.agda (add-to-list ʻagda2-include-dirs “.../lib/src”)Agda .../lib/src
  62. 62. module MyProject/Foo.agda(add-to-list ʻagda2-include-dirs “.../MyProject”)
  63. 63. open import• import • Nat.zero• open import • zero
  64. 64. module using
  65. 65. module renaming
  66. 66. module hiding ℕ
  67. 67. module as
  68. 68. Agda
  69. 69. agda2-goal-and-context Ctrl-c Ctrl-,
  70. 70. agda2-goal-and-context- and-inferred Ctrl-c Ctrl-.
  71. 71. agda2-refine Ctrl-c Ctrl-r
  72. 72. agda2-refine Ctrl-c Ctrl-r
  73. 73. /• Ctrl-C Ctrl-l (agda2-load)• Ctrl-C Ctrl-x Ctrl-r (agda2-restart)
  74. 74. compile ⊤C-c C-x C-c (agda2-compile) MAlonzo
  75. 75. automation proving Ctrl-c Ctrl-a Agsy
  76. 76. automation proving Ctrl-c Ctrl-a Agsy
  77. 77. automation proving Ctrl-c Ctrl-a Agsy
  78. 78. advanced topic
  79. 79. equalityLeibnitz equality
  80. 80.
  81. 81.
  82. 82.
  83. 83. rewrite ℕ
  84. 84. rewrite ℕ
  85. 85. rewrite ℕ
  86. 86. rewriteℕ
  87. 87. rewriteℕ
  88. 88. rewriteℕ
  89. 89. rewrite
  90. 90. equality reasoning ⟨ ⟩∎
  91. 91. equality reasoning ⟨ ⟩∎
  92. 92. equality reasoning ⟨ ⟩∎
  93. 93. tactic
  94. 94. emptiness check ℕ ℕ Agda 2.2.12 Feature
  95. 95. --universe-polymorphism Universe AgdaAgda 2.2.12
  96. 96. agda• --compile • MAlonzo• --html • HTML• •• etc.
  97. 97. Agda release notes• Agda 2-2-0 (2009-03-18) • Sized type
  98. 98. sized typesℕ ℕ ℕℕ ℕ ℕ
  99. 99. sized typesℕ ℕ ℕℕ ℕ ℕ
  100. 100. Sized Type
  101. 101. Agda release notes• Agda 2.2.10 (2011-02-21) • --without-K flag • irrelevant declarations • termination checker with projections • compiler backend • Epic • MAlonzo
  102. 102. Epic• Epic • http://www.cs.st-andrews.ac.uk/~eb/ epic.php• Agda Epic• Epic C
  103. 103. MAlonzo • Agda • Haskell (!?)Agda Haskell
  104. 104. (experimental)• JavaScript Compiler Backend• Ruby Compiler Backend • https://github.com/larrytheliquid/agda-rb
  105. 105. Agda release notes• Agda 2.2.12 (current development) • coming soon (maybe within this week?) • instance arguments {{ }} • pattern matching lambda
  106. 106. Agda in browser• Agda + JavaScript Compiler• Functional Reactive Programming• Example : Clock
  107. 107. DemoKeyCastr.appEmacs.app (Command + T )[1B_Maze-Black 25pt font]
  108. 108. • Agda standard library • irrelevant declaration • projection and termination • well-founded induction • instance arguments • coinduction • pattern matching lambda• --without-K • reflection • etc. (too much)

×