$Id$ ERRATA in the book "Isabelle: A Generic Theorem Prover" by Lawrence C. Paulson (contributions by Tobias Nipkow) Some of these errors are typographical but most of them are due to continuing changes to Isabelle. Thanks to Sara Kalvala, Tobias Nipkow INTRODUCTION TO ISABELLE Advanced Methods page 46: the theory sections can appear in any order page 48: theories may now contain a separate definition part page 52, middle: the declaration "types bool,nat" should be "types bool nat" page 57, bottom: should be addsimps in val add_ss = FOL_ss addrews [add_0, add_Suc] ISABELLE REFERENCE MANUAL Introduction page 67: show_brackets is another flag, controlling display of bracketting show_sorts:=true forces display of types Tactics page 85: subgoals_tac is another tactic, for multiple calls to subgoal_tac Theories page 117: the three lines of ML shown can be abbreviated to just init_thy_reader(); page 118: extend_theory has been replaced by numerous functions for adding types, constants, axioms, etc. Defining Logics page 127: type constraints ("::") now have a very low priority of 4. As in ML, they must usually be enclosed in paretheses. Syntax Transformations page 145, line -5: delete repeated "the" in "before the the .thy file" Simplification page 157 display: Union operator is too big page 158, "!": Isabelle now permits more general left-hand sides, so called higher-order patterns. Classical reasoner page 176: Classical sets may specify a "wrapper tactical", which can be used to define addss. The package also provides tactics slow_tac, slow_best_tac, depth_tac and deepen_tac. ISABELLE'S OBJECT-LOGICS First-Order Logic pages 191, 196: FOL_dup_cs is now deleted (use deepen_tac FOL_cs instead) Zermelo-Fraenkel Set Theory page 204: type i has class term, not (just) logic page 209: axioms have been renamed: union_iff is now Union_iff power_set is now Pow_iff page 215, bottom of figure 17.10: DiffD2 is now "c : A - B ==> c ~: B" page 215, bottom: rules mem_anti_sym and mem_anti_refl are now mem_asym and mem_irrefl page 222, top: missing braces in qconverse_def (around right-hand side) and QSigma_def (around ) page 223, top: lfp_def, gfp_def have missing braces around the argument of Inter, Union page 228: now there is also a theory of cardinal numbers and some developments involving the Axiom of Choice. page 229: now there is another examples directory, IMP (a semantics equivalence proof for an imperative language) Higher-Order Logic page 243: Pow is a new constant of type 'a set => 'a set set page 246: Pow is defined by Pow(A) == {B. B <= A} empty_def should be {} == {x.False} page 248: Pow has the rules PowI A<=B ==> A: Pow(B) PowD A: Pow(B) ==> A<=B page 251: split now has type [['a,'b] => 'c, 'a * 'b] => 'c Definition modified accordingly page 252: sum_case now has type ['a=>'c,'b=>'c, 'a+'b] =>'c Definition and rules modified accordingly page 252: HOL_dup_cs is now deleted (use deepen_tac HOL_cs instead) page 254: nat_case now has type ['a, nat=>'a, nat] =>'a Definition modified accordingly page 256,258: list_case now takes the list as its last argument, not the first. page 259: HOL theory files may now include datatype declarations, primitive recursive function definitions, and (co)inductive definitions. These new sections are available separately at http://www.cl.cam.ac.uk/users/lcp/archive/ml/HOL-extensions.dvi.gz page 259: now there is another examples directory, IMP (a semantics equivalence proof for an imperative language)