(*<*) theory Blatt6 imports Main Infinite_Set begin (*>*) section {* Prädikatenlogik *} text {* Zusätzlich zu den Regeln der Aussagenlogik kommen jetzt die folgenden Regeln zum Einsatz:\\ @{text "exI:"}~@{thm exI[no_vars]},\\ @{text "exE:"}~@{thm exE[no_vars]},\\ @{text "allI:"}~@{thm allI[no_vars]},\\ @{text "allE:"}~@{thm allE[no_vars]}.\\ Zeigen Sie die folgenden prädikatenlogischen Aussagen: *} lemma "(\x. (P x \ Q x ) \ \ Q a ) \ \ P a" (*<*)sorry(*>*) lemma "(\x. P x ) \ (\x. P x \ Q x) \ (\x. Q x)" (*<*)sorry(*>*) lemma "\(\x. P x ) \ (\x. \ P x )" (*<*)sorry(*>*) lemma drinkers_principle: "\x. D x \ (\y. D y)" (*<*)sorry(*>*) section {* Knobelaufgabe: Rich Grandfather *} text {* Beweisen Sie die folgende in klassischer Pr"adikatenlogik g"ultige Formel zun"achst informell mit Papier und Bleistift. Verwenden Sie im Beweis Fallunterscheidung oder Widerspruch.. \begin{quote}{\it Wenn jeder Arme einen reichen Vater hat,\\ dann gibt es einen Reichen mit einem reichen Grossvater.}\end{quote} *} theorem rich_grandfather: "\x. \ rich x \ rich (father x) \ \x. rich (father (father x)) \ rich x" (*<*)sorry(*>*) section {* Mengen, Abbildungen und anderes *} text {* \emph{Ab hier und auch in Zukunft dürfen alle Methoden und Lemmas verwendet werden.} *} text {* Im folgenden Lemma ist außerdem das Auswahlprinzip nützlich:\\ @{text "choice:"}~@{thm choice[no_vars]} Weiterhin muss die Theorie @{text "Infinite_Set"} importiert werden, in der die Notation @{term "\\<^sub>\ x. P x"} (in ASCII: @{text "INFM x. P x"}) definiert wird. *} lemma finite_range: fixes f :: "nat \ 'a" assumes fin: "finite (range f)" shows "\x. \\<^sub>\i. f i = x" (*<*)sorry(*>*) (*<*) end (*>*)