diff -r b1a458a03a8e -r 74ba778b09c9 ProgTutorial/Package/Ind_Code.thy --- a/ProgTutorial/Package/Ind_Code.thy Sat Oct 31 11:37:41 2009 +0100 +++ b/ProgTutorial/Package/Ind_Code.thy Sun Nov 01 10:49:25 2009 +0100 @@ -453,7 +453,7 @@ the new predicates. In Line 8, we construct the types of these new predicates using the given argument types. Next we turn them into terms and subsequently certify them (Line 9 and 10). We can now produce the substituted introduction rules - (Line 11) using the function @{ML_ind subst_free}. Line 14 and 15 just iterate + (Line 11) using the function @{ML_ind subst_free in Term}. Line 14 and 15 just iterate the proofs for all predicates. From this we obtain a list of theorems. Finally we need to export the fixed variables @{text "Ps"} to obtain the schematic variables @{text "?Ps"} @@ -599,7 +599,7 @@ differently. In the code below we will therefore separate them into @{text "params1"} and @{text params2}, respectively @{text "prems1"} and @{text "prems2"}. To do this separation, it is best to open a subproof with the - tactic @{ML_ind SUBPROOF}, since this tactic provides us with the parameters (as + tactic @{ML_ind SUBPROOF in Subgoal}, since this tactic provides us with the parameters (as list of @{ML_type cterm}s) and the assumptions (as list of @{ML_type thm}s). The problem with @{ML SUBPROOF}, however, is that it always expects us to completely discharge the goal (see Section~\ref{sec:simpletacs}). This is @@ -638,7 +638,7 @@ going in our example, we will print out these values using the printing function in Figure~\ref{fig:chopprint}. Since @{ML FOCUS in Subgoal} will supply us the @{text "params"} and @{text "prems"} as lists, we can - separate them using the function @{ML_ind chop}. + separate them using the function @{ML_ind chop in Library}. *} ML %linenosgray{*fun chop_test_tac preds rules = @@ -869,7 +869,7 @@ In Line 4 we use the @{text prems} from the @{ML SUBPROOF} and resolve them with @{text prem}. In the simple cases, that is where the @{text prem} comes from a non-recursive premise of the rule, @{text prems} will be - just the empty list and the function @{ML_ind MRS} does nothing. Similarly, in the + just the empty list and the function @{ML_ind MRS in Drule} does nothing. Similarly, in the cases where the recursive premises of the rule do not have preconditions. In case there are preconditions, then Line 4 discharges them. After that we can proceed as before, i.e., check whether the outermost @@ -948,7 +948,7 @@ end*} text {* - The iteration is done with the function @{ML_ind map_index} since we + The iteration is done with the function @{ML_ind map_index in Library} since we need the introduction rule together with its number (counted from @{text 0}). This completes the code for the functions deriving the reasoning infrastructure. It remains to implement some administrative