Logic mệnh đề — Ngôn ngữ hình thức SL
Ở bài trước, chúng ta đã học về lập luận (argument), tính hợp lệ (validity), và các khái niệm nền tảng như luận đúng (tautology), mâu thuẫn (contradiction), tương đương logic (logical equivalence). Những khái niệm này rất hữu ích — nhưng chúng ta đang đánh giá lập luận bằng ngôn ngữ tự nhiên, nơi một câu có thể hiểu theo nhiều cách khác nhau.
Để đánh giá chặt chẽ hơn, chúng ta cần một ngôn ngữ hình thức (formal language) — một hệ thống ký hiệu chính xác, không mơ hồ, nơi mỗi biểu thức có một cấu trúc rõ ràng và một quy tắc vận hành đã định sẵn.
Đó chính là mục tiêu của SL (Sentential Logic) — ngôn ngữ hình thức đầu tiên mà chúng ta sẽ làm quen.
Giới thiệu SL
SL (Sentential Logic) — hay logic mệnh đề — là một ngôn ngữ hình thức trong đó các đơn vị cơ bản là cả câu (sentence). Mỗi câu được biểu diễn bằng một chữ cái, và các câu phức được xây dựng từ những câu đơn bằng cách nối chúng với nhau qua các liên từ logic (logical connectives).
Tại sao lại cần một ngôn ngữ riêng? Hãy tưởng tượng bạn đang cố mô tả cấu trúc của một ngôi nhà chỉ bằng cách nói “ngôi nhà đó đẹp.” Đẹp là chủ quan, mơ hồ, và không cho biết gì về cách các phòng được sắp xếp. SL giống như một bản vẽ kiến trúc — nó bỏ qua mọi thứ không liên quan (màu sơn, nội thất) để tập trung vào cấu trúc (structure) — thứ quyết định ngôi nhà có đứng vững hay không.
Trong SL, chúng ta không quan tâm nội dung của một câu nói về cái gì. Chúng ta chỉ quan tâm: câu đó đúng hay sai, và nó được xây dựng từ những phần nào bằng những liên từ nào.
Hình 1: SL có 3 tầng — câu nguyên tử (chữ cái) → liên từ (5 toán tử) → câu phức (công thức có thể đánh giá).
Chữ cái câu (Sentence letters) & Khóa ký hiệu hóa
Trong SL, các chữ cái in hoa (A, B, C, …) được dùng để biểu diễn các câu đơn. Mỗi chữ cái — gọi là chữ cái câu (sentence letter) — là một ký hiệu đại diện cho một câu cụ thể trong tiếng Anh.
Để biết mỗi chữ cái nghĩa là gì, chúng ta cần một khóa ký hiệu hóa (symbolization key) — một bảng tra cứu gán mỗi chữ cái với một câu tiếng Anh.
Ví dụ, xét lập luận sau:
Có một quả táo trên bàn.
Nếu có một quả táo trên bàn, thì Jenny đã đến lớp.
Do đó, Jenny đã đến lớp.
Đây rõ ràng là một lập luận hợp lệ (valid) trong tiếng Anh. Nhưng nếu chúng ta gán mỗi câu một chữ cái riêng biệt:
- A: Có một quả táo trên bàn.
- B: Nếu có một quả táo trên bàn, thì Jenny đã đến lớp.
- C: Jenny đã đến lớp.
Thì lập luận trở thành:
A
B
∴ C
Trong cách ký hiệu này, cấu trúc làm cho lập luận hợp lệ đã bị mất hoàn toàn — A, B, C là ba chữ cái độc lập, không có mối quan hệ logic nào giữa chúng.
Thay vào đó, chúng ta chỉ cần ký hiệu hóa A và C, rồi xây dựng câu thứ hai từ hai mảnh đó:
- A: Có một quả táo trên bàn.
- C: Jenny đã đến lớp.
Lập luận trở thành:
A
Nếu A, thì C.
∴ C
Cấu trúc đã được bảo toàn! Và bước tiếp theo (chương sau) sẽ là thay thế “Nếu… thì…” bằng ký hiệu logic →.
Các câu được ký hiệu hóa bằng một chữ cái duy nhất gọi là câu nguyên tử (atomic sentences) — vì chúng là khối xây dựng cơ bản nhất, không thể tách nhỏ hơn trong SL. Từ quan điểm của SL, một câu nguyên tử chỉ đơn giản là “đúng hoặc sai.”
Chỉ số dưới (Subscripts)
Bảng chữ cái có 26 chữ cái, nhưng không có giới hạn logic về số lượng câu nguyên tử. Khi hết chữ cái, chúng ta dùng chỉ số dưới (subscript) — một số nhỏ viết sau chữ cái:
- A₁: Quả táo ở dưới tủ armoire.
- A₂: Các lập luận trong SL luôn chứa các câu nguyên tử.
- A₃: Adam Ant đang đi máy bay từ Anchorage đến Albany.
- …
- A₂₉₄: Sự lặp lại phụ âm làm giận dữ các phi hành gia dễ chịu nói chung.
Mỗi A₁, A₂, A₃ là một chữ cái câu khác nhau. Khi dùng chỉ số dưới, nhớ theo dõi chúng trong khóa ký hiệu hóa.
5 liên từ (Connectives)
SL có đúng năm liên từ (logical connectives). Mỗi cái lấy một hoặc hai câu nguyên tử (hoặc câu phức) và ghép chúng thành một câu phức mới.
Hình 2: Năm liên từ — mỗi cái có cách hoạt động, số ngôi, và ý nghĩa riêng.
Bây giờ chúng ta sẽ đi vào chi tiết từng cái.
1. Phủ định (Negation) — ¬
Ý nghĩa: “Không phải là trường hợp rằng…”
Nếu A là một câu, thì ¬A nghĩa là “Không phải là trường hợp rằng A.”
Ví dụ:
- B: Mary đang ở Barcelona.
- ¬B: Mary không ở Barcelona. (= “Không phải là trường hợp Mary đang ở Barcelona.”)
- ¬B: Mary ở đâu đó ngoài Barcelona. (câu này tương đương logic với ¬B — dù không chứa từ “không”)
Quy tắc: Một câu có thể ký hiệu hóa thành ¬A nếu nó có thể được diễn giải lại trong tiếng Anh là “Không phải là trường hợp rằng A.”
Điểm cần lưu ý: Không phải mọi câu chứa “không” trong tiếng Việt đều là ¬A. Ví dụ:
- H: Elliott vui vẻ.
- ¬H: Elliott không vui vẻ. ← Sai!
Nếu Elliott không vui, thì anh ấy “không vui” — nhưng “Elliott không vui vẻ” không có nghĩa là “Không phải là trường hợp Elliott vui vẻ.” Có thể anh ấy ở đâu đó giữa hai trạng thái: Vui - Buồn. Để cho phép khả năng này, chúng ta cần một chữ cái câu mới, không phải ¬H.
Bảng chân trị đặc trưng (Characteristic truth table) cho ¬:
| A | ¬A |
|---|---|
| T | F |
| F | T |
Nếu A đúng, ¬A sai. Nếu ¬A đúng, A sai. Đơn giản vậy thôi.
2. Hội (Conjunction) — &
Ý nghĩa: “Cả… và…” — cả hai hợp phần đều phải đúng thì câu mới đúng.
Ví dụ:
- A: Adam thể thao.
- B: Barbara thể thao.
- A & B: Adam thể thao, và Barbara cũng thể thao.
Từ “cả… và… cũng…” không thực hiện công việc logic nào thêm — chúng chỉ thu hút sự chú ý rằng hai điều đang được nối với nhau. Trong SL, chúng ta chỉ cần &.
Nhưng và Mặc dù vẫn là &
Đây là điểm quan trọng. Trong tiếng Việt, “nhưng” và “mặc dù” tạo cảm giác tương phản — nhưng về mặt logic, chúng vẫn nói hai điều cùng đúng:
- “Barbara năng động, nhưng cô ấy không thể thao.” → E & ¬B
- “Mặc dù Barbara năng động, cô ấy không thể thao.” → E & ¬B
“Tương phản” là sắc thái ngôn ngữ, không phải cấu trúc logic. SL không quan tâm đến sắc thái — chỉ quan tâm đến việc mỗi hợp phần đúng hay sai.
Bảng chân trị đặc trưng cho &:
| A | B | A & B |
|---|---|---|
| T | T | T |
| T | F | F |
| F | T | F |
| F | F | F |
A & B chỉ đúng khi cả A và B đều đúng. Hội (conjunction) có tính đối xứng (symmetry): A & B tương đương logic với B & A.
3. Tuyển (Disjunction) — ∨
Ý nghĩa: “Hoặc… hoặc…” — ít nhất một trong hai tuyển phần phải đúng.
Ví dụ:
- D: Denison sẽ chơi golf với tôi.
- E: Ellery sẽ chơi golf với tôi.
- D ∨ E: Denison hoặc Ellery sẽ chơi golf với tôi.
Phân biệt inclusive or và exclusive or
Trong tiếng Việt, từ “hoặc” có thể mang hai nghĩa:
| Loại | Ý nghĩa | Ví dụ |
|---|---|---|
| Inclusive or (tuyển bao hàm) | A đúng, B đúng, hoặc cả hai đều đúng | “Bạn chọn súp HOẶC salad” — có thể chọn cả hai |
| Exclusive or (tuyển loại trừ) | A đúng HOẶC B đúng, nhưng không thể cả hai | “Món chính đi kèm súp HOẶC salad” — chỉ chọn một |
Ký hiệu ∨ trong SL đại diện cho inclusive or — nghĩa là D ∨ E đúng nếu D đúng, E đúng, hoặc cả hai đều đúng. Nó chỉ sai khi cả hai đều sai.
Bảng chân trị đặc trưng cho ∨:
| A | B | A ∨ B |
|---|---|---|
| T | T | T |
| T | F | T |
| F | T | T |
| F | F | F |
Biểu diễn exclusive or trong SL
Tuy ∨ là inclusive, chúng ta vẫn có thể biểu diễn exclusive or bằng cách kết hợp nhiều liên từ:
“Bạn chọn súp hoặc salad, nhưng không phải cả hai.”
Với S₁ = “Bạn có súp”, S₂ = “Bạn có salad”:
(S_1 \lor S_2) \land \neg(S_1 \land S_2)
Phần đầu (S₁ ∨ S₂) nói “chọn ít nhất một.” Phần thứ hai ¬(S₁ & S₂) nói “không chọn cả hai.” Ghép lại bằng & → exclusive or.
Tương tự, “không có cả súp lẫn salad” → ¬(S₁ ∨ S₂).
4. Điều kiện (Conditional) — →
Ý nghĩa: “Nếu… thì…” — nếu tiền kiện đúng thì hậu kiện cũng đúng.
Ví dụ:
- R: Bạn sẽ cắt dây đỏ.
- B: Quả bom sẽ phát nổ.
Có hai cách diễn đạt quan hệ này trong tiếng Anh:
| Câu tiếng Anh | Ký hiệu SL | Giải thích |
|---|---|---|
| “If you cut the red wire, then the bomb will go off.” | R → B |
Nếu R đúng → B đúng |
| “The bomb will go off only if you cut the red wire.” | B → R |
Nếu B đúng → R phải đúng |
Đây là điểm dễ nhầm nhất trong SL. Hãy phân tích kỹ:
R → B nói rằng việc cắt dây đỏ dẫn đến quả bom phát nổ — nhưng không nói đây là cách duy nhất. Ai đó khác có thể cắt dây, hoặc bom có hẹn giờ.
B → R nói rằng các điều kiện duy nhất để bom phát nổ liên quan đến việc bạn cắt dây đỏ. Nếu bom nổ, thì nhất thiết bạn đã cắt dây (vì không có cách nào khác).
Quy tắc nhớ: “A only if B” →
B → A— không phảiA → B!Giải thích: “A only if B” nghĩa là A chỉ xảy ra khi B đúng. Nếu A đúng, thì B nhất thiết đúng →
B → A. Ví dụ: “The bomb goes off only if you cut the wire” = “B only if R” = nếu bom nổ → bạn đã cắt dây = B → R.
Tiền kiện (antecedent) và hậu kiện (consequent):
- Vế trái của
→gọi là tiền kiện — điều kiện “nếu.” - Vế phải gọi là hậu kiện — kết quả “thì.”
Điều kiện KHÔNG nói về quan hệ nhân-quả. R → B chỉ nói về logic: nếu R đúng thì B đúng. Nó không khẳng định việc cắt dây đỏ gây ra quả bom nổ — chỉ nói rằng trong thế giới này, hai sự kiện đó luôn đi kèm theo cách nhất định.
Bảng chân trị đặc trưng cho →:
| A | B | A → B |
|---|---|---|
| T | T | T |
| T | F | F |
| F | T | T |
| F | F | T |
Dòng duy nhất khiến A → B sai là khi A đúng và B sai. Các trường hợp còn lại — kể cả khi A sai — đều khiến A → B đúng. Điều này có vẻ phản trực giác, nhưng hãy nghĩ theo cách này: điều kiện A → B là một “lời hứa.” Lời hứa chỉ bị phá khi tiền kiện đúng nhưng hậu kiện không xảy ra. Nếu tiền kiện không xảy ra, lời hứa không bị vi phạm — nó đơn giản không áp dụng.
5. Song điều kiện (Biconditional) — ↔
Ý nghĩa: “… nếu và chỉ nếu …” — hai vế cùng đúng hoặc cùng sai.
Ví dụ:
- P: Trời đang mưa.
- Q: Mưa đang rơi từ mây.
- P ↔ Q: Trời đang mưa nếu và chỉ nếu mưa đang rơi từ mây.
P ↔ Q đúng khi cả P và Q cùng đúng, hoặc cả P và Q cùng sai. Nói cách khác: P và Q phải có cùng giá trị chân trị.
Bảng chân trị đặc trưng cho ↔:
| A | B | A ↔ B |
|---|---|---|
| T | T | T |
| T | F | F |
| F | T | F |
| F | F | T |
A ↔ B tương đương logic với (A → B) & (B → A) — cả hai chiều đều phải đúng.
Ký hiệu hóa từ “unless”
Từ “unless” trong tiếng Anh xuất hiện khá thường xuyên và gây không ít khó khăn khi dịch sang SL.
“Unless A, B” → có thể dịch là
A ∨ B(hoặc tương đương¬A → B)
Ví dụ:
“Unless you bring an umbrella, you will get soaked.”
Với U = “You bring an umbrella”, W = “You will get soaked”:
U \lor W \quad \text{(hoặc tương đương: } \neg U \to W\text{)}
Nghĩa là: “Either you bring an umbrella or you will get soaked” — hoặc “If you don’t bring an umbrella, then you will get soaked.”
Câu nguyên tử vs Câu phức
WFF (Well-formed formula)
Không phải mọi chuỗi ký tự trong SL đều có ý nghĩa. Các chuỗi hợp lệ được gọi là WFF (well-formed formula) — công thức hình thức hợp lệ.
Định nghĩa đệ quy (recursive) cho WFF của SL:
- Mọi câu nguyên tử (chữ cái câu) là một WFF.
- Nếu A là WFF, thì
¬Alà WFF. - Nếu A và B là WFF, thì
(A & B)là WFF. - Nếu A và B là WFF, thì
(A ∨ B)là WFF. - Nếu A và B là WFF, thì
(A → B)là WFF. - Nếu A và B là WFF, thì
(A ↔ B)là WFF. - Chỉ những biểu thức tạo ra bằng các quy tắc trên mới là WFF.
Với các công thức phức, chúng ta áp dụng định nghĩa lặp lại cho đến khi đi đến các câu nguyên tử. Ví dụ, để kiểm tra ¬¬¬D có phải WFF không:
¬¬¬Dlà WFF nếu¬¬Dlà WFF¬¬Dlà WFF nếu¬Dlà WFF¬Dlà WFF nếuDlà WFF ← D là chữ cái câu → WFF theo quy tắc 1- Vậy
¬¬¬Dlà WFF ✅
Toán tử logic chính (Main logical operator)
Khi phân rã một câu phức thành các thành phần, liên từ mà bạn nhìn đầu tiên gọi là toán tử logic chính (main logical operator) — nó quyết định “loại” của cả câu.
Ví dụ:
¬(E ∨ (F → G))→ toán tử chính là¬(phủ định)(¬E ∨ (F → G))→ toán tử chính là∨(tuyển)
Biết toán tử chính giúp bạn hiểu cấu trúc tổng thể của câu trước khi đi vào chi tiết các thành phần.
Quy ước ký hiệu (Notational conventions)
Theo định nghĩa chính xác, mọi câu chứa hai WFF nối với nhau phải được bao quanh bởi dấu ngoặc đơn, ví dụ (A & B). Tuy nhiên, để tiện lợi, SL cho phép một số quy ước nới lỏng:
1. Bỏ ngoặc ngoài: Q & R được hiểu là (Q & R) — ngoặc quanh toàn bộ câu có thể bỏ.
2. Dùng [] thay (): Không có khác biệt logic giữa (P ∨ Q) và [P ∨ Q]. Ví dụ:
[(H \to I) \lor (I \to H)] \land (J \lor K)
đọc dễ hơn (((H → I) ∨ (I → H)) & (J ∨ K)).
3. Chuỗi hội/tuyển dài: A & B & C là viết tắt của (A & B) & C (hoặc A & (B & C) — hai cái tương đương logic, nên không cần phân biệt). Tương tự cho A ∨ B ∨ C.
4. Dấu ngoặc vẫn bắt buộc khi có sự pha trộn giữa các loại liên từ khác nhau, hoặc khi nối nhiều điều kiện/song điều kiện: (A → B) → C khác A → (B → C).
Bài tập thực hành
Hãy thử ký hiệu hóa các câu sau sang SL. Nhấp vào “Xem lời giải” để kiểm tra đáp án.
Phần A
Symbolization key:
- M: Những sinh vật này là người mặc vest.
- C: Những sinh vật này là tinh tinh.
- G: Những sinh vật này là khỉ đột.
- Những sinh vật này không phải là người mặc vest.
- Những sinh vật này là người mặc vest, hoặc không.
- Những sinh vật này hoặc là khỉ đột hoặc là tinh tinh.
- Những sinh vật này không phải là khỉ đột và cũng không phải là tinh tinh.
- Nếu những sinh vật này là tinh tinh, thì chúng không phải là khỉ đột và cũng không phải là người mặc vest.
- Trừ khi những sinh vật này là người mặc vest, chúng hoặc là tinh tinh hoặc là khỉ đột.
Phần B
Symbolization key:
- A: Ông Ace đã bị giết.
- B: Người hầu bàn đã làm chuyện đó.
- C: Đầu bếp đã làm chuyện đó.
- D: Công tước phu nhân đang nói dối.
- E: Ông Edge đã bị giết.
- F: Vũ khí sát hại là một cái chảo rán.
- Hoặc ông Ace hoặc ông Edge đã bị giết.
- Nếu ông Ace bị giết, thì đầu bếp đã làm chuyện đó.
- Nếu ông Edge bị giết, thì đầu bếp đã không làm chuyện đó.
- Hoặc người hầu bàn đã làm chuyện đó, hoặc công tước phu nhân đang nói dối.
- Đầu bếp đã làm chuyện đó only if công tước phu nhân đang nói dối.
- Nếu vũ khí sát hại là một cái chảo rán, thì thủ phạm phải là đầu bếp.
Phần C
Symbolization key:
- E₁: Ava là một kỹ sư điện.
- E₂: Harrison là một kỹ sư điện.
- F₁: Ava là một lính cứu hỏa.
- F₂: Harrison là một lính cứu hỏa.
- S₁: Ava hài lòng với sự nghiệp của cô ấy.
- S₂: Harrison hài lòng với sự nghiệp của anh ấy.
- Ava và Harrison đều là kỹ sư điện.
- Nếu Ava là lính cứu hỏa, thì cô ấy hài lòng với sự nghiệp của mình.
- Ava là lính cứu hỏa, unless cô ấy là kỹ sư điện.
- Harrison là một kỹ sư điện không hài lòng.
Phần A — Lời giải
1. Những sinh vật này không phải là người mặc vest.
→ \neg M
Dễ dàng — chỉ cần phủ định câu M.
2. Những sinh vật này là người mặc vest, hoặc không.
→ M \lor \neg M
Câu này là một tautology — luôn đúng, dù M đúng hay sai.
3. Những sinh vật này hoặc là khỉ đột hoặc là tinh tinh.
→ G \lor C
Tuyển bao hàm (inclusive or) — có thể cả hai đều đúng (trong thế giới giả tưởng).
4. Những sinh vật này không phải là khỉ đột và cũng không phải là tinh tinh.
→ \neg G \land \neg C
"Không phải là... và cũng không phải là..." = phủ định của mỗi hợp phần, nối bằng hội. Không phải \neg(G \land C) — đó sẽ là "Không phải (cả khỉ đột lẫn tinh tinh)," nghĩa khác!
5. Nếu những sinh vật này là tinh tinh, thì chúng không phải là khỉ đột và cũng không phải là người mặc vest.
→ C \to (\neg G \land \neg M)
Toán tử chính là `→`. Tiền kiện: C. Hậu kiện: một hội — cả hai đều bị phủ định. Dấu ngoặc sau `→` là bắt buộc để nhóm hậu kiện.
6. Unless these creatures are vest-wearers, they are either chimps or gorillas.
→ M \lor (C \lor G) \quad \text{(hoặc tương đương: } \neg M \to (C \lor G)\text{)}
"Unless A, B" → `A ∨ B`.
Phần B — Lời giải
1. Either Lord Ace or Lord Edge was murdered.
→ A \lor E
2. If Lord Ace was murdered, then the cook did it.
→ A \to C
3. If Lord Edge was murdered, then the cook did not do it.
→ E \to \neg B
4. Either the butler did it, or the duchess is lying.
→ B \lor D
5. The cook did it only if the duchess is lying.
→ C \to D
"A only if B" = "If A then B" = A → B. Ở đây A = C, B = D → C \to D.
6. If the murder weapon was a frying pan, then the culprit must be the cook.
→ F \to C
Phần C — Lời giải
1. Ava and Harrison are both electricians.
→ E_1 \land E_2
"Cả A và B đều..." → A & B.
2. If Ava is a firefighter, then she is satisfied with her career.
→ F_1 \to S_1
3. Ava is a firefighter unless she is an electrician.
→ F_1 \lor E_1 \quad \text{(hoặc: } \neg E_1 \to F_1\text{)}
"A unless B" → A \lor B.
4. Harrison is an unsatisfied electrician.
→ E_2 \land \neg S_2
Câu này nói về Harrison: ông ấy là kỹ sư điện (E_2) VÀ ông ấy không hài lòng (\neg S_2). Toán tử chính là `&`.
Tóm tắt
| Ký hiệu | Tên | Ý nghĩa | Số ngôi | Bảng chân trị (A → kết quả) |
|---|---|---|---|---|
| \neg | Phủ định (Negation) | "Không phải là trường hợp rằng..." | Một ngôi | T → F, F → T |
| \land | Hội (Conjunction) | "Cả... và..." | Hai ngôi | T,T → T; các trường hợp khác → F |
| \lor | Tuyển (Disjunction) | "Hoặc... hoặc..." (inclusive) | Hai ngôi | F,F → F; các trường hợp khác → T |
| \to | Điều kiện (Conditional) | "Nếu... thì..." | Hai ngôi | T,F → F; các trường hợp khác → T |
| \leftrightarrow | Song điều kiện (Biconditional) | "Nếu và chỉ nếu" | Hai ngôi | Cùng giá trị → T; khác giá trị → F |
Bài học rút ra
-
SL là ngôn ngữ hình thức — bỏ qua nội dung, tập trung vào cấu trúc. Mỗi câu nguyên tử là “đúng hoặc sai,” và không có gì hơn.
-
Khóa ký hiệu hóa (symbolization key) là bắt buộc — không có nó, chữ cái A, B, C vô nghĩa.
-
¬phủ định cả câu, không phải từ — “không vui” ≠ “không vui vẻ.” Đừng dùng¬cho những gì không phải là “không phải là trường hợp rằng A.” -
&cho mọi dạng “và” — dù tiếng Việt dùng “nhưng,” “mặc dù,” “cả… và… cũng…” — trong SL, tất cả là&. -
∨luôn là inclusive or — exclusive or cần nhiều toán tử:(A ∨ B) & ¬(A & B). -
“A only if B” →
B → A— điểm dễ nhầm nhất. “Only if” đảo chiều: A chỉ xảy ra khi B đúng, nên nếu A đúng → B đúng = B → A. -
“Unless A, B” →
A ∨ B(hoặc¬A → B). -
Dấu ngoặc quan trọng —
¬(A & B)khác(¬A & B). Quy ước nới lỏng chỉ áp dụng cho ngoặc ngoài và chuỗi hội/tuyển thuần nhất.
Tài liệu tham khảo:
- Magnus, P.D. (2011). forall x: An Introduction to Formal Logic (Version 1.4). University at Albany, State University of New York. Creative Commons Attribution 4.0.