প্রুফ কেয়ারিং কোডে প্রুফ চেকার কেন প্রয়োজন


9

নেকুলার ক্লাসিকাল পিএলডিআই'98 কাগজে, "একটি প্রত্যয়িত সংকলকটির নকশা এবং প্রয়োগ", উচ্চ-স্তরের যাচাইকারীটি ব্যবহার করে:

  1. ভিসিগেন যাচাইকরণ শর্ত তৈরি করতে (নিরাপত্তার পূর্বাভাস)
  2. শর্তগুলি প্রমাণ করার জন্য প্রথম-আদেশের যুক্তি উপপাদ্য প্রবাদ
  3. পদক্ষেপ থেকে প্রমাণ পরীক্ষা করতে এলএফ প্রুফ চেকার (2)

আমি ধাপে কিছুটা বিভ্রান্ত হয়ে পড়েছি (3)। কেন এটি আদৌ প্রয়োজন? শুধু (1) এবং (2) কি যথেষ্ট হবে না? কেন আমরা কেবলমাত্র একটি উপপাদ্য প্রবাদের দ্বারা উত্পন্ন প্রমাণকে বিশ্বাস করি না?

উত্তর:


19

প্রুফ চেকারের উদ্দেশ্য হ'ল বিশ্বস্ত কম্পিউটিং বেসটি হ্রাস করা ।

প্রুফ চেকার করে, সংকলক বা তাত্ত্বিক প্রবাদটি সঠিক হওয়ার দরকার নেই। কাগজ পৃষ্ঠা 3 এ এই পয়েন্ট তোলে:

Neither the compiler nor the prover need to be correct in order to be guaranteed to   
detect incorrect compiler output. This is a significant advantage since the VCGen and  
the  proof checker are significantly simpler than the compiler and the prover.

একটি প্রমাণ চেকার কোডের কয়েকটি লাইন, এবং নির্ভুলতার জন্য হ্যান্ড-ইন্সপেক্ট করা যায়। বিপরীতে, একটি স্বয়ংক্রিয় প্রবাদ যা ভাল সঞ্চালন করে তা অত্যন্ত জটিল এবং সঠিক হওয়ার সম্ভাবনা কম, যদিও ভালভাবে পরীক্ষিত এবং বহুল ব্যবহৃত প্রবাদের সাথে, ভুলগুলি প্রান্তের ক্ষেত্রে হবে যা ট্রিগার করা সহজ নয়। 30k এলওসি সি কোডটি দেখুন যা লিনজলিং তৈরি করে , একটি অত্যাধুনিক স্যাট সলভার যা স্বয়ংক্রিয়ভাবে তাত্ত্বিক উপপাদকেরা কতটা জটিল হতে পারে তা দেখতে। প্রুফ চেকার ছাড়াই আপনাকে সেই তত্ত্বীয় প্রবাদটি সঠিক প্রমাণ করতে হবে। এটি 2015 সালে আমরা অর্থনৈতিকভাবে কী করতে পারি তার বাইরে।


আমি অবাক হয়েছি যে এটিপি দ্বারা নির্মিত প্রমাণগুলি বগি হতে পারে। (আমি ভেবেছিলাম এটিপিগুলি অসম্পূর্ণ হতে পারে তবে আনসাউন্ড / বগি নয়) আমি এখানে কমই অবহিত। এটিপি দ্বারা উত্পাদিত প্রমাণগুলিতে ব্যয়বহুল ভুলগুলির কোনও পরিচিত উদাহরণ আছে কিনা তা জানতে পেরে আমি খুশি হব।
রাম

3
@ র্যাম যে কোনও গুরুতর স্বয়ংক্রিয় তত্ত্বীয় প্রবাদটির ইতিহাসে হাজার হাজার ক্ষুদ্র সাউন্ডনেস বাগ রয়েছে। উদাহরণস্বরূপ stackoverflow.com/questions/12281085/… বা গিথুব এ জাতীয় যে কোনও সরঞ্জামের সংশোধন ইতিহাস দেখুন ।
কোডি

@ র্যাম কোডির দুর্দান্ত পরামর্শ ছাড়াও, আমি অভিজ্ঞতা থেকে শিখতে পরামর্শ দিই: একটি বেসিক এসএটি সলভার হিসাবে কিছুটা এটিপি লিখুন। এটি কোডের কয়েকটি লাইনে করা যেতে পারে। তারপরে চেষ্টা করুন এবং উদাহরণস্বরূপ ক্লজ লার্নিং, দেখেছেন আক্ষরিক বা আকর্ষণীয় পরিবর্তনশীল নির্বাচন হিউরিস্টিক যুক্ত করে এটি ভাল সঞ্চালন করুন। তারপরে অভিজ্ঞতাটি সম্পর্কে চিন্তা করুন ...
মার্টিন বার্গার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.