# HG changeset patch # User paulson # Date 1267722521 0 # Node ID 3c01f5ad1d3492630d70993680970017fc94a733 # Parent 56b070cd7ab3236b0f126ec9b408f78ae07260b4 Simplified a couple of proofs and corrected a comment diff -r 56b070cd7ab3 -r 3c01f5ad1d34 src/HOL/Auth/Message.thy --- a/src/HOL/Auth/Message.thy Thu Mar 04 11:22:06 2010 +0100 +++ b/src/HOL/Auth/Message.thy Thu Mar 04 17:08:41 2010 +0000 @@ -236,7 +236,7 @@ by blast lemma parts_subset_iff [simp]: "(parts G \ parts H) = (G \ parts H)" -by (metis equalityE parts_idem parts_increasing parts_mono subset_trans) +by (metis parts_idem parts_increasing parts_mono subset_trans) lemma parts_trans: "[| X\ parts G; G \ parts H |] ==> X\ parts H" by (drule parts_mono, blast) @@ -611,7 +611,7 @@ by blast lemma synth_subset_iff [simp]: "(synth G \ synth H) = (G \ synth H)" -by (metis equalityE subset_trans synth_idem synth_increasing synth_mono) +by (metis subset_trans synth_idem synth_increasing synth_mono) lemma synth_trans: "[| X\ synth G; G \ synth H |] ==> X\ synth H" by (drule synth_mono, blast) @@ -674,8 +674,7 @@ lemma parts_insert_subset_Un: "X\ G ==> parts(insert X H) \ parts G \ parts H" by (metis UnCI Un_upper2 insert_subset parts_Un parts_mono) -text{*More specifically for Fake. Very occasionally we could do with a version - of the form @{term"parts{X} \ synth (analz H) \ parts H"} *} +text{*More specifically for Fake. See also @{text Fake_parts_sing} below *} lemma Fake_parts_insert: "X \ synth (analz H) ==> parts (insert X H) \ synth (analz H) \ parts H" @@ -884,17 +883,17 @@ lemma Fake_analz_eq [simp]: "X \ synth(analz H) ==> synth (analz (insert X H)) = synth (analz H)" -by (metis Fake_analz_insert Un_absorb Un_absorb1 Un_commute equalityI +by (metis Fake_analz_insert Un_absorb Un_absorb1 Un_commute subset_insertI synth_analz_mono synth_increasing synth_subset_iff) text{*Two generalizations of @{text analz_insert_eq}*} lemma gen_analz_insert_eq [rule_format]: - "X \ analz H ==> ALL G. H \ G --> analz (insert X G) = analz G"; + "X \ analz H ==> ALL G. H \ G --> analz (insert X G) = analz G" by (blast intro: analz_cut analz_insertI analz_mono [THEN [2] rev_subsetD]) lemma synth_analz_insert_eq [rule_format]: "X \ synth (analz H) - ==> ALL G. H \ G --> (Key K \ analz (insert X G)) = (Key K \ analz G)"; + ==> ALL G. H \ G --> (Key K \ analz (insert X G)) = (Key K \ analz G)" apply (erule synth.induct) apply (simp_all add: gen_analz_insert_eq subset_trans [OF _ subset_insertI]) done