সত্যক সারণি

সত্যক সারণি হচ্ছে এক প্রকার গাণিতিক সারণি। বুলিয়ান বীজগণিত, বুলিয়ান ফাংশন, এবং প্রপরশনাল ক্যালকুলাসের বিভিন্ন যুক্তি দ্বারা এই টেবিল তৈরী করা হয়। মূলত, কোন গাণিতিক বাক্যের জন্য প্রদত্ত সকল মাণের জন্য বাক্যটি সত্য কিনা সেটা যাচাই করার জন্য সত্যক সরণি ব্যবহার করা হয়। 
প্রতিটি সত্যক সারণিতে ইনপুট দেয়ার জন্য একটি কলাম (উদাহরণস্বরূপ A এবং B), এবং আউটপুট দেখানোর জন্য একটি কলাম (উদাহরণস্বরূপ A XOR B) থাকে। আউটপুট কলামে সকল সম্ভাব্য ফলাফল দেখানো হয়। সত্যক সারণির প্রতিটি সারিতে সম্ভাব্য সকল মান (উদাহরণস্বরূপ, A = সত্য B = মিথ্যা) এবং এদের ফলাফল দেয়া থাকে। এই সম্পর্কে আরও ব্যাখ্যা জানার জন্য নিচের উদাহরণ দেখুন। লুডভিগ ভিটগেনস্টাইনকে তার ট্র্যাকট্যাটাস লজিকো-ফিলোসফিকাস বইয়ের জন্য সত্যক সরণির উদ্ভাবকের কৃতিত্ব দেয়া হয়।  কিন্তু এমিল লেওন পোস্ট আরও এক বছর আগেই প্রপরশনাল যুক্তির উপর একটি লিখা প্রকাশ করেছিলেন।
ইউনারী অপারেশন ৪ প্রকার 
p এর যেকোনো ইনপুটের জন্য আউটপুট সবসময় সত্য
p এর যেকোনো ইনপুটের জন্য আউটপুট সবসময় মিথ্যা
যৌক্তিক পরিচয় হচ্ছে এমন একটি অপারেশন, যেখানে p এর যেই মান ইনপুট দেয়া হবে, আউটপুটেও সেই মান পাওয়া যায়।
যৌক্তিক পরিচয়ের সত্যক সরণি নিন্মে দেয়া হল 
যৌক্তিক অস্বীকৃতি হচ্ছে এমন একটি অপারেশন যেখানে সর্বদা বিপরীত ফলাফল পাওয়া যায়। যদি ইনপুট দেয়া হয় "সত্য", তাহলে আউটপুট পাওয়া যাবে "মিথ্যা"। অনুরূপভাবে, যদি ইনপুট দেয়া হয় "মিথ্যা", তাহলে আউটপুট পাওয়া যাবে "সত্য"।
NOT p এর সত্যক সরণি(এভাবেও লিখা হয় ¬p, Np, Fpq, বা ~p) নিচে দেয়া হল:
দুইটি বাইনারি চলকের জন্য ১৬টি সম্ভাব্য ফাংশন রয়েছে:
দুইটি বাইনারি চলকের জন্য ১৬টি সত্যক ফাংশন হতে পারে। নিম্নে ১৬টি ফাংশনের বিস্তারিত সারণিটি দেয়া হল। এখানে P ও Q হচ্ছে বুলিয়ান চলক। ফাংশনগুলো সম্পর্কে আরও বিস্তারিত জানার জন্য নিচে ফাংশনের নামের উপর ক্লিক করুন :
যেখানে টি = সত্য এবং এফ = মিথ্যা। Com নামক কলামটি নির্ধারন করে op অপারেটরটি ঋণাত্মক কিনা। এখানে - P op Q = Q op P। L id  কলামটি নির্দেশ করে  I এর এমন কোন মান আছে কিনা, যার জন্যে  I op Q = Q। R id কলামটি নির্দেশ করে I এর এমন কোন মান আছে কিনা, যার জন্যে  P op I = P.
উপরের টেবিলটিতে p এবং q এর সম্ভাব্য চারটি ইনপুটের মান সর্ববামের কলামে দেখানো হয়েছে। প্রতিটি p এবং q এর ইনপুটের ফলাফল ডানপাশের কলামগুলোতে দেখানো হয়েছে। 
টীকা:
নিচে দেয়া টেবিলটি প্রথম কলাম থেকে নেয়া হয়েছে। p এবং q এর সম্ভাব্য চারটি ইনপুটের মান এখানে চারটি সারির বদলে চারটি কলামে দেখানো হয়েছে।
p: T T F F
q: T F T F
এখানে ১৬টি সারি রয়েছে। তন্মধ্যে ১টি সারি p এবং q ২টি বাইনারি চলকের জন্যে বাইনারি ফাংশন প্রদর্শন করছে। উদাহরণ স্বরূপ, এখানে ২নং সারির আউটপুট হবে কেবল T। এই কলামের ইনপুট হচ্ছে  p=F, q=T; অন্যদিকে ২নং  p এবং q এর বাকি সকল মানের জন্য 'formula_1' এর ফলাফল হচ্ছে F।  formula_1 এর জন্য ফলাফলটি হবে এরকম- 
২: F F T F
এবং বাকি ১৬টি সারি  নিম্নরূপ- 
লজিক্যাল অপারেটরগুলোকে ভেন ডায়াগ্রামের মাধ্যমেও প্রকাশ করা যায়।
যৌক্তিক সংযোগ হচ্ছে এমন একটি অপারেশন, যেটি দুইটি যৌক্তিক মান নিয়ে কাজ করে এবং ফলাফল তখনই সত্য হয়, যদি উভয় ইনপুটের মান সত্য হয়। 
 p AND q ( p ∧ q, Kpq, p & q, or p formula_3 q  এর মত করেও লিখা যায়) এর জন্য সত্যক সারণি নিম্নরূপ:
সাধারণভাবে, যদি p এবং q উভয় ইনপুটের মান সত্য হয়, তাহলে p এবং q এর যৌক্তিক সংযোগ "p" ∧ "q" সত্য হবে। এছাড়া বাকি সকল ইনপুটের জন্য "p" ∧ "q" মান মিথ্যা। 
এটা এভাবেও বলা যেতে পারে যে, যদি p হয়, তাহলে "p" ∧ "q" হবে "q", অন্যথায় "p" ∧ "q" হবে "p".
যৌক্তিক অসংযোগ হচ্ছে এমন একটি অপারেশন, যেটি দুইটি যৌক্তিক মান নিয়ে কাজ করে এবং ফলাফল তখনই সত্য হয়, যদি কমপক্ষে একটি ইনপুটের মান সত্য হয়।
p OR q ( p ∨ q, Apq, p || q, or p + q এর মত করেও লিখা যায়) এর জন্য সত্যক সারণি নিম্নরূপ:
সহজভাবে বলা যায়, "p "এর জন্য "p" ∨ "q" হবে "p", অন্যথায় "p" ∨ "q" হবে "q".
যৌক্তিক সংশ্লেষ হচ্ছে এমন একটি অপারেশন যেখানে দুইটি যৌক্তিক মান ইনপুট নেয়ার পর সেগুলোর ফলাফল তখনই মিথ্যা হয়, যদি প্রথম ইনপুটের মান সত্য এবং দ্বিতীয়টি মিথ্যা হয়। অনথ্যায় সর্বদা এর ফলাফল সত্য হবে। 
নিচের টেবিলটিতে এমন একটি সম্পর্ক প্রকাশ করে যেখানে শর্ত হচ্ছে, যদি p হয় তখন q ( p → q এর মত করে লিখা হয়)। এবং এর যৌক্তিক সংশ্লেষ p implies q ( p ⇒ q, অথবা Cpq এর মত করে লিখা হয়) নিম্নরূপ:
 p → q হচ্ছে ¬p ∨ q এর সমতুল্য
যৌক্তিক সমতা হচ্ছে এমন একটি যৌক্তিক অপারেশন, যেখানে দুইটি একই রকম ইনপুটের জন্যে ফলাফল সত্য হবে এবং দুইটি ভিন্ন রকম ইনপুটের জন্যে ফলাফল মিথ্যা হবে।
 p XNOR q ( p ↔ q, Epq, p = q, অথবা p ≡ q এর মত করেও লিখা যায়) এর জন্য সত্যক সারণি নিম্নরূপ:
সুতরাং দেখা যাচ্ছে যে, p এবং q এর ফলাফল তখনই সত্য হবে যখন উভয়ের মান সত্য হয়, অন্যথায় মান ভিন্ন হলে ফলাফল মিথ্যা হবে। 
এক্সক্লুসিভ অসমতা হচ্ছে এমন একটি অপারেশন, যেখানে দুইটি একই রকম ইনপুটের জন্যে ফলাফল মিথ্যা হবে এবং দুইটি ভিন্ন রকম ইনপুটের জন্যে ফলাফল সত্য হবে। 
p XOR q (p ⊕ q, Jpq, অথবা p ≠ q এর মত করেও লিখা যায়) এর জন্য সত্যক সারণি নিম্নরূপ:
এই XOR অপারেশনটিকে (p ∧ ¬q) ∨ (¬p ∧ q) এর মত করেও লিখা যায়। 
এটি হচ্ছে এমন একটি অপারেশন, যেখানে দুইটি ইনপুটের ফলাফল তখনই মিথ্যা হয়, যখন দুইটি ইনপুটের মানই সত্য হয়, অন্য যেকোনো মানের জন্য ফলাফল মিথ্যা হয়। 
p NAND q ( p ↑ q, Dpq, অথবা p | q এর মত করেও লিখা যায়) এর জন্য সত্যক সারণি নিম্নরূপ:
এই অপারেশনটি সাধারণত জটিল অপারেশনগুলোকে সহজভাবে প্রকাশ করার জন্য বেশি ব্যবহার করা হয়। এই অপারেশনটি অন্য দুইটি অপারেশন অপারেশনের মিশ্রণ। এই অপারেশনগুলোকে দুই ভাগে ভাগ করা হয়, মৌলিক এবং যৌগিক। 
যৌক্তিক NOT এবং যৌক্তিক AND গেট দিয়ে যৌক্তিক NAND গেটকে প্রকাশ করা যায়। 
 ¬("p" ∧ "q") এবং (¬"p") ∨ (¬"q") এর টেবিলটি নিচে দেয়া হলঃ
এটি হচ্ছে এমন একটি অপারেশন, যেখানে দুইটি ইনপুটের ফলাফল তখনই সত্য হয়, যখন দুইটি ইনপুটের মানই মিথ্যা হয়, অন্য যেকোনো মানের জন্য ফলাফল মিথ্যা হয়। অন্যভাবে বলা যায়, এর দুইটি ইনপুটের মধ্যে যদি অন্ততপক্ষে একটির মান সত্য হয়, তাহলে এর ফলাফল মিথ্যা হবে। সত্যক সারণির জনক চার্লস স্যান্ডার্স পার্স এর নামানুসারে ↓ চিহ্নটিকে পার্স টিকচিহ্নও বলা হয়।
p NOR q (p ↓ q, Xpq, ¬(p ∨ q)) এর জন্য  সত্যক সারণি নিম্নরূপ:
p এবং q এর নেগেশন ¬("p" ∨ "q") এবং (¬"p") ∧ (¬"q") নিম্নের টেবিলের সাহায্যে বের করা যায়ঃ
উপর্যুক্ত টেবিলে ¬(p ∧ q) এবং (¬p) ∧ (¬q) এর মধ্যে সম্পর্ক দেখানো হয়েছে। এখানে ¬("p" ∧ "q") এর জন্য (¬"p") ∨ (¬"q"), এবং ¬("p" ∨ "q") এর জন্য (¬"p") ∧ (¬"q") ব্যবহার করা হয়েছে। এখানে তবিলের প্রথম এবং শেষ মানগুলো হিসাব করে দেখানো যায় যে, তাদের মানগুলো যৌক্তিকভাবে সত্য। সুতরাং এরা সহজেই একে অপরের দ্বারা প্রতিস্থাপিত হতে পারবে।
এটি ডি মরগ্যান সূত্র নামে পরিচিত।
সত্যক সারণি সাধারণত বিভিন্ন যৌক্তিক সমীকরণের সত্যতা প্রমাণ করার জন্য ব্যবহার করা হয়। উদাহরণস্বরূপ নিচের টেবিলটি বিবেচনা করা যাকঃ
উল্লেখ্য "p" → "q" এবং ¬"p" ∨ "q "যৌক্তিকভাবে সমান।
সম্ভাব্য ১৬টি সবচেয়ে বেশি ব্যবহার হওয়া ফাংশনগুলোর মধ্যে উল্লেখযোগ্য ৬টি নিচে দেয়া হলো। এখানে p এবং q হচ্ছে বুলিয়ান চলক।
টীকা:
লজিক্যাল অপারেটরগুলোকে ভেন ডায়াগ্রামের মাধ্যমেও প্রকাশ করা যায়। 
বাইনারি চলকগুলোর জন্য সংক্ষিপ্ত সত্যক সারণিও ব্যবহার করা হয়। যেখানে সারি এবং কলামগুলো অপারেন্ড নির্দেশ করে এবং টেবিলের ঘরগুলো ফলাফল নির্দেশ করে। উদাহরণস্বরূপ বুলিয়ান চলকগুলো নিম্নের টেবিলগুলো নিম্নের সংক্ষিপ্তরূপ ব্যবহার করেঃ 
যদি একটি অপারেশন দেখানো হয়, তাহলে এই সংক্ষিপ্ত সত্যক সারণি অনেক উপকারী। এখানে প্রথম অপারেন্ডটি থাকে সারিতে এবং দ্বিতীয় অপারেন্ডটি থাকে কলামে। কোন যৌক্তিক সমীকরণের যদি কয়েকটি মান থাকে, তাহলে তাদের প্রত্যেককে আলাদা আলাদাভাবে সংক্ষিপ্ত আকারে প্রকাশ করে সমীকরণটিকে সহজ এবং বোধগম্য করা যায়। এর ফলে পাঠক অতিদ্রুত এবং সহজেই সমীকরণটি বুঝতে পারে এবং টেবিলের মধ্যকার মানগুলোর ব্যাপারে সম্যক ধারণা পেতে পারে। 
বিভিন্ন ধরনের আধুনিক বর্তনীগুলোতে প্রয়োগ করা হার্ডওয়ার ফাংশনগুলো বুঝানোর জন্য সত্যক সারণি ব্যবহার করা হয়। এই হার্ডওয়ার ফাংশনগুলোকে সংক্ষেপে এলইউটি (লুক-আপ টেবিল) বলা হয়। n সংখ্যক এলইউটি ইনপুটের জন্য সত্যক সারণিতে সর্বমোট মান থাকবে  2^"n" টি। এর জন্য বাইনারি নাম্বারের প্রতিটি বিটকে একটি বুলিয়ান মান হিসেবে প্রকাশ করা হয়, যাতে করে সেটিকে পূর্ণ সংখ্যারূপে সংরক্ষণ করা হয়। এভাবে সংরক্ষণ করার জন্য সাঙ্কেতিক শব্দের প্রয়োজন হয়। এজন্য ইলেকট্রিক ডিজাইন অটোম্যাশন সফটওয়্যারের সাহায্যে সাঙ্কেতিক ভাষায় রূপান্তর করা হয়। উদাহরণস্বরূপ, ৫টি ইনপুট বিশিষ্ট একটি সত্যক সারণিকে সাঙ্কেতিকভাবে সংরক্ষণ করার জন্য একটি ৩২ বিট পূর্ণ সংখ্যা দরকার হয়। 
সত্যক সারণিতে এলইউটি এর ইনপুট হিসেব করে এলইউটি এর আউটপুট বের করা যায় এবং এর জন্য একটি নতুন চলক "k" এর দরকার হয়। এইক্ষেত্রে  k এর মান এবং এলইউটি এর আউটপুটের মান সমান হবে। উদাহরণস্বরূপ, এলইউটি এর আউটপুট নির্ণয় করার জন্য "n" সংখ্যক বুলিয়ান ইনপুট সম্পন্ন একটি অ্যারে নেয়া হল। এইক্ষেত্রে নিম্নের সূত্র অনুযায়ী আউটপুট বের করা যাবে। যদি "i" তম ইনপুট পর্যন্ত সমীকরণটি সত্য হয়, তাহলে ধরা যাক, formula_12, অথবা formula_13formula_14.
সত্যক সারণি হচ্ছে বুলিয়ান ফাংশনগুলো প্রকাশ করার জন্য সবচেয়ে সহজ এবং সাবলীল উপায়। কিন্তু যদি ইনপুট অনেক বেশি হয়, তাহলে এই সূত্রটি কার্যকরী নয়। এই সমীকরনটি ছাড়াও বাইনারি ডিসিশন ডায়াগ্রাম সিস্টেমটি আরও বেশি কম মেমরি খরচ করে কাজ করতে পারে।
আধুনিক পদার্থবিদ্যা এবং কম্পিউটার বিজ্ঞানের অনেক মৌলিক বুলিয়ান অপারেশনগুলো কোন প্রকার জটিল কোড কিংবা লজিক গেট ব্যাভার না করে, সেগুলো সহজেই সত্যক সারণি ব্যবহার করে সমাধান করা যায়। উদাহরণস্বরূপ, নিচে সত্যক সারণির সাহায্যে একটি বাইনারি যোগ দেখানো হলঃ  
যেখানে
A = First Operand
B = Second Operand
C = Carry
R = Result
সত্যক সারণিকে বাম থেকে ডান দিকে পড়া হয়:
এখানে উল্লেখযোগ্য যে, উপরের টেবিলটিতে কোন প্রকার যুক্তি ব্যবহার করা হয়নি। এখানে কেবল ইনপুট থেকে আউটপুট নির্নয় করার জন্য প্রয়োজনীয় ফাংশনটি দেখানো হয়েছে।
উপরের টেবিলটি দেখলে আমরা দেখতে পাবো যে, এখানে দুইটি সংখ্যার মধ্যে বাইনারি যোগ দেখানো হয়েছে। এটি এক্সক্লুসিভ অসমতা এর সমতুল্য। 
এইক্ষেত্রে এটি শুধুমাত্র সাধারণ ইনপুট আউটপুট (যেমন ১ বা ০) এর জন্য ব্যবহার করা যাবে। যদি ইনপুট আউটপুটের মান বাড়ানো হয়, তাহলে সত্যক সারণির আকারও বৃদ্ধি পাবে।
এই ক্ষেত্রে, প্রত্যেকটি যোগের জন্য দুইটি অপারেন্ড দরকার হয়, A এবং B. এদের প্রতিটির দুইটি করে মান থাকে। মান দুইটি হল ১ বা ০। সুতরাং, দুইটি অপারেন্ডের দুইটি করে মান থাকলে তাদের সর্বমোট মান হবে ২X২ অর্থাৎ ৪টি। সুতরাং C এবং R এর সম্ভাব্য চারটি আউটপুটই হবে ফলাফল। একইভাবে, যদি তিনটি অপারেন্ড থাকে, তাহলে তাদের সর্বমোট মান হবে ৩X৩ টি। অর্থাৎ সম্ভাব্য আউটপুট হবে ৯টি। 
প্রথম টেবিলে যেই যোগটি দেখানো হয়েছে সেটি মূলত "হাফ যোজক (হাফ অ্যাডার)" নামে পরিচিত। যদি আগের ফলাফল থেকে ক্যারি নতুন যোজকে যোগ হয়, তাহলে সেটিকে বলা হবে ফুল অ্যাডার। একটি ফুল অ্যাডার বর্ণনা করার জন্য ৮ ঘর বিশিষ্ট সত্যক সারণির দরকার হয়। 
A,B,C এবং R এর মান পূর্বের মতই।
C* = এটি হচ্ছে পূর্বের অ্যাডার থেকে নেয়া ক্যারি
আরভিন অ্যানেলিস গবেষণা করে দেখিয়েছেন যে, ১৮৯৩ সালে চার্লস স্যান্ডার্স পার্স সর্বপ্রথম সত্যক সারণি আবিষ্কার করেন।  নিচে এই ব্যাপারে আরও তথ্য দেয়া হলঃ