Created
July 10, 2016 05:00
-
-
Save KentaKudo/f68bbfadb4169ab1e46519ff399b30dd to your computer and use it in GitHub Desktop.
Logical Connectives
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 矛盾 | |
func contradiction(p: Bool, q: Bool) -> Bool { | |
return false | |
} | |
// トートロジー | |
func tautology(p: Bool, q: Bool) -> Bool { | |
return true | |
} | |
// 命題P | |
func propositionP(p: Bool, q: Bool) -> Bool { | |
return p | |
} | |
// 否定P | |
func negationOfP(p: Bool, q: Bool) -> Bool { | |
return !p | |
} | |
// 命題Q | |
func propositionQ(p: Bool, q: Bool) -> Bool { | |
return q | |
} | |
// 否定Q | |
func negationOfQ(p: Bool, q: Bool) -> Bool { | |
return !q | |
} | |
// 論理積 | |
func conjunction(p: Bool, q: Bool) -> Bool { | |
return p && q | |
} | |
// 否定論理積 | |
func alternativeDenial(p: Bool, q: Bool) -> Bool { | |
return !p || !q | |
} | |
// 論理和 | |
func disjunction(p: Bool, q: Bool) -> Bool { | |
return p || q | |
} | |
// 否定論理和 | |
func jointDenial(p: Bool, q: Bool) -> Bool { | |
return !p && !q | |
} | |
// 非含意 | |
func materialNonInplication(p: Bool, q: Bool) -> Bool { | |
return p && !q | |
} | |
// 否定含意(条件式) | |
func materialInplication(p: Bool, q: Bool) -> Bool { | |
return !p || q | |
} | |
// 逆非含意 | |
func converseNonImplication(p: Bool, q: Bool) -> Bool { | |
return !p && q | |
} | |
// 逆含意 | |
func converseImplication(p: Bool, q: Bool) -> Bool { | |
return p || !q | |
} | |
// 排他的論理和 | |
func exclusiveDisjunction(p: Bool, q: Bool) -> Bool { | |
return (p && !q) || (!p && q) | |
} | |
// 同値(必要十分条件) | |
func biconditional(p: Bool, q: Bool) -> Bool { | |
return (p && q) || (!p && !q) | |
} | |
// XOR演算子 | |
infix operator ^^ { associativity left precedence 110 } | |
func ^^ (lhs: Bool, rhs: Bool) -> Bool { | |
return exclusiveDisjunction(p: lhs, q: rhs) // または (p && !q) || (!p && q) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment