(* Title: JinjaThreads/Common/Decl.thy Author: David von Oheimb, Andreas Lochbihler Based on the Jinja theory Common/Decl.thy by David von Oheimb *) section ‹Class Declarations and Programs› theory Decl imports Type begin type_synonym volatile = bool record fmod = volatile :: volatile type_synonym fdecl = "vname × ty × fmod" ― ‹field declaration› type_synonym 'm mdecl = "mname × ty list × ty × 'm" ― ‹method = name, arg. types, return type, body› type_synonym 'm mdecl' = "mname × ty list × ty × 'm option" ― ‹method = name, arg. types, return type, possible body› type_synonym 'm "class" = "cname × fdecl list × 'm mdecl' list" ― ‹class = superclass, fields, methods› type_synonym 'm cdecl = "cname × 'm class" ― ‹class declaration›