whiley_test_file 0.6.2

An API for manipulating test files for the Whiley Programming Language.
Documentation
original.name="While_Valid_54"
======
>>> main.whiley
function permute(int[] xs) -> (int[] rs, int[] witness)
ensures |rs| == |witness|
ensures |xs| == |witness|
ensures all { k in 0..|witness| | xs[k] == rs[witness[k]] }:
    //
    int i = 0
    int[] ws = [0; |xs|] // ghost "witness"
    //
    while i < |xs|
    where i >= 0 && |xs| == |ws|
    where all { j in 0..i | xs[j] == xs[ws[j]] }:
        ws[i] = i
        i = i + 1
    //
    return xs,ws

public export method test():
    int[] ys
    int[] ws
    //
    (ys,ws) = permute([1,2,3])
    assume ys == [1,2,3] && ws == [0,1,2]
---