Upcoming SlideShare
×

# Agda 入門＠ProofSummit 2011

4,011 views
3,944 views

Published on

Published in: Technology
1 Comment
8 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• 複数の誤りとその正答をお寄せいただいていますが、このスライドには反映されておりません。どうぞご留意ください。

Are you sure you want to  Yes  No
Views
Total views
4,011
On SlideShare
0
From Embeds
0
Number of Embeds
58
Actions
Shares
0
43
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. mixﬁx ℕ ℕ ℕ
18. 18. mixﬁx
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-reﬁne Ctrl-c Ctrl-r
72. 72. agda2-reﬁne 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
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 ﬂag • 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
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 • reﬂection • etc. (too much)