logic
logic
「邏輯學」。釐清前因後果,把整件事情想清楚的學問。
音譯「邏輯學」、意譯「推理學」或「論證學」。台灣採用音譯,原因大概很恐怖。
台灣也有人譯作「理則學」。但是這個名稱不是學者提出來的,而是知名幫派份子兼通緝要犯提出來的。聯合日本人顛覆清國,聯合蘇聯人顛覆民國。部下殺人如麻,是個恐怖的人。
邏輯學與程式語言
邏輯學不屬於計算機科學系的授課範圍。然而卡內基美隆大學CMU的計算機科學系相當另類。他們開設了邏輯學與程式語言的一系列課程,並且要求學生至少修習一門課程。
http://coursecatalog.web.cmu.edu/schools-colleges/schoolofcomputerscience/undergraduatecomputerscience/#bscurriculumtextcontainer 15-312 Foundations of Programming Languages 15-314 Programming Language Semantics 15-316 Software Foundations of Security and Privacy 15-317 Constructive Logic 15-414 Bug Catching: Automated Program Verification 15-424 Logical Foundations of Cyber-Physical Systems 17-355 Program Analysis 17-363 Programming Language Pragmatics 80-413 Category Theory
propositional logic
proposition
邏輯命題宛如數學變數。
變數習慣用p、q、r。
| name | English | Chinese --| --------------| --------------| ------------------ p | proposition | proposition | 命題
數值只有兩種:⊤、⊥。
| name | English | Chinese --| --------------| --------------| ------------------ ⊤ | true | true | 真 ⊥ | false | false | 假
註:邏輯學採用⊤ ⊥。數學採用T F。 數學當中,⊥是垂直。
connective
邏輯連詞宛如數學運算。
運算只有五種:¬、∧、∨、→、↔。
| name | English | Chinese --| ---------------| ---------------| ------------------ ¬ | negation | not | 非 ∧ | conjunction | and | 且 ∨ | disjunction | or | 或 → | implication | if ... then ...| 若…則… ↔ | bi-implication | if and only if | 若且唯若、当且仅当
註:邏輯學採用→ ↔。數學採用⇒ ⇔。 數學當中,→是趨近,↔是對應。
註:運算子優先權precedence:即是表格順序。¬最高↔最低。 運算子結合性associativity:一律都是左結合。
針對一種運算(多種運算),枚舉輸入輸出,製作表格,稱作「真值表truth table」。看了真值表,就知道了一種運算的功能。
p | q ‖ ¬p | p∧q | p∨q | p→q | p↔q ---|---‖-----|-----|-----|-----|----- ⊤ | ⊤ ‖ ⊥ | ⊤ | ⊤ | ⊤ | ⊤ ⊤ | ⊥ ‖ ⊥ | ⊥ | ⊤ | ⊥ | ⊥ ⊥ | ⊤ ‖ ⊤ | ⊥ | ⊤ | ⊤ | ⊥ ⊥ | ⊥ ‖ ⊤ | ⊥ | ⊥ | ⊤ | ⊤
compound proposition
複合命題宛如數學算式。
(p ∧ (p → q)) → q
logical operation in programming language
程式語言裡面也有邏輯變數,稱作布林Boolean。
logical variable | programming language -----------------| -------------------- proposition | Boolean
多數程式語言裡面沒有邏輯數值,以整數1和整數0代替。
例如C、C++、Python、Rust,關鍵字true等同整數1。
logical value | programming language -----------------| -------------------- ⊤ true | 1 integer one ⊥ false | 0 integer zero
少數程式語言裡面才有邏輯數值,同樣也是兩種。
例如C#、JavaScript。
logical value | programming language -----------------| -------------------- ⊤ true | true true ⊥ false | false false
程式語言裡面也有邏輯運算,但是只剩三種。
logical operator | programming language -----------------| -------------------- ¬ negation | ! logical NOT ∧ conjunction | && logical AND ∨ disjunction | || logical OR → implication | ↔ bi-implication |
三種就夠用了。p→q即¬p∨q。p↔q使用==。
p | q ‖ p→q | ¬p∨q ---|---‖-----|------ ⊤ | ⊤ ‖ ⊤ | ⊤ ⊤ | ⊥ ‖ ⊥ | ⊥ ⊥ | ⊤ ‖ ⊤ | ⊤ ⊥ | ⊥ ‖ ⊤ | ⊤
logical equivalence (interpretation)
statement
邏輯敘述宛如數學函數function。
一個式子,未知數值。
(p ∧ (p → q)) → q
interpretation
邏輯解釋宛如數學函數求值evaluation。
an interpretation: let p = ⊤ q = ⊤ get (p ∧ (p → q)) → q = ⊤ another interpretation: let p = ⊤ q = ⊥ get (p ∧ (p → q)) → q = ⊤ : :
各個變數代入各種數值,建立真值表。
p | q ‖ p→q | p∧(p→q) | (p∧(p→q))→q ---|---‖-----|---------|------------ ⊤ | ⊤ ‖ ⊤ | ⊤ | ⊤ ⊤ | ⊥ ‖ ⊥ | ⊥ | ⊤ ⊥ | ⊤ ‖ ⊤ | ⊥ | ⊤ ⊥ | ⊥ ‖ ⊤ | ⊥ | ⊤
tautology / contradiction
複合命題細分為:
tautology :恆真句。各個變數代入各種數值,皆求得⊤。 contradiction:恆假句。各個變數代入各種數值,皆求得⊥。 contingency :偶真句。上述兩種情況以外。
例如(p∧(p→q))→q是恆真句,¬((p∧(p→q))→q)是恆假句,p∧(p→q)是偶真句。
邏輯學家借用tautology和contradiction這兩個語言學詞彙,作為恆真句和恆假句。這兩個語言學詞彙的原意不是恆真和恆假。tautology原意是重言(言辭空廢的其中一種情況),中文音譯為套套邏輯。contradiction原意是語意相左,中文意譯為矛盾。:-(
有些邏輯學家創造logical truth和logical falsity這兩個詞彙,作為恆真句和恆假句。這兩個詞彙容易跟true和false搞混。:-(
UVa 11108
equivalence
邏輯等價宛如數學恆等式identity。
p → q ≡ ¬p ∨ q
左式右式的真值表相符。左式右式同時是⊤、同時是⊥。
p | q ‖ p→q | ¬p∨q ---|---‖-----|------ ⊤ | ⊤ ‖ ⊤ | ⊤ ✔ ⊤ | ⊥ ‖ ⊥ | ⊥ ✔ ⊥ | ⊤ ‖ ⊤ | ⊤ ✔ ⊥ | ⊥ ‖ ⊤ | ⊤ ✔
恆真句、恆假句,表示成邏輯等價:
(p∧(p→q))→q ≡ ⊤ tautology ¬((p∧(p→q))→q) ≡ ⊥ contradiction
equivalence改寫成複合命題
≡換成↔。
logical equivalence: p → q ≡ ¬p ∨ q tautology: p → q ↔ ¬p ∨ q ≡ ⊤
觀察真值表。邏輯等價成立,複合命題恆真。
p | q ‖ p→q | ¬p∨q p → q ↔ ¬p ∨ q ---|---‖-----|------ ---------------- ⊤ | ⊤ ‖ ⊤ | ⊤ ✔ ⊤ ⊤ | ⊥ ‖ ⊥ | ⊥ ✔ ⊤ ⊥ | ⊤ ‖ ⊤ | ⊤ ✔ ⊤ ⊥ | ⊥ ‖ ⊤ | ⊤ ✔ ⊤
rule of replacement
邏輯學家已經發明許多取代規則。以下介紹其中三個:
一、雙反律double negation law:
¬¬p ≡ p
二、笛摩根定律De Morgan's law:
¬(p ∧ q) ≡ ¬p ∨ ¬q ¬(p ∨ q) ≡ ¬p ∧ ¬q
三、逆否命題定律contraposition law:
p → q ≡ ¬q → ¬p
logical inference (interpretation)
statement
邏輯敘述宛如數學運算式expression。
一個式子,未知數值。
(p ∧ (p → q))
argument
邏輯論點宛如數學方程式equation。
一個式子(甚至多個式子),假設數值。
(p ∧ (p → q)) = ⊤
inference狹義版本
邏輯推論宛如數學方程組求解equation solving。
假設大量敘述的數值,求得特定敘述的數值。
這些敘述分別稱作「前提premiss」與「結論conclusion」。
assume (p → q) = ⊤ (premiss) ¬(q → r) = ⊥ (premiss) solve (p → r) = ? (conclusion)
建立真值表,嘗試求解。
p | q | r ‖ p→q | ¬(q→r) | p→r ---|---|---‖-----|--------|----- ⊤ | ⊤ | ⊤ ‖ ⊤ | ⊥ | ⊤ ✔ ⊤ | ⊤ | ⊥ ‖ ⊤ | ⊤ | ⊥ ⊤ | ⊥ | ⊤ ‖ ⊥ | ⊥ | ⊤ ⊤ | ⊥ | ⊥ ‖ ⊥ | ⊥ | ⊥ ⊥ | ⊤ | ⊤ ‖ ⊤ | ⊥ | ⊤ ✔ ⊥ | ⊤ | ⊥ ‖ ⊤ | ⊤ | ⊤ ⊥ | ⊥ | ⊤ ‖ ⊤ | ⊥ | ⊤ ✔ ⊥ | ⊥ | ⊥ ‖ ⊤ | ⊥ | ⊤ ✔
邏輯推論,可能成功,可能失敗。
成功稱作「有效valid」。失敗稱作「無效invalid」。
一、前提充足,結論得以確定,要嘛全部⊤,要嘛全部⊥。(有效) 宛如數學唯一解unique solution。 二、前提不足,結論無法確定,既有⊤也有⊥。(無效) 宛如數學無限多解infinitely many solution。 三、前提相左,前提假設數值,真值表找不到這種組合。(無效) 宛如數學無解inconsistency。
有效時,可以調整每個敘述,適度追加¬,使得數值都是⊤。
assume (p → q) = ⊤ (q → r) = ⊤ determine (p → r) = ⊤
有效時,真值表當中,當前提皆是⊤,則結論必須是⊤。
p | q | r ‖ p→q | q→r | p→r ---|---|---‖-----|-----|----- ⊤ | ⊤ | ⊤ ‖ ⊤ | ⊤ | ⊤ ✔ ⊤ | ⊤ | ⊥ ‖ ⊤ | ⊥ | ⊥ ⊤ | ⊥ | ⊤ ‖ ⊥ | ⊤ | ⊤ ⊤ | ⊥ | ⊥ ‖ ⊥ | ⊤ | ⊥ ⊥ | ⊤ | ⊤ ‖ ⊤ | ⊤ | ⊤ ✔ ⊥ | ⊤ | ⊥ ‖ ⊤ | ⊥ | ⊤ ⊥ | ⊥ | ⊤ ‖ ⊤ | ⊤ | ⊤ ✔ ⊥ | ⊥ | ⊥ ‖ ⊤ | ⊤ | ⊤ ✔
有效時,可以寫成直式或者橫式。不必寫= ⊤。
特殊等號⊨稱作「導致entailment」。
直式 半直半橫 橫式 p → q p → q , q → r p → q , q → r ⊨ p → r q → r ————————————— ————— p → r p → r
inference廣義版本
邏輯學家採用廣義版本。允許無解。
前提相左的情況,本來視作無效,現在視作有效。
前提相左的情況,前提們形成恆假句。
p₁ , p₂ , ... , pₙ ⊨ q is valid when p₁ ∧ p₂ ∧ ... ∧ pₙ ≡ ⊥
前提恆假導致結論可真可假,稱作「爆炸explosion」。
經典範例:p是真、非p是真,導致任何敘述是真。
p, ¬p ⊨ q
也可以是假。
p, ¬p ⊨ ¬q
廣義版本,差別只在於爆炸,視作有效。:-(
inference改寫成複合命題
,換成∧。⊨換成→。
logical inference: p → q , q → r ⊨ p → r tautology: (p → q) ∧ (q → r) → (p → r) ≡ ⊤
觀察真值表。邏輯推論有效,複合命題恆真。
p | q | r ‖ p→q | q→r | p→r (p→q) ∧ (q→r) → (p→r) ---|---|---‖-----|-----|----- ---------------------- ⊤ | ⊤ | ⊤ ‖ ⊤ | ⊤ | ⊤ ✔ ⊤ ⊤ | ⊤ | ⊥ ‖ ⊤ | ⊥ | ⊥ ⊤ ⊤ | ⊥ | ⊤ ‖ ⊥ | ⊤ | ⊤ ⊤ ⊤ | ⊥ | ⊥ ‖ ⊥ | ⊤ | ⊥ ⊤ ⊥ | ⊤ | ⊤ ‖ ⊤ | ⊤ | ⊤ ✔ ⊤ ⊥ | ⊤ | ⊥ ‖ ⊤ | ⊥ | ⊤ ⊤ ⊥ | ⊥ | ⊤ ‖ ⊤ | ⊤ | ⊤ ✔ ⊤ ⊥ | ⊥ | ⊥ ‖ ⊤ | ⊤ | ⊤ ✔ ⊤
rule of inference
邏輯學家已經發明許多推論規則。以下介紹其中三個:
一、肯定前件modus ponens:
p p → q ————— q
二、否定後件modus tollens:
p → q ¬q ————— ¬p
三、歸謬法reductio ad absurdum:
p → q p → ¬q —————— ¬p
延伸閱讀:adequacy
邏輯運算¬、∧、∨是充分的,足以製造全部的真假組合。
註:此處只談「充分的」,沒有談「必要的、最少的」。
p | q ‖ ⊤ | p∨q | p∨¬q| p | |¬p∧¬q| ⊥ | ---|---‖-----|-----|-----|-----|- ... -|-----|-----| ⊤ | ⊤ ‖ ⊤ | ⊤ | ⊤ | ⊤ | | ⊥ | ⊥ | ⊤ | ⊥ ‖ ⊤ | ⊤ | ⊤ | ⊤ | | ⊥ | ⊥ | ⊥ | ⊤ ‖ ⊤ | ⊤ | ⊥ | ⊥ | | ⊥ | ⊥ | ⊥ | ⊥ ‖ ⊤ | ⊥ | ⊤ | ⊥ | | ⊤ | ⊥ |
2 values. (⊤ and ⊥) N = 2 variables. (p and q) 2^N = 4 inputs. (⊤⊤/⊤⊥/⊥⊤/⊥⊥) 2^2^N = 16 different functions. (⊤⊤⊤⊤/⊤⊤⊤⊥/⊤⊤⊥⊤/...)
邏輯運算→、↔是多餘的,用於簡潔呈現邏輯推論和邏輯等價的複合命題。 符號外觀源自後面章節提到的衍生。
logical equivalence: p ≡ q tautology: p ↔ q ≡ ⊤
logical inference: p₁ , p₂ , ... , pₙ ⊨ q tautology: p₁ ∧ p₂ ∧ ... ∧ pₙ → q ≡ ⊤
其實→、↔可以全面換成¬、∧、∨。
p→q ≡ ¬p∨q p↔q ≡ (p∧q)∨(¬p∧¬q)
logical inference (derivation)
inference
方才使用真值表。現在使用規則表。
邏輯命題習慣用A、B、C。
直式 半直半橫 橫式 A A , B A , B ⊢ A ∧ B B ————— ————— A ∧ B A ∧ B
特殊等號⊢稱作「可衍生derivability」。
rule of inference
邏輯學家已經發明一套推論規則:
introduction: [A] [A] ⋮ ⋮ A , B A B B ⊥ ————— (∧I) ————— (∨Iₗ) ————— (∨Iᵣ) ————— (→I) ——— (¬I) A ∧ B A ∨ B A ∨ B A → B ¬A elimination: [A] [B] ⋮ ⋮ A ∧ B A ∧ B A ∨ B , C , C ————— (∧Eₗ) ————— (∧Eᵣ) ————————————— (∨E) A B C A , A → B A , ¬A ————————— (→E) —————— (¬E) B ⊥ other: [¬A] ⋮ ¬¬A ⊥ ⊥ ——— (¬¬) ——— (⊥) ——— (RA) A A A 雙反律 爆炸 :-( 歸謬法
derivation
利用規則表,前提一路變成結論。
套用規則稱作「衍生derivation、演繹deduction」。
例如且運算交換律「A ∧ B ⊢ B ∧ A」的衍生過程:
樹狀風格 列表風格 derivation tree: derivation list: A ∧ B A ∧ B 1 │ A ∧ B ————— (∧Eᵣ) ————— (∧Eₗ) ├─────── B A 2 │ B from 1 (∧Eᵣ) ————————————————————————— (∧I) 3 │ A from 1 (∧Eₗ) B ∧ A 4 │ B ∧ A from 2 3 (∧I)
axiom
各種命題A、B、C、……都可以假設數值是真,作為最初的前提,作為衍生的起點。
現在改成只有部分敘述可以假設數值是真,作為最初的前提,作為衍生的起點。這些敘述稱作「公理axioms」。
deductive system:演繹系統。衍生起點可以是任意命題。 axiomatic system:公理系統。衍生起點只能是指定敘述。
知名的公理系統:
Gentzen system:一個公理,多個規則。我不打算深入介紹。 Hilbert system:三個公理,一個規則。我不打算深入介紹。
【名稱尚待確認】
邏輯推論本身作為邏輯敘述,拿來進行邏輯推論。
如此一來,就能調整前提結論。
A ⊢ C B ⊢ C ————————— A , B ⊢ C
恆真句/公理可以寫成推論規則的模樣:前提是空集合,結論是恆真句/公理。
⊨ ¬(p ∧ ¬p) tautology ⊢ ¬(A ∧ ¬A) axiom
邏輯學家已經發明許多推論規則。以下介紹其中三個:
(Γ Σ Δ Π各是一連串敘述。敘述數量可以是零個。)
introduction: Γ, A ⊢ Δ Γ ⊢ Δ, A ———————————— (∨L) ————————————— (∨R) Γ, A ∨ B ⊢ Δ Γ ⊢ Δ, A ∨ B elimination: Γ, A ⊢ Δ Σ, B ⊢ Π, A ——————————— (cut) 原理其實就是q→r, p→q ⊢ p→r,前提對調順序。 Γ, B ⊢ Δ, Π other: ————— (I) 同一律 A ⊢ A
intuitionistic logic / classical logic
直覺主義邏輯:自訂規則。
經典邏輯:符合下述六種規則。也符合五種運算的真值表。
排中律 law of excluded middle ⊢ (A ∨ ¬A) 無矛盾律 law of noncontradiction ⊢ ¬(A ∧ ¬A) 追加無謂前提 monotonicity of entailment (A ⊢ B) ⊢ (A , X ⊢ B) 消滅重複前提 idempotency of entailment (A , A ⊢ B) ⊢ (A ⊢ B) 且運算交換律 commutativity of conjunction (A ∧ B) ⊢ (B ∧ A) 笛摩根對偶 De Morgan duality ¬(A ∨ B) ⊢ (¬A ∧ ¬B)
順帶一提,邏輯學家依據上述六種規則,創造五種邏輯運算的真值表。先有本章的內容,才有上章的內容。
好久好久以前,邏輯學沒有真值表,邏輯學只有規則表。邏輯推論過程冗長,令人望而生畏。直到真值表橫空出世,邏輯學搖身一變宛如數學,自此邏輯學就變得平易近人了。
logical equivalence (derivation)
equivalence
方才使用真值表。現在使用規則表。
實施兩次邏輯推論:左式衍生右式,右式衍生左式。如果兩者皆可衍生,那麼兩者等價。
¬(A ∨ B) ⟛ (¬A ∧ ¬B)
特殊等號⟛稱作「互相可衍生interderivability」。
logical inference
consequence
邏輯結果宛如數學因此therefore。
| name | English | Chinese --| ----------------------| --------| ---------- ⊨ | semantic consequence | entail | 導致、蘊涵 :-( ⊢ | syntactic consequence | derive | 衍生、推導
註:邏輯學採用⊨。數學沒有對應符號。 數學不討論此概念。 註:邏輯學採用⊢。數學採用∵和∴配對。 數學當中,⊢是伴隨函子。
邏輯推論有兩種手法:真值表(解釋)、規則表(衍生)。
真值表固定不變(源自標準規則表)。規則表可以自訂。
採用標準規則表,那麼兩種手法相同。
自訂規則、自訂公理,那麼兩種手法不相同。
許多學問經常自訂規則、自訂公理。例如數學、社會學。
valid / derivable
valid: a inference is true by intepretation derivable: a inference is true by derivation
valid: A ⊨ B derivable: A ⊢ B
valid but not derivable https://math.stackexchange.com/questions/3987061/
形容詞valid、名詞validity。
有效的:根據真值表,若前提皆⊤,則結論是⊤。
當所有前提皆假設為⊤,則這個結論有唯一解⊤。
形容詞derivable、名詞derivability。
可衍生的:根據規則表,若前提皆⊤,則結論是⊤。
當所有前提皆假設為⊤,則可以衍生這個結論。
sound / complete
sound: all derivable inferences are valid complete: all valid inferences are derivable
sound: (A ⊢ B) → (A ⊨ B) complete: (A ⊨ B) → (A ⊢ B)
complete but not sound https://math.stackexchange.com/questions/441025/
形容詞sound、名詞soundness。
可靠的:可衍生的邏輯推論都是有效的。
這套前提衍生的所有結論,皆有唯一解⊤。
前提很合理,結論皆實話。所到之處,皆為實話。宛如洪水。
形容詞complete、名詞completeness。
完備的:有效的邏輯推論都是可衍生的。
凡有唯一解⊤,必是這套前提衍生的結論。
前提很充足,道盡一切實話。所有實話,皆可觸及。宛如連通。
satisfiable / consistent
形容詞satisfiable、名詞satisfiability。
可滿足的:存在一種interpretation,使得敘述是⊤。
這個敘述不是恆假句。
形容詞consistent、名詞consistency。
一致的:存在一種interpretation,使得結論皆⊤。
這個演繹系統/公理系統,所有結論∧起來,不是恆假句。
sound ∧ conjunction of all premisses is not a contradiction → conjunction of all conclusions is not a contradiction (consistency)
soundness implies consistency https://cs.stackexchange.com/questions/88274/
可靠的:可衍生的邏輯推論都是有效的。
有效的:若不是爆炸(若前提不是恆假句),那麼存在一種interpretation,當前提皆真,則結論皆真。
換句話說,可靠的情況下,若前提不是恆假句,則一致。
logical reasoning
logical reasoning
邏輯推理。找到前提結論,製造邏輯推論。
邏輯學家考慮下述三種手法:
deductive reasoning:演繹。找到結論。 abductive reasoning:溯因。找到前提。 inductive reasoning:歸納。找到一個前提,挪作結論。
演繹當中,最經典的手法是「自然演繹natural deduction」:自訂前提,套用規則,不斷衍生,找到結論。先前章節已經介紹了。
statistical reasoning
統計推理。針對某些現象,進行取樣,將發生機率最高的事件聯繫配對在一起。簡單來說就是英國研究。
例如交通肇事者當中有70%擁有吃早餐的習慣。兩者關聯之後:吃早餐極可能導致車禍。
例如有錢屬於好事、照顧老弱婦孺屬於好事、為民服務是好事。這些關聯之後:地方首長發放敬老津貼、生育補助,地方首長是在做好事。
人類經常採用關聯,很少採用衍生。大部分人類的知識架構皆源自統計推理,而非邏輯推理。統計推理符合人類習性,自然而然就會適應。邏輯推理違反人類直覺,實施教育才能習得。
predicate logic
predicate
邏輯謂詞宛如數學集合。
借鑑集合論,發明新變數:P(x)、P(x,y)。
一元版本P(x):x是正整數、x屬於S集合、……。
二元版本P(x,y):x包含y、x大於y、x等於y、……。
P(x)與P(x,y),寫作函數,當作變數,實為集合。
援引集合的概念,稍微符合真實世界常見情況。
| name | English | Chinese -----| ------------| ------------| ------------ P(x) | predicate | predicate | 謂詞
connective
邏輯連詞宛如數學運算。
借鑑集合論,推廣舊運算:¬、∧、∨、→、↔。
舊運算全面改成集合運算,但是沿用舊符號。
logical operator | set operator -----------------| -------------- ¬ negation | ‾ complement ∧ conjunction | ∩ intersection ∨ disjunction | ∪ union | \ subtraction → implication | ⊃ inclusion ↔ bi-implication | = equivalence
compound predicate
複合謂詞宛如數學算式。
(P(x) → Q(x)) ∨ (P(x) ∧ ¬Q(x))
quantifier
邏輯量詞宛如數學性質符號。
借鑑集合論,發明新運算:∀、∃。
將複合謂詞變成邏輯命題。
| name | English | Chinese --| ---------------------------| -------------| ------- ∀ | universal quantification | for all | 所有 | | given any | 任意 ∃ | existential quantification | for some | 某些 | | there exists | 存在
proposition
複合謂詞變成邏輯命題,需要使用量詞。
一元謂詞需要一個量詞,二元謂詞需要兩個量詞。
∀xP(x) ∃x∀yP(x,y)
多元複合謂詞需要多個量詞。
∀x((P(x) → Q(x)) ∨ (P(x) ∧ ¬Q(x))) ∀x∀y(P(x) ∧ Q(y) ∧ R(y) ∧ S(x,y))
數值只有兩種:⊤、⊥。
∀xP(x) = ⊤ ∀x∃yP(x,y) = ⊥ ∀x(P(x) → Q(x)) ∨ (P(x) ∧ ¬Q(x)) = ⊥ ∀x∀y(P(x) → Q(y) ∨ R(y)) = ⊥
compound proposition
複合謂詞變成邏輯命題之後,得以使用舊運算。
由於運算符號一模一樣的緣故,需要仔細解讀。
¬∀xP(x) → ∃x(¬P(x) → Q(x)) P(x) and Q(x) are predicates ¬P(x) → Q(x) is a compound predicate ∀xP(x) and ∃x(¬P(x) → Q(x)) are propositions ¬∀xP(x) → ∃x(¬P(x) → Q(x)) is a compound proposition
rule of replacement
命題運算¬改成謂詞運算¬。
¬∃xP(x) ≡ ∀x¬P(x) ¬∀xP(x) ≡ ∃x¬P(x)
這是錯誤範例。等號右側量詞短缺,文法錯誤。
∀x∀yP(x,y) ≡ ∀xP(x,y) ∧ ∀yP(x,y)
propositional logic / predicate logic
命題邏輯(零階邏輯):變數是一個數值。運算一共五種。
謂詞邏輯(一階邏輯):變數是一個集合。追加兩種運算。
可以推廣成更高階,但是沒有太大意義。
formal science
楔子
本章介紹邏輯學與數學、哲學、語言學之間的聯動,以及知名主題。由於我不是這些領域的專家,所以我只負責起個頭。想要知道更多,麻煩自行探索。
這些主題之間有點跳tone,閱讀起來應該不太容易吸收。作為彌補,我盡量寫得輕鬆歡樂,閱讀起來應該不太會有負擔。你就當作是閱讀農場文章八卦新聞吧。
科學與工程science and engineering
首先解釋科學與工程。兩者方向相反。
科學:觀察現實,找到規律。
工程:利用規律,改造現實。
跟大自然相關的科學,叫做自然科學。例如物理學、化學、生物學、……。
針對人類,跟人類活動相關的科學,叫做社會科學。例如社會學、心理學、經濟學、……。
形式科學formal science
利用規律,改造架空世界。觀察架空世界,找到規律。
既非科學、亦非工程,一切都位於架空世界的學問,叫做形式科學。例如邏輯學、哲學、神學、數學、統計學、……。
(這些學問明明不是科學與工程,卻硬是冠上科學二字。)
(formal的意思比較接近「制式」而非「形式」。)
台灣民眾對於這些學問相當陌生。背後原因曲折離奇。蘇聯扶植叛軍顛覆中華民國、美國收買部分叛軍駐紮台灣,大概要從這裡開始說起。由於這不是我的專長,就不多提了。
數學mathmatics
數學既非科學、亦非工程。
數學的一切都位於架空世界,與現實無關。數學宛如動漫電玩、奇幻文學的背景設定。例如打倒史萊姆獲得經驗值、秘銀比鋼鐵輕巧堅固、dx無窮微小而略大於零、0.999...等於1。
雖然數學位於架空世界,但是數學的發展過程,經常借鑑現實世界。例如三角函數借鑑測量學、微積分借鑑物理學。
雖然數學位於架空世界,但是數學的創作內容,經常協助科學與工程。例如加法乘法用於計算價格(儘管也有人稱重喊價)、方程式描述水流軌跡(儘管未獲得證實)。
架空世界、現實世界,想要媒合這兩個世界,相當困難,很少人做得到。很多人感慨學數學沒用,倒不如說是因為他們想不到如何媒合。至於那些媒合成功的人,成為了令人景仰的科學家、工程師。
儘管很多人對數學避之唯恐不及,但是事實是數學已經風靡數百年。數學是史上最多人參與的、連載時間最長的、支線劇情最多的,呃,子供向幻想大作。隨時都有人追新番,每天都有人搞二創,哎喲宅到不行。
數學引進邏輯學
數學最初絕非嚴謹。例如擁有霸王色霸氣的人,被近海之主輕易咬斷一隻手。例如級數未必收斂。例如處處連續未必可以微分。即便劇情精彩不落俗套,也存在漏洞。
數學最後變得嚴謹。Peano替數學引進邏輯學。Hilbert提倡形式系統:數學定理必須源自公理、經過推理。後人繼承遺志,一步一腳印修補所有漏洞,讓數學全面符合邏輯學。
可說是史上最大規模跨界聯動。全場都沸騰了。人人熱淚盈眶。
公理axiom
公理是最初的前提。
數學位於架空世界。數學家自行創造公理。數學家嘗試各種可能的公理,嘗試推導各種可能的定理。使用盡量少的公理,得到同樣多的定理,以簡馭繁。
公理稍微增加,定理大幅增加。數學家仔細權衡,不輕易增加公理。人物設定太過強大,劇情發展容易失控,一不小心變成糞作。
公理不是一次到位。當初Hilbert撰寫幾何教科書,每一版都重新修訂公理。現今的數學教科書,經過了歷代數學家的監修,已經難以修訂公理。不過還是可能存在更好的公理。如果你發現更好的公理,那麼可以撰寫論文投稿學術期刊,成為新銳作家。
哥德爾不完備定理Gödel's incompleteness theorems
Hilbert提倡形式系統。他希望數學是complete:一套公理能夠推導一切數學定理。只要數學家努力不懈持續探索,就能發掘所有真理。多麼美好!
Gödel隨即證明了數學不是complete。他發現到:Peano的自然數公理,存在無法推導的數學定理。無論數學家再怎麼努力推導,某些真理終究證明不了。
證明相當複雜,我沒有學會。知道結論就足夠了。請見哥德爾不完備定理、哥德爾不動點引理。
證明proof
大學數學教科書充滿著證明,就是引進邏輯學的緣故。數學完全變了個樣。數學變成了只有御宅才能瞭解的學問。
證明方式種類繁多。大家自己看維基百科吧:
順帶一提,數學的矛盾法proof by contradiction,源自邏輯學的歸謬法reductio ad absurdum。
歸謬法嘗試製造兩個對立的邏輯敘述q和¬q(形成恆假句q ∧ ¬q)。矛盾法則是用盡各種手段製造恆假句。
reductio ad absurdum p → q p implies q. p → ¬q p implies ¬q. (q ∧ ¬q ≡ ⊥) —————— ¬p ¬p is true. proof by contradiction [¬A] assume ¬A is true. assume A is false. ⋮ ⊥ ¬A derives ⊥. ——— A thus A is true.
順帶一提,矛盾法proof by contradiction習慣翻譯成反證法,逆否命題法proof by contrapositive有人翻譯成反證法。亂成一團。
條件敘述conditional statement
兩個邏輯敘述,製造邏輯推論。
A ⊢ B
考慮誰當前提、誰當結論。
logic | math | English | Chinese ------| ------| ---------------------| ------------------ A ⊢ B | A ⇒ B | sufficient condition | 充分條件 A ⊣ B | A ⇐ B | necessary condition | 必要條件 A ⟛ B| A ⇔ B | necessary and | 充分必要條件 | | sufficient condition |
調整前提結論,製造新的邏輯推論。
logic | English | Chinese -------------| ---------------| ------------------ ¬A ⊢ ¬B | inverse | 否命題 B ⊢ A | converse | 逆命題 ¬B ⊢ ¬A | contrapositive | 逆否命題
其中逆否命題存在等式。三者之中唯一有用的邏輯推論。
A ⊢ B ≡ ¬B ⊢ ¬A contraposition
哲學philosophy
理解的學問。發掘細節、釐清因果、編成故事。
科學:觀察現實,找到規律。「研究科學」就是理解現實規律。因此「研究科學」這種行為也是哲學的範疇。歐美大學院校,研究科學而獲得博士學位的人,稱作哲學博士。台灣效仿歐美制度。台灣資工所博士班畢業生,其英文畢業證書上面寫的就是哲學博士。
哲學引進邏輯學
講幹話大賽的比賽規則。
因果causation
事情演化的前後關連。
原因結果cause/effect針對現實世界,例如「下雨會潮濕」。
前提結論premiss/conclusion位於架空世界,例如「若下雨則潮濕」。
架空世界與現實世界經常進行媒合。例如肯定前件modus ponens與雨濕關連進行媒合:下雨是真,若下雨則潮濕是真,那麼潮濕是真。
p 下雨。 p → q 若下雨,則潮濕。 ————— q 潮濕。
例如歸謬法reductio ad absurdum與下雨亮暗關聯進行媒合:
p → q 每當下雨,天空就明亮。 p → ¬q 每當下雨,天空就昏暗。 —————— ¬p 怎麼可能是因為下雨。
原因結果(基於觀察)、前提結論(基於假設),不是相同事物,兩者天差地遠。儘管大家經常運用邏輯推論描述因果,但是不一定能夠順利媒合。
悖論paradox
一個邏輯敘述,無法指定唯一數值。
製造悖論的方法:以反義引述自身。
例如「我建立規則:『我建立的不是規則』」。
一、「我建立的東西」媒合邏輯變數p。
二、「是規則」和「不是規則」媒合邏輯數值⊤和⊥。
三、「我建立規則」媒合p = ⊤。
四、「我建立的不是規則」媒合p = ⊥。
五、變數p無法指定唯一數值。
悖論與矛盾不太一樣。
矛盾:一個敘述恆假。
悖論:一個敘述又真又假。
(悖論強行切開成兩個敘述,同時採納,則形成矛盾。)
悖論強行媒合邏輯推論,就會形成無窮迴圈。
一、若「我建立規則」確實是規則,則「我建立的不是規則」確實也是規則。
二、若「我建立的不是規則」是規則,則「我建立規則」不是規則。
三、若「我建立規則」不是規則,則「我建立的不是規則」不是規則。
四、若「我建立的不是規則」不是規則,根據雙反律,則「我建立規則」確實是規則。如此又回到起點了。
引述自身,邏輯學家稱作「自指self-reference」。以同義引述自身,語言學家稱作「重言tautology」。以反義引述自身,哲學家稱作「悖論paradox」。
哥德爾不完備定理的證明、停機問題的證明,就利用了悖論。悖論的情況下,無法指定唯一數值、無法辨認真假。因此無法推導所有定理、無法判斷是否停機。
然而只要避開悖論,也許就能順利推導定理、順利判斷停機。
道德經「道可道,非常道」可能就是奉勸大家避開悖論。
大家已經發現各式各樣的悖論:
事實與意見fact and opinion
事實是邏輯敘述數值已定。要嘛真、要嘛假。
意見是邏輯敘述數值未定。每個人自行假設數值。
事實通常符合邏輯推論。意見則未必。
「太陽很熱」是事實。可以利用科學研究所得到的規律進行邏輯推論,可以利用科學實驗確認邏輯敘述是真。例如太陽溫度5778K、陽光照射的地方溫度上升變熱。
「天氣很好」是意見。有人覺得天氣很好是涼爽乾燥,有人覺得天氣很好是晴空萬里。每個人依據自己的推論規則決定結論、設定真假,甚至沒有推論規則。
不管怎麼爭論,事實就是事實。不管怎麼爭論,意見沒有定論。
台灣國情特殊。記者經常報導意見,網民經常爭論意見,名嘴經常發表意見。不管怎麼吵,意見都不會有唯一結論。有可能這些人不熟悉邏輯學。也可能他們故意想讓大家遠離邏輯學。
比方說,新聞局員工,偕同報社舉辦週會,決定下週報導內容。他跟幫派大老是好朋友,一起出席報社員工家屬婚宴。
上述比方都是事實。當事人現身說法(如果沒有說謊)。
他們想讓大家遠離邏輯學則是意見。這是我提出來的說法。
歐美國家的義務教育,內含邏輯推理。「分辨事實與意見」是小學、幼稚園課程內容。台灣的義務教育,內含邏輯運算,不含邏輯推理。台灣民眾普遍缺乏「分辨事實與意見」的能力,甚至連台灣法官也是如此。
這也沒什麼,習慣就好了。:-(
語言學linguistics
說話和寫字的學問。屬於社會科學。
語言種類繁多。現實世界的語言有Mandarin、英語、西班牙語、……。架空世界的語言有昆雅語、克林貢語、……。
書寫系統種類繁多。現實世界的書寫系統分成五類:abjad、abugida、alphabetic、logographic、syllabic。
一種語言通常採用一種書寫系統。以便將話語化作文字。例如Mandarin採用漢字的變種(屬於logographic)、英語採用拉丁字母的變種(屬於alphabetic)。
多種語言經常共用一種書寫系統。古代秦漢帝國四處征伐同化,導致東亞大陸諸多語言採用漢字。Mandarin唸作「好」,粵語唸作「侯」,客家語唸作「後」,閩南語唸作「賀」,日語唸作「摳」,儘管意義不盡相同,但是一律寫作漢字「好」。
延伸閱讀:Chinese
好久好久以前,東亞大陸的許多民族,曾經建立了許多帝國。
古代曾有地名Cīna,位於東亞大陸。此地名源自秦漢帝國(秦漢魏晉宋齊梁陳)。中譯「支那/震旦」。
後來有地名Tabgach,位於差不多的地方。此地名源自鮮卑帝國(魏齊周隋唐)、沙陀帝國(漢周宋)。中譯「拓跋/桃花石」。
後來有地名Cathay,位於差不多的地方。此地名源自契丹帝國(遼)、党項帝國(夏)、蒙古帝國(元明)、女真帝國(金清)。中譯「契丹/國泰」。現今仍有地球人稱呼此地名,主要是北亞、西亞、東歐一帶的地球人。
事過境遷,東亞大陸的民族們,最近建立了兩個共和國。
民國官方將國內所有民族稱作「中華民族」,其居住地稱作「中華」。民國官方將國名定為「中華」,以地名當作國名。民國官方將國名翻譯為「China」而非「central flower」,以古代地名當作國名翻譯。
這導致當地人認為China是指這些民族的居住地(中華),Chinese是指這些民族的人和語言(華人和華語)。
中國官方將國內所有民族稱作「漢族」,其居住地稱作「中國」。國名翻譯維持原案。
這導致當地人認為China是指這些民族的居住地(中國),Chinese是指這些民族的人和語言(漢人和漢語)。
地球人與當地人的認知不盡相同。自從民國和中國將國名定為地名,現在地球人認為China是指民國和中國、也指所在地,Chinese是指中國公民與中國官方語言、也指當地的人和語言。
延伸閱讀:中文
所謂的「中文」是指「中國語與中國字」,詳細是指「中國官方制定的語言與書寫系統」。偶爾單指書寫系統。
中文是中國官方發明的新語言新文字。發明過程請見維基百科:
中國語Chinese language:中國官方稱作普通話,台灣官方稱作國語,地球人稱作Mandarin。(中國語是從Mandarin修改而得,然後中國語取代了Mandarin。地球人維持原本稱呼。)
中國字Chinese characters:中國官方稱作漢字,台灣官方稱作簡體字。各自都有政治目的。齣頭誠濟。
延伸閱讀:繁體中文
所謂的「繁體中文」是非常偏門的東西。
繁體中文是國民政府發明的新語言新文字。內容幾近原創,諸如筆劃寫法、筆劃順序、部首、注音符號、標點符號、句型(因為所以、雖然但是)、文法(文字順序打亂也沒關係)。繁體中文有別於明清白話文、四書五經(明清公務員考試標準)。
如果英語是中央帝國的語言,那麼繁體中文是西域蠻夷的語言。麥克阿瑟通西域、羅斯福變主幹道。因為大家不想承認自己是蠻夷,所以大人不會這樣教小孩。
延伸閱讀:雙語國家
西域蠻夷為了學會文明語言,西域蠻夷想到的方法是設定英檢門檻、推動雙語政策。
延伸閱讀:語文
照理來說「語」和「文」分別是指語言和書寫系統。
例如English language和English alphabet分別翻譯成「英語」與「英文字母」。
但是Chinese language和Chinese character卻翻譯成「中文」與「中文字」。為何不是「中語」與「中文字」呢?我也不知道。
語言學引進邏輯學
邏輯學最初的用途,是為了確認說話是否有理有據。
日常生活的語言,有一些部分可以運用邏輯學。
https://cs.lmu.edu/~ray/notes/logic/
病句solecism
一段話語,不符合語法、不符合語意。
一、不符合語法,例如詞彙搭配錯誤:
「這個地方的景色之壯麗,令人心曠神怡。」
不需要之這個字。
二、不符合語意,例如語序不同導致語意不同:
「有三個人每天去看電影。」
「每天有三個人去看電影。」
谷歌翻譯無法判別中文語意,翻譯結果毫無差別:
There are three people who go to the movies every day.
可靠性soundness
邏輯推論當中,假設前提是真,得到結論是真。但是這只是假設。當前提確實是真,那麼結論也確實是真。這種情況稱作可靠。
語言學與邏輯學,媒合成功的情況下,得以運用邏輯推論,判斷話語是否合理。前提確實是真,結論即是真,視作正論,稱作可靠。前提確實是假,結論可真可假,視作病句,稱作不可靠。
proposition: p it is a penguin. 它是企鵝(數值是真) q it is a bird. 它是鳥(數值是真) r it can fly. 它會飛(數值是假) inference: p → q a penguin is a bird. 企鵝是鳥 q → r a bird can fly. 鳥會飛 ————— p → r a penguin can fly. 企鵝會飛
架空世界,邏輯推論「p → q , q → r ⊨ p → r」是有效的。
現實世界,前提「企鵝是鳥」是真,前提「鳥會飛」是假。
根據真值表,因為其中一個前提「鳥會飛」是假,所以結論「企鵝會飛」可真可假。「企鵝會飛」不可靠。「企鵝會飛」是病句。
不可靠與矛盾不太一樣:
不可靠:邏輯推論,左式確實是假。
矛盾:邏輯推論,左式是恆假句。
「p → q , q → r ⊨ p → r」左式數值是假,顯然是不可靠。左式不是恆假句,既不是矛盾也不是爆炸。
先前的soundness與本章的soundness不太一樣:
先前:若邏輯推論是可衍生的,則邏輯推論是有效的。
(規則表衍生出來的結論,都符合真值表。)
本章:邏輯推論是有效的,而且,前提是真的。
(那麼結論確實是真的。)
這是什麼鬼
下面是媒合失敗的案例。這根本不是邏輯學。千萬不要媒合成這種奇怪的東西。數學函數中毒患者可能會這樣做。
predicate: P(x) x is a bird. 它是鳥 Q(x) x can fly. 它會飛 p it is a penguin. 企鵝 inference: P(p) a penguin is a bird. 企鵝是鳥 P(x) → Q(x) a bird can fly. 鳥會飛 ——————————— Q(p) a penguin can fly. 企鵝會飛
這是什麼鬼
下面也是媒合失敗的案例。影片作者分不清propositional logic和predicate logic的差別,將命題當作謂詞來解釋。
可以發現,不僅台灣法官不熟悉邏輯學,連台灣議員也不熟悉邏輯學,連台灣自媒體也不熟悉邏輯學。上述句子想要改成邏輯敘述,那麼記得加上量詞。
謬誤fallacy
無法符合邏輯推論。
語言學與邏輯學,媒合成功的情況下,得以運用邏輯推論,判斷話語是否合理。邏輯推論可靠,視之為正論。邏輯推論不可靠,視之為病句。這類謬誤歸類於「形式謬誤formal fallacy」。
語言學與邏輯學,媒合失敗的情況下,需要檢討哪一處媒合失敗。這類謬誤歸類於「非形式謬誤informal fallacy」。
大家已經發現各式各樣的謬誤:
形式謬誤formal fallacy
形式謬誤種類繁多。大家自己看維基百科吧:
介紹一個形式謬誤「倒果為因affirming the consequent」。
proposition: p it rains. 下雨(數值是假) q it is wet. 潮濕(數值是真) the inference is not valid: q it is wet. 潮濕 p → q if it rains, then wet. 若下雨則潮濕 ————— p it rains. 下雨
邏輯推論是無效的,先不管敘述數值為何。因此結論是病句。
住在海邊,海風吹來就會潮濕,不見得要下雨才會潮濕。
運氣很好的情況下,下雨是真,就會碰巧說對。有些人以為自己碰巧說對,就以為自己的邏輯推論有效。網路論壇經常有這種人。
取名倒果為因,是因為有一個有效的邏輯推論,長得跟它很像,而且兩者前提結論恰好顛倒。
valid invalid p q p → q p → q ————— ————— q p
非形式謬誤informal fallacy
非形式謬誤種類繁多。大家自己看維基百科吧:
我做個簡易分類,以一階邏輯為例:
一、元素不存在。(幻想)
「政府草菅人命,我對政府很失望。」
該人宇集合應是某些政府員工,但是該人根本不認識那些政府員工。該人宇集合沒有確切對象,只有幻想對象。
「總統草菅人命,我對總統很失望。」
該人宇集合沒有確切對象,只好抓總統來湊數。
「哆啦A夢為什麼不把耳朵修好。未來科技不是很發達嗎?」
在虛構的故事當中尋求真實感的人腦袋一定有問題。
相反地,能讓虛構故事符合前提結論,那是鬼才文豪。
「程式語言是外功、演算法是內功。」
架空世界「武俠小說」解釋架空世界「計算機科學」。
兩個架空世界,前提結論互不相同。計算機科學當中,內功外功不是確切對象,而是幻想對象。
虛構事物「武俠小說」解釋現實事物「計算機工程」。
藉由計算機工程,程式語言演算法成為現實事物。至於內功外功仍是虛構事物。內功外功不是確切對象,而是幻想對象。
二、宇集合不同。(立場不同)(定義不同)
「生物活不過千年。」
宇集合缺失。沒人去過海溝和地心進行確認。燈塔水母。
「天下無不是的父母。」
宇集合缺失。刑事案例不勝枚舉。
「感謝神明庇佑我渡過難關、保佑我平安。」
該人宇集合沒有醫生律師警察消防小7店員……。
「感恩師父!讚歎師父!」
該人宇集合只有師父。
「這次考試很簡單啊。」「那你考得不錯喔。」
兩人宇集合不同,其中一人參加很多困難的考試。注意到該人未必知識量較多、也未必高分。
「鋼鐵人和蝙蝠俠誰比較強?(比較漫畫角色強弱)」
兩人宇集合喬不攏。權謀、裝備、人脈這些算不算?體力腦力念力靈力咒力霸氣查克拉這些要用什麼公式來算?
「機器學習用到很多數學。」
這句話是主動賓結構。主語:機器學習。動詞:用到。賓語:很多數學。
該人賓語宇集合較小。純粹數學當中,機器學習用到分析與代數的一部分,其他分支還有數論、組合、幾何、拓樸、……。應用數學當中,機器學習用到資訊理論,其他主題還有微分方程、調和分析、賽局理論、……。除此之外,機器學習用到統計學,但是這不屬於數學。講難聽點,該人搞不好連大學數學系必修課程有哪些都不知道,搞不好連課程用書都沒讀過,符合第一類型的幻想。
又或者該人自訂主語宇集合。別人需要推測主語宇集合。這句話其實省略了「相對於其他資工系科目,……」。該人的比較對象是資工系其他科目。
三、變數不明。(細節不同)
「持槍殺人不對。壞人持槍殺人不對。警察持槍殺人、對象是上述壞人呢?」
除了持槍殺人之外,尚有一些變數沒有明講,例如動機。
追加變數、擴大真值表,該敘述不再是恆真句。
「L死亡之後,又出現後繼者M和N。(故事情節發展)」
御都合主義。隨意追加變數。反正只要硬掰成恆真句就行了。
四、變數數值不明。(資訊不足)
「孩子如果不上好國中,之後就考不上好高中,再來就考不進好大學,接著會找不到好工作,然後會窮困潦倒,一生就毀了!」
滑坡謬誤。變數數值不確定。
這句話可以媒合複合命題(¬p₁ → ¬p₂) ∧ (¬p₂ → ¬p₃) ∧ ...。如果每個括號都是真,那麼這句話是真。如果其中一個括號是假,那麼這句話是假。
該人必須等到該孩子出社會,才能根據事實,驗證括號真假。
又或者該人宇集合是地球上所有孩子。顯然每個括號都是假。反例實在太多。中了樂透翻轉人生,大有人在。
這句話媒合邏輯學,形成謬誤,缺乏道理。這句話媒合社會學,卻有幾分道理。類似的例子還有「有錢人的小孩子什麼都比較會」,邏輯雖假,但言之有理。話糙理不糙。
人類不見得依照邏輯過生活。所謂道理,見仁見智啦。
「米飯是垃圾食物。」
變數相依。變數數值不是定值。變數數值來自於其他變數(透過對比、聯想、……),導致某個interpretation不可靠。
非形式邏輯informal logic
利用道德、偏好、聯想、暗示,藉此表達意見。
經典範例是網路論壇筆戰。例如下述評論,全篇只有意見,沒有事實。同時運用許多非形式邏輯的伎倆,以便維護當事人。
「投影片抄襲是原作跟抄襲者之間的問題」。非形式邏輯的伎倆。這是撇清關係。投影片用於學生,問題就關乎學生。
「學生學習權益上應該是沒什麼受損啦」。這是邏輯謬誤。以偏概全。他一個人的意見代表所有學生意見。
「說句真話,那些課亂上、愛教不教、不備課的老師我還覺得更可惡欸」非形式邏輯的伎倆。這是轉移話題。以他人錯誤掩飾當事人錯誤,藉此維護當事人。
「投影片即使是用別人的,至少還是得自己上、自己講解內容。」這是謬誤。將別人的投影片用於課程,自己講解內容,這就叫做抄襲。
「要知道只要有一個同學成績有誤但送出了,要更改的話,對同學跟老師都是非常麻煩的」這是謬誤,也是非形式邏輯的伎倆。作者暗示當事人擔心送錯成績導致延遲,藉此維護當事人。但是這是作者臆測。事實是從未有台大教師宣稱擔心送錯成績,也從未有台大教師宣稱因此導致延遲。事實是大部分台大教師都能準時送成績。
「但要帶風向甚至亂開玩笑、人身攻擊的,要記得低卡不是匿名的喔」非形式邏輯的伎倆。這是欺騙威脅。當事人犯錯可受公評,作者卻以此威脅其他網民。
退萬步而言,按照作者一開始的論點,當事人要提告,是當事人與網民之間的問題,與作者無關。作者自打臉。
可以發現,即便是台大資工系學生,也缺乏論述能力。整篇評論,運用各種伎倆,意圖遠離事實。這些伎倆不是義務教育的內容,但是作者卻學會了。各位可以想一想,作者是從哪裡學會這些伎倆,又是什麼人教會作者這些伎倆。
邏輯學logic
邏輯學有許多分支。先前章節涉及的分支:
符號邏輯symbolic logic,特色是命題(變數)。
數學邏輯mathematical logic,特色是連詞(運算)。
形式邏輯formal logic,特色是規則(衍生)。
非形式邏輯informal logic,特色是聲東擊西。
邏輯學引進數學
邏輯學結合數學,稱作數學邏輯mathematical logic。
propositional logic: binary (true/false) three-valued logic: ternary (true/false/unknown) fuzzy logic: real (probability) deep learning: function (probability distribution) paraconsistent logic: NaN/INF
propositional logic: status predicate logic: set modal logic: necessity temporal logic: always intensional logic: abstraction
邏輯學結合演算法,稱作計算邏輯computational logic。
boolean logic: conjunctive normal form combinatory logic: lambda calculus
邏輯學引進哲學
邏輯學結合哲學,稱作哲學邏輯philosophical logic,又稱作邏輯的哲學philosophy of logic。
例如「思維三律law of thought」。邏輯學根源。邏輯學家採用下述三個敘述,作為恆真句,以此進行邏輯推論、發明邏輯運算。
一、同一律law of identity:p = p。
二、無矛盾律law of noncontradiction:¬(p ∧ ¬p)。
三、排中律law of excluded middle:(p ∨ ¬p)。
建立邏輯學說,為何採用思維三律,而不是其他定律呢?探討這個問題,就是一種哲學。
邏輯學引進語言學
一、邏輯學的衍生規則,改成語言學的文法。這個領域稱作形式語言formal language。
結論是可衍生的=句子是文法正確的。
二、邏輯命題的數值從真假改成二補數、浮點數。這個領域稱作程式語言programming language。
結論是可衍生的=程式碼的語法是正確的。
邏輯推論=檢查語法。(大家使用編譯器自動檢查語法)
邏輯推理=設計程式語言。(大家目前只會手動設計語言)
三、前提結論,改成輸入輸出。衍生規則,改成程式碼。這個領域稱作,呃,自動化機械碼農。
邏輯推論=創造演算法。(知名專案AlphaCode)
邏輯推理=人工智慧。(知名話題AI takeover)