Foundationপ্রথম নীতি থেকে
LEVEL 0 · Mathematical Foundations

Proof

প্রমাণ

গৃহীত সত্য থেকে শুরু করে বৈধ inference rule প্রয়োগ করে লক্ষ্য দাবিতে পৌঁছানোর যুক্তিশৃঙ্খল। Testing দেখায় bug আছে; proof দেখায় নেই।

তিনটা উপাদান: axiom (প্রমাণ ছাড়া গৃহীত), inference rule (বৈধ পদক্ষেপ), আর conclusion

সবচেয়ে মৌলিক rule দুইটা:

modus ponens:   p → q,  p   ⊢  q
modus tollens:  p → q, ¬q   ⊢  ¬p

আর যে দুইটা বৈধ নয় (মানুষের সবচেয়ে সাধারণ যৌক্তিক ভুল):

p → q,  q   ⊬  p        affirming the consequent
p → q, ¬p   ⊬ ¬q        denying the antecedent

“এই bug হলে log-এ X আসত। Log-এ X আছে। অতএব এই bug।” — অবৈধ।

পাঁচটা কৌশল: direct, [[contrapositive]], contradiction, case analysis, [[counterexample]]। অসীম ক্ষেত্রের জন্য [[induction]]।

Dijkstra-র বাক্যটা এখানে formally বোঝা যায়: “Program testing can be used to show the presence of bugs, but never to show their absence.” — testing একটা existential হাতিয়ার, correctness একটা universal দাবি।

শিল্পক্ষেত্রে: seL4 (verified kernel), CompCert (verified compiler), AWS-এর TLA+ specification, আর Rust-এর borrow checker — সবই machine-checked proof।