Tabel kebenaran menjabarkan setiap kemungkinan kombinasi nilai benar/salah untuk variabel ekspresi logis dan menunjukkan keluaran yang dihasilkan untuk masing-masing variabel — dasar logika proposisi, desain sirkuit digital, dan bukti formal. Kalkulator ini membuat tabel tersebut untuk ekspresi apa pun yang Anda ketik, menggunakan parser tulisan tangan yang aman, bukan pintasan eksekusi kode dinamis, dan secara otomatis mengklasifikasikan hasilnya sebagai tautologi, kontradiksi, atau kontingensi.

Cara kerja kalkulator

Ekspresi Anda dibaca ke dalam pohon parse kecil yang sudah mengkodekan prioritas operator: NOT mengikat paling ketat, lalu AND, lalu XOR, lalu OR, lalu IMPLIES, dan terakhir IFF (bikondisional), yang mengikat paling longgar — konvensi yang sama yang digunakan di sebagian besar buku teks logika. Setiap variabel satu huruf yang berbeda dikumpulkan secara otomatis, dan kalkulator menghasilkan 2ⁿ kemungkinan kombinasi benar/salah untuk n variabel, mengevaluasi pohon parse satu kali per baris. Tidak ada eval() atau eksekusi kode dinamis yang digunakan di mana pun — parser hanya mengenali variabel, operator yang didukung, dan tanda kurung, sehingga apa pun yang Anda ketik tidak dapat dijalankan sebagai kode.

Membaca sintaks input

Variabel harus berupa satu huruf (A, B, C…), dan operator dapat ditulis dengan tiga cara: sebagai kata kunci (AND, OR, NOT, XOR, IMPLIES atau THEN, IFF), sebagai alias ASCII (&&, ||, !, ->, <->), atau sebagai simbol formal (∧ ∨ ¬ ⊕ → ↔). Ketiga bentuk tersebut dapat dicampur dalam satu ekspresi. Tanda kurung mengubah urutan operasi bawaan seperti dalam aritmetika, sehingga A OR (B AND NOT C) dan (A OR B) AND NOT C menghasilkan tabel yang berbeda.

Batasan dan kasus tepi

Parser menolak apa pun yang bukan merupakan variabel satu huruf, operator yang didukung, atau tanda kurung — pengidentifikasi multi-huruf (seperti foo) menimbulkan kesalahan yang jelas daripada diabaikan secara diam-diam, karena hanya satu huruf yang diperlakukan sebagai variabel. Agar tabel tetap dapat dibaca dan komputasi dilakukan secara instan, ekspresi dibatasi pada 8 variabel berbeda (256 baris) dan 300 karakter; melampaui batas mana pun akan menghasilkan kesalahan bahasa biasa, bukan tabel yang salah atau terpotong.