কারি-হাওয়ার্ড এবং অ-গঠনমূলক প্রমাণ থেকে প্রোগ্রাম


29

এটি একটি ফলো আপ প্রশ্ন

প্রমাণ এবং প্রোগ্রামগুলির মধ্যে পার্থক্য কী (বা প্রস্তাব এবং প্রকারের মধ্যে)?

কোন প্রোগ্রামটি একটি অ-গঠনমূলক (শাস্ত্রীয়) প্রমাণের সাথে ? (ধরে নিন যে কিছু আকর্ষণীয় সিদ্ধান্ত গ্রহণযোগ্য সম্পর্ক যেমন তম টিএম পদক্ষেপে থামে না ))টি কেk T(e,k)¬k T(e,k)Tek

(পিএস: আমি এই প্রশ্নটি আংশিকভাবে পোস্ট করছি কারণ নীল তার মন্তব্যে " গডেল-জেন্টজেন অনুবাদ একটি ধারাবাহিক-উত্তীর্ণ রূপান্তর" দ্বারা কী বোঝায় সে সম্পর্কে আরও জানতে আগ্রহী learning )


2
এই বক্তৃতা নোটের পৃষ্ঠা 2 এ আংশিক উত্তর । এটি কিছুটা রহস্যজনক; আমি আরও কিছু সম্পূর্ণ খনন করার চেষ্টা করব।
ডেভ ক্লার্ক

আমার উত্তর লেখার পরিকল্পনার চেয়ে আমাকে কিছুটা বেশি সময় লাগছে, যেহেতু আমি যে বিষয়গুলি জানতাম তা কেবল দৃ .়ভাবে না বলে প্রমাণ করার সিদ্ধান্ত নিয়েছিলাম। :)
নীল কৃষ্ণস্বামী

1
অতি সাম্প্রতিক জেএসএলের এই নিবন্ধটি ছিল । সংক্ষিপ্তসারটি হ'ল শাস্ত্রীয় প্রমাণগুলির গণ্য বিষয়বস্তু দৃ strongly়ভাবে নির্ভর করতে পারে আপনি কীভাবে এটি নিষ্কাশন করতে বেছে নিয়েছিলেন। আমি এখনও এটি সত্যই হজম করিনি, তবে আমি ভেবেছিলাম এটি এখান থেকে ফেলে দেব।
মার্ক রিটব্ল্যাট

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

ওয়ারেন, আমিও প্রথমে ভেবেছিলাম! তবে প্রশ্নে P \ / ~ P উদাহরণস্বরূপ প্রস্তাবটি P যদি প্রকৃতপক্ষে সমস্ত কে-এর উপর পরিমান পরিমাণে নির্ধারিত হয়, এবং টি এর এই পরিমাণ নির্ধারণযোগ্যভাবে অগ্রহণযোগ্য নয়।
jbapple

উত্তর:


25

এটি একটি আকর্ষণীয় প্রশ্ন। একথাও ঠিক যে এক একটি প্রোগ্রাম যা প্রত্যেকের জন্য সিদ্ধান্ত নেয় আছে আশা করতে পারে না কিনা , এই স্থগিত সমস্যা সিদ্ধান্ত নেন করবে ঝুলিতে বা না। ইতিমধ্যে উল্লিখিত হিসাবে, প্রমাণগুলি সংখ্যামূলকভাবে ব্যাখ্যা করার বিভিন্ন উপায় রয়েছে: কারি-হাওয়ার্ডের বর্ধন, বাস্তবায়নযোগ্যতা, ডায়ালেক্টিকা এবং আরও অনেক কিছু। তবে তারা সকলেই নিম্নোক্ত উপায়ে কম-বেশি উল্লিখিত উপপাদ্যকে গণনামূলকভাবে ব্যাখ্যা করবেন।কে টি ( , কে )ekT(e,k)

সরলতার জন্য সমতুল্য শাস্ত্রীয় উপপাদ্যটি বিবেচনা করুন

(1)ij(¬T(e,j)¬T(e,i))

এটি (গঠনমূলকভাবে) উল্লিখিতটির সমান কারণ কারণ প্রদত্ত সিদ্ধান্ত নিতে পারি কেবল এর মান পরীক্ষা করেই রাখে কি না । যদি ধরে থাকে তবে এবং তাই । অন্যদিকে যদি ধরে না রাখে তবে (1) দ্বারা আমাদের কাছে যা বোঝায় ।k T ( e , k ) ¬ T ( e , i ) ¬ T ( e , i ) i ¬ T ( e , i ) ¬ i T ( e , i ) ¬ T ( e , i ) j ( ¬ টি ( , জে ) )ikT(e,k)¬T(e,i)¬T(e,i)i¬T(e,i)¬iT(e,i)¬T(e,i)j(¬T(e,j))jT(e,j)

এখন, আবার আমরা প্রতিটি প্রদত্ত জন্য (1) গণনা করতে পারি না কারণ আমরা আবার হ্যালটিং সমস্যা সমাধান করব। উপরে উল্লিখিত সমস্ত ব্যাখ্যাগুলি সমতুল্য উপপাদ্যটি দেখতে হবেie

(২)fi(¬T(e,f(i))¬T(e,i))

ফাংশনটিকে হারব্র্যান্ড ফাংশন বলা হয়। এটি প্রতিটি প্রদত্ত সম্ভাব্য সাক্ষীর জন্য একটি পাল্টা উদাহরণ গণনা করার চেষ্টা করে । এটি পরিষ্কার যে (1) এবং (2) সমতুল্য। বাম থেকে ডানে এটি গঠনমূলক, কেবল ইন (2) নিন, যেখানে (1) এর অনুমান সাক্ষী। ডান থেকে বামে একটি শাস্ত্রীয়ভাবে যুক্তিযুক্ত হতে হবে। অনুমান (1) সত্য ছিল না। তারপর,j i i = i ifjii=ii

(3)ij¬(¬T(e,j)¬T(e,i))

আসুন একটি ফাংশন হ'ল, যাকf

(4)i¬(¬T(e,f(i))¬T(e,i))

এখন, in (2) নিন এবং আমাদের কাছে , কিছু । তবে (ইন 4) গ্রহণ করা আমরা তার দ্বন্দ্বকে অস্বীকার করি। সুতরাং (2) বোঝায় (1)। ( ¬ টি ( , ' ( আমি ' ) ) ¬ টি ( , আমি ' ) ) আমি ' আমি = আমি 'f=f(¬T(e,f(i))¬T(e,i))ii=i

সুতরাং, আমাদের কাছে (1) এবং (2) ধ্রুপদী সমতুল্য। তবে মজার বিষয় হ'ল (2) এখন খুব সাধারণ গঠনমূলক সাক্ষী রয়েছে। ধরে না রাখলে কেবল , কারণ (2) এর উপসংহারটি সত্য হলে; অন্যথায় যদি ধরে থাকে তবে , কারণ তখন ধরে না এবং (2) এর ভিত্তিটি মিথ্যা, এটি আবার সত্য করে তোলে।T ( e , f ( 0 ) ) i = 0 T ( e , f ( 0 ) ) ¬ T ( e , f ( 0 ) )i=f(0)T(e,f(0))i=0T(e,f(0))¬T(e,f(0))

সুতরাং, (1) এর মতো একটি শাস্ত্রীয় উপপাদ্যকে গণ্যিকভাবে ব্যাখ্যা করার উপায় হ'ল আমাদের (2) ক্ষেত্রে (শাস্ত্রীয়) সমতুল্য সূত্র যা গঠনমূলকভাবে প্রমাণিত হতে পারে তা লক্ষ্য করা।

বিভিন্ন ব্যাখ্যা পথ ফাংশন শুধুমাত্র বিকিরণ ঘটে উপরে উল্লিখিত পপ আপ। উপলব্ধিযোগ্যতা এবং দ্বান্দ্বিক ব্যাখ্যার ক্ষেত্রে এটি ব্যাখ্যা দ্বারা স্পষ্টভাবে দেওয়া হয়েছে, যখন কিছু ধরণের নেতিবাচক অনুবাদের সাথে মিলিত হয় (যেমন গোয়েডেল-জেন্টজেন)। কল-সিসি এবং ধারাবাহিকতা অপারেটরগুলির সাথে কারি-হাওয়ার্ড এক্সটেনশনের ক্ষেত্রে ফাংশন থেকে উঠে আসে যে একটি নির্দিষ্ট মান (আমাদের ক্ষেত্রে ) কীভাবে ব্যবহৃত হবে তা প্রোগ্রামটিকে "জানতে" অনুমতি দেওয়া হয়েছে , সুতরাং ধারাবাহিকতা গণনা করা হয় যেখানে পয়েন্ট কাছাকাছি প্রোগ্রাম ।f i f iffifi

আর একটি গুরুত্বপূর্ণ বিষয় হ'ল আপনি চান যে (1) থেকে (2) থেকে "মডুলার" হতে হবে, অর্থাত্ (1) প্রমাণের জন্য যদি (1) ব্যবহার করা হয়, তবে এর ব্যাখ্যা (2) একইভাবে ব্যবহার করা উচিত (1 ') এর ব্যাখ্যা প্রমাণ করতে, বলুন (2')। উপরে বর্ণিত সমস্ত ব্যাখ্যাগুলি গোয়েদেল-জেন্টজেন নেতিবাচক অনুবাদ সহ এটি করে।


8
স্বাগত! এখানে একজন বিশেষজ্ঞ প্রুফ তাত্ত্বিককে দেখে দুর্দান্ত great
নীল কৃষ্ণস্বামী

1
ধন্যবাদ পাওলো, আপনার উত্তরটি আমি সম্পর্কিত একটি সমস্যার সাথে ছবির একটি অংশ পরিষ্কার করে দিয়েছি।
কাভেঃ

17

এটি মোটামুটি সুপরিচিত যে শাস্ত্রীয় এবং স্বজ্ঞাত গণিতটি সামঞ্জস্যপূর্ণ।

এটি দেখানোর একটি উপায় হ'ল শাস্ত্রীয় যুক্তির অন্তর্নিহিত যুক্তিতে "নেতিবাচক এম্বেডিং"। সুতরাং, ধরুন ধ্রুপদী প্রথম-ক্রমের গাণিতিকের সূত্র। এখন, আমরা নীচে স্বজ্ঞাত যুক্তির একটি সূত্র সংজ্ঞায়িত করতে পারি:ϕ

G()=¬¬G(ϕψ)=¬¬(G(ϕ)G(ψ))G()=¬G(¬ϕ)=¬G(ϕ)G(ϕψ)=¬(¬G(ϕ)¬G(ψ))G(x.ϕ)=x.¬¬G(ϕ)G(x.ϕ)=¬x.¬(G(ϕ))G(P)=¬¬P

নোট করুন যে মূলত এমন একটি হোমোর্ফিজম যা সর্বত্র অতিরিক্ত নয়, বিযুক্তি এবং অস্তিত্বের বাদে ডি মরগান দ্বৈত ব্যবহার করে এগুলি সংমিশ্রণ এবং সর্বজনীনতে রূপান্তরিত করে। (আমি পুরোপুরি আত্মবিশ্বাসী এটি সঠিক গডেল-জেন্টজেন অনুবাদ নয়, যেহেতু আমি এই উত্তরের জন্য এটি রান্না করেছি - মূলত আপনি ডাবল-নেগেশন + ডি মরগান দ্বৈততা ব্যবহার করে যা কিছু লেখেন তা কার্যকর হবে This এই জাতটি আসলে গুরুত্বপূর্ণ হিসাবে গুরুত্বপূর্ণ শাস্ত্রীয় যুক্তির গণ্য ব্যাখ্যা; নীচে দেখুন))G(ϕ)

প্রথম: এটি স্পষ্টতই যে এই অনুবাদটি শাস্ত্রীয় সত্যকে সংরক্ষণ করে, যাতে সত্য হয় যদি এবং কেবল হয়, শ্রেণিকভাবে বলতে হয়।G(ϕ)ϕ

দ্বিতীয়: এটি কম স্পষ্ট, তবে তবুও, যে সূত্রগুলির জন্য , খণ্ড, অন্তর্দৃষ্টিবাদী এবং শাস্ত্রীয় যুক্তির সাথে । এটি প্রমাণ করার উপায়টি হ'ল প্রথমে এই ব্যাকরণ থেকে উত্পন্ন সূত্রগুলি দেখুন:,,,¬

A,B::=x.A(x)|AB|AB|¬A|¬¬P

এবং তারপর আমরা একটি থিম (চালু আনয়ন দ্বারা হিসাবে প্রমাণ করতে পারেন ) যে intuitionistically derivable হয়। সুতরাং এখন, আমরা প্রমাণের কাঠামোর উপর অন্তর্ভুক্তির মাধ্যমে নেতিবাচক সূত্রগুলির নিখরচায়ত্বটি প্রদর্শন করতে পারি (ইন, বলুন, পরবর্তী ক্যালকুলাস) এবং বাদ দেওয়া মাঝের আইন অনুকরণ করার জন্য পূর্ববর্তী লেমমা ব্যবহার করতে পারি।AG(A)A

সুতরাং, আপনার স্বজ্ঞাতভাবে এটি সম্পর্কে কীভাবে চিন্তা করা উচিত?

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

  • দ্বিতীয়ত, একটি টপোলজিকাল ভিউ আছে। এখন, ধ্রুপদী যুক্তির মডেল (সেটসের পরিবার হিসাবে) হ'ল বুলিয়ান বীজগণিত (অর্থাত্ স্বেচ্ছাসেবী ইউনিয়ন, ছেদগুলি এবং পরিপূরকগুলির অধীনে বন্ধ থাকা উপ-পরিবারগুলির পরিবার)। এটি প্রমাণিত হয়েছে যে স্বজ্ঞাত যুক্তির মডেলটি টপোলজিকাল স্পেস হিসাবে রয়েছে, প্রস্তাবগুলি ওপেন সেট হিসাবে ব্যাখ্যা করা হয়। তাদের অভ্যন্তর, এবং তারপরে এটি সহজেই দেখানো সহজ যে , যার অর্থ ডাবল- আমাদের প্রতিটি খোলা আচ্ছাদনকে সবচেয়ে ছোট ক্লোপেনে প্রেরণ করে --- এবং ক্লোপেনগুলি বুলিয়ান বীজগণিত গঠন করে।¬¬¬P=¬P

এখন, কারি-হাওয়ার্ডকে ধন্যবাদ, আমরা জানি যে কীভাবে প্রজ্ঞাকে তাত্ত্বিক যুক্তিতে কার্যকরী প্রোগ্রাম হিসাবে ব্যাখ্যা করতে হয়। সুতরাং, "একটি শাস্ত্রীয় প্রমাণের গঠনমূলক বিষয়বস্তু কী?" এই প্রশ্নের একটি সম্ভাব্য উত্তর (তবে একমাত্র নয়)? নিম্নলিখিত:

একটি শাস্ত্রীয় প্রমাণের গণ্য বিষয়বস্তু তার প্রমাণের অনুবাদ (নেতিবাচক অনুবাদ অনুসারে) এর গণনার বিষয়বস্তু যাই হোক না কেন।

সুতরাং আসুন এর অনুবাদ । সুতরাং এটি বলছে যে বাদ দেওয়া মাঝের গঠনমূলক বিষয়বস্তুটি একই বলে যে এটি এমন নয় যে এবং ধরে রাখেন - অর্থাত্, । সুতরাং এই অর্থে, বাদ পড়া মাঝের আইনে আসলে খুব বেশি গণনা সামগ্রী নেই।G(A¬A)=¬(¬G(A)¬¬G(A))¬P¬¬P

এটি কী তা দেখতে, মনে রাখবেন যে হিসাবে সংজ্ঞায়িত করা হয়েছে । তাই এই সূত্র । নিম্নলিখিত ওকামাল কোডটি বিটটি চিত্রিত করবে:( ( জি ( ))¬A==A((G(A))((G(A))))

type bot = Void of bot
type 'a not = 'a -> bot

let excluded_middle : ('a not * 'a not not) not = fun (u, k) -> k u 

এটি হ'ল, যদি আপনি নন-এ এবং নন-এ-পেয়ে থাকেন তবে আপনি যে দ্বন্দ্ব চান তা সরাতে প্রথম প্রত্যাখ্যানকে দ্বিতীয়টিতে পাস করতে পারেন।

এখন, একটি ধারাবাহিকতা পাসিং-স্টাইল রূপান্তর কী?

  • একটি ধারাবাহিকতা ধরনের এমন কিছু বিষয় যা ধরনের একটি মান লাগে এবং তা থেকে একটি চূড়ান্ত উত্তর নির্ণয় করে।τττ
  • ধারাবাহিকতা প্রোগ্রাম প্রসঙ্গে মডেল করতে ব্যবহৃত হয়। এটি হ'ল আমাদের অনেক বড় প্রোগ্রাম অংশ হিসাবে মূল্যায়ন করতে পারে । এর চারপাশের সমস্ত স্টাফ গণনার ফলাফল গ্রহণ করবে এবং চূড়ান্ত উত্তর গণনা করবে।সি [ 3 + 5 ] 3 + 53+5C[3+5]3+5
  • সুতরাং আপনি টাইপ একটি ধারাবাহিকতা ভাবতে পারেন টাইপ একটি ফাংশন হিসাবে হিসাবে , যেখানে যা হয় উত্তর টাইপ যাই হোক না কেন।τ α ατταα
  • তাই আপনি যদি একটি প্রোগ্রাম আছে ধরনের , আমরা করতে পারেন "সিপিএস-ধর্মান্তরিত" এটা ধরনের একটি শব্দ ফাইন্ডিং দ্বারা , যা ক্ষণস্থায়ী যাই হোক না কেন শেষ হবে করতে নির্ণিত হতো তার ধারাবাহিকতা। (মূলত, এটি কেবল নিয়ন্ত্রণ প্রবাহকে স্পষ্ট করে তোলে))τ ( τ α ) α eeτ(τα)αe
  • তবে আমাদের এটি বংশগতভাবে করতে হবে, যাতে প্রোগ্রামটির প্রতিটি সংক্ষিপ্তসার এটির ধারাবাহিকতা সুস্পষ্ট করে তুলেছে।

এখন,

  • নেতিবাচক অনুবাদটি মূলত বংশগতভাবে কে প্রেরণ করে ।¬ ¬ ϕϕ¬¬ϕ
  • তবে, যদিও আমাদের অনুবাদ প্রত্যাখ্যান ব্যবহার করে, এটি আসলে কখনও কখনও মিথ্যা প্রস্তাবটিকে সরিয়ে দেয় না - সুতরাং অনুবাদটি সেই প্রস্তাবটিতে প্যারামেট্রিকভাবে কাজ করে।
  • বিশেষত, আমরা answer কোনও উত্তর টাইপের সাথে প্রতিস্থাপন করতে পারি ।αα
  • সুতরাং আমরা বংশগতভাবে দিয়ে প্রতিস্থাপন করি ।( ϕ α ) αϕ(ϕα)α
  • এটি একটি সিপিএস রূপান্তর।

আমি "একটি" সিপিএস রূপান্তর দেখেছি, যেহেতু আমি আগেই বলেছি, অনেকগুলি নেতিবাচক অনুবাদ রয়েছে যা আপনাকে এই উপপাদ্যটি প্রমাণ করতে দেয় এবং প্রত্যেকে আলাদা আলাদা সিপিএস ট্রান্সফর্মেশনের সাথে মিল রাখে। অপারেশনাল পদগুলিতে, প্রতিটি রূপান্তর একটি পৃথক মূল্যায়ন আদেশের সাথে মিলে যায় । তাই শাস্ত্রীয় যুক্তির কোনও অনন্য গণনাत्मक ব্যাখ্যা নেই, যেহেতু আপনি পছন্দ করার পছন্দ পেয়েছেন এবং পার্থক্যের পছন্দগুলির খুব কার্যকর অপারেশনাল বৈশিষ্ট্য রয়েছে।


3
এটি একটি দুর্দান্ত উত্তর। এটি আমাকে ওয়াডলারের কাগজটির "স্মরণ করিয়ে দিয়েছে" কল-বাই-মানটি কল-টু নাম দ্বিগুণ ": homepages.inf.ed.ac.uk/wadler/topics/call-by-need.html , এতে খুব স্মরণীয় উপাখ্যান রয়েছে কলসিসি এবং বাদ পড়া মাঝের মধ্যে সম্পর্ক ব্যাখ্যা করার জন্য বিভাগে 4।
sclv

8

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

এটি কল-সহ-বর্তমান-ধারাবাহিকতার আইন হিসাবে পরিচিত প্রস্তাবের সাথে মিলে যায় , যা আইন প্রমাণ করার জন্য ব্যবহার করা যেতে পারে ( )। কলসিসি ব্যবহার করে একটি এলইএম প্রোগ্রাম লেখা যেতে পারে। কক ইন:P,P¬P

Set Implicit Arguments.

Axiom callcc : forall (A B : Set), ((A -> B) -> A) -> A.

Lemma lem : forall (A B:Set), sum A (A -> B).
Proof.
  intros.
  eapply callcc.
  intros H.
  right.
  intros.
  apply H.
  left.
  assumption.
Defined.

Recursive Extraction lem.

O'Caml কোড দেয়:

type ('a, 'b) sum =
  | Inl of 'a
  | Inr of 'b

(** val callcc : (('a1 -> 'a2) -> 'a1) -> 'a1 **)

let callcc =
  failwith "AXIOM TO BE REALIZED"

(** val lem : ('a1, 'a1 -> no) sum **)

let lem =
    callcc (fun h -> Inr (fun h0 -> h (Inl h0)))

আমি এর সবচেয়ে পরিষ্কার পরিচয়টি টিম গ্রিফিনের "নিয়ন্ত্রণের একটি সূত্র-হিসাবে-প্রকারের ধারণা" তে পেয়েছি ।


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