equal
deleted
inserted
replaced
572 by (REPEAT ((assume_tac 1) ORELSE (dtac infsys_p2 1))); |
572 by (REPEAT ((assume_tac 1) ORELSE (dtac infsys_p2 1))); |
573 qed "hasty_rel_elim"; |
573 qed "hasty_rel_elim"; |
574 |
574 |
575 (* Introduction rules for hasty *) |
575 (* Introduction rules for hasty *) |
576 |
576 |
577 Goalw [hasty_def] "!!c. c isof t ==> v_const(c) hasty t"; |
577 Goalw [hasty_def] "c isof t ==> v_const(c) hasty t"; |
578 by (etac hasty_rel_const_coind 1); |
578 by (etac hasty_rel_const_coind 1); |
579 qed "hasty_const"; |
579 qed "hasty_const"; |
580 |
580 |
581 Goalw [hasty_def,hasty_env_def] |
581 Goalw [hasty_def,hasty_env_def] |
582 "!!t. te |- fn ev => e ===> t & ve hastyenv te ==> v_clos(<|ev,e,ve|>) hasty t"; |
582 "!!t. te |- fn ev => e ===> t & ve hastyenv te ==> v_clos(<|ev,e,ve|>) hasty t"; |
590 "!!v. v hasty t ==> (!c.(v = v_const(c) --> c isof t))"; |
590 "!!v. v hasty t ==> (!c.(v = v_const(c) --> c isof t))"; |
591 by (rtac hasty_rel_elim 1); |
591 by (rtac hasty_rel_elim 1); |
592 by (ALLGOALS (blast_tac (v_ext_cs HOL_cs))); |
592 by (ALLGOALS (blast_tac (v_ext_cs HOL_cs))); |
593 qed "hasty_elim_const_lem"; |
593 qed "hasty_elim_const_lem"; |
594 |
594 |
595 Goal "!!c. v_const(c) hasty t ==> c isof t"; |
595 Goal "v_const(c) hasty t ==> c isof t"; |
596 by (dtac hasty_elim_const_lem 1); |
596 by (dtac hasty_elim_const_lem 1); |
597 by (Blast_tac 1); |
597 by (Blast_tac 1); |
598 qed "hasty_elim_const"; |
598 qed "hasty_elim_const"; |
599 |
599 |
600 (* Elimination on closures for hasty *) |
600 (* Elimination on closures for hasty *) |