New tactic: prove_unique_tac
authorpaulson
Mon, 16 Dec 1996 11:08:11 +0100
changeset 2417 95f275c8476e
parent 2416 8ba800a46e14
child 2418 6b6a92d05fb2
New tactic: prove_unique_tac
src/HOL/Auth/OtwayRees.ML
src/HOL/Auth/OtwayRees_AN.ML
src/HOL/Auth/OtwayRees_Bad.ML
--- a/src/HOL/Auth/OtwayRees.ML	Mon Dec 16 10:50:08 1996 +0100
+++ b/src/HOL/Auth/OtwayRees.ML	Mon Dec 16 11:08:11 1996 +0100
@@ -306,11 +306,7 @@
 \           Says Server B' {|NA',X',Crypt (shrK B') {|NB',K|}|}    \
 \            : set_of_list evs;                                    \
 \           evs : otway lost |] ==> X=X' & B=B' & NA=NA' & NB=NB'";
-by (dtac lemma 1);
-by (REPEAT (etac exE 1));
-(*Duplicate the assumption*)
-by (forw_inst_tac [("psi", "ALL C.?P(C)")] asm_rl 1);
-by (fast_tac (!claset addSDs [spec]) 1);
+by (prove_unique_tac lemma 1);
 qed "unique_session_keys";
 
 
@@ -349,12 +345,7 @@
 \          Crypt (shrK A) {|NA, Agent A, Agent C|}: parts(sees lost Spy evs); \
 \          evs : otway lost;  A ~: lost |]                                    \
 \        ==> B = C";
-by (dtac lemma 1);
-by (assume_tac 1);
-by (etac exE 1);
-(*Duplicate the assumption*)
-by (forw_inst_tac [("psi", "ALL C.?P(C)")] asm_rl 1);
-by (fast_tac (!claset addSDs [spec]) 1);
+by (prove_unique_tac lemma 1);
 qed "unique_NA";
 
 
@@ -529,12 +520,7 @@
 \                  : parts(sees lost Spy evs);         \
 \          evs : otway lost;  B ~: lost |]             \
 \        ==> NC = NA & C = A";
-by (dtac lemma 1);
-by (assume_tac 1);
-by (REPEAT (etac exE 1));
-(*Duplicate the assumption*)
-by (forw_inst_tac [("psi", "ALL C.?P(C)")] asm_rl 1);
-by (fast_tac (!claset addSDs [spec]) 1);
+by (prove_unique_tac lemma 1);
 qed "unique_NB";
 
 
--- a/src/HOL/Auth/OtwayRees_AN.ML	Mon Dec 16 10:50:08 1996 +0100
+++ b/src/HOL/Auth/OtwayRees_AN.ML	Mon Dec 16 11:08:11 1996 +0100
@@ -276,11 +276,7 @@
 \           : set_of_list evs;                                     \
 \          evs : otway lost |]                                     \
 \       ==> A=A' & B=B' & NA=NA' & NB=NB'";
-by (dtac lemma 1);
-by (REPEAT (etac exE 1));
-(*Duplicate the assumption*)
-by (forw_inst_tac [("psi", "ALL C.?P(C)")] asm_rl 1);
-by (fast_tac (!claset addSDs [spec]) 1);
+by (prove_unique_tac lemma 1);
 qed "unique_session_keys";
 
 
--- a/src/HOL/Auth/OtwayRees_Bad.ML	Mon Dec 16 10:50:08 1996 +0100
+++ b/src/HOL/Auth/OtwayRees_Bad.ML	Mon Dec 16 11:08:11 1996 +0100
@@ -317,11 +317,7 @@
 \           Says Server B' {|NA',X',Crypt (shrK B') {|NB',K|}|}    \
 \            : set_of_list evs;                                    \
 \           evs : otway |] ==> X=X' & B=B' & NA=NA' & NB=NB'";
-by (dtac lemma 1);
-by (REPEAT (etac exE 1));
-(*Duplicate the assumption*)
-by (forw_inst_tac [("psi", "ALL C.?P(C)")] asm_rl 1);
-by (fast_tac (!claset addSDs [spec]) 1);
+by (prove_unique_tac lemma 1);
 qed "unique_session_keys";