equal
deleted
inserted
replaced
1 (* Title: HOL/WF_Rel |
1 (* Title: HOL/WF_Rel |
2 ID: $Id$ |
2 ID: $Id$ |
3 Author: Konrad Slind |
3 Author: Konrad Slind |
4 Copyright 1996 TU Munich |
4 Copyright 1996 TU Munich |
5 |
5 |
6 Derived wellfounded relations: inverse image, relational product, measure, ... |
6 Derived WF relations: inverse image, lexicographic product, measure, ... |
7 *) |
7 *) |
8 |
8 |
9 open WF_Rel; |
9 open WF_Rel; |
10 |
10 |
11 |
11 |
77 by (rtac (wfb RS spec RS mp) 1); |
77 by (rtac (wfb RS spec RS mp) 1); |
78 by (Blast_tac 1); |
78 by (Blast_tac 1); |
79 qed "wf_lex_prod"; |
79 qed "wf_lex_prod"; |
80 AddSIs [wf_lex_prod]; |
80 AddSIs [wf_lex_prod]; |
81 |
81 |
82 (*---------------------------------------------------------------------------- |
|
83 * Wellfoundedness of relational product |
|
84 *---------------------------------------------------------------------------*) |
|
85 val [wfa,wfb] = goalw thy [wf_def,rprod_def] |
|
86 "[| wf(ra); wf(rb) |] ==> wf(rprod ra rb)"; |
|
87 by (EVERY1 [rtac allI,rtac impI, rtac split_all_pair]); |
|
88 by (rtac (wfa RS spec RS mp) 1); |
|
89 by (EVERY1 [rtac allI,rtac impI]); |
|
90 by (rtac (wfb RS spec RS mp) 1); |
|
91 by (Blast_tac 1); |
|
92 qed "wf_rel_prod"; |
|
93 AddSIs [wf_rel_prod]; |
|
94 |
|
95 |
|
96 (*--------------------------------------------------------------------------- |
82 (*--------------------------------------------------------------------------- |
97 * Wellfoundedness of subsets |
83 * Wellfoundedness of subsets |
98 *---------------------------------------------------------------------------*) |
84 *---------------------------------------------------------------------------*) |
99 |
85 |
100 goal thy "!!r. [| wf(r); p<=r |] ==> wf(p)"; |
86 goal thy "!!r. [| wf(r); p<=r |] ==> wf(p)"; |
120 by (Simp_tac 1); |
106 by (Simp_tac 1); |
121 by (Blast_tac 1); |
107 by (Blast_tac 1); |
122 qed "trans_lex_prod"; |
108 qed "trans_lex_prod"; |
123 AddSIs [trans_lex_prod]; |
109 AddSIs [trans_lex_prod]; |
124 |
110 |
125 goalw thy [trans_def, rprod_def] |
|
126 "!!R1 R2. [| trans R1; trans R2 |] ==> trans (rprod R1 R2)"; |
|
127 by (Simp_tac 1); |
|
128 by (Blast_tac 1); |
|
129 qed "trans_rprod"; |
|
130 AddSIs [trans_rprod]; |
|
131 |
|
132 |
111 |
133 (*--------------------------------------------------------------------------- |
112 (*--------------------------------------------------------------------------- |
134 * Wellfoundedness of proper subset on finite sets. |
113 * Wellfoundedness of proper subset on finite sets. |
135 *---------------------------------------------------------------------------*) |
114 *---------------------------------------------------------------------------*) |
136 goalw thy [finite_psubset_def] "wf(finite_psubset)"; |
115 goalw thy [finite_psubset_def] "wf(finite_psubset)"; |