# HG changeset patch # User paulson # Date 1250180382 -3600 # Node ID a508148f7c254c4c22d2701ded14fd4504a0cc34 # Parent b269b56b6a145144906ab9c4b19d8a30c610a978 Removal of redundant settings of unification trace and search bounds. diff -r b269b56b6a14 -r a508148f7c25 src/HOL/Auth/Yahalom.thy --- a/src/HOL/Auth/Yahalom.thy Thu Aug 13 17:19:10 2009 +0100 +++ b/src/HOL/Auth/Yahalom.thy Thu Aug 13 17:19:42 2009 +0100 @@ -129,8 +129,7 @@ lemma YM4_Key_parts_knows_Spy: "Says Server A {|Crypt (shrK A) {|B,K,NA,NB|}, X|} \ set evs ==> K \ parts (knows Spy evs)" -by (blast dest!: parts.Body Says_imp_knows_Spy [THEN parts.Inj]) - + by (metis parts.Body parts.Fst parts.Snd Says_imp_knows_Spy parts.Inj) text{*Theorems of the form @{term "X \ parts (knows Spy evs)"} imply that NOBODY sends messages containing X! *} @@ -275,7 +274,7 @@ Notes Spy {|na, nb, Key K|} \ set evs; A \ bad; B \ bad; evs \ yahalom |] ==> Key K \ analz (knows Spy evs)" -by (blast dest!: A_trusts_YM3 Spy_not_see_encrypted_key) + by (metis A_trusts_YM3 secrecy_lemma) subsubsection{* Security Guarantees for B upon receiving YM4 *} @@ -409,9 +408,8 @@ txt{*If @{prop "A \ bad"} then @{term NBa} is known, therefore @{prop "NBa \ NB"}. Previous two steps make the next step faster.*} -apply (blast dest!: Gets_imp_Says Says_imp_spies Crypt_Spy_analz_bad - dest: analz.Inj - parts.Inj [THEN parts.Fst, THEN A_trusts_YM3, THEN KeyWithNonceI]) +apply (metis A_trusts_YM3 Gets_imp_analz_Spy Gets_imp_knows_Spy KeyWithNonce_def + Spy_analz_shrK analz.Fst analz.Snd analz_shrK_Decrypt parts.Fst parts.Inj) done @@ -514,12 +512,7 @@ covered by the quantified Oops assumption.*} apply (clarify, simp add: all_conj_distrib) apply (frule Says_Server_imp_YM2, assumption) -apply (case_tac "NB = NBa") -txt{*If NB=NBa then all other components of the Oops message agree*} -apply (blast dest: Says_unique_NB) -txt{*case @{prop "NB \ NBa"}*} -apply (simp add: single_Nonce_secrecy) -apply (blast dest!: no_nonce_YM1_YM2 (*to prove NB\NAa*)) +apply (metis Gets_imp_Says Says_Server_not_range Says_unique_NB no_nonce_YM1_YM2 parts.Snd single_Nonce_secrecy spies_partsEs(1)) done @@ -557,7 +550,7 @@ \k. Notes Spy {|Nonce NA, Nonce NB, k|} \ set evs; A \ bad; B \ bad; evs \ yahalom |] ==> Key K \ analz (knows Spy evs)" -by (blast dest!: B_trusts_YM4 Spy_not_see_encrypted_key) + by (metis B_trusts_YM4 Spy_not_see_encrypted_key) subsection{*Authenticating B to A*} @@ -594,7 +587,8 @@ A \ bad; B \ bad; evs \ yahalom |] ==> Says B Server {|Agent B, Crypt (shrK B) {|Agent A, Nonce NA, nb|}|} \ set evs" -by (blast dest!: A_trusts_YM3 YM3_auth_B_to_A_lemma elim: knows_Spy_partsEs) + by (metis A_trusts_YM3 Gets_imp_analz_Spy YM3_auth_B_to_A_lemma analz.Fst + not_parts_not_analz) subsection{*Authenticating A to B using the certificate @@ -639,7 +633,6 @@ (\NA k. Notes Spy {|Nonce NA, Nonce NB, k|} \ set evs); A \ bad; B \ bad; evs \ yahalom |] ==> \X. Says A B {|X, Crypt K (Nonce NB)|} \ set evs" -by (blast intro!: A_Said_YM3_lemma - dest: Spy_not_see_encrypted_key B_trusts_YM4 Gets_imp_Says) - +atp_minimize [atp=spass] A_Said_YM3_lemma B_gets_good_key Gets_imp_analz_Spy YM4_parts_knows_Spy analz.Fst not_parts_not_analz +by (metis A_Said_YM3_lemma B_gets_good_key Gets_imp_analz_Spy YM4_parts_knows_Spy analz.Fst not_parts_not_analz) end diff -r b269b56b6a14 -r a508148f7c25 src/HOL/Bali/Basis.thy --- a/src/HOL/Bali/Basis.thy Thu Aug 13 17:19:10 2009 +0100 +++ b/src/HOL/Bali/Basis.thy Thu Aug 13 17:19:42 2009 +0100 @@ -7,8 +7,6 @@ theory Basis imports Main begin -declare [[unify_search_bound = 40, unify_trace_bound = 40]] - section "misc" @@ -65,36 +63,36 @@ by (auto intro: r_into_rtrancl rtrancl_trans) lemma triangle_lemma: - "\ \ a b c. \(a,b)\r; (a,c)\r\ \ b=c; (a,x)\r\<^sup>*; (a,y)\r\<^sup>*\ - \ (x,y)\r\<^sup>* \ (y,x)\r\<^sup>*" + "\ \ a b c. \(a,b)\r; (a,c)\r\ \ b=c; (a,x)\r*; (a,y)\r*\ + \ (x,y)\r* \ (y,x)\r*" proof - note converse_rtrancl_induct = converse_rtrancl_induct [consumes 1] note converse_rtranclE = converse_rtranclE [consumes 1] assume unique: "\ a b c. \(a,b)\r; (a,c)\r\ \ b=c" - assume "(a,x)\r\<^sup>*" - then show "(a,y)\r\<^sup>* \ (x,y)\r\<^sup>* \ (y,x)\r\<^sup>*" + assume "(a,x)\r*" + then show "(a,y)\r* \ (x,y)\r* \ (y,x)\r*" proof (induct rule: converse_rtrancl_induct) - assume "(x,y)\r\<^sup>*" + assume "(x,y)\r*" then show ?thesis by blast next fix a v assume a_v_r: "(a, v) \ r" and - v_x_rt: "(v, x) \ r\<^sup>*" and - a_y_rt: "(a, y) \ r\<^sup>*" and - hyp: "(v, y) \ r\<^sup>* \ (x, y) \ r\<^sup>* \ (y, x) \ r\<^sup>*" + v_x_rt: "(v, x) \ r*" and + a_y_rt: "(a, y) \ r*" and + hyp: "(v, y) \ r* \ (x, y) \ r* \ (y, x) \ r*" from a_y_rt - show "(x, y) \ r\<^sup>* \ (y, x) \ r\<^sup>*" + show "(x, y) \ r* \ (y, x) \ r*" proof (cases rule: converse_rtranclE) assume "a=y" - with a_v_r v_x_rt have "(y,x) \ r\<^sup>*" + with a_v_r v_x_rt have "(y,x) \ r*" by (auto intro: r_into_rtrancl rtrancl_trans) then show ?thesis by blast next fix w assume a_w_r: "(a, w) \ r" and - w_y_rt: "(w, y) \ r\<^sup>*" + w_y_rt: "(w, y) \ r*" from a_v_r a_w_r unique have "v=w" by auto @@ -107,7 +105,7 @@ lemma rtrancl_cases [consumes 1, case_names Refl Trancl]: - "\(a,b)\r\<^sup>*; a = b \ P; (a,b)\r\<^sup>+ \ P\ \ P" + "\(a,b)\r*; a = b \ P; (a,b)\r+ \ P\ \ P" apply (erule rtranclE) apply (auto dest: rtrancl_into_trancl1) done diff -r b269b56b6a14 -r a508148f7c25 src/HOL/Induct/Com.thy --- a/src/HOL/Induct/Com.thy Thu Aug 13 17:19:10 2009 +0100 +++ b/src/HOL/Induct/Com.thy Thu Aug 13 17:19:42 2009 +0100 @@ -91,8 +91,6 @@ "((\x x' y. ((x, x'), y) \ R) <= (\x x' y. ((x, x'), y) \ S)) = (R <= S)" by (auto simp add: le_fun_def le_bool_def mem_def) -declare [[unify_trace_bound = 30, unify_search_bound = 60]] - text{*Command execution is functional (deterministic) provided evaluation is*} theorem single_valued_exec: "single_valued ev ==> single_valued(exec ev)" apply (simp add: single_valued_def) diff -r b269b56b6a14 -r a508148f7c25 src/HOL/MicroJava/J/JTypeSafe.thy --- a/src/HOL/MicroJava/J/JTypeSafe.thy Thu Aug 13 17:19:10 2009 +0100 +++ b/src/HOL/MicroJava/J/JTypeSafe.thy Thu Aug 13 17:19:42 2009 +0100 @@ -183,8 +183,6 @@ (mp_tac ORELSE' (dtac spec THEN' mp_tac)), REPEAT o (etac conjE)])) *} -declare [[unify_search_bound = 40, unify_trace_bound = 40]] - theorem eval_evals_exec_type_sound: "wf_java_prog G ==> @@ -368,8 +366,6 @@ done -declare [[unify_search_bound = 20, unify_trace_bound = 20]] - lemma eval_type_sound: "!!E s s'. [| wf_java_prog G; G\(x,s) -e\v -> (x',s'); (x,s)::\E; E\e::T; G=prg E |]