text\<open>\medskip Substitution on arithmetic and boolean expressions\<close>
primrec substa :: "('a \ 'b aexp) \ 'a aexp \ 'b aexp" and substb :: "('a \ 'b aexp) \ 'a bexp \ 'b bexp" where "substa f (IF b a1 a2) = IF (substb f b) (substa f a1) (substa f a2)"
| "substa f (Sum a1 a2) = Sum (substa f a1) (substa f a2)"
| "substa f (Diff a1 a2) = Diff (substa f a1) (substa f a2)"
| "substa f (Var v) = f v"
| "substa f (Num n) = Num n"
| "substb f (Less a1 a2) = Less (substa f a1) (substa f a2)"
| "substb f (And b1 b2) = And (substb f b1) (substb f b2)"
| "substb f (Neg b) = Neg (substb f b)"
lemma subst1_aexp: "evala env (substa (Var (v := a')) a) = evala (env (v := evala env a')) a" and subst1_bexp: "evalb env (substb (Var (v := a')) b) = evalb (env (v := evala env a')) b" \<comment> \<open>one variable\<close> by (induct a and b) simp_all
lemma subst_all_aexp: "evala env (substa s a) = evala (\x. evala env (s x)) a" and subst_all_bexp: "evalb env (substb s b) = evalb (\x. evala env (s x)) b" by (induct a and b) auto
end
¤ Dauer der Verarbeitung: 0.1 Sekunden
(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.