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ü xtür var baz -> baz. ytürü vardır baz -> bool -> baz. Türünde bir değer elde etmek için bazbiz türünde bir değere geçmesi gerekiyor bazbirine xveya y. bazZaten 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 natolacak ve sonsuz sayıda tip unsur olacaktı list nat. Türden iki element olacaktı boolvardır, trueve 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.