equal
deleted
inserted
replaced
822 val pushCrypts = map (insComm thy "Crypt ?X ?K") |
822 val pushCrypts = map (insComm thy "Crypt ?X ?K") |
823 ["Agent ?C", "Nonce ?N", "Hash ?X'", "MPair ?X' ?Y"]; |
823 ["Agent ?C", "Nonce ?N", "Hash ?X'", "MPair ?X' ?Y"]; |
824 |
824 |
825 (*Cannot be added with Addsimps -- we don't always want to re-order messages*) |
825 (*Cannot be added with Addsimps -- we don't always want to re-order messages*) |
826 val pushes = pushKeys@pushCrypts; |
826 val pushes = pushKeys@pushCrypts; |
827 |
|
828 |
|
829 (*No premature instantiation of variables during simplification. |
|
830 For proving "possibility" properties.*) |
|
831 fun safe_solver prems = |
|
832 match_tac (TrueI::refl::prems) ORELSE' eq_assume_tac |
|
833 ORELSE' etac FalseE; |
|
834 |
827 |
835 val Fake_insert_tac = |
828 val Fake_insert_tac = |
836 dresolve_tac [impOfSubs Fake_analz_insert, |
829 dresolve_tac [impOfSubs Fake_analz_insert, |
837 impOfSubs Fake_parts_insert] THEN' |
830 impOfSubs Fake_parts_insert] THEN' |
838 eresolve_tac [asm_rl, synth.Inj]; |
831 eresolve_tac [asm_rl, synth.Inj]; |