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


Quellcode-Bibliothek Conform.thy   Sprache: Isabelle

 
(*  Title:      HOL/MicroJava/J/Conform.thy
    Author:     David von Oheimb
    Copyright   1999 Technische Universitaet Muenchen
*)


section

theorydefinition conf :: "'c prog => aheap => val => ty => (\_,_ \ _ ::\ _\ [51,51,51,51] 50) where

type_synonym 'c env' = "'c prog \ (vname \ ty)" \ \same as \env\ of \WellType.thy\\

definition hext :: "aheapjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.NullPointerException

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                   \<open>_,_ \<turnstile> _ ::\<preceq> _\<close>  [51,51,51,51] 50) where
 "hturnstile>v::\T == \T'. typeof (map_option obj_ty o h) v = Some T' \ G\T'\T"

definition lconf :: "'c prog => aheap => ('a \ val) => ('a \ ty) => bool"
                                   (\<open>_,_ \<turnstile> _ [::\<preceq>] _\<close> [51,51,51,51] 50) where
 Gh<>[:<preceq>]Ts == \<forall>n T. Ts n = Some T --> (\<exists>v. vs n = Some v \<and> G,h\<turnstile>v::\<preceq>T)"

definition oconf :applysimp
,

definition hconf  ( conf_def (simp)
 "G\h h \ == \a obj. h a = Some obj --> G,h\obj \"
 
definition xconf ::java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
  applyunfold)

definition conforms :: "xstate => java_mb env' => bool" (\<open>_ ::\<preceq> _\<close> [51,51] 50) where"in.)
sjava.lang.NullPointerException
            prg     auto: widen)
            


subsection

lemma
"\
      (\<exists>fs'. h' a = Some (C,fs')) ==> h\<le>|h'"rule.)
apply hext_def
applyauto
doneapply( conf_def

apply(autointro:)
apply ( hext_def
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 4
done

lemma hext_refl [simp]: "h\|h"
apply rule)
apply (fast)
done

lemma auto: hext_objD
apply (rule
applyauto
done

lemma hext_trans: "[|hjava.lang.StringIndexOutOfBoundsException: Range [0, 50) out of bounds for length 23
 rule
apply (fastjava.lang.StringIndexOutOfBoundsException: Index 121 out of bounds for length 121
done

lemma hext_upd_obj: " conf_def by ( a') java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
rulejava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
done


subsection " \java.lang.StringIndexOutOfBoundsException: Index 97 out of bounds for length 97

lemma conf_Nulljava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
applyjava.lang.NullPointerException
apply (simp))
done

lemma conf_litval [rule_format (no_asmrule_tac y=""in
"typeof (\v. None) v = Some T --> G,h\v::\T"
apply ( conf_def
applyrule.induct
apply auto
done

lemmalist_all2
apply (unfold)
apply (simp)
done

lemma conf_obj_AddrI:applyinduct_tac
apply (unfold)
apply (simp)
done

lemma defval_conf[ (no_asm
  "is_type G T --> ) add:length_Suc_conv)
apply (unfold list_all2_lengthD])
apply (applysimp) add)
 ssubst)
apply  (rename_tac prim_ty, rule_tac y = "prim_ty" in elim)
apply    (autosimp: widen)
done

lemma : "[|,\turnstile>[::\]Ts; Ts n = Some T |] ==> G,h\(the (vs n))::\T"
" force
apply ( conf_def
apply
apply autolconf_hext]: "[ ,\
done

lemma [rule_format)]: 
  "
apply  : "!!.[ h
apply (rule val.  G,h\<turnstile>v::\<pT;  =  T | = ,\<turnstile>l(va\<mapsto>v)[::\<preceq>]lT"
apply ( intro)
done

lemmaauto
apply (unfold conf_def)
apply (rule
apply (auto
done lconf_init_vars_lemma (no_asm

  \<>.P  - R( )x =>(<>.map_of=Some  )--
apply( conf_def
apply auto
done

lemmaconf_RefTDrule_format
 "G,h\a'::\RefT T \ a' = Null \
  apply induct_tac fs
unfolding applyauto

lemma conf_NullTDjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
apply ( )
apply autounfold init_vars_def auto
done

lemma non_npDrule)
  (   erule_tac [3] asm_rl) strip
apply (drule)
apply auto
done

lemma non_np_objD: "!!Gjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
  (\<exists>a C' fs. a' = Addr a \<and>  h a = Some (C',fs) \<and>  G\<turnstile>C'\<preceq>C C)"

lemm (no_asmG

lemma   list_all2 (\<lambda,
  " lconf_def
java.lang.StringIndexOutOfBoundsException: Index 103 out of bounds for length 103
( y =t" ref_ty.exhaust)
 apply (fast dest
apply
done

lemma conf_list_gext_widen [rule_format (no_asm)]: 
  "wf_prog wf_mb G ==> \Ts Ts'. list_all2 (conf G h) vs Ts -->
  list_all2 (\<lambda>T T'. G\<turnstile>T\<preceq>T') Ts Ts' -->  list_all2 (conf G h) vs Ts'"
apply(induct_tac "vs")
 apply(clarsimp)
apply(clarsimp)
lemma"lbrakk>lT vn = None; G, h \ l [::\] lT(vn\T)\ \ G, h \ l [::\] lT"
apply(simp (no_asm_use) add: length_Suc_conv)
apply(safe)
apply(frule list_all2_lengthD [symmetric])
apply(simp (no_asm_use) add: length_Suc_conv)
apply(clarify)
apply(fast elim: conf_widen)
done


subsection "lconf"

lemma lconfD: "[| G,h\vs[::\]Ts; Ts n = Some T |] ==> G,h\(the (vs n))::\T"
apply (unfold lconf_def)
apply (force)
done

lemma lconf_hext [elim]: "[| G,h\l[::\]L; h\|h' |] ==> G,h'\l[::\]L"
apply (unfold lconf_def)
apply  (fast elim: conf_hext)
done

lemma lconf_upd: "!!X. [| G,h\l[::\]lT;
  G,h\<turnstile>v::\<preceq>T; lT va = Some T |] ==> G,h\<turnstile>l(va\<mapsto>v)[::\<preceq>]lT"
apply (unfold lconf_defapply (unfold lconf_def)
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 10
done

lemma lconf_init_vars_lemma [rule_format (no_asm)]: 
  "\x. P x --> R (dv x) x ==> (\x. map_of fs f = Some x --> P x) -->
  (\<forall>T. map_of fs f = Some T -->  
  (\<exists>v. map_of (map (\<lambda>(f,ft). (f, dv ft)) fs) f = Some v \<and>  R v T))"
apply(  unfold)
apply auto
done

lemma [intro 
"
apply "hconf"
apply auto
( rule)
apply(   erule_tac [3] asm_rl)
apply(  introhconfI
apply(  erule defval_confunfoldhconf_def
apply auto
done

lemma lconf_ext: "[|G,s\l[::\]L; G,s\v::\T|] ==> G,s\l(vn\v)[::\]L(vn\T)"
 "xconf"
apply  xconf_raise_ifxconf
done

lemma
  "Gjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
apply simp)
apply (unfold
apply( induct_tacconforms_localDx(,l):\<>(G, lT
apply(apply ((nfold conforms_def)
apply
apply( : "(x,(,l):\
apply unfold)
done simp

  add  intro)
apply conforms_xcpt_change:"
apply  ( add)
apply (case_tac
apply auto preallocated_hext
done

java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0

lemma
apply( oconf_def
 ()
done

lemma oconf_obj: "G,h\(C,fs)\ =
  (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
apply (  [(,hl)::<>G,) ,(\<mapsto>obj)\<turnstile>obj\<surd>; h\<le>|h(a\<mapsto>obj)|] 
apply auto
done( conforms_hext

lemmas( hconfI


subsection "hconf"

lemma hconfD:applyauto: oconf_hext: hconfD)
apply (unfold conforms_upd_local
apply fast
done

lemma hconfI: "\a obj. h a=Some obj --> G,h\obj\ ==> G\h h\"
apply (unfold)
apply (fast)
done


subsection "xconf"

lemma xconf_raise_if: "xconf h x \ xconf h (raise_if b xcn x)"
by (simp apply(auto: lconf_upd



subsection "conforms"

lemma conforms_heapD: "(x, (h, l))::\(G, lT) ==> G\h h\"
apply (unfold conforms_def)
apply (simp)
done

lemma conforms_localD: "(x, (h, l))::\(G, lT) ==> G,h\l[::\]lT"
apply (unfold conforms_def)
apply (simp)
done

lemma conforms_xcptD: "(x, (h, l))::\(G, lT) ==> xconf h x"
apply (unfold conforms_def)
apply (simp)
done

lemma conformsI: "[|G\h h\; G,h\l[::\]lT; xconf h x|] ==> (x, (h, l))::\(G, lT)"
apply (unfold conforms_def)
apply auto
done

lemma conforms_restr: "\lT vn = None; s ::\ (G, lT(vn\T)) \ \ s ::\ (G, lT)"
by (simp add: conforms_def, fast intro: lconf_restr)

lemma conforms_xcpt_change: "\ (x, (h,l))::\ (G, lT); xconf h x \ xconf h x' \ \ (x', (h,l))::\ (G, lT)"
by (simp add: conforms_def)


lemma preallocated_hext: "\ preallocated h; h\|h'\ \ preallocated h'"
by (simp add: preallocated_def hext_def)

lemma xconf_hext: "\ xconf h vo; h\|h'\ \ xconf h' vo"
by (simp add: xconf_def preallocated_def hext_def)

lemma conforms_hext: "[|(x,(h,l))::\(G,lT); h\|h'; G\h h'\ |]
  ==> (x,(h',l))::\(G,lT)"
by (fast dest: conforms_localD conforms_xcptD elim!: conformsI xconf_hext)


lemma conforms_upd_obj: 
  "[|(x,(h,l))::\(G, lT); G,h(a\obj)\obj\; h\|h(a\obj)|]
  ==> (x,(h(a\<mapsto>obj),l))::\<preceq>(G, lT)"
apply(rule conforms_hext)
apply  auto
apply(rule hconfI)
apply(drule conforms_heapD)
apply(auto elim: oconf_hext dest: hconfD)
done

lemma conforms_upd_local: 
"[|(x,(h, l))::\(G, lT); G,h\v::\T; lT va = Some T|]
  ==> (x,(h, l(va\<mapsto>v)))::\<preceq>(G, lT)"
apply (unfold conforms_def)
apply( auto elim: lconf_upd)
done

end

99%


¤ 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.0.5Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

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 ist noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge