src/HOL/MicroJava/J/Prog.thy
author wenzelm
Mon, 29 Nov 1999 15:52:49 +0100
changeset 8039 a901bafe4578
parent 8011 d14c4e9e9c8e
permissions -rw-r--r--
Goal: tuned pris;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8011
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     1
(*  Title:      HOL/MicroJava/J/Prog.thy
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     2
    ID:         $Id$
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     3
    Author:     David von Oheimb
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     4
    Copyright   1999 Technische Universitaet Muenchen
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     5
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     6
Java program = list of class declarations
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     7
*)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     8
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     9
Prog = Decl +
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    10
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    11
types 'c prog = "'c cdecl list"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    12
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    13
consts
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    14
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    15
  class		:: "'c prog \\<Rightarrow> (cname \\<leadsto> 'c class)"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    16
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    17
  is_class	:: "'c prog \\<Rightarrow> cname \\<Rightarrow> bool"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    18
  is_type	:: "'c prog \\<Rightarrow> ty    \\<Rightarrow> bool"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    19
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    20
defs
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    21
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    22
  class_def	"class        \\<equiv> map_of"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    23
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    24
  is_class_def	"is_class G C \\<equiv> class G C \\<noteq> None"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    25
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    26
primrec
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    27
"is_type G (PrimT pt) = True"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    28
"is_type G (RefT t) = (case t of NullT \\<Rightarrow> True | ClassT C \\<Rightarrow> is_class G C)"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    29
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    30
end