This error can occur when trying to write a sequence comprehension expression like

function f(i: int): int
requires i < 10
{
i
}

method test() {
var s := seq(5, i => f(i));
}



which produces

ERROR_SeqComp.dfy(8,23): Error: function precondition might not hold
ERROR_SeqComp.dfy(2,13): Related location

Dafny program verifier finished with 0 verified, 1 error



The problem is that current Dafny does not implicitly impose the condition that the function used to initialize the sequence elements is only called with nat values less than the size of the new sequence. That condition has to be made explicit:

function f(i: int): int
requires i < 10
{
i
}

method test() {
var s := seq(5, i requires i < 10 => f(i));
}