Yazılım Temelleri'nde şu alıştırma yapıyorum :
(** **** Exercise: 2 stars (baz_num_elts) *)
(** Consider the following inductive definition: *)
Inductive baz : Type :=
| x : baz -> baz
| y : baz -> bool -> baz.
(** How _many_ elements does the type [baz] have?
(* FILL IN HERE *)
[] *)
İnternette gördüğüm tüm cevaplar cevabın 2 olduğunu ve elementlerin x ve y olduğunu söylüyor. Eğer durum buysa, o zaman elementler ile ne kastedildiğini net değil . Kesinlikle iki kurucu vardır, ancak aslında baz türünde bir değer yaratmak imkansızdır .
Bir tür değeri oluşturmak imkansız baz
çünkü x
tür var baz -> baz
. y
türü vardır baz -> bool -> baz
. Türünde bir değer elde etmek için baz
biz türünde bir değere geçmesi gerekiyor baz
birine x
veya y
. baz
Zaten bir tür değerine sahip olmadan bir tür değeri alamıyoruz baz
.
Şimdiye kadar yorumlama oldum unsurları ortalama için değerler . Yani (cons nat 1 nil)
ve (cons nat 1 (cons nat 2 nil))
her ikisi de tip unsurlar list nat
olacak ve sonsuz sayıda tip unsur olacaktı list nat
. Türden iki element olacaktı bool
vardır, true
ve false
. Bu yorum altında, sıfır tip elemanın olduğunu iddia ediyorum baz
.
Doğru muyum, yoksa birisi yanlış anladığımı açıklayabilir mi?
baz
.
baz
.