Я пытаюсь ввести и доказать спецификации Z в Isabelle.Z в Isabelle
Скажет, у меня есть спецификация торгового автомата написано в формате LaTeX:
\begin{zed}
price:\nat
\end{zed}
\begin{schema}{VMSTATE}
stock, takings: \nat
\end{schema}
\begin{schema}{VM\_operation}
\Delta VMSTATE \\
cash\_tendered?, cash\_refunded!: \nat \\
bars\_delivered! : \nat
\end{schema}
\begin{schema}{exact\_cash}
cash\_tendered?: \nat
\where
cash\_tendered? = price
\end{schema}
Я не знаю, если я должен поставить схему в качестве чешуй или функций?
Это то, что я до сих пор:
theory vendingmachine
imports
Main Fact "~~/src/HOL/Hoare/Hoare_Logic"
begin
type_synonym price = nat
type_synonym stock = nat
type_synonym takings = nat
type_synonym cash_tendered = nat
function exact_cash "(cash_tendered:nat)"
where
cash_tendered ≡ price;
end
Тип синонимы отлично работают, однако, когда я к точной кассовой схеме, которую я перевел в качестве exact_cash функции я получаю ошибки.
Итак, я хотел бы просто знать, как вводить схему в isabelle.
Я думаю, что не так много людей здесь, говорящих как Изабеллу и Z. Таким образом, может быть, вы можете объяснить семантику вашего Z спецификация? –
Также кажется, что вы объединяете типы и термины: 'type_synonym price = nat' определяет тип, позже на вас (попытайтесь) определить термин' cash_tendered' равным значению 'price' (которое вы нигде не определили). –