original.name="While_Valid_53" ====== >>> main.whiley function permute(int[] xs) -> (int[] witness) ensures |xs| == |witness| ensures all { k in 0..|witness| | xs[k] == xs[witness[k]] }: // int i = 0 int[] ws = [0; |xs|] // 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 ws public export method test(): assume permute([1,2,3]) == [0,1,2] ---