About one Approach for the Verification of Algebraic Computations
The approach to verification of interpreters of multi-sorted algebraic operations by their specifications, based on constructive clarification of expansion concept of multi-sorted algebraic system and provingthe axioms of algebraic system is considered. This approach is illustrated by the examples...
Збережено в:
| Дата: | 2025 |
|---|---|
| Автор: | |
| Формат: | Стаття |
| Мова: | Russian |
| Опубліковано: |
PROBLEMS IN PROGRAMMING
2025
|
| Теми: | |
| Онлайн доступ: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/823 |
| Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
| Назва журналу: | Problems in programming |
| Завантажити файл: | |
Репозитарії
Problems in programming| id |
pp_isofts_kiev_ua-article-823 |
|---|---|
| record_format |
ojs |
| resource_txt_mv |
ppisoftskievua/89/ea46166b2e492f277f1e7ec4b2e3e789.pdf |
| spelling |
pp_isofts_kiev_ua-article-8232025-09-02T15:42:07Z About one Approach for the Verification of Algebraic Computations Об одном подходе к верификации алгебраических вычислений Про один підхід до верифікації алгебраїчних обчислень Lvov, M.S. UDC 004.415.28 УДК 004.415.28 УДК 004.415.28 The approach to verification of interpreters of multi-sorted algebraic operations by their specifications, based on constructive clarification of expansion concept of multi-sorted algebraic system and provingthe axioms of algebraic system is considered. This approach is illustrated by the examples of verification of interpreters of operations of rational numbers field, polynomials of one variable and propositional algebra. This approach has been used for development of the computer mathematics systems of the educational purpose.Problems in programming 2011; 4: 23-35 Рассмотрен подход к верификации интерпретаторов многосортных алгебраических операций по их спецификациям, основанный на конструктивном уточнении понятия расширения многосортной алгебраической системы и доказательстве аксиом алгебраической системы. Этот подход иллюстрируется примерами верификации интерпретаторов операций поля рациональных чисел, многочленов одной переменной и алгебры высказываний. Подход использован при разработке систем компьютерной математики учебного назначения.Problems in programming 2011; 4: 23-35 Розглянуто підхід до верифікації інтерпретаторів багатосортних алгебраїчних операцій за їх специфікаціями, оснований на конструктивному уточненні поняття розширення багатосортної алгебраїчної системи і доведенні аксіомалгебраїчної системи. Цей підхід проілюстровано прикладами верифікації інтерпретаторів операцій поля раціональних чисел, багаточленів однієї змінної та алгебри висловлень. Підхід буловикористано при розробці систем комп’ютерної математики навчальногопризначення. Problems in programming 2011; 4: 23-35 PROBLEMS IN PROGRAMMING ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ ПРОБЛЕМИ ПРОГРАМУВАННЯ 2025-09-02 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/823 PROBLEMS IN PROGRAMMING; No 4 (2011); 23-35 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 4 (2011); 23-35 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 4 (2011); 23-35 1727-4907 ru https://pp.isofts.kiev.ua/index.php/ojs1/article/view/823/875 Copyright (c) 2025 PROBLEMS IN PROGRAMMING |
| institution |
Problems in programming |
| baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
| datestamp_date |
2025-09-02T15:42:07Z |
| collection |
OJS |
| language |
Russian |
| topic |
UDC 004.415.28 |
| spellingShingle |
UDC 004.415.28 Lvov, M.S. About one Approach for the Verification of Algebraic Computations |
| topic_facet |
UDC 004.415.28 УДК 004.415.28 УДК 004.415.28 |
| format |
Article |
| author |
Lvov, M.S. |
| author_facet |
Lvov, M.S. |
| author_sort |
Lvov, M.S. |
| title |
About one Approach for the Verification of Algebraic Computations |
| title_short |
About one Approach for the Verification of Algebraic Computations |
| title_full |
About one Approach for the Verification of Algebraic Computations |
| title_fullStr |
About one Approach for the Verification of Algebraic Computations |
| title_full_unstemmed |
About one Approach for the Verification of Algebraic Computations |
| title_sort |
about one approach for the verification of algebraic computations |
| title_alt |
Об одном подходе к верификации алгебраических вычислений Про один підхід до верифікації алгебраїчних обчислень |
| description |
The approach to verification of interpreters of multi-sorted algebraic operations by their specifications, based on constructive clarification of expansion concept of multi-sorted algebraic system and provingthe axioms of algebraic system is considered. This approach is illustrated by the examples of verification of interpreters of operations of rational numbers field, polynomials of one variable and propositional algebra. This approach has been used for development of the computer mathematics systems of the educational purpose.Problems in programming 2011; 4: 23-35 |
| publisher |
PROBLEMS IN PROGRAMMING |
| publishDate |
2025 |
| url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/823 |
| work_keys_str_mv |
AT lvovms aboutoneapproachfortheverificationofalgebraiccomputations AT lvovms obodnompodhodekverifikaciialgebraičeskihvyčislenij AT lvovms proodinpídhíddoverifíkacííalgebraíčnihobčislenʹ |
| first_indexed |
2025-09-17T09:24:22Z |
| last_indexed |
2025-09-17T09:24:22Z |
| _version_ |
1850410159769124864 |
| fulltext |
Теоретичні та методологічні основи програмування
23
}
УДК 004.415.28
М.С. Львов
ОБ ОДНОМ ПОДХОДЕ К ВЕРИФИКАЦИИ
АЛГЕБРАИЧЕСКИХ ВЫЧИСЛЕНИЙ
Рассмотрен подход к верификации интерпретаторов многосортных алгебраических операций по их
спецификациям, основанный на конструктивном уточнении понятия расширения многосортной
алгебраической системы и доказательстве аксиом алгебраической системы. Этот подход
иллюстрируется примерами верификации интерпретаторов операций поля рациональных чисел,
многочленов одной переменной и алгебры высказываний. Подход использован при разработке систем
компьютерной математики учебного назначения.
Введение
Разработка алгоритмов алгебра-
ических вычислений – одна из основных
задач, возникающих при реализации
программных систем, основанных на
символьных преобразованиях [1, 2].
Математическая модель этой задачи –
многосортные алгебраические системы
(МАС) [3]. Практика разработки даже
достаточно простых математических
систем учебного назначения [4–6]
показала, что реализация алгебра-
ических вычислений нуждается в тщате-
льном предыдущем проектировании
МАС в виде иерархий сортов и
спецификаций интерпретаторов много-
сортных алгебраических операций [7–8].
Для реализации вычислений, осно-
ванных на символьных преобразованиях,
используется система алгебраического
программирования APS [1, 8, 9],
адаптированная В. Пеcчаненко [10]. APS
использует технологии алгебра-
ического программирования, основанные
на системах правил переписываний и
стратегиях переписываний. Таким
образом, интерпретаторы алгебраических
операций определяются системой правил
переписываний термов (rewriting rules
system).
В данной работе рассматривается
подход к верификации интерпретаторов
многосортных алгебраических операций
по их спецификациям, основанный, во-
первых, на конструктивном уточнении
понятия расширения многосортной алге-
браической системы и, во-вторых, на
алоритме доказательства аксиом МАС как
тождеств. Основная идея заключается в
следующем: если интерпретаторы опера-
ций МАС специфицированы и каждая
аксиома – равенство или условное равенст-
во, она является тождеством или условным
тождеством в конструктивной реализации
МАС, т. е. ее можно доказывать.
Этот подход проиллюстрирован
примерами реализации интерпретаторов
операций поля рациональных чисел, мно-
гочленов одной переменной и алгебры
высказываний. Отметим, что эта работа –
прямое продолжение [11].
1. Многосортные алгебры как
модель алгебраических
вычислений
Определение 1. Пусть
– конечное множество символов, называе-
мое сигнатурой сортов. Символы ,
,...,{ 1 kuuU =
lu
},...,1{ kl∈ , называются именами сортов
или сортами.
Перечислим имена стандартных
сортов:
Variable – сорт переменных,
Bool – сорт логических значений,
Nat – сорт полукольца натуральных чисел,
Int – сорт кольца целых чисел,
Real – сорта поля действительных чисел.
© М.С.Львов, 2011
ISSN 1727-4907. Проблеми програмування. 2011. № 4
Теоретичні та методологічні основи програмування
24
Другие имена сортов будем
вводить при определении соответствую-
щих алгебраических понятий.
Определение 2. Пусть
– конечное семейство
множеств, индексированных именами
сортов, называемых носителями
соответствующих сортов.
}{
1 kuu ,...,SSS =
VariableS – множество переменных,
BoolS – множество {False, True},
NatS – множество натуральных чисел,
IntS – множество целых чисел,
alSRe – множество действительных чисел.
Определение 3. Многосортной
операцией над называется
отображение
f S
vuu SSSf
m
→×× ...:
1
, где
– сорта аргументов и
результата операции соответственно, а
m – арность .
Uvuu m ∈,,...,1
f
f
Тип операции определяется спис-
ком имен сортов ее аргументов и
значения и обозначается .
Сигнатурой операций называется
конечное множество символов операций
вместе с отображением, которое каждому
символу
vuu m →),...,( 1
Σ
Σ∈ϕ ставит в соответствие
многосортную операцию вместе с ее
типом. Запись
ϕf
vuu m →),...,(: 1ϕ
означает, что символу ϕ соотвтествует
операция типа
vuu m →),...,( 1 .
Многосортной операцией
является, например, операция умножения
в векторном пространстве. Если
Vectorspace – имя векторного
пространства над полем Real
действительных чисел, то операция умно-
жения задается спецификацией Mult
eVectorSpaceVectorSpacalMult →×Re: .
В дальнейшем будем пользоваться
обычными математическими обозначени-
ями операций. Поскольку умножение
вектора на скаляр – бинарная операция с
инфиксной формой записи, ее специ-
фикация имеет вид
eVectorSpaceVectorSpac*alRe → .
Определение 4. Многосортным пре-
дикатом P называется отображение
Booluu SSSP
m
→×× ...:
1
, где Uuu m ∈,...,1 .
Последовательность определяет
тип предиката, а число m – его арность.
muu ,...,1
Сигнатура Π многосортных преди-
катов определяется аналогично сигнатуре
операций.
Определение 5. Многосортной
алгебраической системой A называется
четверка ><= ΠΣ ,,, USA , где –
множество сортов с именами из ,
S
U
},...,{ 1 lϕϕΣ = – сигнатура многосорт-
ных операций, },...,{ 1 pππΠ = – сиг-
натура многосортных предикатов.
Замечание 1. Поскольку сорт Bool
можно включить во множество сортов,
предикаты можно рассматривать как мно-
госортные операции. Поэтому сигнатуры
операций и предикатов можно объединить,
рассматривая многосортные алгебры.
Определение 6. Пусть ><= Σ,,USA
– многосортная алгебра и – сим-
волы ее сортов. Будем говорить, что сорт
зависит от сорта , если одна из операций
Uvu ∈,
v
u
Σ имеет тип vuuu m →×××× ......1 .
обозначим подмножество сортов, от
которых зависят сорт . Подмножество
элементов
vU
v
Σ , которые имеют тип
vuuu m →×××× ......1 , обозначим vΣ , а
семейство областей значений сортов –
. Ограничением алгебры
vU
vS vA A на сорт
называется МАС
v
>=< vvvv USA Σ,, .
Таким образом, МАС A может быть
представлена набором ограничений
(алгебр) UvAv ∈, , т. е. . >=<
kuu AAA ,...,
1
Пример 1. Задача состоит в том,
чтобы построить программную систему,
которая поддерживает упрощение целых
алгебраических и тригонометрических вы-
ражений. Модуль алгебраических вычис-
лений системы должен поддерживать вы-
числения в кольце полиномов и кольце
тригонометрических выражений многих
Теоретичні та методологічні основи програмування
25
переменных над полем рациональных чи-
сел . Спецификациям подлежат
алгебры – ограничения на следующие
сорта:
Rat
– поле рациональных чисел, Rat
– кольцо полиномов
многих переменных,
omMultiPolyn
Lincomb – векторное пространство ли-
нейных комбинаций многих перемен-
ных (аргументы тригоном. полиномов),
– кольцо целых триго-
нометрических выражений многих
переменных.
nomMultiTPoly
Отношение зависимости сортов
порождает структуру зависимости на
множестве алгебр : алгебра
зависит от алгебры , если сорт
зависит от сорта . Итак, многосортная
алгебра представляет собой иерар-
хическую структуру (рис.1), которую
можно реализовывать инкрементным
образом.
UuAu ∈, vA
uA v
u
Рис. 1. Диаграмма отношения зависи-
мости алгебр примера 1
Аксиомы и конструкции МАС. Для
построения алгебр будем использо-
вать их аксиоматические и конструктив-
ные описания (спецификации).
uA
Определение 7. Аксиомой алгебры
называется равенство или условное
равенство в сигнатуре
uA
uΣ . Аксиоматичес-
ким описанием алгебры , по определе-
нию, является конечная система аксиом
алгебры .
uA
uA
Замечание 2. Алгебры с
аксиомами типа равенств называют
многообразиями. Алгебры с аксиомами
типа равенств или условных ра-
венств называют квазимногообразиями.
Будем пользоваться алгебраической
терминологией и системами аксиом из [11].
Для определения конкретной алге-
бры вместе с аксиомами часто используют
так называемые постулаты минимальности.
Например, поле рациональных чисел
можно определить как минимальное поле,
содержащее множество натуральных чи-
сел. Аналогично, кольцо многочленов
над полем – минимальное комму-
тативное кольцо с единицей, содержащее
поле и
][xF F
F x .
Конструктивное описание алгебры
состоит в определении конструктора
сорта и спецификаций интерпретаторов
операций
uA
uS
uΣ .
Определение 8. Сигнатурой конст-
рукторов называется конечное множе-
ство символов конструкторов вместе с
отображением, которое каждому символу
T
Tu ∈τ ставит в соответствие символ сорта
u вместе со списком символов сортов его
аргументов. Если τ – символ конструктора
сорта , то выражение u ),...,( 1 muuu τ=
означает, что τ соответствует символ
сорта и символы сортов его аргументов
.
u
muu ,...,1
MultiPolynom MultiTPolynom
Rat
LinComb
Variable
Конструктором сорта называет-
ся система равенств, которая определяет
синтаксически элементы сорта в виде
термов вида
uS
uS
),...,( 1 muuτ в сигнатуре Τ .
Определение 8 – ключевое в нашем
подходе к спецификации алгебраических
вычислений.
Пример 2. Поле Rat рациональных
чисел. Элементы этого поля – рациональ-
ные числа, представленные в виде обыч-
ных дробей. Конструктор сорта определяет
стандартную форму представления элемен-
та этого сорта. Чаще всего это канони-
ческая форма. Таким образом,
}1),(,,:{ =∈∈= qpGCDSqSp
q
pS NatIntRat .
Теоретичні та методологічні основи програмування
26
Роль конструктора сорта играет
символ “–” (горизонтальная черта). Этот
же символ математики используют для
обозначения операции деления, в частно-
сти, в Rat. Это – математическая
традиция. Такую же роль играет,
например, символ корня, символы
сложения и умножения в представлении
( 2*ba + ). Однако, для задачи специфи-
каций алгебраических вычислений это не
совсем удобно. Конструкторы сортов
должны иметь свои обозначения.
Поэтому отдельно вводится понятие
сигнатуры операций Σ и сигнатуры
конструкторов . В частности, для
конструктора сорта Rat используется
двойная наклонная черта:
Τ
}1),(,,://{ =∈∈= qpGCDSqSpqpS NatIntRat .
В стандартных формах представ-
ления элементов сортов синтаксические
аспекты, определяемые символами конст-
рукторов, практически всегда
дополняется семантическими аспектами,
задаваемыми в виде контекстных
условий. В нашем примере – это равен-
ство . 1),( =qpGCD
Пример 3. Кольцо Polynom поли-
номов одной переменной над полем Rat.
Элементы этого поля – полиномы, пред-
ставляемые в виде суммы мономов,
упорядоченных в порядке убывания
степеней.
)}.deg()deg(
,:...{
1
10
+>
∈+++=
ii
MonomikPolynom
MM
SMMMMS
В спецификациях сорта Polynom
это определение рекурсивно. При таком
подходе отдельно нужно определить
понятие степени полинома.
Monom
df
Polynom
MonomPolynom
SPM
MQSP
SMPMQQS
∪>
=∈
∈++==
)}deg()deg(
;degdeg,
,,:{
Для определения носителей сортов
будем использовать специальный язык
спецификаций, который допускает
нерекурсивные и рекурсивные
синтаксические определения элементов
сортов, определения функций доступа и
контекстных условий. Приведем
определения сортов:
Rat r ={
(Int a)//(Nat b);
// Конструктор сорта
Num(r) = a, Den(r) = b;
// Функции доступа (селекторы)
GCD(a, b) = 1 //Контекстное условие
};
Monom M ={
(Rat c)$(Const Variable x)^(Nat
n); // Конструктор сорта
Coef(M) = c, // Функции доступа
Var(M) = x,
Deg(M) = n
};
Polynom P = {
(Monom M)++(Polynom Q);
//Конструктор сорта
LeadMonom(P) = M, //
Функции доступа
LeadCoef(P) = Coef(M),
Deg(P) = Deg(M);
Deg(P) > Deg(Q)
// Контекстное условие
};
Реализовать вычисления в алгебре
UvAv ∈, означает реализовать алгоритмы
выполнения каждой ее операции так,
чтобы выполнялись аксиомы этой алгебры.
Определение 9. Интерпретатором
операции сигнатуры называется функ-
ция, реализующая алгоритм выполнения
этой операции.
uΣ
Интерпретаторы операций описыва-
ются в языке APLAN системы APS.
Итак, для аксиоматического и кон-
структивного описания алгебры в ее
определение включается конечное множе-
ство аксиом и конеченое множество
интерпретаторов . Многосортная алгебра
определяется следующим образом:
vA
vAx
vI
vA
>=< vvvvvvv I,Ax,,T,U,SA Σ .
Теоретичні та методологічні основи програмування
27
2. Расширения многосортных
алгебр
Определение 10. Пусть и –
многосортные алгебры. называется
расширением , если и для
любой пары операций и типов
uA vA
vA
uA vu SS ⊂
1f 2f
uuuf m →),...,(: 11 , ,
если , то
vvvf m →),...,(: 12
mm vuvu SS,...,SS ⊆⊆
11
→××∈∀
muum SSaa ...),...,(
11
),...,(),...,( 1211 mm aafaaf =→ .
Вложением называется изо-
морфное отображение vu SSd ′→:Re ,
которое отображает на подмножество
. Ограничение алгебры на
подмножество , изоморфное ,
определяется системой условных
тождеств :
uS
vv SS ⊂′ uA
vS ′ uA
)(),...,(1 xExE k
)}(),...,(|{ 1 aEaESaS kvv ∈=′ .
Применение системы
как системы переписываний «реду-
цирует» терм к терму
)(),...,(1 xExE k
vSa ′∈ uSa ∈′ :
. Конструктивное описание
как расширения состоит в
описании конструктора и вложения
в алгебру .
')(Re 1 aad =−
vA uA
vA
uA vA
Замечание 3. Понятие конструк-
тивного расширения многосортных
алгебр – основное в данной работе.
Основы теории упорядочено-сортных ал-
гебр в ее применении к теории програм-
мирования изложены в [12, 13].
Пример 4. Рассмотрим констру-
ктор поля Rat (пример 2). В соответствии
с определением, он определяет
конструкцию Rat, аргументы которой –
сорта Int и Nat. Дополним спецификации
сорта Rat вложением ,
определеным равенством
IntRat:dRe →
aad =)1//(Re .
Тем самым сорт Rat определен как расши-
рение сорта Int.
Рассмотрим конструктор кольца
Polynom (пример 3). Он определяет рекур-
сивно сорт Polynom через сорт Monom.
Дополним спецификации сорта Polynom
вложением MonomPolynom:dRe → , опре-
деленным равенством MMd =++ )0(Re .
Тем самым сорт Polynom определен как
расширение сорта Monom.
В свою очередь, сорт Monom –
расширение сорта Degree с функцией Red,
определенной равенством k^xk^x$ =1 ,
расширение сорта LinMonom с функцией
Red, определенной равенством x$a^x$a =1
и расширение сорта Rat с функцией Red,
определенным равенством . a^x$a =0
Сорта Degree и LinMonom, в свою
очередь – расширения сорта Variable с
редукциями x^x =1 и . Диаграмма
расширений примера показана на рис. 2.
xx$ =1
Использование расширений – один
из основных методов спецификаций много-
сортных алгебр. В частности, он позволяет
определить перегруженные алгебраические
операции и функции приведения
алгебраических типов.
Polynom
Monom
Рис. 2. Диаграмма расширений
примера 4
Degree LinMonom
Rat Variable
Теоретичні та методологічні основи програмування
28
Статические и динамические
расширения
Определение 11. Расширение B
алгебры A называется статическим
(нерекурсивным), если в его
конструкторе ),...,,...,( 1 nAAAB τ= ни
один из аргументов не совпадает с B .
Примеры статических расши-
рений:
1) поле Rat – статическое
расширение кольца Int, поскольку
Rat R = (Int A) // (Nat B);
2) полугруппа мономов Monom
одной образующей – статическое
расширение поля коэффициентов Coef,
поскольку
)()^)$(( NNatxVaraCoefMMonom = .
Определение 12. Расширение B
алгебры A называется динамическим
(рекурсивным), если в конструкторе
),...,,...,( 1 nAAAB τ= по меньшей мере
один из аргументов совпадает с B .
Конструкторы динамических рас-
ширений определяются рекурсивно. На-
пример:
3) векторное пространство Lincomb
линейных комбинаций многих перемен-
ных над полем Coef – линейное динами-
ческое расширение одномерного прост-
ранства Linmonom, элемент которого
имеет вид Элемент
имеет вид с
конструктором
.$xa LinCombw∈
mm x$a...x$aw ++++= 11
)()( wLinCombuLinMonomwLinComb ++= ,
; uu =++ 0
4) кольцо Polynom над полем Coef
– линейное динамическое расширение
Monom:
)()( wynomPolMMonomwPolynom ++= ,
. uM =++ 0
Практика использования динами-
ческих расширений показала полезность
их дальнейшей классификации как
линейных и бинарных расширений.
Определение 13. Динамическое
расширение B алгебры A называется ли-
нейным, если в ее конструкторе
),...,,...,( 1 nAAAB τ= в точности один из
аргументов совпадает с B .
Динамическое расширение B алгеб-
ры A называется бинарным, если в ее
конструкторе ),...,,...,( 1 nAAAB τ= в точно-
сти два аргументы совпадают с B .
В примерах 3), 4) рассмотрены
линейные динамические расширения.
Рассмотрим пример бинарного динами-
ческого расширения:
5) числовое поле Rad, элементы
которого – суть линейные комбинации
квадратных корней натуральных чисел,
свободных от квадратов, с рациональными
коэффициентами, можно представить как
бинарное расширение поля Rat следующей
конструкцией. Пусть –
последовательность всех простых чисел,
расположенных в порядке возрастания.
Введем следующие обозначения:
,...,...,, 21 nppp
,...};2,1,,
,*:{,
1
0
=∈
+===
− nRadba
pbarrRadRatRad
n
nn
Поле Rad можно представить в виде беско-
нечного объединения возрастающей после-
довательности полей . nRad
(1)10
0
...Rad...RadRadRat
,RadRad
n
n
n
⊂⊂⊂⊂=
=
∞
=
U
Конструктор Rad имеет вид
)2(.*)()(
|)(
pNatbRadaRad
qRatrRad
+
=
Заметим, что (1) – последователь-
ность конечных алгебраических расшире-
ний полей корнями полиномов . 02 =− npx
В представление (2) включены как
описание элемента базовой алгебры ,
так и описание механизма расширения –
конструктор
qRat
pNatbRadaRad *)()( + .
Теоретичні та методологічні основи програмування
29
Такая спецификация в точности
соответствует определению (1). Формулы
(1) непосредственно обобщаются на
произвольные динамические рас-
ширения. Если алгебра B – динамическое
расширение алгебры A с конструктором
),...,,...,( 1 nABAB τ= , возрастающую
последовательность
определим таким образом:
......10 ⊂⊂⊂ nBBB
,)0( AB =
),...,,...,( )(1)1( nnn ABAB τ=+ .
Вложение опреде-
ляет вложение , откуда
непосредственно следует представление
BA:dRe →
iii BB:dRe →+1
A в виде объединения возрастающей
последовательности алгебр, каждая из
которых – статическое расширение
предыдущей.
......, 10
0
⊂⊂⊂⊂=
∞
=
n
n
n BBBBB U .
Таким образом, динамические рас-
ширения алгебр – суть последователь-
ности статических расширений.
3. Верификация вычислений в
расширениях многосортных
алгебр
В работе [11] понятие расширения
алгебр используется для синтеза
интерпретирующих правил операций и
их оптимизации. При этом
специфицируются только правила
«общего случая». Производные правила
выводятся из общих редуцированием –
применением функции Red. Таким
образом, задача верификации алгебраи-
ческих вычислений сводится к задаче
обоснования правильности правил
«общего случая». Какие свойства
присущи «правильным» спецификациям
операций? Как отличать «правильные»
определения от «неправильных»? Для
ответа на эти вопросы нужно проверить
выполнение следующих условий:
1) правила спецификации алгебраических
операций, определенных конструктивно в
спецификациях алгебры, должны удовлет-
ворять системе аксиом этой алгебры;
2) результат выполнения операции долж-
ны удовлетворять синтаксическим опре-
делениям и контекстным условиям конст-
руктора сорта.
Пример 10. Верификация сорта
Boolalg.
Сорта Boolalg специфицирует алгеб-
ру высказываний многих переменных.
Пусть ) – произвольная фор-
мула формулы логики высказываний n
переменных. Обозначим – соответст-
венно истина и ложь. Тогда
,...,,( 21 nxxxF
IO,
).,,...,,(&
),,...,(&),...,,(
121
12121
OxxxFx
IxxxFxxxxF
nn
nnn
−
−
¬∨
∨=
Если обозначить
),,,...,(),...,(
),,,...,(),...,(
1111
1111
OxxFxxB
IxxFxxA
nn
nn
−−
−−
=
=
получим представление
)3().,...,(&
),...,(&),...,,(
111
11121
−
−
¬∨
∨=
n
nn
xxBx
xxAxxxxF
Выполним последовательно эти
преобразования для переменных .
В результате получим рекурсивное пред-
ставление формулы логики высказываний.
Через обозначим множество
формул логики высказываний от перемен-
ных . Тогда
11,..., xxn−
mBoolA lg
mxx ,...,1
}.lg,
,&&:{lg
1−∈
¬∨==
m
mmm
BoolABA
BxAxFFBoolA
Итак, алгебра Boolalg – объединение возра-
стающей последовательности алгебр
: mBoolAlg
)4(.lglg
....lg...lg
,lg
0
10
0
U
∞
=
=
⊂⊂⊂⊂
=
m
m
mg
BoolABoolA
BoolABoolAlBoolA
BoolBoolA
Теоретичні та методологічні основи програмування
30
Формула (3) задает рекурсивную
каноническую форму формул алгебры
высказываний. Обозначим
BxAxxBABF
df
&&),,( ¬∨= .
),,( xBABF – конструктор сорта Boolalg,
причем выполнены контекстные условия
Интерпретаторы
логических операций определяются фор-
мулами:
).(),( bArgxAArgx >>
)5(),,&,&(
),,(&),,(
2121
2211
xBBAABF
xBABFxBABF
=
=
)6(),,,(
),,(),,(
2121
2211
xBBAABF
xBABFxBABF
∨∨=
=∨
),,(),,( xBABFxBABF ¬¬=¬ . (7)
Это означает, что основные логи-
ческие операции выполняются поаргуме-
нтно. Легко проверить, что функция вло-
жения определяется равенством
AxAABF =),,( .
Рассмотрим одну из аксиом сорта
Bool, например, правило де Моргана
BABA ¬∨¬=¬ )&( .
Подставив вместо A, B их определения
,
получаем:
),,(),,,( 2211 xBABFBxBABFA ==
).,,(),,(
)),,(&),,((
2211
2211
xBABFxBABF
xBABFxBABF
¬∨¬=
=¬
Выполним вычисления в левой и
правой частях равенства:
)8()).,,(
)),&(),&((
2121
2121
xBBAABF
xBBAABF
¬∨¬¬∨¬=
=¬¬
.
Выпишем соответствующие
контекстные условия:
))&(()),&(( 2121 BBArgxAAArgx ¬>¬> ,
)(),( 2121 BBArgxAAArgx ¬∨¬>¬∨¬> . (9)
Равенство (8) означает, что доказа-
тельство правила де Моргана сводится к
доказательству этого правила на аргумен-
тах:
.)&(,)&( 21212121 BBBBAAAA ¬∨¬=¬¬∨¬=¬
Проверка контекстных условий сводится к
доказательству импликации
)).&(((
))((&))((
21
21
AAArgx
AArgxAArgx
¬>→
→>>
Вывод: Доказательство аксиом алге-
бры высказываний осуществляется индук-
цией по индексам последовательности (4).
Поскольку формулы (5)–(7) сводят вычис-
ления логических операций к вычислению
этих операций на аргументах, индуктивные
рассуждения примера тривиальны.
Пример 11. Верификация сорта
Polynom.
Рассмотрим одну из аксиом сорта
Polynom, например, аксиому дистрибу-
тивности
xzxyzyx +=+ )( .
Как и в предыдущем примере, под-
ставим вместо zyx ,, их определения:
.,, CczBbyAax ++=++=++=
Получаем
).)(())((
))())(((
CcAaBbAa
CcBbAa
+++++++++=
=+++++++
Вычислим левую и правую части
равенства по правилам сорта Polynom:
)).)((
))((()(
))()()(()(
ACaCAc
ABaBAbacab
CBAcbACBacba
+++
++++++=
=++++++++
Контекстные условия имеют вид:
).()(),()(
),()(),()(
CDegcDegBDegbDeg
ADegaDegcDegbDeg
>>
>=
Требуется доказать
acab)cb(a +=+ . (10)
)11(),)(())((
)()()(
ACaCAcABaBAb
CBAcbACBa
+++++=
=+++++
Теоретичні та методологічні основи програмування
31
.
)12().()()((
))((
CBAcbACBaDeg
cbaDeg
+++++>
>+
Рассмотрим задачу доказательства
(12). Это неравенство – следствие правил
выполнения операций сложения и умно-
жения. Если эти правила правильно
оперируют со степенями, оно
выполняется автоматически. Поэтому
задача доказательства неравенств –
контекстных условий аксиом, сводится к
задачам доказательства правильности
условий в правых частях правил
интерпретации операций. В нашем
случае нужно доказать:
1) для правила операции сложения:
&))()(((&))()(( ADegaDegbDegaDeg >=
));()((
))()((&
BADegbaDeg
BDegbDeg
+>+→
→>
2) для правила операции умножения:
).)(()(
))()((&))()((
ABAbaBDegabDeg
BDegbDegADegaDeg
++>→
→>>
Первая из импликаций – следствие
общего правила:
)).(),(()(
0)(
QDegPDegMaxQPDeg
QPLeadMon
=+→
→≠+
Вторая – следствие правила
)()()( QDegPDegPQDeg += .
Вывод: доказательство правильно-
сти контекстных условий в отдельной
операции сводится к доказательству
условных неравенств, формулируюмых
для данной аксиомы на основании правил
вычисления степеней полиномов – резу-
льтатов операций. При этом нужно
проверять не только основные правила
интерпретации, но и производные.
Рассмотрим доказательства равен-
ств (10), (11). Как и в примере 10, они
имеют место с точностью до
соотношений вложения сорта:
PPMM =++=++ 0,0 , т. е. являются
тождествами алгебры многочленов. Но, в
отличие от примера 10, равенство (11) не
является аксиомой. Его доказательство
требует использования аксиом дистрибу-
тивности, комутативности и
ассоциативности. Таким образом, доказате-
льство по индукции осуществляется такой
формулировке:
1) базис индукции: для элементов
сорта Monom выполняются
все аксиомы сорта Polynom;
CBAcba ,,,,,
2) предположение индукции: для элеме-
нтов сорта Polynom и элементов
сорта Monom выполняются все акси-
омы сорта Polynom;
CBA ,,
cba ,,
3) шаг индукции: для элементов
CcZBbYAaX ++=++=++= ,, сорта
Polynom также выполняются все аксиомы
сорта Polynom;
4) вывод индукции: на сорте Polynom
выполняются все аксиомы сорта Polynom.
Вывод: проверка выполнения отде-
льной аксиомы (например, дистрибутив-
ности) на элементах сорта Polynom сводит-
ся к проверке выполнения всей системы
аксиом на аргументах конструктора сорта.
Поэтому доказательство осуществляется в
вышеуказанной форме только для
основных правил интерпретации операций.
Пример 12. Верификация сорта Rat.
Рассмотрим задачу проверки выполнения
аксиомы дистрибутивности для сорта Rat.
На множестве Int×Nat должна быть
определена конгруэнтность, выделяющая
равные пары аргументов (числитель,
знаменатель) конструктора сорта Rat. Эта
конгруэнтность имеет вид
)~,//,//( 12212211 qpqpbaqpbqpa =↔== .
Для элементов сорта Rat имеет
место соотношение
)13()1),((&
&)(&)///(
=
==
srGCD
rqpssrqp
Рассмотрим доказательство дистри-
бутивности. Пусть acabcba +=+ )( и
332211 //,//,// qpcqpbqpa === .
Теоретичні та методологічні основи програмування
32
Подставив значения в аксио-
му дистрибутивности и вычислив левую
и правую части равенства по правилам из
спецификаций Rat, получаем:
cba ,,
)./()(
)/()(
312131212131
32132321
qqqqppqqppqq
qqqpqqpp
+=
=+
Для упрощения выражений введем
обозначения:
.,
,),(
312131212131
32132321
qqqqDppqqppqqC
qqqBpqqppA
=+=
=+=
Верификация аксиомы дистрибу-
тивности сводится к проверке тождества
над сортом Int и доказательстве
(13). Доказательство тождества верифи-
цирует данную аксиому, а доказательство
(13) верифцирует интерпретатор конс-
труктора сорта Rat.
BDAC =
Алгоритмы верификации алге-
браических вычислений в рас-
ширениях алгебр. Рассмотрим алгебры
>Σ=< AAAAAA ITUSA ,Ax,,,, , (14)
. >Σ=< BBBBBB ITUSB ,Ax,,,,
Верификация в статических
расширениях. Обобщим метод вери-
фикации системы алгебраических
программ – интерпретаторов операций
сорта из его спецификаций при
условии, что алгебра
v
B сорта –
статическое расширение алгебры
v
A
сорта : u .,, BAABAA v
df
u
df
⊂==
Спецификации сорта v определяют:
Конструктор сорта: ),( Wuv τ= . Обяза-
тельным аргументом τ является сорт . u
Контекстное условие: ).,( Wuπ
Условие вложения: ),( Wuρ .
Функция вложения: uWuWu =→ ),(),( τρ .
Предикат ),( Wuρ функционален: для
каждого значения существует единст-
венное значение
u
P такое, что ),( Wuρ .
Эту функцию будем обозначать : ρF
))((),( WuFWu p ==ρ .
Интерпретатор конструктора
сорта: yPx =),(!τ . Вызов интерпретатора
),(! Pxτ , обозначенный восклицательным
знаком как префиксом имени функции,
делает истинным предикат ).,( Pxπ
Конгруэнция конструктора сорта:
Конгруэнция Θ на множестве
kwwu SSS ××× ...
1
:
определяет условие на аргументах конст-
руктора сорта:
),...,,(),...,,( ''
1
'
1 kk ppxppx
Θ
≈
если )','(),( PxPx ττ = , то . )','(),( PxPx
Θ
≈
Нетрудно видеть, что конструкция
элемента сорта является канонической
формой. Поэтому эта конгруэнция опреде-
ляет классы эквивалентности элементов
kwwu SSS ××× ...
1
, имеющих одну и ту же
каноническую форму.
Cигнатуры операций сортов:
сорта u: >=<Σ mu ϕϕ ,...1 ;
сорта v: >=<Σ lmv ψψϕϕ ,...,,,... 11 .
Мы считаем, что сигнатура операций рас-
ширения B – расширение сигнатуры опера-
ций базовой алгебры A.
Аксиомы сортов
сорта u: >=< su AAAX ,...1 ;
сорта v: >=< '1,..., sv BBAX .
Мы считаем, что система аксиом B – рас-
ширение системы аксиом алгебры A.
Спецификации операции mϕϕ ,...1 заданы
системами равенств.
Верификация интерпретаторов опе-
раций алгебры B заключается в:
доказательстве тотальной корректности
интерпретатора функции ),(! Pxτ ;
доказательстве тождеств над алгеброй A –
следствий аксиом и конгруэнции BAX Θ
конструктора алгебры B .
Доказательство частичной коррек-
тности интерпретатора ),(! Pxτ опирается
на его представление в виде суперпозиции
функций построения канонической формы
аргумента как элемента носителя
алгебры
),( Px
B и применении вложения к этой
форме: )),((!),( xPxPx =→ τρ .
Теоретичні та методологічні основи програмування
33
Обозначим canτ функцию, которая
возвращает аргумент как элемент
носителя алгебры
),( Px
B , а redτ – функцию
вложения )),((!),( xPxPx =→ τρ .
Тогда
)),((),(! PxPx canred τττ = .
Частичную корректность ),(! Pxτ
можно доказать, доказав импликации
)15(,))','(&))','(~),((
))','(),((
PxPxPx
PxPxcan
π
τ
Θ
→
→=
)16())).(,(&))(,(~),((
)),((&),(
xFxxFxPx
xPxPx red
ρρ
Θ
π
τρ
→
→=
Определение 14. Расширение
алгебры называется прямым, если
функция
BA⊂
canτ является тождественной.
Элемент носителя прямого расши-
рения B – произвольный элемент
, а конгруэнция еди-
нична. Таким образом, при прямых
расширениях доказывать нужно только
корректность вложения .
Расширение примеров 10, 11
прямые. Расширение (пример
12) не является прямым.
kwwu SSS ××× ...
1
Θ
BA→
1+⊂ ii AA
RatInt →
Рассмотрим доказательста тож-
деств. Тождества над A , являющиеся
следствиями аксиом и конгруэнции
, получаются следующим образом:
если
BAX
Θ
Bnn
df
i AXPxxRPxxLB ∈== )),,...,(),,...,(( 11 ,
причем переменные определены
над
xxx ,...,1
B , подстановки ),( ii Puτ вместо
определяют равенства над
. Формальное
выполнение интерпретаторов операций
алгебры
ix
kwwu SSS ××× ...
1
B в левой и правой частях
равенства
),),,(),...,,((
)),,(),...,,((
11
11
PPuPuR
PPuPuL
nn
nn
ττ
ττ
=
=
приводит к равенству
),...,,'(),,,,( ''
11 kk GGfGGf ττ = ,
где
),,..,,,..,( 11 PPPuuff nn= ,
),,..,,,..,('' 11 PPPuuff nn= ,
),,,..,,,..,( 11 PPPuuGG nnii =
. ),,,..,,,..,( 11
'' PPPuuGG nnii = ni ,..,1=
Итак, имеет место отношение
эквивалентности
),...,,'(),,,,( ''
11 kk GGfGGf
Θ
= . (17)
Это отношение зависит от перемен-
ных . Будем считать, что
конгруэнтность
PPPuu nn ,,..,,,.., 11
Θ задана системой тож-
деств .,..,1, ejWV jj == Тогда верификация
интерпретаторов операций алгебры B
состоит в доказательстве тождеств
)18(,,..,1),,,..,,,..,(
),,..,,,..,(
11
11
ejPPPuuW
PPPuuV
nnj
nnj
==
=
над базовыми сортами . Алго-
ритм доказательства (18) должен опираться
на аксиомы базовых сортов. Поэтому этот
алгоритм существует, если проблема
тождества над базовыми алгебрами
алгоритмически разрешима.
kwwu ,...,, 1
Если расширение – прямое,
тождества (18) “покоординатные”. Поэто-
му конгруэнтность (17) определяет тожде-
ства
BA⊂
.,..,1,,' ' kiGGff ii === (19)
Верификация в динамических рас-
ширениях. Обобщим метод верификации
системы интерпретаторов операций сорта
при условии, что алгебра – динами-
ческое расширение алгебры
v vA
A . Пусть
iiii ABAAAAA
∞
=+ ∪===
0010 ),,(, τ
– спецификация конструкции линейного
динамического расширения BA⊂ .
XXxXxAXAx redi =→∈∈ ),(),(,,0 τρ
Теоретичні та методологічні основи програмування
34
– вложения, определенные для элементов
этого расширения. iA
Как и для статических
расширений, система аксиом B –
расширение системы аксиом базовой ал-
гебры A. Это означает, что этой системе
должны удовлетворять все алгебры .
Тогда:
iA
– верификация функции τ!
проводится индукцией по индексу и
состоит в доказательстве импликаций
(15), (16);
i
– верификация интерпретаторов опе-
раций на B с помощью аксиом осущест-
вляется индукцией по индексу и
состоит в доказательстве тождеств (19)
над алгебрами в индуктивном
предположении, что все аксиомы
доказаны как тождества алгебры .
Если алгоритм доказательства на базовой
алгебре использует только
аксиомы
i
1+iA
iA
AA =0
A , индукция позволяет
расширить этот алгоритм на B .
Метод расширений используется,
как правило, для пределения новых
операций. Например, сорт Int
расширяется до Rat с целью определения
операции деления (пример 12).
Сорт Polynom расширяется как
векторное пространство. Для этого сорт
Monom рассматривается как одномерное
векторное пространство, а шаг
расширения состоит в добавлении новой
координаты. В этом примере – i -
мерное векторное пространство.
Операции умножения на скаляр,
сложение и вычитание, а также все
аксиомы векторного пространства удов-
летворяют рассмотренному методу.
Однако операция умножения
многочленов и все аксиомы, содержащие
умножение, должны быть рассмотрены
отдельно.
iA
Пусть PolynomQPRQP ∈= *,, ,
, jQiP == deg,deg }deg:{ kppAk ≤= .
Тогда . Итак, если
.
jiR +=deg
jiji AQ*P,AQ,AP +∈∈∈
Верификация операции умножения
методом математической индукции, выше-
рассмотренная, сводит доказательство ак-
сиом на к доказательству тождеств на
. Поэтому базис индукции должен
содержать доказательство аксиом как тож-
деств на базовых алгебрах, т. е. на моно-
мах. Например, в (12) нужно считать, что
jiA +
1−+ jiA
.,,,,, MonomCcBbAa ∈ .
Обобщим эти соображения на про-
извольные алгебры. Метод индукции при-
меним, поскольку степень произведения
является монотонно возрастающей функ-
цией степеней множителей. Сформулируем
это в общем для бинарных операций. Пусть
iiii ABAAAAA
∞
=+ ∪===
0010 ),,(, τ
и ),( baϕ - бинарная операция, определен-
ная на алгебре B . Тогда, если существует
такая монотонно возрастающая по
каждому из аргументов функция ,
что для произвольных
),( jis
ji AbAa ∈∈ , ,
),(),( jisAba ∈ϕ метод индукции сводит до-
казательство аксиом алгебры B , содер-
жащих операцию ,ϕ к доказательству этих
аксиом для переменных, определенных на
алгебре .A
Выводы
Наш подход к верификации алгебра-
ических вычислений характеризуется та-
кими особенностями.
1. Определение иерархии зависимо-
стей сортов позволяет упорядочить про-
цесс построения и верифиции новых сор-
тов с целью расширения функциональ-
ности системы компьютерной математики.
2. Включение в спецификации сор-
тов аксиом и интерпретаторов операций
позволяет использовать аксиомы для вери-
фикации интерпретаторов операций.
3. Определения сортов как конст-
руктивных расширений позволяет сводить
задачи верификации сорта к верификации
вычислений в базовых сортах.
4. Классификация расширений как
статических и динамических позволяет
Теоретичні та методологічні основи програмування
35
определять и использовать либо прямой,
либо индуктивный метод верификации.
5. Данный подход особенно
эффективен при реализации вычислений
в алгебрах, аксиоматика которых хорошо
известна и полна.
1. Kapitonova J., Letichevsky A., Lvov M.,
Volkov V. Tools for solving problems in the
scope of algebraic programming // Lectures
Notes in Computer Sciences. – 1995. –
N 958. – P. 31–46.
2. Львов М.С. Основные принципы постро-
ения педагогических программных
средств поддержки практических занятий
// Управляющие системы и машины. –
2006. – № 6. – C. 70–75.
3. Песчаненко В.С. Об одном подходе к
проектированию алгебраических типов
данных // Проблеми програмування. –
2006. – № 2–3. – С. 626–634.
4. Lvov M., Kuprienko A., Volkov V. Applied
Computer Support of Mathematical Training
// Proc. of Internal Work Shop in Computer
Algebra Applications, Kiev. – 1993. –
P. 25–26.
5. Lvov M. AIST: Applied Computer Algebra
System // Proc. of ICCTE’93. – Kiev. –
P. 25–26.
6. Львов М.С. Терм VII – школьная система
компьютерной алгебры // Компьютер в
школе и семье. – 2004. – № 7. – С. 27–30.
7. Песчаненко В.С. Расширение стандарт-
ных модулей системы алгебраического
программирования APS для
использования в системах учебного
назначения // Компьютерно-ориен-
тированные системы обучения: –
Киев: НПУ им. М.П. Драгоманова.– 2005.
–№ 3(10). – C. 206–215.
8. Letichevsky A., Kapitonova J., Volkov V.,
Chugajenko A., Chomenko V. Algebraic
programming system APS (user manual). //
Glushkov Institute of Cybernetics, National
Acad. of Sciences of Ukraine. – Kiev, 1998.
– 50 р.
9. Капитонова Ю.В., Летичевский А.А.,
Волков В.А. Дедуктивные средства
системы алгебраического программиро-
вания // Кибернетика и системный анализ.
– 2000. – № 1. – С. 17–35.
10. Песчаненко В.С. Использование системы
алгебраического программирования APS
для построения систем поддержки
изучения алгебры в школе // Управляющие
системы и машины. – 2006. – № 4. –
С. 86–94.
11. Львов М.С. Синтез интерпретаторов алгеб-
раических операций в расширениях много-
сортных алгебр // Вісник Харьківського
національного університету. – 2009. – №
847. – С. 221–238.
12. Ван дер Варден Б.Л. Алгебра. Изд. 2-ое. –
М.: ГРФМЛ, 1979. – 624 с.
13. Goguen J., Meseguer J. Ordered-Sorted
Algebra I: Partial and Overloaded Operations.
Errors and Inheritance // Theoretical Computer
Science. – Oxford: Elsevier, 1992. – Vol. 105
(N 2). – P. 217–273.
14. Дж. А. Гоген, Ж. Мезегер. Модели и ра-
венство в логическом программировании //
Математическая логика в программиро-
вании. – М.: Мир, 1991. – C. 274–310.
Получено 16.05.2011
Об авторе:
Львов Михаил Сергеевич,
кандидат физико-математических наук,
доцент, профессор кафедры информатики.
Место работы автора:
Херсонский государственный университет,
ул. 40-лет Октября, 27.
Херсон, Украина,73000.
Тел.: (0552) 32 6781.
Факс.: (0552) 32 6785.
lvov@ksu.ks.ua
|