Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  Name.thy

  Sprache: Isabelle
 

(*  Title:      HOL/Bali/Name.thy
    Author:     David von Oheimb
*)

subsection Java names

theory Name imports Basis begin

(* cf. 6.5 *) 
typedecl tnam    ordinary type name, i.e. class or interface name
typedecl pname   package name
typedecl mname   method name
typedecl vname   variable or field name
typedecl label   label as destination of break or continue

datatype ename         expression name
        = VNam vname 
        | Res          special name to model the return value of methods

datatype lname         names for local variables and the This pointer
        = EName ename 
        | This
abbreviation VName   :: "vname lname"
      where "VName n == EName (VNam n)"

abbreviation Result :: lname
      where "Result == EName Res"

datatype xname           names of standard exceptions
        = Throwable
        | NullPointer | OutOfMemory | ClassCast   
        | NegArrSize  | IndOutBound | ArrStore

lemma xn_cases: 
  "xn = Throwable xn = NullPointer
         xn = OutOfMemory xn = ClassCast
         xn = NegArrSize xn = IndOutBound xn = ArrStore"
apply (induct xn)
apply auto
done


datatype tname   type names for standard classes and other type names
        = Object'
        | SXcpt'   xname
        | TName   tnam

record   qtname =  qualified tname cf. 6.5.3, 6.5.4
          pid :: pname  
          tid :: tname

class has_pname =
  fixes pname :: "'a pname"

instantiation pname :: has_pname
begin

definition
  pname_pname_def: "pname (p::pname) p"

instance ..

end

class has_tname =
  fixes tname :: "'a tname"

instantiation tname :: has_tname
begin

definition
  tname_tname_def: "tname (t::tname) = t"

instance ..

end

definition
  qtname_qtname_def: "qtname (q::'a qtname_scheme) = q"

translations
  (type) "qtname" <= (type) "(pid::pname,tid::tname)"
  (type) "'a qtname_scheme" <= (type) "(pid::pname,tid::tname,::'a)"


axiomatization java_lang::pname  package java.lang

definition
  Object :: qtname
  where "Object = (pid = java_lang, tid = Object')"

definition SXcpt :: "xname qtname"
  where "SXcpt = (λx. (pid = java_lang, tid = SXcpt' x))"

lemma Object_neq_SXcpt [simp]: "Object SXcpt xn"
by (simp add: Object_def SXcpt_def)

lemma SXcpt_inject [simp]: "(SXcpt xn = SXcpt xm) = (xn = xm)"
by (simp add: SXcpt_def)

end

Messung V0.5 in Prozent
C=86 H=92 G=88

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-06-29) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik