Z Spezifikationen in LaTeX
-
28-09-2019 - |
Frage
Gibt es ein Paket für LaTeX, das Schreiben Z Spezifikationen unterstützen? Ich bin interessiert in horizontalen und vertikalen Formaten für Schemata.
Lösung
Es ist ein Paket, wird es genannt zed- csp . Hier ist eine Referenz , wie es zu benutzen.
Hier ist ein Beispiel-Schema:
\begin{schema}{InitJunction1}
\Delta Sys\\
junc?: JUNCTION\\
road1?: ROAD\\
road2?: ROAD
\where
road1? \neq road2?\\
junc? \notin juncList\\
\forall j: juncList @ \neg ((road1? \in roadsInJunc(j)) \land (road2? \in roadsInJunc(j))\\
roadsInJunc' = roadsInJunc \cup \{junc? \mapsto \{road1,road2\}\}\\
juncList' = juncList \cup \{junc?\}
\end{schema}
Sehen Sie meine Frage und Antwort zum Thema: Zed Notation in LyX
Andere Tipps
Es gibt durchaus ein paar Pakete, die für das Schreiben von Z-Spezifikation in LaTeX-Unterstützung bieten. Obwohl viele sehr ähnliche Syntax und einige bieten zusätzliche Funktionen.
- Cadiz.sty: https: //www.cs.york. ac.uk/hise/cadiz/latexmarkuptut.html
- oz.sty: https: // www. ctan.org/tex-archive/macros/latex/contrib/objectz?lang=en
- fuzz.sty: https: //www.cs.cmu.edu/afs/cs/academic/class/15671-f95/ftp/fuzz.sty
- zed.sty: http://tug.ctan.org/ Makros / latex209 / contrib / zed / zed.sty
- zeves.sty: http: //www.informatik.uni-bremen.de/agbkb/lehre/ss12/foma/Z/z-eves.sty
- zed-csp.sty: http: // ctan.mackichan.com/macros/latex/contrib/zed-csp/zed-csp.sty
Weitere Informationen zu diesen Paketen finden Sie hier: http://czt.sourceforge.net/latex/
Es wird erläutert, dass war die fuzz.sty die ersten war, und enthält wichtigen Makros noch ist nicht kompatibel mit ISO-Z Standard zed.sty und zed-csp.sty war eine Oxford-Version verbessert, dass auf fuzz.sty etc
Das ist, was meine Software Engineering Professor für die LaTeX-Formatierung verwendet wird, wenn das Z-Schema erstellen und Operationen:
\usepackage{oz, amsfonts}
...
\begin{schema}{MusicStore}
member: \pset NAME\\
orders: \pset (NAME\times ALBUM)\\
owns: \pset (NAME\times ALBUM)
\ST
{\bf dom}\mbox{ } orders \subseteq member\\
{\bf dom}\mbox{ } owns \subseteq member\\
\forall (m, a)\in orders.(m, a)\notin owns
\end{schema}
Ich hoffe, es ist hilfreich.