Pytanie, które zadajesz, jest interesujące i znane. Używasz tak zwanego impredykatywnego kodowania liczb naturalnych. Pozwól, że wyjaśnię trochę tła.
Biorąc pod uwagę konstruktor typu , możemy być zainteresowani „minimalnym” typem A spełniającym A ≅ T ( A ) . Pod względem teorii kategorii T jest funktorem, a A jest początkową algebrą T. Na przykład, jeśli T ( X ) = 1 + X, to A odpowiada liczbom naturalnym. Jeśli T ( X ) = 1 +T:Type→TypeAA≅T(A)TATT(X)=1+XA a następnie A jest rodzajem skończonych drzew binarnych.T(X)=1+X×XA
Pomysł z długą historią jest to, że początkowy -algebra jest typu
: = Π X : T y P e ( T ( X ) → X ) → X .
(Używasz notacji Agda dla produktów zależnych, ale używam bardziej tradycyjnej notacji matematycznej.) Dlaczego tak powinno być? Cóż, A zasadniczo koduje zasadę rekurencji dla początkowej T- algebry: biorąc pod uwagę dowolną T- algebrę Y o morfizmie struktury f : T ( YT
Odp . : = ∏X: T y p e( T( X) → X) → X.
ZAT.T.Y , otrzymujemy homomorfizm algebry
ϕ : A → Y przez
ϕ ( a ) = afa: T( Y) → Yϕ : A → Y
Widzimy więc, że
A jestz pewnością
słabopoczątkowe. Aby było to początkowe, musielibyśmy wiedzieć, że
ϕ jest również wyjątkowy. Nie jest to prawdą bez dalszych założeń, ale szczegóły są techniczne i nieprzyjemne i wymagają przeczytania jakiegoś materiału tła. Na przykład, jeśli potrafimy wykazać zadowalające
twierdzenie parametryczne, wówczas wygrywamy, ale są też inne metody (takie jak masowanie definicji
A i zakładanie
K- maksiomu i ekstensywności funkcji).
ϕ ( a ) = aYfa.
ZAϕZAK.
T.( X) = 1 + X
N a t = ∏X: T y p e( ( 1 + X) → X) → X= ∏X: T y p e( X× ( X→ X) ) → X= ∏X: T y p eX→ ( X→ X) → X.
Techniczna odpowiedź na twoje pytanie brzmi: istnieją modele teorii typów, w których typ SimpleNat
zawiera egzotyczne elementy, które nie odpowiadają cyfrom, a ponadto elementy te łamią zasadę indukcji. Typ SimpleNat
w tych modelach jest zbyt duży i jest tylko słabą algebrą początkową.