val N:ℕ; val M:ℕ; type int = ℤ[-1,N]; type elem = ℕ[M]; type array = Array[N,elem]; proc minimumElement(a:array,m:elem,n:int):elem { var e:elem ≔ m; for var i:int ≔ 0; i < n; i ≔ i+1 do { if a[i] < e then e ≔ a[i]; } return e; } proc minimumPosition(a:array,m:elem,n:int):int { var e:elem ≔ m; var p:int ≔ 0; for var i:int ≔ 0; i < n; i ≔ i+1 do { if a[i] < e then p ≔ i; } return p; }