baz_num_elts সফ্টওয়্যার ফাউন্ডেশন থেকে অনুশীলন


9

সফ্টওয়্যার ফাউন্ডেশনগুলিতে আমি নিম্নলিখিত অনুশীলনে আছি :

(** **** 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 *)
[] *)

ইন্টারনেটে আমি যে সমস্ত উত্তর দেখেছি সেগুলির সমস্ত উত্তর বলে যে 2 টি উত্তর, এবং উপাদানগুলি x এবং y। যদি এটি হয় তবে এটি উপাদান দ্বারা কী বোঝানো হচ্ছে তা আমার কাছে পরিষ্কার নয় । সেখানে অবশ্যই দুই কনস্ট্রাকটর, কিন্তু এটি আসলে ধরনের একটি মান তৈরি করতে অসম্ভব বায

এটা তোলে ধরনের একটি মান তৈরি করতে অসম্ভব bazকারণ xটাইপ হয়েছে baz -> bazyটাইপ আছে baz -> bool -> baz। অর্ডার ধরনের একটি মান পাওয়ার জন্য bazআমরা ধরনের একটি মান পাস করতে হবে bazউভয় xবা ybazইতিমধ্যে প্রকারের মান না থাকলে আমরা কোনও ধরণের মান পেতে পারি না baz

এখনও অবধি আমি মূল্যবোধ বোঝাতে উপাদানগুলির ব্যাখ্যা করছি । সুতরাং এবং উভয়ই টাইপের উপাদান হতে পারে এবং ধরণের উপাদানগুলির সীমাহীন সংখ্যার উপস্থিতি থাকবে । টাইপের দুটি উপাদান থাকবে , যা এবং । এই ব্যাখ্যার অধীনে, আমি যুক্তি দেব যে টাইপের শূন্য উপাদান রয়েছে ।(cons nat 1 nil)(cons nat 1 (cons nat 2 nil))list natlist natbooltruefalsebaz

আমি কি সঠিক, বা আমি কী ভুল বুঝছি তা কেউ ব্যাখ্যা করতে পারেন?


1
অবশ্যই। আমি কেন একটি অনুচ্ছেদে যুক্ত করেছি তা ব্যাখ্যা করে আমি কেন ধরণের মান তৈরি করা অসম্ভব বলে মনে করি baz
টর্্নর্মিল্ট

খুশী হলাম। আমি ভেবেছিলাম আপনি কি ভাবছেন। ধন্যবাদ, টর্নমিল্ট এটির মূল্য কী, তার জন্য আমারও আপনার মত একই প্রতিক্রিয়া রয়েছে: আমিও উত্তরটি প্রত্যাশা করে থাকতাম যে এখানে শূন্য উপাদান রয়েছে baz
ডিডাব্লিউ

উত্তর:


8

আমি আপনার সাথে একমত. তার মাঝে একটি bijection এর bazএবং False

Definition injective : forall {t1 t2}, (t1 -> t2) -> Prop := fun t1 t2 f1 => forall x1 x2, f1 x1 = f1 x2 -> x1 = x2.

Definition surjective : forall {t1 t2}, (t1 -> t2) -> Prop := fun t1 t2 f1 => forall x1, exists x2, f1 x2 = x1.

Definition bijective : forall {t1 t2}, (t1 -> t2) -> Prop := fun t1 t2 f1 => injective f1 /\ surjective f1.

Inductive baz : Type :=
   | x : baz -> baz
   | y : baz -> bool -> baz.

Theorem baz_False : baz -> False. Proof. induction 1; firstorder. Qed.

Goal exists f1 : baz -> False, bijective f1.
Proof.
exists baz_False. unfold bijective, injective, surjective. firstorder.
assert (H2 := baz_False x1). firstorder.
assert (H2 := x1). firstorder.
Qed.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.