equal
deleted
inserted
replaced
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)"; |