• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2022 Fiscal Year Research-status Report

Validating the type soundness of a programming language through translation into a logical system

Research Project

Project/Area Number 22K11902
Research InstitutionNagoya University

Principal Investigator

J Garrigue  名古屋大学, 多元数理科学研究科, 教授 (80273530)

Co-Investigator(Kenkyū-buntansha) 才川 隆文  名古屋大学, 多元数理科学研究科, 研究員 (00897100)
Affeldt Reynald  国立研究開発法人産業技術総合研究所, 情報・人間工学領域, 主任研究員 (40415641)
Project Period (FY) 2022-04-01 – 2025-03-31
Keywords型推論 / 型健全性 / 操作的意味論 / プログラムの証明 / 等式理論
Outline of Annual Research Achievements

関数型プログラミング言語OCamlの型付中間表現であるTypedtreeを定理証明支援系Coqの内部言語であるGallinaに変換するという基本構想を定め,実装を始めた.なお,Typedtreeに型情報が付随しているもの,型推論によるものであり,独立した整合性の確認が行われていない.対して,Gallinaについて厳格な型の確認が行われており,この変換で信頼性が上がるといえる.
実装において,CoqのライブラリとしてOCamlプログラムの副作用(可変な参照型,例外処理など)を扱うモナドを定義し,OCamlのコンパイラがこのモナドを使うGallinaのコードを生成できるように拡張した.変換したプログラムが実行可能で,動作が変わらないことも確認した.代数的データ,再帰関数やループも扱えるようにし,徐々に機能を増やしている.この方法でGADTも表現可能であることも確認したが,コンパイラでは未実装である.
モナドを定義する際,Coqの型定義の制限を緩和する必要があり,結果的にCoqの論理が無矛盾でなくなることを確認したが,モナドの利用方法を制限した場合についてはまだ検討中である.
さらに,この変換をプログラムの証明にも使えるようにするために,上記のモナドの等式理論を定義し,プログラム証明ライブラリMonaeで使えるようにした.それを使って,参照型を使った関数の正しさの証明も行い,実用性を確認した.
上記についてTYPES 2022(フランスのナント開催),ML Workshop 2022(リュブリャーナ開催),JSSST 2022およびPPL 2023(名古屋開催)で報告している.

Current Status of Research Progress
Current Status of Research Progress

2: Research has progressed on the whole more than it was originally planned.

Reason

実装に関して順調に進んでおり,次々と機能が取り込まれている.
理論に関して,型定義の制限を緩和しながらCoqの健全性が保たれる条件がまだ見付かっていないが,問題が評価戦略と関わっていることが見えてきた.

Strategy for Future Research Activity

今後は引き続き実装を拡張しながら,理論的な側面を解明していきたい.
特にCoqの健全性について,評価戦略との関連を調べていきたい.
また,この変換方法をプログラムの証明に活用できるように,等式理論をさらに検証する予定である.

Causes of Carryover

予定していた物品(ノートパソコン)を別の予算で買えたので、その分の出費が少なくなった。しかし、海外旅費がかなり高くなっているので、次年度では旅費として使われる可能性が高い。

  • Research Products

    (5 results)

All 2023 2022 Other

All Presentation (4 results) (of which Int'l Joint Research: 2 results) Remarks (1 results)

  • [Presentation] OCaml プログラムの Coq への変換とプログラムの正しさの証明2023

    • Author(s)
      毎田詠人, 中村薫, 才川隆文, Jacques Garrigue
    • Organizer
      プログラミングおよびプログラミング言語研究会
  • [Presentation] Validating OCaml soundness by translation into Coq2022

    • Author(s)
      Takafumi Saikawa, Jacques Garrigue
    • Organizer
      TYPES
    • Int'l Joint Research
  • [Presentation] Interpreting OCaml GADTs into Coq2022

    • Author(s)
      Jacques Garrigue, Takafumi Saikawa
    • Organizer
      ML Workshop
    • Int'l Joint Research
  • [Presentation] OCaml から Coq へのコンパイラ及び翻訳されたプログラムの証明2022

    • Author(s)
      中村薫, 才川隆文, Jacques Garrigue, 毎田詠人
    • Organizer
      日本ソフトウェア科学会全国大会
  • [Remarks] Coqgen : A Coq generation backend for OCaml

    • URL

      https://www.math.nagoya-u.ac.jp/~garrigue/cocti/coqgen/

URL: 

Published: 2023-12-25  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi