21.9. Подсчет подвыражений 239
Пусть имеется пара µ-типов S , T νS
m
, такая, что treeof S , T A, B . Исходя из Лем-
мы 21.8.6, мы можем предположить, что ни S , ни T не начинаются с µ. Поскольку множество
νS
m
S-консистентно, пара S , T должна быть поддержана одним из вариантов в определениии
S
m
, — т. е., должна иметь одну из следующих форм.
Вариант: S , T S , Top
Тогда B Top, и A , B S Q по определению S.
Вариант: S , T S
1
S
2
, T
1
T
2
, где S
1
, T
1
, S
2
, T
2
νS
m
Согласно определению treeof , имеем B treeof T B
1
B
2
, где каждый B
i
treeof T
i
. Подобным обра-
зом, A A
1
A
2
, где A
i
treeof S
i
. Применение функции treeof к этим парам дает A
1
, B
1
, A
2
, B
2
Q.
Но тогда по определению S мы получаем A, B A
1
A
2
, B
1
B
2
S Q .
Вариант: S , T S
1
S
2
, T
1
T
2
, где T
1
, S
1
, S
2
, T
2
νS
m
Аналогично.
Теперь давайте проверим направление «справа налево» — что из treeof S, T νS следует S, T
νS
m
. Согласно принципу коиндукции, достаточно продемонстрировать S
m
-консистентное множе-
ство R T
m
T
m
, такое, что S, T R. Мы утверждаем, что таким множеством является
R S , T T
m
T
m
treeof S , T νS . Ясно, что S, T R. Чтобы завершить доказательство,
остается показать, что из S , T R следует S , T S
m
R
Заметим, что, поскольку νS S-консистентно, всякая пара A , B νS должна иметь одну из
форм A , Top , A
1
A
2
, B
1
B
2
либо A
1
A
2
, B
1
B
2
. Отсюда и из определения treeof мы видим,
что всякая пара S , T R должна иметь одну из форм S , Top , S
1
S
2
, S
1
S
2
, T
1
T
2
,
S , µX.T
1
либо µX.S
1
, T . Мы рассматриваем эти варианты по очереди.
Вариант: S , T S , Top
В этом случае S , T S
m
R непосредственно по определению S
m
.
Вариант: S , T S
1
S
2
, T
1
T
2
Пусть A , B treeof S , T . Тогда A , B A
1
A
2
, B
1
B
2
, где A
1
treeof S
i
, а B
i
treeof B
i
.
Поскольку A , B νS, из S-консистентности множества νS следует A
i
, B
i
νS, а отсюда S
i
, T
i
R по определению R. Теперь определение S
m
дает нам S , T S
1
S
2
, T
1
T
2
S
m
R .
Вариант: S , T S
1
S
2
, T
1
T
2
Аналогично.
Вариант: S , T S , µX.T
1
Пусть T X µX.T
1
T
1
. По определению, treeof T treeof T . Следовательно, по определению R,
мы имеем S , T R, и, таким образом, S , T S
m
R , по определению S
m
.
Вариант: S , T µX.S
1
, T
Если T Top или T начинается с µ, применим один из предыдущих вариантов; в противном случае,
доказательство аналогично предпоследнему варианту.
Соответствие, установленное этой теоремой, является утверждением о корректности и полноте на-
следования для µ-типов, определенного в этом разделе, по отношению к обыкновенному отношению
наследования для бесконечных древовидных типов, ограниченному типами, представимыми в виде ко-
нечных µ-выражений.
21.9. Подсчет подвыражений
При подстановке в общий алгоритм gfp
t
(21.6.4) конкретной функции support
S
m
для отношения
наследования на µ-типах (21.8.4) получается алгоритм проверки наследования, изображенный на
Рис. 21.4. Рассуждения, приведенные в Разделе 21.6, показывают, что для этого алгоритма будет га-
рантировано завершение в случае, если множество reachable
S
m
S, T конечно для любой пары µ-типов
S, T . Этот раздел посвящен доказательству, что так оно и есть (Утверждение 21.9.11).
На первый взгляд это свойство кажется очевидным, однако его строгое доказательство оказыва-
ется удивительно трудоемким. Сложность состоит в том, что есть два способа определить множество
«замкнутых подвыражений» µ-типа. Один из них, который мы назовем «подвыражения при взгля-
де сверху-вниз», прямо соответствует подвыражениям, порождаемым через support
S
m
. Другой, кото-
рый мы назовем «подвыражения при взгляде снизу вверх», приводит к простому доказательству, что
множество замкнутых подвыражений всякого µ-типа конечно. Доказательство завершения алгоритма
rev. 104