Seja um conjunto perfeitamente aninhado de loops, cujo interior contém referências atômicas em variáveis estruturadas:
for (i1=1; i1<=N1; i1++)
for (i2=1; i2<=N2; i2++)
...
for (ik=1; ik<=Nk; ik++)
{
<S1>
...
A[h(i1,i2,...,ik)]
...
<S2>
...
A[g(i1,i2,...,ik)]
...
}
definimos:· A: matriz de dimensão d
· h e g: mapeamento Zk em Zd
· C=
,
C Zk : espaço de iterações com tamanho igual a N =

· I = (i1,i2,...,ik) C : vetor de iteração que especifica os valores correntes dos índices dos loops
Há um tipo especial de dependência muito comum e que será usado na formulação matemática do resultado do custo da janela:
Definição 4: Dependência Uniformente Gerada é a dependência existente entre dois comandos S1 e S2 da forma:
<S1> ...... X(h(I)
+ d1)
<S2> ...... X(h(I)
+ d2)
onde h é um mapeamento de Zk em Zd.
A ordem em que as diferentes ocorrências da instrução S são executadas podem ser caracterizadas pela timing function, que é um mapeamento um-a-um entre C e {1,...,N}. A timing function é formalmente definida por:
T : C {1,... N} -> I
T(I)
= T(i1,i2,...,ik) = I
onde Pj = I e Pk = 1. Em casos onde nenhuma ambigüidade é possível, o vetor de iterações I e o correspondente passo de tempo t = T(I) serão identificados.