Phép hội
Phép hội, hay còn gọi là phép và logic hoặc hàm AND, là một toán tử logic thường được ký hiệu bằng và đọc là "và". Với hai mệnh đề và , phép hội có giá trị đúng khi và chỉ khi cả hai mệnh đề đều đúng, và sai trong mọi trường hợp còn lại.[1]
Phép hội được ký hiệu bằng trong logic học, trong điện tử học, và & hoặc && trong nhiều ngôn ngữ lập trình.[2]
Tính chất
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Trong toán học và logic học, phép hội có thể được biểu diễn qua phép tuyển và phép phủ định theo định lý De Morgan:[2]
Phép hội có các tính chất đại số sau:[2]
- Kết hợp:
- Giao hoán:
- Phân phối:
- Lũy đẳng:
- Phần tử trung hòa: (phép hội với đúng giữ nguyên giá trị)
- Phần tử hấp thụ: (phép hội với sai luôn cho kết quả sai)
Lý thuyết tập hợp
Phép hội có mối liên hệ chặt chẽ với phép giao trong lý thuyết tập hợp: một phần tử thuộc giao khi và chỉ khi nó thuộc cả lẫn , tức là .[2] Nhờ sự tương ứng này, phép hội thỏa mãn nhiều đẳng thức giống phép giao tập hợp:
Quy tắc suy diễn
Trong logic hình thức, nhập đề hội (conjunction introduction) là quy tắc suy diễn cho phép kết hợp hai tiền đề thành một phép hội: nếu đúng và đúng, thì đúng. Ngược lại, xuất đề hội (conjunction elimination) cho phép rút ra từng thành phần từ một phép hội: nếu đúng, thì đúng và đúng.[3]
Phủ định
Để chứng minh là sai, chỉ cần chỉ ra hoặc :[3]
Điều này có nghĩa là không cần biết giá trị chân lý của cả hai toán hạng—chỉ cần biết mối quan hệ giữa chúng là đủ. Cụ thể, nếu kéo theo , thì dù đúng hay sai, phép hội đều sai:[3]
Ứng dụng trong khoa học máy tính
Phép toán thao tác bit
Trong lập trình hệ thống, phép hội bit (bitwise AND) được dùng phổ biến để tắt (chuyển giá trị thành 0) các bit trong một số nhị phân bằng mặt nạ bit (bit mask): khi AND một giá trị với một mặt nạ, các bit tương ứng với vị trí 0 trong mặt nạ sẽ bị tắt về 0, trong khi các bit còn lại giữ nguyên.[4] Ví dụ, để tắt tất cả các bit trừ bit cuối cùng của một số nguyên :
x = x & 0b00000001Kỹ thuật này được dùng rộng rãi trong lập trình nhúng và lập trình hệ thống để đọc cờ trạng thái (flags) riêng lẻ.[4] Trong mạng máy tính, mặt nạ bit được dùng để tính địa chỉ mạng của một mạng con từ một địa chỉ IP cho trước bằng cách AND địa chỉ IP với mặt nạ mạng con.
Toán tử logic trong lập trình
Nhiều ngôn ngữ lập trình phân biệt phép hội bit và phép hội logic bằng hai toán tử khác nhau. Trong các ngôn ngữ theo truyền thống C, phép hội bit dùng toán tử & (một dấu và), còn phép hội logic dùng && (hai dấu và).
Phép hội logic thường được đánh giá ngắn mạch (short-circuit evaluation): nếu toán hạng bên trái đã có giá trị sai, toán hạng bên phải sẽ không được tính toán vì kết quả đã được xác định chắc chắn là sai.[4]
Trong SQL, phép hội được dùng để kết hợp nhiều điều kiện lọc trong truy vấn cơ sở dữ liệu. Ở ví dụ dưới đây, cơ sở dữ liệu sẽ trả về tất cả người dùng (users) trên 18 tuổi và đang trực tuyến:[5]
SELECT * FROM users WHERE online = 1 AND age >= 18Ngôn ngữ tự nhiên
Trong ngôn ngữ học, từ "và" thường được dùng để biểu đạt phép hội, nhưng không phải lúc nào cũng mang ý nghĩa logic thuần túy. Câu "Họ kết hôn và có con" trong ngôn ngữ thông thường ngầm chỉ thứ tự thời gian (kết hôn xảy ra trước khi có con) trong khi phép hội logic không hàm chứa thứ tự nào giữa các mệnh đề. Tương tự đối với quan hệ không gian, câu "Lá cờ Mỹ có màu đỏ, trắng và xanh" không có nghĩa là lá cờ có tất cả ba màu cùng một lúc ở cùng một chỗ, mà mỗi màu là một phần của lá cờ.[2]
Tham khảo
- ^ Weisstein, Eric W. "Conjunction". MathWorld — A Wolfram Web Resource (bằng tiếng Anh). Truy cập ngày 28 tháng 5 năm 2026.
- ^ a b c d e Howson, Colin (1997). Logic with trees: an introduction to symbolic logic. London; New York: Routledge. tr. 38. ISBN 978-0-415-13342-5.
- ^ a b c Magnus, P. D.; Button, Tim; Thomas-Bolduc, Aaron; Zach, Richard (2023). forall x: Calgary. An Introduction to Formal Logic (bằng tiếng Anh). Open Logic Project (xuất bản ngày 2 tháng 9 năm 2023). ISBN 9798859963584.
- ^ a b c Bryant, Randal E.; O'Hallaron, David Richard (2011). Computer systems: a programmer's perspective (ấn bản thứ 2). Boston, Mass.: Prentice Hall. ISBN 978-0-13-610804-7.
- ^ Ramakrishnan, Raghu; Gehrke, Johannes (2003). Database Management Systems (ấn bản thứ 3). New York: McGraw-Hill. ISBN 978-0-07-246563-1.