src/FOL/simpdata.ML
changeset 2601 b301958c465d
parent 2469 b50b8c0eec01
child 2633 37c0b5a7ee5d
equal deleted inserted replaced
2600:be48eff459e9 2601:b301958c465d
    10 
    10 
    11 fun int_prove_fun s = 
    11 fun int_prove_fun s = 
    12  (writeln s;  
    12  (writeln s;  
    13   prove_goal IFOL.thy s
    13   prove_goal IFOL.thy s
    14    (fn prems => [ (cut_facts_tac prems 1), 
    14    (fn prems => [ (cut_facts_tac prems 1), 
    15                   (Int.fast_tac 1) ]));
    15                   (IntPr.fast_tac 1) ]));
    16 
    16 
    17 val conj_simps = map int_prove_fun
    17 val conj_simps = map int_prove_fun
    18  ["P & True <-> P",      "True & P <-> P",
    18  ["P & True <-> P",      "True & P <-> P",
    19   "P & False <-> False", "False & P <-> False",
    19   "P & False <-> False", "False & P <-> False",
    20   "P & P <-> P",
    20   "P & P <-> P",
   121                  "(ALL x. P(x) --> Q) <-> (EX x.P(x)) --> Q",
   121                  "(ALL x. P(x) --> Q) <-> (EX x.P(x)) --> Q",
   122                  "(ALL x. P --> Q(x)) <-> P --> (ALL x.Q(x))"];
   122                  "(ALL x. P --> Q(x)) <-> P --> (ALL x.Q(x))"];
   123 
   123 
   124 fun int_prove nm thm  = qed_goal nm IFOL.thy thm
   124 fun int_prove nm thm  = qed_goal nm IFOL.thy thm
   125     (fn prems => [ (cut_facts_tac prems 1), 
   125     (fn prems => [ (cut_facts_tac prems 1), 
   126                    (Int.fast_tac 1) ]);
   126                    (IntPr.fast_tac 1) ]);
   127 
   127 
   128 fun prove nm thm  = qed_goal nm FOL.thy thm (fn _ => [fast_tac FOL_cs 1]);
   128 fun prove nm thm  = qed_goal nm FOL.thy thm (fn _ => [fast_tac FOL_cs 1]);
   129 
   129 
   130 int_prove "conj_commute" "P&Q <-> Q&P";
   130 int_prove "conj_commute" "P&Q <-> Q&P";
   131 int_prove "conj_left_commute" "P&(Q&R) <-> Q&(P&R)";
   131 int_prove "conj_left_commute" "P&(Q&R) <-> Q&(P&R)";