author | paulson |
Fri, 11 Aug 2000 13:26:40 +0200 | |
changeset 9577 | 9e66e8ed8237 |
parent 6046 | 2c8a8be36c94 |
child 11319 | 8b84ee2cc79c |
permissions | -rw-r--r-- |
1461 | 1 |
(* Title: Cube.ML |
1048 | 2 |
ID: $Id$ |
1461 | 3 |
Author: Ole Rasmussen |
1048 | 4 |
Copyright 1995 University of Cambridge |
5 |
Logic Image: ZF |
|
6 |
*) |
|
7 |
||
5527 | 8 |
Addsimps [commutation, residuals_preserve_comp, sub_preserve_reg, |
9 |
residuals_preserve_reg, sub_comp, sub_comp RS comp_sym]; |
|
1048 | 10 |
|
11 |
(* ------------------------------------------------------------------------- *) |
|
12 |
(* Prism theorem *) |
|
13 |
(* ============= *) |
|
14 |
(* ------------------------------------------------------------------------- *) |
|
15 |
||
3734
33f355f56f82
Much tidying including "qed" instead of result(), and even qed_spec_mp,
paulson
parents:
2493
diff
changeset
|
16 |
(* Having more assumptions than needed -- removed below *) |
5147
825877190618
More tidying and removal of "\!\!... from Goal commands
paulson
parents:
5068
diff
changeset
|
17 |
Goal "v<==u ==> \ |
5527 | 18 |
\ regular(u) --> (ALL w. w~v --> w~u --> \ |
19 |
\ w |> u = (w|>v) |> (u|>v))"; |
|
1732 | 20 |
by (etac Ssub.induct 1); |
5527 | 21 |
by Auto_tac; |
3734
33f355f56f82
Much tidying including "qed" instead of result(), and even qed_spec_mp,
paulson
parents:
2493
diff
changeset
|
22 |
qed_spec_mp "prism_l"; |
1048 | 23 |
|
5147
825877190618
More tidying and removal of "\!\!... from Goal commands
paulson
parents:
5068
diff
changeset
|
24 |
Goal "[|v <== u; regular(u); w~v|]==> \ |
1048 | 25 |
\ w |> u = (w|>v) |> (u|>v)"; |
4152 | 26 |
by (rtac prism_l 1); |
1461 | 27 |
by (rtac comp_trans 4); |
5527 | 28 |
by Auto_tac; |
3734
33f355f56f82
Much tidying including "qed" instead of result(), and even qed_spec_mp,
paulson
parents:
2493
diff
changeset
|
29 |
qed "prism"; |
1048 | 30 |
|
31 |
||
32 |
(* ------------------------------------------------------------------------- *) |
|
33 |
(* Levy's Cube Lemma *) |
|
34 |
(* ------------------------------------------------------------------------- *) |
|
35 |
||
5147
825877190618
More tidying and removal of "\!\!... from Goal commands
paulson
parents:
5068
diff
changeset
|
36 |
Goal "[|u~v; regular(v); regular(u); w~u|]==> \ |
1048 | 37 |
\ (w|>u) |> (v|>u) = (w|>v) |> (u|>v)"; |
4152 | 38 |
by (stac preservation 1 |
1048 | 39 |
THEN assume_tac 1 THEN assume_tac 1); |
4152 | 40 |
by (stac preservation 1 |
3734
33f355f56f82
Much tidying including "qed" instead of result(), and even qed_spec_mp,
paulson
parents:
2493
diff
changeset
|
41 |
THEN etac comp_sym 1 THEN assume_tac 1); |
2034 | 42 |
by (stac (prism RS sym) 1); |
4091 | 43 |
by (asm_full_simp_tac (simpset() addsimps |
2469 | 44 |
[prism RS sym,union_l,union_preserve_regular, |
45 |
comp_sym_iff, union_sym]) 4); |
|
5527 | 46 |
by (asm_simp_tac (simpset() addsimps [union_r, comp_sym_iff]) 1); |
47 |
by (asm_simp_tac (simpset() addsimps |
|
48 |
[union_preserve_regular, comp_sym_iff]) 1); |
|
1677
99044cda4ef3
repaired critical proofs depending on the order inside non-confluent SimpSets,
oheimb
parents:
1461
diff
changeset
|
49 |
by (etac comp_trans 1); |
99044cda4ef3
repaired critical proofs depending on the order inside non-confluent SimpSets,
oheimb
parents:
1461
diff
changeset
|
50 |
by (atac 1); |
3734
33f355f56f82
Much tidying including "qed" instead of result(), and even qed_spec_mp,
paulson
parents:
2493
diff
changeset
|
51 |
qed "cube"; |
1048 | 52 |
|
53 |
||
54 |
(* ------------------------------------------------------------------------- *) |
|
55 |
(* paving theorem *) |
|
56 |
(* ------------------------------------------------------------------------- *) |
|
57 |
||
5147
825877190618
More tidying and removal of "\!\!... from Goal commands
paulson
parents:
5068
diff
changeset
|
58 |
Goal "[|w~u; w~v; regular(u); regular(v)|]==> \ |
2493 | 59 |
\ EX uv vu. (w|>u) |> vu = (w|>v) |> uv & (w|>u)~vu &\ |
1048 | 60 |
\ regular(vu) & (w|>v)~uv & regular(uv) "; |
3734
33f355f56f82
Much tidying including "qed" instead of result(), and even qed_spec_mp,
paulson
parents:
2493
diff
changeset
|
61 |
by (subgoal_tac "u~v" 1); |
4091 | 62 |
by (safe_tac (claset() addSIs [exI])); |
1461 | 63 |
by (rtac cube 1); |
5527 | 64 |
by (ALLGOALS (asm_simp_tac (simpset() addsimps [comp_sym_iff]))); |
4091 | 65 |
by (ALLGOALS (blast_tac (claset() addIs [residuals_preserve_comp, |
3734
33f355f56f82
Much tidying including "qed" instead of result(), and even qed_spec_mp,
paulson
parents:
2493
diff
changeset
|
66 |
comp_trans, comp_sym]))); |
33f355f56f82
Much tidying including "qed" instead of result(), and even qed_spec_mp,
paulson
parents:
2493
diff
changeset
|
67 |
qed "paving"; |
1048 | 68 |