fun venv :: "penv \ venv \ nat \ venv" where "venv(_,ve,_) = ve"
inductive
big_step :: "penv \ venv \ nat \ com \ store \ store \ bool"
(\<open>_ \<turnstile> _ \<Rightarrow> _\<close> [60,0,60] 55) where
Skip: "e \ (SKIP,s) \ s" |
Assign: "(pe,ve,f) \ (x ::= a,s) \ s(ve x := aval a (s o ve))" |
Seq: "\ e \ (c\<^sub>1,s\<^sub>1) \ s\<^sub>2; e \ (c\<^sub>2,s\<^sub>2) \ s\<^sub>3 \ \
e \<turnstile> (c\<^sub>1;;c\<^sub>2, s\<^sub>1) \<Rightarrow> s\<^sub>3" |
IfTrue: "\ bval b (s \ venv e); e \ (c\<^sub>1,s) \ t \ \
e \<turnstile> (IF b THEN c\<^sub>1 ELSE c\<^sub>2, s) \<Rightarrow> t" |
IfFalse: "\ \bval b (s \ venv e); e \ (c\<^sub>2,s) \ t \ \
e \<turnstile> (IF b THEN c\<^sub>1 ELSE c\<^sub>2, s) \<Rightarrow> t" |
WhileFalse: "\bval b (s \ venv e) \ e \ (WHILE b DO c,s) \ s" |
WhileTrue: "\ bval b (s\<^sub>1 \ venv e); e \ (c,s\<^sub>1) \ s\<^sub>2;
e \<turnstile> (WHILE b DO c, s\<^sub>2) \<Rightarrow> s\<^sub>3 \<rbrakk> \<Longrightarrow>
e \<turnstile> (WHILE b DO c, s\<^sub>1) \<Rightarrow> s\<^sub>3" |
¤ 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.0Bemerkung:
(vorverarbeitet)
¤
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.