2016-08-15 16 views
0

現在、私はプログラムの正しさを知るためにHoareのロジックを勉強しています。特に、私はHoare logicを読んでいると私はしばらくのルールから、次の例を分析しています: while rule exampleHoareのロジックでは{x <= 10^x <10}が{x <= 10}ではなく{x <10}に簡略化されているのはなぜですか?

簡素化のステップについては何私が知りたいです:{x <= 10^x < 10}{x < 10}代わりの{x <= 10}に簡略化されている理由は?

+0

「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'(論理和の同一性)と等価です。 –

答えて

3

"Condition1 AND Condition2"、条件2(<)が条件1(<=)より制限されています。

確かに、両方を満たすもの(ANDのため)は、より限定的なものも満たす必要があります。

したがって、より制限の厳しい条件を単独で使用するだけで十分です。他の条件は余計です。


別の言い方をすれば:<=<の唯一の違いは==ケースです。 ==のケースを満たすものは、より限定的なケースである<を満たす可能性があります。そのため、ポイントチェックはありません。

純粋な数学/論理質問については、https://math.stackexchange.com/をチェックしてください。

+0

したがって、この命題は強化されていますか? – InfZero

+0

あなたの提案をお寄せいただきありがとうございます。私はアルゴリズム分析と設計にも関係していると思うので、ここで質問をしました。 – InfZero

+1

@JohnOrtizOrdoñez私はそれが強化されているかどうかわかりませんが、おそらく「弱くはない」というのは正確です(同じことをより単純な方法で表現することができれば – jwd

0

新しいタブレットを選択し、(1)大きな画面を表示し、(2)20cmを超える画面を表示したいとします。最初の条件は、2番目の条件が真である場合にのみ真となるため、最初の条件を明確に破棄することができます。

あなたのケースでは、「大画面」の条件はx <= 10で、「20cm以上の画面」はx < 10です。 いずれも、x < 10を満足する全ての場合である。より「リラックスした」状態x <= 10は投げ捨てられます。

+0

このワッフルは、「ビッグ」とは> 20cmの意味であるという隠れた仮定に基づいています – EJP

+0

いいえいいえ...あなたが言ったら、(1)と私はこの答えを書いたとき、私は(本当に) '' big''が '> = 'のようなものであるという考えに基づいていました。 17cm'](http://i.imgur.com/p0Fu6Nv.jpg)。[しかし、私はそれは完全にオフフロピ=だったので、言及したくなかった]) – vaulttech

関連する問題