Состоялась лекция, посвящённая особенностям спецификации структур. Были рассмотрены вопросы:
- спецификация инвариантов типов:
- потребность в выражении свойств, относящихся ко всему типу (т.е., к любой функции, работающей со значением данного типа);
- различие между сильными и слабыми инвариантами (аналогично глобальным инвариантам);
- возможность выражение инвариантов типов при помощи глобальных инвариантов;
- ограничения данного подхода по сравнению с «настоящими» инвариантами типов;
- ghost-переменные и ghost-выражения;
- потребность в выражении некоторых свойств;
- ограничения, накладываемые для ghost-выражения для обеспечения безопасности;
- использование ghost-выражений для моделирования внешнего состояния, используемого для уточнения спецификации (например, для выражения наличия свободной памяти для функций malloc и free).