@@ -629,13 +629,23 @@ val th20 = store_thm
629
629
\\ PURE_REWRITE_TAC[T_iff,or_T,F_iff,or_F,imp_T,imp_F]
630
630
\\ REFL_TAC);
631
631
632
+ val not_T = hd(amatch``~T``);
633
+
634
+ (* |- !A B. A ==> B <=> ~A \/ B *)
635
+ val imp_disj_thm = store_thm
636
+ (" imp_disj_thm" , concl boolTheory.IMP_DISJ_THM,
637
+ rpt gen_tac
638
+ >> qspec_then ‘A’ FULL_STRUCT_CASES_TAC bool_cases
639
+ >> PURE_REWRITE_TAC[T_imp,not_T,F_imp,not_F,F_or,T_or]
640
+ >> REFL_TAC);
641
+
632
642
(* |- !A B. A \/ B <=> ~A ==> B (DISJ_EQ_IMP) *)
633
643
val th21 = save_thm
634
644
(" th21" , (* this forward proof comes from boolScript.sml *)
635
645
let
636
646
val lemma = not_not |> SPEC ``A:bool``
637
647
in
638
- IMP_DISJ_THM
648
+ imp_disj_thm
639
649
|> SPECL [``~A:bool``,``B:bool``]
640
650
|> SYM
641
651
|> CONV_RULE
@@ -1567,16 +1577,6 @@ val th97 = store_thm
1567
1577
\\ TRY (disj1_tac >> first_assum ACCEPT_TAC)
1568
1578
\\ TRY (disj2_tac >> first_assum ACCEPT_TAC));
1569
1579
1570
- val not_T = hd(amatch``~T``);
1571
-
1572
- (* |- !A B. A ==> B <=> ~A \/ B *)
1573
- val IMP_DISJ_THM = store_thm
1574
- (" IMP_DISJ_THM" , concl boolTheory.IMP_DISJ_THM,
1575
- rpt gen_tac
1576
- \\ qspec_then`A`FULL_STRUCT_CASES_TAC bool_cases
1577
- \\ PURE_REWRITE_TAC[T_imp,not_T,F_imp,not_F,F_or,T_or]
1578
- \\ REFL_TAC);
1579
-
1580
1580
(* This is no more needed
1581
1581
val some_neq_none = hd(amatch``_ <> Data_Option_none``);
1582
1582
*)
@@ -1661,8 +1661,8 @@ val COND_EXPAND_IMP = save_thm
1661
1661
val t2 = “t2:bool”
1662
1662
val nb = mk_neg b;
1663
1663
val nnb = mk_neg nb;
1664
- val imp_th1 = SPECL [b, t1] IMP_DISJ_THM ;
1665
- val imp_th2a = SPECL [nb, t2] IMP_DISJ_THM
1664
+ val imp_th1 = SPECL [b, t1] imp_disj_thm ;
1665
+ val imp_th2a = SPECL [nb, t2] imp_disj_thm
1666
1666
val imp_th2b = SUBST_CONV [nnb |-> (SPEC b (CONJUNCT1 NOT_CLAUSES))]
1667
1667
(mk_disj (nnb, t2)) (mk_disj (nnb, t2))
1668
1668
val imp_th2 = TRANS imp_th2a imp_th2b
@@ -1703,9 +1703,9 @@ val OR_CONG = save_thm
1703
1703
val th4 = ASSUME ctm1
1704
1704
val th5 = ASSUME ctm2
1705
1705
val th6 = SUBS [SPEC Q (CONJUNCT1 NOT_CLAUSES)]
1706
- (SUBS [SPECL[notQ, PeqP'] IMP_DISJ_THM ] th4)
1706
+ (SUBS [SPECL[notQ, PeqP'] imp_disj_thm ] th4)
1707
1707
val th7 = SUBS [SPEC P' (CONJUNCT1 NOT_CLAUSES)]
1708
- (SUBS [SPECL[notP', QeqQ'] IMP_DISJ_THM ] th5)
1708
+ (SUBS [SPECL[notP', QeqQ'] imp_disj_thm ] th5)
1709
1709
val th8 = ASSUME P'
1710
1710
val th9 = DISJ1 th8 Q'
1711
1711
val th10 = ASSUME QeqQ'
0 commit comments