def tri_selection(L): #@ ensures forall i. forall j. 0<=i L[i]<=L[j] im = 0 for i in range(len(L)): #@ invariant forall k. forall l. 0<=k L[k]<=L[l] #@ invariant forall k. forall l. 0<=k<=l L[k]<=L[l] im = i for j in range(i+1,len(L)): #@ invariant i<=im L[im]<=L[k] if L[j] L[k]<=L[i]