SOFL仕様記述言語の基本 コンポーネント

SOFL仕様記述言語の基本
コンポーネント
SOFL論理
モジュール
条件データフロー図
プロセス仕様
関数仕様
階層的なデータフロー図
データ型
SOFL論理
SOFL論理は、命題論理と述語論理の拡張で、
「未定義」という特別な値を表すことができる論理
である。
論理は、正しい推理システムである。
推理システム =
言語(推理に必要な条件と結論を表す)
+
推理ルール
2.命題論理
命題についての論理。
2.1 命題(proposition)
定義2.1 命題は真(true)または偽(false)と
判断できる表現である。
命題の事例:
(1) 虎は動物である (true)
(2) りんごは果物である (true)
(3) 3 + 5 > 10 (false)
次の表現は命題ではない。
(1) 貴方は幸せですか?
(2) 水泳に行きましょう。
(3) x := y + 3 (代入文)
定義2.2 論理値 true とfalse は、真理値(truth value)と言う。
SOFL言語では、truth value は、bool というブール型にまとめる。
bool = {true, false}
命題は、数学符号で表す。
(1) P: 虎は動物である。
(2) Q: りんごは果物である。
(3) R: 3 + 5 > 10.
こういう命題は、原子命題(atomic proposition)と呼ぶ。
分解できないのは、原子命題の特徴である。
論理演算子によって簡単な命題からより複雑な命題
を形成することができる。
2.2 命題論理演算子
演算子
not
and
or
=>
<=>
優先順位
一番高い
一番低い
2.3 論理積
定義2.3 論理積は、論理演算子andによって形成された
論理式である。
例え:
x > 5 and x < 10
質問: 論理積の値は、どのように決めるのか。
論理積の真理表(truth table)
P1
P2
P1 and P2
true
true
false
false
true
false
true
false
true
false
false
false
事例:
true and true <=> true
false and true <=> false
false and false <=> false
2.4 論理和
定義2.4 論理和は、論理演算子orによって形成
された論理式である。
P1 or P2
例え:
x > 5 or x < 3
論理和の真理表(truth table)
P1 or P2
P1
P2
true
true
true
true
false
true
false
true
true
false
false
false
2.5 否定
定義2.5 否定は、論理演算子notによって形成
された論理式である。
not P1
例え:
not x > 5
否定の真理表(truth table)
P1
not P1
true
false
false
true
2.6 含意
定義2.6 含意は、論理演算子=>によって形成され
た論理式である。
P1 => P2
含意の真理表(truth table)
P1
P2
P1 => P2
true
true
true
true
false
false
false
true
true
false
false
true
例え:
x > 10 => x > 5
この場合は、x > 10 が x > 5より強いとも言う.
2.7 同値
定義2.7 同値は、論理演算子<=>によって形成
された論理式である。
P1 <=> P2
同値の真理表(truth table)
P1
P2
P1 <=> P2
true
true
true
true
false
false
false
true
false
false
false
true
例え:
(1)Johnは Chrisの友達である <=>
Chrisは Johnの友達である
(2) x > 10 <=> not x = 10 and not x < 10
括弧を使って、論理演算の優先順
位を変える
例えば、次の論理式
not p and q or r <=> p => q and r
は、命題論理演算子の固有の優先順位によって次の
論理式と同値である。
(((not p) and q) or r) <=> (p => (q and r))
括弧を使えば、次のような意味違う論理式も表現できる。
not (p and ((q or (r <=> p))=> q) and r)
2.8 正規形(Normal form)
定義2.8 和正規形(disjunctive normal form)は、論理積
から構成された論理和である。
P_1 or P_2 or ... or P_n
ここで P_i (i = 1..n) は、原子命題またはそれの否定から
形成された論理積である。
特徴:P_iの一つが真であれば、その和正規形が
真になる。
定義2.9積正規形(
conjunctive normal form)は、
論理和から構成された論理積である。
Q_1 and Q_2 and ??? and Q_m
ここで Q_j (j=1..m) は、原子命題またはその否定
から形成された論理和である。
特徴:全てのQ_j は真であれば、その積正規形は
真である。
練習 2
1.次の論理式の演算順位を述べなさい。
a. P or Q and R =>P and Q or R
b. P and Q or R <=> not R and not P or R
c. P and (Q or not R) => not P <=> Q or R and not Q
2.次の論理式は、和正規形(disjunctive normal form)であるかどう
かを判断しなさい。
a. P1 and Q1 or (P2 or Q2) or P3 and Q3
b. P1 or P2 and not P3 or true or false
c. P1 and P2 => P3 and P4 or P5 and not P6