J'essaie de saisir et de prouver les spécifications Z dans Isabelle.Z dans Isabelle
Dire que j'ai une spécification de distributeur automatique écrit dans le format 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}
Je ne sais pas si je devrais mettre le schéma est comme lemmes ou fonctions?
C'est ce que j'ai jusqu'à présent:
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
Les synonymes de type fonctionnent bien mais quand je reçois au schéma de trésorerie exact que je traduit par une fonction de exact_cash je continue à avoir des erreurs. Donc, en résumé, je voudrais juste savoir comment entrer des schémas dans isabelle.
Je pense qu'il n'y a pas beaucoup de gens qui parlent ici à la fois Isabelle et Z. Alors peut-être que vous pouvez expliquer la sémantique de votre Spécification Z? –
Il semble aussi que vous associez des types et des termes: 'type_synonym price = nat' définit un type, plus tard vous (essayez de) définir le terme' cash_tendered' pour être égal à une valeur 'price' (que vous n'avez défini nulle part). –