File tree Expand file tree Collapse file tree 1 file changed +12
-16
lines changed Expand file tree Collapse file tree 1 file changed +12
-16
lines changed Original file line number Diff line number Diff line change @@ -1129,22 +1129,18 @@ Theorem WF_PULL:
1129
1129
(!x y. R' x y ==> P (f x) /\ f x = f y /\ R (f x) (g x) (g y)) ==>
1130
1130
WF R'
1131
1131
Proof
1132
- rw[WF_DEF] >>
1133
- reverse $ Cases_on `?w'. P (f w') /\ B w'`
1134
- >- (fs[] >> metis_tac[]) >>
1135
- rw[] >>
1136
- first_x_assum drule >>
1137
- qpat_x_assum `B w` kall_tac >>
1138
- disch_then $ qspec_then
1139
- `\x. ?y. x = g y /\ B y /\ P (f y) /\ f y = f w'` assume_tac >>
1140
- fs[PULL_EXISTS] >>
1141
- first_x_assum (dxrule_then dxrule) >>
1142
- rw[] >>
1143
- first_assum $ irule_at (Pos hd) >>
1144
- rw[] >>
1145
- last_x_assum drule >>
1146
- rw[] >>
1147
- gvs[]
1132
+ rw_tac(srw_ss())[WF_DEF] >>
1133
+ Cases_on `?w'. P (f w') /\ B w'`
1134
+ >- (
1135
+ POP_ASSUM STRIP_ASSUME_TAC >>
1136
+ FIRST_X_ASSUM drule >>
1137
+ Q.PAT_X_ASSUM `B w` (K ALL_TAC) >>
1138
+ DISCH_THEN $ Q.SPEC_THEN
1139
+ `\x. ?y. x = g y /\ B y /\ P (f y) /\ f y = f w'`
1140
+ (ASSUME_TAC o SIMP_RULE bool_ss [PULL_EXISTS]) >>
1141
+ FIRST_X_ASSUM (dxrule_then dxrule) >>
1142
+ METIS_TAC[]) >>
1143
+ METIS_TAC[]
1148
1144
QED
1149
1145
1150
1146
(* ---------------------------------------------------------------------------
You can’t perform that action at this time.
0 commit comments