def Nat : *
let Zero : Nat
let Succ : Nat → Nat
end
def plus : Nat → Nat → Nat
let plus x Zero := x
let plus x (Succ pred) := Succ (plus x pred)
end
def induction : <p[Nat] : *> → p[Zero] → ((pred : Nat) → p[pred] → p[Succ pred]) → ((n : Nat) → p[n])
let induction <p> base step := go
___ def go : (n : Nat) → p[n]
___ let go Zero := base
___ let go (Succ pred) := step pred (go pred)
___ end
end
def hello_world : (n : Nat) → plus Zero n = n
???
end
=가 특별한 built-in type이라고 합시다.
???에 뭐가 들어가야 할까요?
또 증명 시스템은 어떻게 이루어져야 할까요?
이런 체계를 만들어 보고 싶었습니다.
- dc official App
Software Foundations 도입부 예제들이 딱 이런 기초적 자연수 정리 증명이지요... 비슷한 텍스트를 한 권 독파해 보는 쪽이 자작에도 도움이 될 것 같습니다.
네, 감사합니다. 확실히 저는 스스로 발명할 수 있는 사람이 아니긴 하죠. 생각이 끊임없이 나긴 하지만 죄다 구려요. 더 하면 빌런이 되니까 안 할게요. 일단 형식언어와 파서부터 마스터하고 오겠습니다. - dc App
그런데 Github 마갤에 형이론 강좌 개설해주실 수 있나요? - dc App
형이론에 대해서는 레퍼런스 텍스트 이름만 아는 정도라 어려울 듯 합니다.
다만 정리 증명기를 만드는 용도라면 형식언어나 파서 같은 지식의 중요도는 많이 후순위가 아닌가... 하는 생각이 드네요.
그렇군요. 알겠습니다. - dc App
디펜던시 제로가 목표에요. ㅎㅎ - dc App