Theory WWellForm

(*  Title:      JinjaThreads/J/WWellForm.thy
    Author:     Tobias Nipkow, Andreas Lochbihler
*)

section ‹Weak well-formedness of Jinja programs›

theory WWellForm
imports
  "../Common/WellForm"
  Expr
begin

definition
  wwf_J_mdecl :: "'addr J_prog  cname  'addr J_mb mdecl  bool"
where
  "wwf_J_mdecl P C    λ(M,Ts,T,(pns,body)).
  length Ts = length pns  distinct pns  this  set pns  fv body  {this}  set pns"

lemma wwf_J_mdecl[simp]:
  "wwf_J_mdecl P C (M,Ts,T,pns,body) =
  (length Ts = length pns  distinct pns  this  set pns  fv body  {this}  set pns)"
(*<*)by(simp add:wwf_J_mdecl_def)(*>*)

abbreviation wwf_J_prog :: "'addr J_prog  bool"
where "wwf_J_prog == wf_prog wwf_J_mdecl"

end