ProgTutorial/Package/Ind_Code.thy
changeset 448 957f69b9b7df
parent 441 520127b708e6
child 475 25371f74c768
equal deleted inserted replaced
447:d21cea8e0bcf 448:957f69b9b7df
   594             Pretty.big_list "Params2 from the predicate:" (map (pretty_cterm ctxt) params2), 
   594             Pretty.big_list "Params2 from the predicate:" (map (pretty_cterm ctxt) params2), 
   595             Pretty.big_list "Prems1 from the rule:" (map (pretty_thm ctxt) prems1),
   595             Pretty.big_list "Prems1 from the rule:" (map (pretty_thm ctxt) prems1),
   596             Pretty.big_list "Prems2 from the predicate:" (map (pretty_thm ctxt) prems2)] 
   596             Pretty.big_list "Prems2 from the predicate:" (map (pretty_thm ctxt) prems2)] 
   597 in 
   597 in 
   598   pps |> Pretty.chunks
   598   pps |> Pretty.chunks
   599       |> pwriteln
   599       |> Pretty.string_of
       
   600       |> tracing
   600 end*}
   601 end*}
       
   602 
   601 text_raw{*
   603 text_raw{*
   602 \end{isabelle}
   604 \end{isabelle}
   603 \end{minipage}
   605 \end{minipage}
   604 \caption{A helper function that prints out the parameters and premises that
   606 \caption{A helper function that prints out the parameters and premises that
   605   need to be treated differently.\label{fig:chopprint}}
   607   need to be treated differently.\label{fig:chopprint}}
   786   Section~\ref{sec:nutshell}, we have  not yet dealt with the case where 
   788   Section~\ref{sec:nutshell}, we have  not yet dealt with the case where 
   787   recursive premises have preconditions. The introduction rule
   789   recursive premises have preconditions. The introduction rule
   788   of the accessible part is such a rule. 
   790   of the accessible part is such a rule. 
   789 *}
   791 *}
   790 
   792 
       
   793 
   791 lemma accpartI:
   794 lemma accpartI:
   792 shows "\<And>R x. (\<And>y. R y x \<Longrightarrow> accpart R y) \<Longrightarrow> accpart R x"
   795 shows "\<And>R x. (\<And>y. R y x \<Longrightarrow> accpart R y) \<Longrightarrow> accpart R x"
   793 apply(tactic {* expand_tac @{thms accpart_def} *})
   796 apply(tactic {* expand_tac @{thms accpart_def} *})
   794 apply(tactic {* chop_test_tac [acc_pred] acc_rules @{context} 1 *})
   797 apply(tactic {* chop_test_tac [acc_pred] acc_rules @{context} 1 *})
   795 apply(tactic {* apply_prem_tac 0 [acc_pred] acc_rules @{context} 1 *})
   798 apply(tactic {* apply_prem_tac 0 [acc_pred] acc_rules @{context} 1 *})