diff options
author | Clément Pit--Claudel <clement.pitclaudel@live.com> | 2015-08-27 16:10:25 -0700 |
---|---|---|
committer | Clément Pit--Claudel <clement.pitclaudel@live.com> | 2015-08-27 16:10:25 -0700 |
commit | 7a993f6c87eaa82f383b1c5e7411f1878d4edf30 (patch) | |
tree | 0db4ff443f72c435b113afd3ae8ae9b067273d19 /Source/Dafny/Triggers/QuantifiersCollection.cs | |
parent | 7bb5dfbcbba9e792e8fd92574b14271ecc7ec415 (diff) |
Small fix: there is no loop in (forall x :: Q(x) && Q(0))
Again, spotted by Chris :)
Diffstat (limited to 'Source/Dafny/Triggers/QuantifiersCollection.cs')
-rw-r--r-- | Source/Dafny/Triggers/QuantifiersCollection.cs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Source/Dafny/Triggers/QuantifiersCollection.cs b/Source/Dafny/Triggers/QuantifiersCollection.cs index 114d5f5d..b77afccb 100644 --- a/Source/Dafny/Triggers/QuantifiersCollection.cs +++ b/Source/Dafny/Triggers/QuantifiersCollection.cs @@ -100,7 +100,9 @@ namespace Microsoft.Dafny.Triggers { // quantifier that matches one of the terms of the trigger (this ensures that
// [∀ x {f(x), f(f(x))} ⋅ f(x) = f(f(x))] is not a loop). And we even
// ignore terms that almost match a trigger term, modulo a single variable
- // (this ensures that [∀ x y {a(x, y)} ⋅ a(x, y) == a(y, x)] is not a loop).
+ // (this ensures that [∀ x y {a(x, y)} ⋅ a(x, y) == a(y, x)] is not a loop).
+ // The last thing that we ignore is matching variables against constants,
+ // to ensure that P(x) is not flagged as looping with P(0).
// This ignoring logic is implemented by the CouldCauseLoops method.
foreach (var q in quantifiers) {
|