doc-src/TutorialI/Misc/prime_def.thy
author paulson
Wed, 24 May 2000 18:49:05 +0200
changeset 8962 633e1682455c
parent 8745 13b32661dde4
child 9458 c613cd06d5cf
permissions -rw-r--r--
setsum is now overloaded on plus_ac0

(*<*)
theory prime_def = Main:;
consts prime :: "nat \\<Rightarrow> bool"
(*>*)
(*<*)term(*>*)

    "prime(p) \\<equiv> 1 < p \\<and> ((m dvd p) \\<longrightarrow> (m=1 \\<or> m=p))";
text{*\noindent\small
where \isa{dvd} means ``divides''.
Isabelle rejects this ``definition'' because of the extra \isa{m} on the
right-hand side, which would introduce an inconsistency. (Why?) What you
should have written is
*}
(*<*)term(*>*)
 "prime(p) \\<equiv> 1 < p \\<and> (\\<forall>m. (m dvd p) \\<longrightarrow> (m=1 \\<or> m=p))"
(*<*)
end
(*>*)