보충 2016-10-03 : 유도 유도와 유도 재귀를 혼합했습니다 (처음으로하지는 않았습니다!). 혼란에 대한 사과드립니다. 두 가지를 모두 다루기 위해 답변을 업데이트했습니다.
나는 Forsberg & Setzer의 논문 에서 유도 귀납적 정의에 대한 유한 한 axiomatisation 에서 설명을 발견했다 .
유도 재귀
유도 - 재귀 적 정의는 우리가 형 정의하는 하나 및 유형의 가족 B : → T y를 P는 전자를 특별한 방법으로 동시에 :ㅏB:A→Type
- A 는 유도 형으로 정의됩니다.
- B 는A 재귀로 정의됩니다.
- 결정적 으로 A 의 정의는 B 사용할 수 있습니다 .
세 번째 요구 사항이 없으면 먼저 A 정의한 다음 별도로 B 정의 할 수 있습니다.
다음은 아기 예입니다. 다음 생성자를 갖도록 A 귀납적으로 정의하십시오 .
- a:A
- ℓ:(∑x:AB(x))→A
유형 패밀리 B 는 다음에 의해 정의됩니다.
- B(a)=bool
- B(ℓ(x,f))=nat
Aa:A.
B(a)boolℓ(a,false)
ℓ(a,true)
AB(ℓ(a,false))=B(ℓ(a,true))=natn:natℓ(ℓ(a,false),n):A
ℓ(ℓ(a,true),n):A
B(ℓ(ℓ(a,true),n))=nat
m:natℓ(ℓ(ℓ(a,true),n),m):A
ℓ(ℓ(ℓ(a,false),n),m):A
A
유도 유도
AB:A→Type
- A
- BA
- AB
BB(c(…))=⋯
c(…)ABB
A
- a:A
- ℓ:(∑x:AB(x))→A
B
- Tru:B(a)
- Fal:B(a)
- x:Ay:B(x)Zer:B(ℓ(x,y))
- x:Ay:B(x)z:B(ℓ(x,y))Suc(z):B(ℓ(x,y))
BB(a)B(ℓ(x,y))