theory JWellForm imports"../Common/WellForm" WWellForm WellType DefAss begin
definition wf_J_mdecl :: "J_prog ==> cname ==> J_mb mdecl ==> bool" where "wf_J_mdecl P C ≡ λ(M,b,Ts,T,(pns,body)). length Ts = length pns ∧ distinct pns ∧ ¬sub_RI body ∧ (case b of NonStatic ==> this ∉ set pns ∧ (∃T'. P,[this↦Class C,pns[↦]Ts] ⊨ body :: T' ∧ P ⊨ T' ≤ T) ∧ D body ⌊{this} ∪ set pns⌋ | Static ==> (∃T'. P,[pns[↦]Ts] ⊨ body :: T' ∧ P ⊨ T' ≤ T) ∧ D body ⌊set pns⌋)"
lemma wf_J_mdecl_NonStatic[simp]: "wf_J_mdecl P C (M,NonStatic,Ts,T,pns,body) ≡ (length Ts = length pns ∧ distinct pns ∧ ¬sub_RI body ∧ this ∉ set pns ∧ (∃T'. P,[this↦Class C,pns[↦]Ts] ⊨ body :: T' ∧ P ⊨ T' ≤ T) ∧ D body ⌊{this} ∪ set pns⌋)" (*<*)by(simp add:wf_J_mdecl_def)(*>*)
lemma wf_J_mdecl_Static[simp]: "wf_J_mdecl P C (M,Static,Ts,T,pns,body) ≡ (length Ts = length pns ∧ distinct pns ∧ ¬sub_RI body ∧ (∃T'. P,[pns[↦]Ts] ⊨ body :: T' ∧ P ⊨ T' ≤ T) ∧ D body ⌊set pns⌋)" (*<*)by(simp add:wf_J_mdecl_def)(*>*)
lemma wf_J_prog_wf_J_mdecl: "[ wf_J_prog P; (C, D, fds, mths) ∈ set P; jmdcl ∈ set mths ] ==> wf_J_mdecl P C jmdcl" (*<*)by(fastforce simp: wf_prog_def wf_cdecl_def wf_mdecl_def)(*>*)
lemma wf_mdecl_wwf_mdecl: "wf_J_mdecl P C Md ==> wwf_J_mdecl P C Md" (*<*) proof - obtain M b Ts T pns body where"Md = (M, b, Ts, T, pns, body)"by(cases Md) simp thenshow"wf_J_mdecl P C Md ==> wwf_J_mdecl P C Md" by(case_tac b) (fastforce simp:wwf_J_mdecl_def dest!:WT_fv)+ qed (*>*)
lemma wf_prog_wwf_prog: "wf_J_prog P ==> wwf_J_prog P" (*<*) by (simp add:wf_prog_def wf_cdecl_def wf_mdecl_def)
(fast intro:wf_mdecl_wwf_mdecl) (*>*)
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-10)
¤
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.