src/HOL/ex/Acc.ML
changeset 1046 9d2261a3e682
parent 972 e61b058d58d2
child 1465 5d7a7e439cec
equal deleted inserted replaced
1045:0cdf86973c49 1046:9d2261a3e682
    31 by (rtac (major RS acc.induct) 1);
    31 by (rtac (major RS acc.induct) 1);
    32 by (rtac indhyp 1);
    32 by (rtac indhyp 1);
    33 by (resolve_tac acc.intrs 1);
    33 by (resolve_tac acc.intrs 1);
    34 by (rewtac pred_def);
    34 by (rewtac pred_def);
    35 by (fast_tac set_cs 2);
    35 by (fast_tac set_cs 2);
    36 be (Int_lower1 RS Pow_mono RS subsetD) 1;
    36 by (etac (Int_lower1 RS Pow_mono RS subsetD) 1);
    37 qed "acc_induct";
    37 qed "acc_induct";
    38 
    38 
    39 
    39 
    40 val [major] = goal Acc.thy "r <= Sigma (acc r) (%u. acc(r)) ==> wf(r)";
    40 val [major] = goal Acc.thy "r <= Sigma (acc r) (%u. acc(r)) ==> wf(r)";
    41 by (rtac (major RS wfI) 1);
    41 by (rtac (major RS wfI) 1);
    44 by (fast_tac set_cs 1);
    44 by (fast_tac set_cs 1);
    45 qed "acc_wfI";
    45 qed "acc_wfI";
    46 
    46 
    47 val [major] = goal Acc.thy "wf(r) ==> ALL x. (x,y): r | (y,x):r --> y: acc(r)";
    47 val [major] = goal Acc.thy "wf(r) ==> ALL x. (x,y): r | (y,x):r --> y: acc(r)";
    48 by (rtac (major RS wf_induct) 1);
    48 by (rtac (major RS wf_induct) 1);
    49 br (impI RS allI) 1;
    49 by (rtac (impI RS allI) 1);
    50 br accI 1;
    50 by (rtac accI 1);
    51 by (fast_tac set_cs 1);
    51 by (fast_tac set_cs 1);
    52 qed "acc_wfD_lemma";
    52 qed "acc_wfD_lemma";
    53 
    53 
    54 val [major] = goal Acc.thy "wf(r) ==> r <= Sigma (acc r) (%u. acc(r))";
    54 val [major] = goal Acc.thy "wf(r) ==> r <= Sigma (acc r) (%u. acc(r))";
    55 by (rtac subsetI 1);
    55 by (rtac subsetI 1);