@@ -148,7 +148,7 @@ Triviality BOTTOM_UP_OPT_THM1:
148148 eval_match_rel s env v (BOTTOM_UP_OPT_PAT f pats) w s1 r)
149149Proof
150150 disch_tac
151- \\ ho_match_mp_tac (fetch " - " " BOTTOM_UP_OPT_ind" )
151+ \\ ho_match_mp_tac BOTTOM_UP_OPT_ind
152152 \\ rpt strip_tac
153153 \\ simp [eval_rel_def |> ONCE_REWRITE_RULE [CONJ_COMM],
154154 eval_list_rel_def |> ONCE_REWRITE_RULE [CONJ_COMM],
@@ -169,8 +169,6 @@ Proof
169169 bool_case_eq,option_case_eq,state_component_equality,
170170 REVERSE_BOTTOM_UP_OPT_LIST]
171171 \\ TRY (asm_exists_tac \\ fs [state_component_equality] \\ NO_TAC)
172- \\ TRY (qpat_x_assum `(_,_) = _` (assume_tac o GSYM)
173- \\ asm_exists_tac \\ fs [state_component_equality] \\ NO_TAC)
174172 THEN1 (* Con *)
175173 (rename1 `_ = (st1,Rval vs)`
176174 \\ `evaluate (s with clock := ck1) env (REVERSE xs) =
@@ -180,7 +178,7 @@ Proof
180178 \\ asm_exists_tac \\ fs [])
181179 THEN1 (* App Eval *)
182180 (
183- fs [evaluateTheory.do_eval_res_def, Q.ISPEC `(_, _)` EQ_SYM_EQ ]
181+ fs [evaluateTheory.do_eval_res_def]
184182 \\ fs [list_case_eq,option_case_eq,bool_case_eq,pair_case_eq,result_case_eq]
185183 \\ rveq \\ fs [PULL_EXISTS]
186184 \\ `? st_x ck_x. st' = (st_x with clock := ck_x) /\ st_x.clock = s.clock`
@@ -205,7 +203,7 @@ Proof
205203 ((st1 with clock := s1.clock) with clock := st1.clock,Rval vs)`
206204 by fs [state_component_equality]
207205 \\ first_x_assum drule \\ simp [] \\ strip_tac
208- \\ qpat_x_assum `(_,_) = _` (assume_tac o GSYM)
206+ \\ qpat_x_assum `evaluate _ _ _ = (s1 with clock := _ ,_)` assume_tac
209207 \\ drule evaluate_add_to_clock \\ fs []
210208 \\ disch_then (qspec_then `ck2' + 1 ` assume_tac)
211209 \\ rfs [EVAL ``(dec_clock st1).clock``]
@@ -320,7 +318,7 @@ Proof
320318 imp_res_tac evaluate_sing \\ rveq \\ fs []
321319 \\ `? st_x ck_x. st' = (st_x with clock := ck_x) /\ st_x.clock = s.clock`
322320 by (qexists_tac `st' with clock := s.clock` \\ simp [state_component_equality])
323- \\ fs [Q.ISPEC `(_, _)` EQ_SYM_EQ ]
321+ \\ fs []
324322 \\ rpt (first_x_assum drule \\ rw [])
325323 \\ dxrule_then dxrule evaluate_and_match_clock
326324 \\ rw []
@@ -332,7 +330,7 @@ Proof
332330 (imp_res_tac evaluate_sing \\ rveq \\ fs [] \\ rveq \\ fs []
333331 \\ `? st_x ck_x. st' = (st_x with clock := ck_x) /\ st_x.clock = s.clock`
334332 by (qexists_tac `st' with clock := s.clock` \\ simp [state_component_equality])
335- \\ fs [Q.ISPEC `(_, _)` EQ_SYM_EQ ]
333+ \\ fs []
336334 \\ rpt (first_x_assum drule \\ rw [])
337335 \\ dxrule_then dxrule evaluate_two_steps_clock
338336 \\ rw []
@@ -368,7 +366,7 @@ Proof
368366 )
369367 THEN1 (* match *)
370368 (
371- fs [Q.ISPEC `(_, _)` EQ_SYM_EQ, match_result_case_eq]
369+ fs [match_result_case_eq]
372370 \\ fsrw_tac [SATISFY_ss] []
373371 )
374372QED
@@ -398,7 +396,6 @@ Proof
398396 \\ rveq \\ fs [] \\ rveq \\ fs [do_opapp_def,bool_case_eq,PULL_EXISTS]
399397 \\ fs [evaluateTheory.dec_clock_def,evaluate_def,abs2let_def]
400398 \\ qexists_tac `ck1` \\ fs []
401- \\ first_x_assum (assume_tac o SYM) \\ fs []
402399 \\ drule evaluate_add_to_clock \\ fs []
403400 \\ disch_then (qspec_then `1 ` mp_tac) \\ fs []
404401 \\ `(st' with clock := st'.clock) = st'` by fs [state_component_equality]
0 commit comments