violet 的一點新進展 [ILIG]

申請了 domain https://violet-lang.org/ 給 violet 使用。比較大的變化是

  • Inductive types 可以生成相應的 eliminator 的類型與計算
  • 重新設計了 constructors 的 namespace,@ice1000 說的是對的,constructors 被放到 namespace 之下其實影響不大,要用時再打開,或是設計表面語法就可以了
  • 提供 \operator 讓開發者自己定義需要的運算式語法,比如
    \operator "\x + \y" => add x y
      \associativity: \left
  • 模組現在預設是 private,並新增 \export 關鍵字
  • 建立了 project 概念,現在可以用 info.vt 管理專案依賴,進一步可以參考 https://github.com/violet-prover/std
  • kernel 加入內建的 record

下一步? [local-0]

現在的 <= \elim 並不處理有任何帶有非純變數參數的 elimination target,因為這會導致 eliminator 有些 case 完全沒有意義,需要引入等式去除不可及的分支。另一個辦法是讓開發者提供 motive,但那樣就沒幫助到開發者了xd

另外 lock 檔案的鎖定實現還不完整,這些實務上的限制會是接下來需要仔細處理的問題