diff options
author | leino <unknown> | 2015-08-12 22:44:50 -0700 |
---|---|---|
committer | leino <unknown> | 2015-08-12 22:44:50 -0700 |
commit | f28fa68497352ffb57ab2846da4cc1c1aeaf1968 (patch) | |
tree | 4eaf17362df86914266669a238e50028a478dc2e /Test/dafny4/NumberRepresentations.dfy | |
parent | 41d16e5a28b4eab7fb56f04c76759f8e24678b74 (diff) |
Change the induction heuristic for lemmas to also look in precondition for clues about which parameters to include.
As a result, improved many test cases (see, e.g., dafny4/NipkowKlein-chapter7.dfy!) and beautified some others.
Diffstat (limited to 'Test/dafny4/NumberRepresentations.dfy')
-rw-r--r-- | Test/dafny4/NumberRepresentations.dfy | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/Test/dafny4/NumberRepresentations.dfy b/Test/dafny4/NumberRepresentations.dfy index 3dba6325..0d6cffa1 100644 --- a/Test/dafny4/NumberRepresentations.dfy +++ b/Test/dafny4/NumberRepresentations.dfy @@ -234,17 +234,16 @@ lemma UniqueRepresentation(a: seq<int>, b: seq<int>, lowDigit: int, base: nat) }
lemma ZeroIsUnique(a: seq<int>, lowDigit: int, base: nat)
- requires 2 <= base && lowDigit <= 0 < lowDigit + base;
- requires a == trim(a);
- requires IsSkewNumber(a, lowDigit, base);
- requires eval(a, base) == 0;
- ensures a == [];
+ requires 2 <= base && lowDigit <= 0 < lowDigit + base
+ requires a == trim(a)
+ requires IsSkewNumber(a, lowDigit, base)
+ requires eval(a, base) == 0
+ ensures a == []
{
if a != [] {
- assert eval(a, base) == a[0] + base * eval(a[1..], base);
if eval(a[1..], base) == 0 {
TrimProperty(a);
- ZeroIsUnique(a[1..], lowDigit, base);
+ // ZeroIsUnique(a[1..], lowDigit, base);
}
assert false;
}
|