একটি ইন্ডাকটিভ টাইপ পদার্থে ঘোষণার ক্রম কি?


9

আমি ভাবছিলাম যে কোনও প্রস্তাবনামূলক প্রকারের ঘোষণার ক্রমটি বিবেচনা করতে পারে।

উদাহরণস্বরূপ কাক-এ আপনি এই Natদ্বারা সংজ্ঞায়িত করতে পারেন :

Inductive Nat :=
  | O : Nat
  | S : Nat -> Nat.

অথবা

Inductive Nat :=
  | S : Nat -> Nat
  | O : Nat.

এটি স্বয়ংক্রিয়ভাবে উত্পাদিত এলিমিনেটরে প্যারামিটারগুলির ক্রম পরিবর্তন করবে, তবে এটি কোনও বড় বিষয় নয়।

আমি কি ভাবছি তা যদি এটির মতো কোনও বিবৃতি লিখতে সম্ভব হয়

Inductive typewhereordermatters :=
  | cons1 : type1
  | cons2 : type2.

type2নির্ভরশীল প্রকারটি কোথায় cons1? (এবং এই ক্ষেত্রে, অন্যান্য ক্রমে ঘোষণাপত্রগুলি লেখার কোনও অর্থ হবে না, কারণ type2এটি উল্লেখ করা হবে cons1যা এখনও বিদ্যমান নেই)।

উত্তর:


10
  1. অর্ডার কিছু যায় আসে না। আমি যেখানে মামলা করব তা ভাবতে পারি না। যেমন আন্দ্রেজ বাউর একটি মন্তব্যে উল্লেখ করেছেন, আপনি যদি আদেশটি পরিবর্তন করেন তবে ফলাফলটি মূলত আইসোমর্ফিক হয়

  2. একটি মামলা অন্য মামলার উপর নির্ভর করতে পারে না। যোগফলের উপাদানগুলি কোনও পছন্দকে উপস্থাপন করে, তাই এটি বিবেচনা করে বোঝায় না যে নেওয়া পছন্দটি কোনও সিদ্ধান্তের উপর নির্ভর করে যা নেওয়া হয়নি।


2
আপনি আপনার প্রথম বিষয় সম্পর্কে আরও সুনির্দিষ্ট হতে পারেন। অর্ডার কিছু যায় আসে না। আপনি যদি আদেশটি পরিবর্তন করেন তবে ফলাফলটি মূলত আইসমোর্ফিক হয়।
আন্দ্রেজ বাউয়ার

2
@ ডেভ: ধন্যবাদ! আমি উচ্চ পরীক্ষামূলক প্রকারের (অত্যন্ত পরীক্ষামূলক তত্ত্বের) কারণে এই প্রশ্নটি জিজ্ঞাসা করছিলাম, যেখানে এই ঘটনাটি ঘটেছিল বলে মনে হয় এবং আমি জানতে চেয়েছিলাম যে নিয়মিত প্ররোচনামূলক প্রকারের ক্ষেত্রেও এটি ঘটতে পারে কিনা।
গিলিয়াম ব্রুনেরি

1
@ গুইলাউম: লিঙ্কটি দিয়ে আপনি কোন ঘটনাটি দেখিয়েছেন তা আমি নিশ্চিত নই। ডেটাটাইপ সংজ্ঞার বিভিন্ন কনস্ট্রাক্টর ধারাগুলি একে অপরের উপর নির্ভর করতে পারে না, এটি উচ্চ-অর্ডার ডেটাটাইপ কিনা whether সম্ভবত আপনি নির্ভরশীল রেকর্ডের চিন্তা (যা লিঙ্ক-এ ব্যবহার করা হয়, এবং উপলব্ধ হয় Agda মধ্যে এবং Coq মধ্যে )?
নোয়াম জিলবার্গার

1
@Noam: উচ্চতর প্রস্তাবনামূলক ধরনের উদাহরণে circle, ধরণ loopকন্সট্রাকটর উপর নির্ভর করে baseকন্সট্রাকটর।
গিলিয়াম ব্রুনেরি

2
@ গুইলাউম: আমি এখন দেখছি (তারা একটি পরীক্ষামূলক বাক্য গঠন চালু করছে), আমি কীভাবে এটি মিস করেছি তা জানেন না।
নোয়াম জিলবার্গার

6

অর্ডারটি কীভাবে আপনি জিজ্ঞাসা করেছেন তা বিবেচনা করে? না।

কিন্তু প্রুফ সহকারীটির কার্যক্রমে অর্ডার কি সম্পূর্ণ অপ্রাসঙ্গিক? আবার, না। মকিতায়, কোকের সাথে একেবারে অনুরূপ প্রুফ অ্যাসিস্ট্যান্টে, নির্মাতারা সংজ্ঞায় কন্সট্রাক্টরগুলি যে ক্রমে রচনা করা হয় তা টাইপ চেকিংয়ের জন্য গুরুত্বপূর্ণ, বিশেষত কোনও ম্যাচের অভিব্যক্তি পরীক্ষা করার সময়।

ম্যাটিটা প্রথমে যাচাই করতে হবে যে সমস্ত কন্সট্রাক্টরের সাথে ম্যাচের মূল অংশটি মিলছে। এটি কন্সট্রাক্টরদের ক্রম অনুসারে ঘোষিত হওয়া সাইকেল চালিয়ে এটি করে। তারপরে, এটি ম্যাচ এক্সপ্রেশন যথাযথভাবে পরীক্ষা করতে আসে যা বিপরীত ক্রমে ঘটে এবং সর্বশেষে ঘোষিত কনস্ট্রাক্টরের ক্ষেত্রে কেসটি পরীক্ষা করে checking এরপরে এই ধরণেরটি চালিত করা হয় এবং অন্যান্য কেসগুলি পরীক্ষা করতে ব্যবহৃত হয়।

বৃহত ম্যাচের অভিব্যক্তি লেখার সময় এটি প্রায়শই দেখা যায়। আপনি প্রথমে সহজ কেসগুলি পূরণ করতে চান, ওয়াইল্ডকার্ডের অধীনে আরও শক্ত মামলা রেখে, পর্যায়ক্রমে টাইপ করে যা লিখেছেন তা পরীক্ষা করে সঠিকভাবে তা নিশ্চিত করার জন্য টাইপ করুন। কখনও কখনও মতিটা অসম্পূর্ণ ম্যাচের এক্সপ্রেশনটির ধরণটি নির্ধারণ করতে অক্ষম তবে আপনি আনুষঙ্গিক ধরণের সংজ্ঞায়িত শেষ কন্সট্রাক্টরের ক্ষেত্রে পূরণ করেন তবে বেশ আনন্দের সাথে তা করবেন।

আমার ধারণা, যদিও আমি নিশ্চিত নই, কক অনুরূপ কিছু করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.