ハイパー演算子を多重リストへと拡張

a,b,c,d,n,m,m0〜m(n),x 非負整数
X 0個以上の非負整数
X[] 0個以上の非負整数と[]。ただし、1個以上の場合は右端は必ず[]
X[c] 0個以上の非負整数と[],[0]〜[c]。ただし、1個以上の場合は右端は必ず[c]

$(a,m)=([],a:a):m
&(a,m)=(a:a,$(a,m))
$(a,m,0)=([0],&(a,a)):m
&(a,m,0)=(&(a,a),$(a,m,0))
$(a,m,c+1)=([c+1],&(a,a,c)):m
&(a,m,c+1)=(&(a,a,c),$(a,m,c+1))

%(a,m)=$(a,m)
%(a,m,0)=(%(a,m),$(a,m0))
%(a,m,c+1)=(%(a,m,c),$(a,m(c+1)))

#m=([]:m)
#(m,0)=(#m,[0]:m0)
#(m,c+1)=(#(m,c),[c+1]:m(c+1))
#(m,a..b)=([a]:m(a),[a+1]:m(a+1),[a+2]:m(a+2),...,[b-2]:m(b-2),[b-1]:m(b-1),[b]:m(b)) かつ a≦b

X{}=(X[])
X{0}=(X[0],X{})
X{c+1}=(X[c+1],X{c})
X{a..b}=(X[a],X[a-1],X[a-2],...,X[b+2],X[b+1],X[b]) かつ a>b

a[]0=a
a[0]0=0
a[0と空以外]0=1
a[](b+1)=1+(a[]b)
a[X{x..(c+1)},#(m,c..c),[c]](b+1)=a[X{x..(c+1)},&(a,m(c),c)](a[X{x..(c+1)},#(m,c..c),[c]]b)
a[X{x..(d+1)},[0],#(m,d..c),[c]](b+1)=a[X{x..(d+1)},&(a,m(c),c)](a[X{x..(d+1)},[d],#(m,d..c),[c]]b) かつ d<c
a[X{x..0},[],#(m,c),[c]](b+1)=a[X{x..0},a:a,%(a,m),$(a,m(c)+1,c)](a[X{x..0},[],#(m,c),[c]]b)
a[X{x},0:n,0,#(m,c),[c]](b+1)=a[X{x},a:n,%(a,m),$(a,m(c)+1,c)](a[X{x},0:n,0,#(m,c),[c]]b)
a[X{x},X,b+1,0:n,#(m,c),[c]](b+1)=a[X{x},X,b,a:n,%(a,m),$(a,m(c)+1,c)](a[X{x},X,b+1,0:n,#(m,c),[c]]b)