আপনার অ্যাক্সিয়ামটি আসলে একটি অট্টালিকা নয়, এটি অনুমান অনুপস্থিত। Hoare লজিকের সহজ উপস্থাপনা form ফর্মের সূত্রগুলিকে হেরফের করে যেখানে এবং লজিকাল সূত্র এবং একটি আদেশ। আপনার অবশ্যই এটি নিশ্চিত করা দরকার যে সুগঠিত । সাধারণ ভাষায় যেমন হোরের যুক্তির প্রথম পরিচিতির জন্য প্রায়শই ব্যবহৃত হয়, সুগঠনটি সিনট্যাকটিক: এটি সাধারণত এটি পরীক্ষা করার বিষয় checkingP P ′ C C গ{P}C{P′}PP′CCCএকটি প্রসঙ্গ-মুক্ত ব্যাকরণ অনুসারে এবং সম্ভবত ফ্রি ভেরিয়েবলগুলি অনুমোদিত সেটের মধ্যে থাকে। যদি ভাষাটিতে একটি শব্দার্থবিজ্ঞানের যথাযথতা যেমন অ্যারে উপাদানগুলিতে অ্যাক্সেসের মতো অন্তর্ভুক্ত থাকে তবে আপনাকে এই শব্দার্থক নির্ভুলতা প্রকাশ করতে অনুমান যুক্ত করতে হবে।
সাধারণত, আপনি মত প্রকাশ এবং আদেশের সংশোধন প্রকাশ করতে রায় যুক্ত করতে পারেন। যদি এক্সপ্রেশনগুলির কোনও পার্শ্ব প্রতিক্রিয়া না থাকে তবে তাদের কোনও পোস্টকন্ডিশন দরকার নেই, কেবল পূর্বশর্ত। উদাহরণস্বরূপ, আপনি সু-গঠনের নিয়ম যেমন লিখতে পারেন
এবং কেবলমাত্র আদেশগুলিতে সু-গঠনযুক্ত অভিব্যক্তিগুলিকে অনুমতি দেয়:
{P[x←E]}
{P}E wf{P∧0≤E<length(A)}A[E] wf{P}E1 wf{P}E2 wf{P}E1+E2 wf
{P[x←E]}E wf{P[x←E]}x:=E{P}
একটি ভিন্ন পদ্ধতির সব এক্সপ্রেশন সুগঠিত হিসেবে বিবেচনা, কিন্তু করতে কোন একটি মন্দ গঠিত হিসাব জড়িত অভিব্যক্তি একটি বিশেষ মূল্য আছে । রান-টাইম সীমানা যাচাই করা ভাষায়, অর্থ "এই প্রোগ্রামটি মারাত্মক ব্যতিক্রম উত্থাপন করেছে"। এরপরে আপনি কোনও প্রোগ্রাম কোনও লজিক্যাল প্রিকিকেট মাধ্যমে ভুল হয়ে গেছে কিনা তা ট্র্যাক করে রাখবেন ; একটি প্রোগ্রাম শুধুমাত্র বৈধ যদি প্রমাণ করতে পারেন যে তার postcondition বোঝা হয় ।
ই দ দ ণ দ ই দ দ ণ দ ¬ ই দ দ ণ দerrorerrorError¬Error
{P[x←E]}x:=E{P∨Error}P[x←E]⟹E↛error{P[x←E]}x:=E{P}
তবুও আরেকটি পদ্ধতি হল যদি প্রোগ্রামটি সঠিকভাবে শেষ হয় তবে কেবল হোয়ার ট্রিপল বিবেচনা করা। এটি নির্বিঘ্নিত প্রোগ্রামগুলির জন্য সাধারণ পদ্ধতি: কমান্ডটি সমাপ্ত হওয়ার পরে পোস্টকন্ডিশন হোল্ড হয় যা সর্বদা ঘটে না। আপনি যদি রান-টাইম ত্রুটিগুলি অবসানহান হিসাবে বিবেচনা করে থাকেন তবে আপনি সমস্ত সঠিকতার বিষয়টি হুডের নীচে সাফ করেন। আপনার এখনও প্রোগ্রামের সঠিকতা প্রমাণ করতে হবে, তবে আপনি যদি সেই কাজের জন্য অন্য কিছু ফর্মালিজম পছন্দ করেন তবে হোয়ার যুক্তিতে এটির দরকার নেই।
যাইহোক, নোট করুন যে কোনও অ্যারে যেমন একটি যৌগিক পরিবর্তনশীল পরিবর্তিত হয় তখন তা প্রকাশ করা আপনার লেখার সাথে আরও জড়িত। ধরুন ছিল বলে, : প্রতিকল্পন পরিবর্তন করবে না , এখনো নিয়োগ বাতিল পারে । এমনকি আপনি যদি পরমাণু সম্পর্কে শুধুমাত্র কথা predicates বাক্য গঠন প্রণালী সীমিত, নিয়োগ বিবেচনা পূর্বশর্ত অধীনে : আপনি সঠিক পোস্টকন্ডিশন জন্য কোনও সহজ প্রতিস্থাপন করতে পারবেন না , আপনাকে মূল্যায়ন করতে হবেPIsSorted(A)A[i]←EPA[i]←PPA[A[0]−1]:=A[0]A[0]=2∧A[1]=3এ [ 0 ] এ [ 0 ] এ ← এ [ আই ← ই ]A[0]=1∧A[1]=1A[0](যা সাধারণভাবে কঠিন হতে পারে, যেহেতু পূর্বশর্ত জন্য একটি একক সম্ভাব্য মান নির্দিষ্ট করে না )। আপনাকে অ্যারেতে প্রতিস্থাপনটি সম্পাদন করতে হবে: । মাইক গর্ডনের বক্তৃতা নোটগুলিতে অ্যারে (তবে ত্রুটি পরীক্ষা না করে) সহ একটি ভাল উপস্থাপনা রয়েছে হোয়ের যুক্তি।A[0]A←A[i←E]
length
করতেA
?