337 *** HOL *** |
337 *** HOL *** |
338 |
338 |
339 * Alternative iff syntax "A <-> B" for equality on bool (with priority |
339 * Alternative iff syntax "A <-> B" for equality on bool (with priority |
340 25 like -->); output depends on the "iff" print_mode, the default is |
340 25 like -->); output depends on the "iff" print_mode, the default is |
341 "A = B" (with priority 50). |
341 "A = B" (with priority 50). |
|
342 |
|
343 * Renamed some (legacy-named) constants in HOL.thy: |
|
344 op + ~> HOL.plus |
|
345 op - ~> HOL.minus |
|
346 uminus ~> HOL.uminus |
|
347 op * ~> HOL.times |
|
348 |
|
349 Adaptions may be required in the following cases: |
|
350 |
|
351 a) User-defined constants using any of the names "plus", "minus", or "times" |
|
352 The standard syntax translations for "+", "-" and "*" may go wrong. |
|
353 INCOMPATIBILITY: use more specific names. |
|
354 |
|
355 b) Variables named "plus", "minus", or "times" |
|
356 INCOMPATIBILITY: use more specific names. |
|
357 |
|
358 c) Commutative equations theorems (e. g. "a + b = b + a") |
|
359 Since the changing of names also changes the order of terms, commutative rewrites |
|
360 perhaps will be applied when not applied before or the other way round. |
|
361 Experience shows that thiis is rarely the case (only two adaptions in the whole |
|
362 Isabelle distribution). |
|
363 INCOMPATIBILITY: rewrite proof; sometimes already an exchange of a distributive |
|
364 law may suffice. |
|
365 |
|
366 d) ML code directly refering to constant names |
|
367 This in general only affects hand-written proof tactics, simprocs and so on. |
|
368 INCOMPATIBILITY: grep your sourcecode and replace names. |
342 |
369 |
343 * "LEAST x:A. P" expands to "LEAST x. x:A & P" (input only). |
370 * "LEAST x:A. P" expands to "LEAST x. x:A & P" (input only). |
344 |
371 |
345 * In the context of the assumption "~(s = t)" the Simplifier rewrites |
372 * In the context of the assumption "~(s = t)" the Simplifier rewrites |
346 "t = s" to False (by simproc "neq_simproc"). For backward |
373 "t = s" to False (by simproc "neq_simproc"). For backward |