কেন হিন্দি-মিলনার অ্যালগরিদম টি 1 -> টি 2 এর মতো কোনও ফল দেয় না?


14

আমি ইমপ্লিমেন্ট লেখার সময় হিন্দি-মিলনার টাইপিং অ্যালগরিদম সম্পর্কে পড়ছি এবং দেখুন যে যতক্ষণ প্রতিটি পরিবর্তনশীল সীমাবদ্ধ থাকে আপনি সর্বদা পারমাণবিক প্রকার বা প্রকারগুলি পাবেন যেখানে আর্গুমেন্টগুলি চূড়ান্ত প্রকার নির্ধারণ করবে, যেমন t1 -> t1বা (t1 -> t2) -> (t1 -> t2)যেখানে t1এবং t2টাইপ ভেরিয়েবল হয়।

আপনি এমন কিছু t1 -> t2বা সহজভাবে কিছু পেতে চাইলে আমি এটি ভাবতে পারি না t1, যা আমি বুঝতে পেরেছি যার অর্থ আলগোরিদমটি ভেঙে গেছে কারণ অভিব্যক্তির প্রকৃত ধরণ নির্ধারণের কোনও উপায় নেই। আপনি কীভাবে জানবেন যে যতক্ষণ না প্রতিটি ভেরিয়েবল সীমাবদ্ধ থাকে ততক্ষণ আপনি এই "ভাঙ্গা" জাতীয় কোনও টাইপ পাবেন না?

আমি জানি অ্যালগরিদমটি ভেরিয়েবলগুলির সাথে প্রকারের ফলন দেয় তবে আপনি ফাংশনে আর্গুমেন্টগুলি পাস করার পরে এগুলি সর্বদা সমাধান হয়ে যায়, যা টাইপযুক্ত কোনও ফাংশনে ক্ষেত্রে হবে না t1 -> t2। এ কারণেই আমি জানতে চাই যে আমরা কীভাবে নিশ্চিত জানি যে অ্যালগরিদম কখনই এই ধরণের ফল দেয় না।

(মনে হচ্ছে আপনি এই "ভাঙ্গা" প্রকারগুলি এমএল এ পাবেন তবে আমি ল্যাম্বদা ক্যালকুলাস সম্পর্কে জিজ্ঞাসা করছি))

উত্তর:


16

ল্যাম্বদা ক্যালকুলাসে হিন্ডলি-মিলনার টাইপ সিস্টেমের সাথে কোনও ধ্রুবক নেই, আপনি কোনও ধরণের ফাংশনটির ফলাফল একটি অমীমাংসিত ধরণের পরিবর্তনশীল যেখানে পেতে পারেন না। সমস্ত ধরণের ভেরিয়েবলের কোথাও একটি "উত্স" থাকতে হবে। উদাহরণস্বরূপ, সেখানে ধরনের কোনো শব্দ , কিন্তু ধরণ শব্দই হলোα α,β.αβ (পরিচয় ফাংশন λ এক্স এক্স )।α.ααλx.x

Intuitively, ধরনের একটি শব্দ α,β.αββββββ

Δ=λx.xx(α.α)(α.α)ΔΔ

A,B,ABα,β.αβ

YY(λx.x)α.αA,B,AB , যা যুক্তিবিজ্ঞান স্পষ্টত ক্রটিপূর্ণ করে তোলে।

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

আসল প্রোগ্রামিং ভাষাগুলিতে পৌঁছার সাথে সাথে চিঠিপত্রটি ভেঙে যায়। বাস্তব প্রোগ্রামিং ভাষাগুলিতে বৈশিষ্ট্য রয়েছে যেমন সাধারণ পুনরাবৃত্তি ফাংশন (যা শেষ হতে পারে না), ব্যতিক্রম (সর্বদা একটি ব্যতিক্রম উত্সাহিত করে এমন অভিব্যক্তি কখনই কোনও মূল্য দেয় না এবং তাই বেশিরভাগ ধরণের সিস্টেমে কোনও প্রকারের থাকতে পারে), পুনরাবৃত্তির প্রকারগুলি (যা অবসানহীনতার অনুমতি দেয়) টুকরো টুকরো করা) ইত্যাদি


"সিস্টেম এফ দৃ strongly়ভাবে স্বাভাবিক করা হচ্ছে" এর পরিণতি এটি। কীভাবে দেখাতে পারে যে এইচএম দৃ strongly়ভাবে স্বাভাবিক করছে সিস্টেম এফ এর ফলস্বরূপ দৃ strongly়ভাবে স্বাভাবিক হচ্ছে?
রাফায়েল কাস্ত্রো

1
@ রাফায়েলকাস্ট্রো এইচএম-তে ভাল-টাইপযুক্ত প্রতিটি শব্দ সিস্টেম এফ-তে টাইপ করা থাকে is সুতরাং এইচএম ভাল টাইপ করা প্রতিটি শব্দ এসএন হয়।
গিলস 'অশুভ হওয়া বন্ধ করুন'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.