Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Coqの紹介 #w8lt

Coqの紹介 #w8lt

w8ltでCoqの紹介をしました

B4bd460c2e559d6c151c0541f2d3f719?s=128

Shohei Yasutake

July 29, 2015
Tweet

Transcript

  1. Coqͷ঺հ W8LT @amutake_s

  2. Coq • ఆཧূ໌ࢧԉܥͷͻͱͭ • ਺ֶతͳ໋୊ͷূ໌ɾϓϩάϥϜͷ࣋ͭੑ࣭ ͷূ໌ͳͲʹ࢖͑Δ

  3. ఆཧূ໌ࢧԉܥ • ਓ͕ؒূ໌Λॻ͘ͷΛखॿ͚ͯ͘͠ΕΔ • ݱࡏͷূ໌ͷঢ়ଶɺԿΛࣔ͞ͳ͚Ε͹͍͚ͳ͍ͷ͔ɺ ͳͲͳͲΛදࣔͯ͘͠ΕΔ • ͪΐͬͱ͚ͩࣗಈূ໌΋ • ਖ਼͍͠ূ໌͔Ͳ͏͔ΛνΣοΫͯ͘͠ΕΔ

    • ࢴͷ্ͷূ໌ͩͱຊ౰ʹਖ਼͍͠ͷ͔Θ͔Βͳ͍͜ͱ΋ ͋Δ
  4. ఆཧূ໌ࢧԉܥͷॏཁੑ • ʮͦͷূ໌ຊ౰ʹਖ਼͍͠ͷʁʯʮͦͷϓϩάϥϜຊ౰ʹ όάͳ͍ͷʁʯ • ࠷ۙͰ͸ɺग़ͯ͘ΔఆཧΛࢴ্Ͱ͸ͳ͘ఆཧূ໌ࢧԉܥ Λ࢖ͬͯܗࣜతʹূ໌͍ͯ͠Δ࿦จ͕૿͖͍͑ͯͯΔ • ఆཧূ໌ࢧԉܥͷ஌͕ࣝڭཆʹͳΔͱ͖͕དྷΔ͔΋ •

    ࿦จ͡Όͳͯ͘΋͍͖ͳΓূ໌Λ౤͚͛ͭΒΕΔ͜ͱ ͕͋ΔΒ͍͠… https://twitter.com/xuwei_k/status/409797442284969984
  5. ఆཧূ໌ࢧԉܥ (Coq) ͷ࣮ྫ • CompCert • CoqͰॻ͔ΕͨCίϯύΠϥɻ࠷దԽͷաఔͰϓϩάϥϜͷҙຯΛม͑ͳ͍͜ͱͷূ໌ͳ Ͳ • ࢛৭ఆཧ

    • ༗໊ͳఆཧɻCoqʹΑΔূ໌Ҏલʹ΋ূ໌͸͕͋ͬͨɺෳࡶ͗ͯ͢ຊ౰ʹਖ਼͍͔͠Ͳ͏ ͔Θ͔Βͳ͔ͬͨ • Verdi • ࠷ۙಡΜͰ͍͢͝ͱࢥͬͨ෼ࢄγεςϜ༻ͷCoqͷϑϨʔϜϫʔΫ (PLDI2015) • Coq্Ͱॻ͍ͨ଱ো֐ੑ͕ͳ͍෼ࢄγεςϜͷίʔυΛɺ͋Δো֐ʹରͯ͠଱ੑ͕͋Δ ΋ͷʹม׵ͯ͘͠ΕΔ (ม׵ޙͷϓϩάϥϜ͕଱ো֐ੑΛ࣋ͭ͜ͱ͸ূ໌ࡁΈ)ɻ࣮ߦՄೳ
  6. Coqͷ࢖͍ํ (งғؾ͚ͩ) • ϥΠϒূ໌͠·͢

  7. Ͳ͏ͯ͠ূ໌͕Ͱ͖Δͷʁ • ΧϦʔϋϫʔυಉܕରԠʹجͮ͘ • ໋୊Λද͢ܕͷ஋Λ࡞Δ͜ͱ͕Ͱ͖Ε͹ͦΕ͕ͦ ͷ໋୊ͷূ໌ʹͳΔ ࿦ཧ ϓϩάϥϜ ໋୊1 ܕ1

    ໋୊1ͷূ໌ ܕ1ͷ஋ ໋୊1㱺2 1ˠ2 ؔ਺ͷܕ ໋୊1a2 1 2ͷ௚࿨ܕ ໋୊1a2 1 2ͷ௚ੵܕ
  8. ূ໌߲ • Print ͨ͠ΒͣΒͣΒ Ͱͯ͘Δ΍͕ͭূ໌ • λΫςΟΫͷ૊Έ߹ ΘͤʹΑΓূ໌߲͕ ࡞ΒΕΔ •

    proof term ͱ͔ evidence ͱ͔ݺ͹ Ε·͢
  9. ·ͱΊ • ఆཧূ໌ࢧԉܥʹ͍ͭͯઆ໌͠·ͨ͠ • Coqͷ࢖͍ํʹ͍ͭͯσϞΛߦ͍·ͨ͠ • Ͳ͏ͯ͠ূ໌ͳΜͯ͜ͱ͕Ͱ͖Δ͔ʹ͍ͭͯઆ໌͠·͠ ͨ • Coqʹ͍ͭͯͳΜͱͳ͘Θ͔ͬͯ΋Β͑ͨΒخ͍͠Ͱ͢