Cambridge University Press 978-0-521-87903-3 - Practical Formal Software Engineering: Wanting the Software You Get Bruce Mills Index More information

Index

abstract types, 52 proposition, 39 activity diagram, 93 schema, 132 actor, 97 Carroll, 42 addition, 9, 10, 47, 60, carry, 11 224 casting, 250 adventurer, 146 choice, 94 alchemist, 262 circuit, 73 algebra, 66, 160 city, 284 Java, 117, 160, 161, 193 class constraint, 109 always, 35 codasyl, 86 Arabic numeral, 4, 8 injection, 319 area, 66 coffee, 26 arithmetic, 18, 47 condition inconsistent, 48 error, 135 attribute, 90 conservative, 49 attribute constraint, 110 constraint axiom, 21, 38 function, 153 constraints, 194, 197 Babylon, 9 construct, 58 bag, 54 construction, 52 bal, 142 conversation, 258 banana, 74 correctness, 213 base creature, 288 balanced, 16 cryptography, 326 irregular, 14, 16 cube, 69 rational, 16 ten, 8 Decker protocol, 309 biology, 295 declarative, 116 bird, 24 DeMorgan, 23 block structure, 312 deque, 53 BNF, 222 diagram bracketosis, 221 activity, 92 brain, 71 addition, 75 bribe, 87 circuit, 73 class, 87 cake, 26 collaboration, 96 calculus deployment, 99 predicate, 39 network, 71

335

© Cambridge University Press www.cambridge.org Cambridge University Press 978-0-521-87903-3 - Practical Formal Software Engineering: Wanting the Software You Get Bruce Mills Index More information

336 Index

diagram (cont.) hall, 266 relation, 76 Hanoi, 169 sequence, 94 Haskell, 52 , 72 hexagon, 264 statechart, 90 hfact, 171 transition, 100 Hilbert, 5 UML, 85 Hindu algorithm, 10 usecase, 97 Hindu numerals, 4 diagrams, 66 relation, 98 imperative, 116, 134 discrete geometry, 80 imperial money, 14 dog, 27 implies, 40 dual, 35, 70 modal, 35 dungeon, 280 impurity, 144 inconsistent, 33, 48 English, 29, 39 indefinite, 75 equality, 118 indeterminate, 33 in Java, 118 induction, 163, 218 induced, 55 mathematical, 44 replacment, 118 infinite numerals, 16 error, 135 inheret, 86 exclusion, 301 input stream, 223 extension integer, 46 conservative, 46, 49 integers, 228 interference, 300 face, 67, 79 interior logic, 272 fairness, 310 introspection, 32 finitary, 5 invariant, 214 finite types, 44 iteration, 107, 217 fish, 39 fork, 94 Java, 117, 160, 161, fragments, 28, 244 193 freedom, 73 join, 94 function, 60 functions Kline, 9 in Z, 129 knaves, 142 knights, 142 games board, 59 knot, 67 generals, 324 generation, 243 lambda, 170 geometry, 66, 80, 261, 287 goat, 4, 5, 43 natural, 29, 188 grammar, 244 lists, 51, 54 graph, 67 logic , 70 as science, 25 gray numerals, 17 fragments, 27 grid in Z, 125 hex, 80 Java, 164 square, 80 meta, 21, 32, 34 guard, 299 modal, 35

© Cambridge University Press www.cambridge.org Cambridge University Press 978-0-521-87903-3 - Practical Formal Software Engineering: Wanting the Software You Get Bruce Mills Index More information

337 Index

model, 59 network, 67 of software, 25 code, 299 proposition, 36 network diagram, 66, rules, 28 71 terms, 29, 32, 66 , 68 truth, 36 nouns, 29, 189, 249 loop, 79 numbers, 4 loop proof, 214 algebraic, 49 in Z, 125 machine integer, 46 Markov, 82 natural, 31, 223 Neumann, 86 Peano, 44, 51 manipulation, 30 rational, 48 map, 146 numeral, 4 maplet, 66 arabic, 4 Markov process, 51 gray, 17 matrix, 73 Hindu, 4 complexity, 51 infinite, 16 construction, 50 system, 15 definition, 49 graph, 70 object, 86 multiplication, 50 system, 94 meaning, 28, 30, 32, 42 OCL, 103, 192 mechanics, 29 collections, 105 meringue, 48 iteration, 107 mesh, 268 script, 108 metalogic, 21 types, 104 method, 90 operators in Z, 125 model logic, 59 models, 59 p-adic numerals, 23 modulo, 43 pairs, 61 money parsing, 224, 230, 243 imperial, 14 parts of speech, 244, monitor, 312 245 monomial, 229 patterns, 19 monster, 281 Peano number, 44, 51 morph arithmetic, pebble, 4 256 logic, 6 morpheme, 255 pentagon, 264 multiplication, 7, 12 penny, 14 mutex Petrinet, 92, 100 axioms, 303 phonetics, 253 hardware, 304 planar, 67, 80 software, 306 polynomial, 231, 233 postcondition, 112, 213, natural, 4, 31, 43 214 natural language, 29, precondition, 112, 202 188 predicate, 38 negation, 31 preposition, 251 predicate, 32, 34 program proof, 239

© Cambridge University Press www.cambridge.org Cambridge University Press 978-0-521-87903-3 - Practical Formal Software Engineering: Wanting the Software You Get Bruce Mills Index More information

338 Index

program transformation, NGB, 58 160 numbers, 60 pronoun, 253 of sets, 56 proof, 33, 214 power, 58 proposition, 36 program, 144 protocol, 288, 324 size, 57 zermelo, 57 question ZF, 58 neutral, 27 signal, 72 questions, 250 Smullyan, 142 spacetime, 283 rational, 43, 48 Spivey, 122 base, 16 sprouts, 77 reading, 26 square root, 49 realation in Z, 128 stack, 53 reason, 25 state machine, 75 record, 88 statechart, 90 in OCL, 114 stepping, 217 in Z, 135 string, 74, 145 rectangle, 150 infinite, 74 recursion, 170, 217 substitution, 20 reduction, 6, 29, 30, 71 subtraction, 11, 47 axioms, 33 summation, 167 replacement, 56 syllable, 254 Roman numeral, 5, 8 roof, 150 tally, 9 room, 264 term, 29, 32, 71 root, 49 term logic, 237 rules, 28, 33 termination, 213 terms, 29 schema, 130 theory science, 291 model, 59 scrambled, 33 tic-tac-toe, 113 scripting, 319 tiling, 269 sea, 31 timetable, 189 security, 290 token, 93 selection, 56 torus, 69 semaphore, 312 tourist, 142 senses, 27 truth set, 54 function, 34 and reality, 59 table, 34, 37 axioms, 57 value, 26, 34 comprehension, 56 tunnel, 146 construction, 56 tuple, 49 definition, 55 tutorial manager, 188 expressions, 55 Tweedledee, 27 function, 60 in Z, 126 UML, 85 infinite, 56, 57 unreadable, 33 logic, 56 unwinding, 217

© Cambridge University Press www.cambridge.org Cambridge University Press 978-0-521-87903-3 - Practical Formal Software Engineering: Wanting the Software You Get Bruce Mills Index More information

339 Index

usecase diagram, 97 wall, 275, 277 whitespace, 123, variable 232 bound, 132 unbound, 132 Z, 122 verb, 29, 189, 246 large, 130 video, 138 schema, 130 vision, 292, 294 small, 123

© Cambridge University Press www.cambridge.org