On 15 Feb 2017, at 08:10, Paul Isaacs <paul@redpineinstruments.org> wrote:

x( a,b,c)[ 6,7,8 ] being valid and it is not.

I think it is. This compiles and runs:

program array_return(output);

type i5 = integer value 5;
     arr_type = array[1..10, 1..10, 1..10] of i5;

var arr : arr_type;
    a, b, c : integer;

function x(a, b, c : integer) : arr_type;
begin
    x := arr;
end;

begin
    a := 2;
    b := 3;
    c := 4;
    writeln(x(a, b, c)[6, 7, 8]);   {5}
end.