Original version of logic documentation (ESCJ 8) by K. Rustan M. Leino and Jim Saxe, 30 De- cember 1997. Some additions by Cormac Flanagan, 24 April 1998. Modified by K. Rustan Leino, 13 September 1999 (making ESCJ 8a from ESCJ 8). Original version of Java to Guarded Command Translation (ESCJ 16c) by K. Rustan M. Leino and Jim Sax, 26 August 1998. First draft by Rustan and Raymie Stata, 11 April 1997. Additional comments by Cormac Flanagan. Modified by Joseph Kiniry, with initial input from Cesare Tinelli and input from Silvio Ranise and Patrice Chalin, beginning on 21 June 2004. Current editor Joseph Kiniry. This document describes the logics of ESC/Java2. All of these logics represent partial semantics for Java and JML. Some are sets of axioms that are part of the Java logic (and thus are always included in the background predicate) and sets of axioms that are introduced to the background predicate when the Java program being checked contains various constructs. The strongest postcondition and weakest precondition calculi described herein describes the translation of Java into guarded commands. The assumptions and assertions produced by this translation are also discussed when this will help the reader understand the interaction between the wp-based translation and the logic. This is edition $Revision: 2060 $. This document is a work in progress. Suggestions and input are always welcome. The Logics and Calculi of ESC/Java2 Edition $Revision: 2060 $, Begun November 2004 This document describes the logics of ESC/Java2 version 2.0a8 and later. Joseph R. Kiniry <joseph.kiniry@ucd.ie>