現在、私はプログラムの正しさを知るためにHoareのロジックを勉強しています。特に、私はHoare logicを読んでいると私はしばらくのルールから、次の例を分析しています: Hoareのロジックでは{x <= 10^x <10}が{x <= 10}ではなく{x <10}に簡略化されているのはなぜですか?
簡素化のステップについては何私が知りたいです:{x <= 10^x < 10}
は{x < 10}
代わりの{x <= 10}
に簡略化されている理由は?
現在、私はプログラムの正しさを知るためにHoareのロジックを勉強しています。特に、私はHoare logicを読んでいると私はしばらくのルールから、次の例を分析しています: Hoareのロジックでは{x <= 10^x <10}が{x <= 10}ではなく{x <10}に簡略化されているのはなぜですか?
簡素化のステップについては何私が知りたいです:{x <= 10^x < 10}
は{x < 10}
代わりの{x <= 10}
に簡略化されている理由は?
"Condition1 AND Condition2"、条件2(<
)が条件1(<=
)より制限されています。
確かに、両方を満たすもの(ANDのため)は、より限定的なものも満たす必要があります。
したがって、より制限の厳しい条件を単独で使用するだけで十分です。他の条件は余計です。
別の言い方をすれば:<=
と<
の唯一の違いは==
ケースです。 ==
のケースを満たすものは、より限定的なケースである<
を満たす可能性があります。そのため、ポイントチェックはありません。
純粋な数学/論理質問については、https://math.stackexchange.com/をチェックしてください。
新しいタブレットを選択し、(1)大きな画面を表示し、(2)20cmを超える画面を表示したいとします。最初の条件は、2番目の条件が真である場合にのみ真となるため、最初の条件を明確に破棄することができます。
あなたのケースでは、「大画面」の条件はx <= 10
で、「20cm以上の画面」はx < 10
です。 いずれも、x < 10
を満足する全ての場合である。より「リラックスした」状態x <= 10
は投げ捨てられます。
「x = 10」の場合を考えてください。これは元の状態または簡略化されたバージョンには合致しませんが、それはあなたのものです。 'x <= 10/\ x <10'は'(x <10 \/x = 10)/ \ x <10'( '<='のdefによる) (x = 10/\ x <10)\(x = 10/\ x <10) '(ディストリビューション)は' x <10/\/_ | _'(何か以下であることはできません)は、 'x <10'(論理和の同一性)と等価です。 –