Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Source/DafnyCore/DafnyCore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
<PackageReference Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
<PackageReference Include="System.Runtime.Numerics" Version="4.3.0" />
<PackageReference Include="System.Collections.Immutable" Version="1.7.1" />
<PackageReference Include="Boogie.ExecutionEngine" Version="3.2.4" />
<PackageReference Include="Boogie.ExecutionEngine" Version="3.2.5" />
<PackageReference Include="Tomlyn" Version="0.16.2" />
</ItemGroup>

Expand Down
3 changes: 3 additions & 0 deletions Source/DafnyCore/Verifier/BoogieGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,9 @@ public BoogieGenerator(ErrorReporter reporter, ProofDependencyManager depManager
Bpl.Program boogieProgram = ReadPrelude();
if (boogieProgram != null) {
sink = boogieProgram;
foreach (var function in boogieProgram.TopLevelDeclarations.OfType<Bpl.Function>()) {
function.AlwaysRevealed = true;
}
predef = FindPredefinedDecls(boogieProgram);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,22 @@ method ReadsClause() {
reveal Obj;
}
}
}

module M1 {
ghost function RecFunc(x: nat): nat {
if x == 0 then 0
else 1 + RecFunc(x - 1)
}
}
module M2 {
import opened M1
lemma Lemma(x: nat)
ensures RecFunc(0) == 0
{
// Because RecFunc is recursive, it uses the fuel related $LS function,
// this was previously hidden by 'hide *', so that the ensures could not be proven
hide *;
reveal RecFunc;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ revealFunctions.dfy(15,12): Error: assertion might not hold
revealFunctions.dfy(22,12): Error: assertion might not hold
revealFunctions.dfy(49,21): Error: assertion might not hold

Dafny program verifier finished with 15 verified, 3 errors
Dafny program verifier finished with 22 verified, 3 errors
Loading