CADiZ

Reference manual / Z-related commands / In situ replacement commands / schema construction


The schema construction command replaces schema operations by schema construction expressions. In each of these rules, the lists of declarations ds, ds1 and ds2 in the operand schemas comprise only simple variable declarations, i.e. no schema inclusions. These rules essentially offer to the interactive user the same auxiliaries as the schema expansion tac command uses.

\lnot [ds | p]   \trarrow   [sig(ds) | \lnot (pred(ds) \land p)]
[ds1 | p1] \land [ds2 | p2]   \trarrow   [sig(ds1); sig(ds2) | pred(ds1) \land p1 \land pred(ds2) \land p2] but with identical decs not normalized
[ds1 | p1] \lor [ds2 | p2]   \trarrow   [sig(ds1); sig(ds2) | pred(ds1) \land p1 \lor pred(ds2) \land p2]
[ds1 | p1] \implies [ds2 | p2]   \trarrow   [sig(ds1); sig(ds2) | pred(ds1) \land p1 \implies pred(ds2) \land p2]
[ds1 | p1] \iff [ds2 | p2]   \trarrow   [sig(ds1); sig(ds2) | pred(ds1) \land p1 \iff pred(ds2) \land p2]
[ds1 | p1] \xor [ds2 | p2]   \trarrow   [sig(ds1); sig(ds2) | pred(ds1) \land p1 \xor pred(ds2) \land p2]
[ds1 | p1] \project [ds2 | p2]   \trarrow   [projected_decs | \exists not_projected_decs @ p1 \land p2]
pre [ds | p]   \trarrow   [input_and_current_state_decs | \exists output_and_next_state_decs @ p]
Q ds1 | p1 @ [ds2 | p2]   \trarrow   [ds2 \ ds1 | Q ds1 | p1 @ pred(ds2) \land p2]
[ds | p] \ (x1, ..., xn)   \trarrow   [not_hidden_decs | \exists hidden_decs @ p]
undecor + [ d1+; d2; ... | p ]   \trarrow   [ d1 | \exists d1+ == d1; d2; ... @ p ]

Tactic example

"schema construction" e1 e2

This example applies the schema construction command to expressions e1 and e2.


IT 16-Dec-1999