Как бы я посчитал промежуточную сумму в последовательности? - VDM-SL
Я только начинаю с VDM-SL и мне нужно выяснить, как рассчитать общую стоимость последовательности предметов.
У меня есть следующие типы:
types
Item :: id : token
cost : nat;
Box = seq of Item;
И мне нужно выполнить следующую функцию, которая вычислит общую стоимость всех предметов в коробке. Пока что у меня есть:
TotalCost: Box -> nat
TotalCost(box) == forall i in seq inds box & x:nat => x := x + i.cost;
Я вполне уверен, что это нарушает правила VDM-SL, но я не могу найти большую помощь по этому вопросу.
Любая помощь по этому вопросу будет высоко ценится.