added an intro lemma for freshness of products; set up
the simplifier so that it can deal with the compact and
long notation for freshness constraints (FIXME: it should
also be able to deal with the special case of freshness
of atoms)
(*<*)
theory Plus imports Main begin
(*>*)
text{*\noindent Define the following addition function *}
consts add :: "nat \<Rightarrow> nat \<Rightarrow> nat"
primrec
"add m 0 = m"
"add m (Suc n) = add (Suc m) n"
text{*\noindent and prove*}
(*<*)
lemma [simp]: "!m. add m n = m+n"
apply(induct_tac n)
by(auto)
(*>*)
lemma "add m n = m+n"
(*<*)
by(simp)
end
(*>*)