# HG changeset patch # User nipkow # Date 1491235517 -7200 # Node ID 6e47bcf7bec4b8217742ce0bee308379a364f1cf # Parent b5ce7100ddc8cb574abc4b890283ab2e2155a17e tuned diff -r b5ce7100ddc8 -r 6e47bcf7bec4 src/Doc/Prog_Prove/Isar.thy --- a/src/Doc/Prog_Prove/Isar.thy Mon Apr 03 17:39:08 2017 +0200 +++ b/src/Doc/Prog_Prove/Isar.thy Mon Apr 03 18:05:17 2017 +0200 @@ -450,7 +450,7 @@ \isakeyword{also have} \"... = t\<^sub>3"\ \isasymproof\\ \quad $\vdots$\\ \isakeyword{also have} \"... = t\<^sub>n"\ \isasymproof \\ -\isakeyword{finally have} \"t\<^sub>1 = t\<^sub>n"\\ \texttt{.} +\isakeyword{finally show} \"t\<^sub>1 = t\<^sub>n"\\ \texttt{.} \end{quote} \end{samepage} @@ -461,7 +461,11 @@ automatically instantiates with the right-hand side of the previous equation. In general, if \this\ is the theorem @{term "p t\<^sub>1 t\<^sub>2"} then ``\...\'' stands for \t\<^sub>2\. -\item[``\.\''] (a single dot) is a proof method that solves a goal by one of the assumptions. +\item[``\.\''] (a single dot) is a proof method that solves a goal by one of the +assumptions. This works because the result of \isakeyword{finally} +is the theorem \mbox{\t\<^sub>1 = t\<^sub>n\}, +\isakeyword{show} \"t\<^sub>1 = t\<^sub>n"\ states the theorem explicitly, +and ``\.\'' proves the theorem with the result of \isakeyword{finally}. \end{description} The above proof template also works for arbitrary mixtures of \=\, \\\ and \<\, for example: @@ -470,10 +474,10 @@ \isakeyword{also have} \"... = t\<^sub>3"\ \isasymproof\\ \quad $\vdots$\\ \isakeyword{also have} \"... \ t\<^sub>n"\ \isasymproof \\ -\isakeyword{finally have} \"t\<^sub>1 < t\<^sub>n"\\ \texttt{.} +\isakeyword{finally show} \"t\<^sub>1 < t\<^sub>n"\\ \texttt{.} \end{quote} -The relation symbol in the \isakeyword{finally} step needs to be the most precise one possible. -For example, you cannot write \t\<^sub>1 \ t\<^sub>n\ instead of \t\<^sub>1 < t\<^sub>n\. +The relation symbol in the \isakeyword{finally} step needs to be the most precise one +possible. In the example above, you must not write \t\<^sub>1 \ t\<^sub>n\ instead of \mbox{\t\<^sub>1 < t\<^sub>n\}. \begin{warn} Isabelle only supports \=\, \\\ and \<\ but not \\\ and \>\ @@ -493,7 +497,7 @@ \isakeyword{have} \"t\<^sub>1 \ t\<^sub>2"\ \isasymproof\\ \isakeyword{also} \isakeyword{have} \"... < t\<^sub>3"\ \isasymproof\\ \isakeyword{also} \isakeyword{have} \"... = t\<^sub>4"\ \isasymproof\\ -\isakeyword{finally have} \"t\<^sub>1 < t\<^sub>4"\\ \texttt{.} +\isakeyword{finally show} \"t\<^sub>1 < t\<^sub>4"\\ \texttt{.} \end{quote} After the first \isakeyword{also}, \calculation\ is \"t\<^sub>1 \ t\<^sub>2"\, and after the second \isakeyword{also}, \calculation\ is \"t\<^sub>1 < t\<^sub>3"\.