Santiagos-MacBook-Pro:prototype-20121204 sescobar$ examples/Kao-Chow_Repeated_Authentication-command Wed Dec 5 10:45:41 CET 2012 \||||||||||||||||||/ --- Welcome to Maude --- /||||||||||||||||||\ Maude alpha96b built: Nov 9 2012 18:20:01 Copyright 1997-2011 SRI International Wed Dec 5 10:45:41 2012 Maude> Maude-NPA Version: Dec 4 2012 with direct composition Copyright (c) 2012, University of Illinois All rights reserved. Commands: red unification? . for getting the unification algorithm red genGrammars . for generating grammars red run(X,Y). for Y backwards analysis steps for attack pattern X red summary(X,Y). for summary of analysis steps red initials(X,Y). for showing only initial steps ========================================== reduce in MAUDE-NPA : genGrammars . rewrites: 62706184 in 81790ms cpu (82182ms real) (766672 rewrites/second) result GrammarList: ( grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl #0:Msg notInI, (#0:Msg notLeq n(#1:UName, #2:Fresh)), (#0:Msg notLeq e(#3:Sessionkey, #4:Nonce)), (#0:Msg notLeq e(mkey(#5:UName, s), #5:UName ; #6:UName ; #7:Nonce ; seskey(#5:UName, #6:UName, n(s, #8:Fresh)))), (#0:Msg notLeq #9:UName ; #10:Nonce ; seskey(#11:UName, #9:UName, n(s, #12:Fresh))), (#0:Msg notLeq #13:UName ; n(#14:UName, #15:Fresh)), (#0:Msg notLeq #16:Nonce ; seskey(#17:UName, #18:UName, n(s, #19:Fresh))), #0:Msg notLeq e( #20:Sessionkey, #21:Nonce) ; n(#22:UName, #23:Fresh) => (#0:Msg ; #24:Msg) inL . ; grl #0:Msg notInI, (#0:Msg notLeq n(#1:UName, #2:Fresh)), (#0:Msg notLeq e(#3:Sessionkey, #4:Nonce)), (#0:Msg notLeq e(mkey(#5:UName, s), #5:UName ; #6:UName ; #7:Nonce ; seskey(#5:UName, #6:UName, n(s, #8:Fresh)))), (#0:Msg notLeq #9:UName ; #10:Nonce ; seskey(#11:UName, #9:UName, n(s, #12:Fresh))), (#0:Msg notLeq #13:UName ; n(#14:UName, #15:Fresh)), (#0:Msg notLeq #16:Nonce ; seskey(#17:UName, #18:UName, n(s, #19:Fresh))), #0:Msg notLeq e( #20:Sessionkey, #21:Nonce) ; n(#22:UName, #23:Fresh) => (#24:UName ; #0:Msg) inL .) | ( grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl #0:Msg notInI, (#0:Msg notLeq n(#1:UName, #2:Fresh)), (#0:Msg notLeq e(mkey(#3:UName, s), #4:UName ; #3:UName ; #5:Nonce ; seskey(#4:UName, #3:UName, n(s, #6:Fresh)))), (#0:Msg notLeq #7:UName ; #8:Nonce ; seskey(#9:UName, #7:UName, n(s, #10:Fresh))), (#0:Msg notLeq #11:UName ; n(#12:UName, #13:Fresh)), (#0:Msg notLeq #14:Nonce ; seskey(#15:UName, #16:UName, n(s, #17:Fresh))), (#0:Msg notLeq e(#18:Sessionkey, #19:Nonce) ; n(#20:UName, #21:Fresh)), #0:Msg notLeq seskey(#22:UName, #23:UName, n(s, #24:Fresh)) => (#25:Msg ; #0:Msg) inL .) | (errorNoHeuristicApplied { grl empty => (#1:Msg ; #2:Msg) inL .,none, grl empty => (#1:Msg,#2:Msg) inL .,none, grl empty => (#1:Msg,#2:Msg) inL .} usingGrammar grl empty => (#1:Msg ; #2:Msg) inL .) | ( grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl #0:Key notInI => d(#0:Key, #1:Msg) inL .) | ( grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl #0:Msg notInI => d(#1:Key, #0:Msg) inL .) | (errorNoHeuristicApplied { grl empty => d(#1:Key, #2:Msg) inL .,none, grl empty => (#2:Msg,#1:Key) inL .,none, grl empty => (#2:Msg,#1:Key) inL .} usingGrammar grl empty => d(#1:Key, #2:Msg) inL .) | ( grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl #0:Msg notInI, (#0:Msg notLeq mkey(#1:UName, s)), (#0:Msg notLeq e(#2:Sessionkey, #3:Nonce) ; n(#4:UName, #5:Fresh)), #0:Msg notLeq seskey(#6:UName, #7:UName, n(s, #8:Fresh)) => (#9:Nonce ; #0:Msg) inL . ; grl #0:Key notInI, (#0:Key notLeq mkey(#1:UName, s)), (#0:Key notLeq e(#2:Sessionkey, #3:Nonce) ; n(#4:UName, #5:Fresh)), #0:Key notLeq seskey(#6:UName, #7:UName, n(s, #8:Fresh)) => e(#0:Key, #9:Msg) inL .) | ( grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl #0:Msg notInI, (#0:Msg notLeq #1:Nonce), (#0:Msg notLeq #2:UName ; #3:UName ; #4:Nonce ; seskey(#2:UName, #3:UName, n(s, #5:Fresh))), (#0:Msg notLeq #6:UName ; #7:Nonce ; seskey(#8:UName, #6:UName, n(s, #9:Fresh))), (#0:Msg notLeq #10:UName ; n(#11:UName, #12:Fresh)), (#0:Msg notLeq #13:Nonce ; seskey(#14:UName, #15:UName, n(s, #16:Fresh))), #0:Msg notLeq e(#17:Sessionkey, #18:Nonce) ; n(#19:UName, #20:Fresh) => e(#21:Key, #0:Msg) inL . ; grl #0:Msg notInI, (#0:Msg notLeq #1:Nonce), (#0:Msg notLeq #2:UName ; #3:UName ; #4:Nonce ; seskey(#2:UName, #3:UName, n(s, #5:Fresh))), (#0:Msg notLeq #6:UName ; #7:Nonce ; seskey(#8:UName, #6:UName, n(s, #9:Fresh))), (#0:Msg notLeq #10:UName ; n(#11:UName, #12:Fresh)), (#0:Msg notLeq #13:Nonce ; seskey(#14:UName, #15:UName, n(s, #16:Fresh))), #0:Msg notLeq e(#17:Sessionkey, #18:Nonce) ; n(#19:UName, #20:Fresh) => (#0:Msg ; #21:Sessionkey) inL . ; grl #0:Msg notInI, (#0:Msg notLeq #1:Nonce), (#0:Msg notLeq #2:UName ; #3:UName ; #4:Nonce ; seskey(#2:UName, #3:UName, n(s, #5:Fresh))), (#0:Msg notLeq #6:UName ; #7:Nonce ; seskey(#8:UName, #6:UName, n(s, #9:Fresh))), (#0:Msg notLeq #10:UName ; n(#11:UName, #12:Fresh)), (#0:Msg notLeq #13:Nonce ; seskey(#14:UName, #15:UName, n(s, #16:Fresh))), #0:Msg notLeq e(#17:Sessionkey, #18:Nonce) ; n(#19:UName, #20:Fresh) => (#21:UName ; #0:Msg) inL .) | (errorNoHeuristicApplied { grl empty => e(#1:Key, #2:Msg) inL .,none, grl empty => (#2:Msg,#1:Key) inL .,none, grl empty => (#2:Msg,#1:Key) inL .} usingGrammar grl empty => e(#1:Key, #2:Msg) inL .) | ( grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl (mkey(#0:Name, #1:Name) notLeq mkey(i, #2:Name)), mkey(#0:Name, #1:Name) notLeq mkey(#3:Name, i) => mkey(#0:Name, #1:Name) inL .) | (errorInconsistentExceptionsInGrammarRule grl n(#0:Name, #1:Fresh) notLeq #4:Nonce => n(#0:Name, #1:Fresh) inL . inGrammar grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl n(#0:Name, #1:Fresh) notLeq #4:Nonce => n(#0:Name, #1:Fresh) inL .) | ( grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl #0:Msg notInI => p(#0:Msg) inL .) | ( grl empty => p(#0:Msg) inL . ; grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL .) | ( grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl #0:Nonce notInI, #0:Nonce notLeq n(s, #1:Fresh) => seskey(#2:Name, #3:Name, #0:Nonce) inL .) | ( grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl seskey(#0:Name, #1:Name, #2:Nonce) notLeq seskey(#3:UName, #4:UName, n(s, #5:Fresh)) => seskey(#0:Name, #1:Name, #2:Nonce) inL .) | errorInconsistentExceptionsInGrammarRule grl t(#0:Name, #1:Fresh) notLeq #4:Nonce => t(#0:Name, #1:Fresh) inL . inGrammar grl #0:Msg inL => e(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => d(#1:Key, #0:Msg) inL . ; grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl t(#0:Name, #1:Fresh) notLeq #4:Nonce => t(#0:Name, #1:Fresh) inL . ========================================== reduce in MAUDE-NPA : run(0) . rewrites: 3385 in 40ms cpu (40ms real) (83503 rewrites/second) result IdSystem: < 1 > :: r:Fresh :: [ nil, -(MA:Msg ; e(mkey(b, s), a ; b ; NA:Nonce ; SK:Sessionkey)), +(MA:Msg ; e(SK:Sessionkey, NA:Nonce) ; n(b, r:Fresh)), -(e(SK:Sessionkey, n(b, r:Fresh))) | nil] || empty || nil || nil || nil ========================================== reduce in MAUDE-NPA : summary(1) . rewrites: 4671287 in 6822ms cpu (6842ms real) (684701 rewrites/second) result Summary: States>> 3 Solutions>> 0 ========================================== reduce in MAUDE-NPA : summary(2) . rewrites: 10665995 in 18136ms cpu (18204ms real) (588098 rewrites/second) result Summary: States>> 7 Solutions>> 0 ========================================== reduce in MAUDE-NPA : summary(3) . rewrites: 16815714 in 28647ms cpu (28755ms real) (586977 rewrites/second) result Summary: States>> 10 Solutions>> 0 ========================================== reduce in MAUDE-NPA : summary(4) . rewrites: 20590269 in 39274ms cpu (39473ms real) (524268 rewrites/second) result Summary: States>> 13 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(5) . rewrites: 33267157 in 65504ms cpu (65850ms real) (507860 rewrites/second) result Summary: States>> 10 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(6) . rewrites: 17193990 in 38773ms cpu (39003ms real) (443442 rewrites/second) result Summary: States>> 9 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(7) . rewrites: 31084184 in 56367ms cpu (56621ms real) (551454 rewrites/second) result Summary: States>> 17 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(8) . rewrites: 60591016 in 101417ms cpu (101875ms real) (597443 rewrites/second) result Summary: States>> 23 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(9) . rewrites: 89219943 in 160156ms cpu (160918ms real) (557080 rewrites/second) result Summary: States>> 18 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(10) . rewrites: 99966324 in 147737ms cpu (148417ms real) (676647 rewrites/second) result Summary: States>> 17 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(11) . rewrites: 105228356 in 128846ms cpu (129224ms real) (816694 rewrites/second) result Summary: States>> 14 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(12) . rewrites: 103958178 in 125689ms cpu (126057ms real) (827106 rewrites/second) result Summary: States>> 14 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(13) . rewrites: 99455182 in 131693ms cpu (132199ms real) (755204 rewrites/second) result Summary: States>> 11 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(14) . rewrites: 81507808 in 106688ms cpu (107118ms real) (763978 rewrites/second) result Summary: States>> 8 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(15) . rewrites: 63645799 in 78561ms cpu (78862ms real) (810136 rewrites/second) result Summary: States>> 7 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(16) . rewrites: 50320583 in 65965ms cpu (66238ms real) (762834 rewrites/second) result Summary: States>> 4 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(17) . rewrites: 35376982 in 37256ms cpu (37349ms real) (949553 rewrites/second) result Summary: States>> 3 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(18) . rewrites: 19442644 in 24877ms cpu (24954ms real) (781540 rewrites/second) result Summary: States>> 1 Solutions>> 1 ========================================== reduce in MAUDE-NPA : run(1) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 1 > ( :: nil :: [ nil | -(#0:Sessionkey), -(n(b, #1:Fresh)), +(e(#0:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#2:Msg ; e(mkey(b, s), a ; b ; #3:Nonce ; #0:Sessionkey)), +(#2:Msg ; e(#0:Sessionkey, #3:Nonce) ; n(b, #1:Fresh)) | -(e(#0:Sessionkey, n(b, #1:Fresh))), nil] ) || e(#0:Sessionkey, n(b, #1:Fresh)) !inI, n(b, #1:Fresh) inI || -(#0:Sessionkey), -(n(b, #1:Fresh)), +(e(#0:Sessionkey, n(b, #1:Fresh))), -(e(#0:Sessionkey, n(b, #1:Fresh))) || ghost( #0:Sessionkey, :: nil :: [ nil | -(#0:Sessionkey), -(n(b, #1:Fresh)), +(e(#0:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#2:Msg ; e(mkey(b, s), a ; b ; #3:Nonce ; #0:Sessionkey)), +(#2:Msg ; e(#0:Sessionkey, #3:Nonce) ; n(b, #1:Fresh)) | -(e(#0:Sessionkey, n(b, #1:Fresh))), nil] , e(#0:Sessionkey, n(b, #1:Fresh)) !inI, n(b, #1:Fresh) inI, -(#0:Sessionkey), -(n(b, #1:Fresh)), +(e(#0:Sessionkey, n(b, #1:Fresh))), -(e(#0:Sessionkey, n(b, #1:Fresh))), nil ) || nil) (< 1 . 5 > ( :: nil :: [ nil | -(e(#0:Sessionkey, n(b, #1:Fresh)) ; #2:Msg), +(e(#0:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #0:Sessionkey)), +(#3:Msg ; e(#0:Sessionkey, #4:Nonce) ; n(b, #1:Fresh)) | -(e(#0:Sessionkey, n(b, #1:Fresh))), nil] ) || e(#0:Sessionkey, n(b, #1:Fresh)) !inI, (e(#0:Sessionkey, n(b, #1:Fresh)) ; #2:Msg) inI || -(e(#0:Sessionkey, n(b, #1:Fresh)) ; #2:Msg), +(e(#0:Sessionkey, n(b, #1:Fresh))), -(e(#0:Sessionkey, n(b, #1:Fresh))) || nil || nil) < 1 . 6 > ( :: #4:Fresh :: [ nil, +(#5:UName ; #6:UName ; n(#5:UName, #4:Fresh)) | -(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(#5:UName, #4:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#5:UName, #4:Fresh)) ; n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] ) || e(#3:Sessionkey, n(b, #0:Fresh)) !inI, (e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(#5:UName, #4:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#5:UName, #4:Fresh)) ; n(b, #0:Fresh)) inI || -(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(#5:UName, #4:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#5:UName, #4:Fresh)) ; n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))) || nil || nil ========================================== reduce in MAUDE-NPA : run(2) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 1 . 2 > ( :: nil :: [ nil | -(#4:Sessionkey), -(n(b, #1:Fresh)), +(e(#4:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, -(#2:Msg ; e(mkey(b, s), a ; b ; #3:Nonce ; #4:Sessionkey)), +(#2:Msg ; e(#4:Sessionkey, #3:Nonce) ; n(b, #1:Fresh)) | -(e(#4:Sessionkey, n(b, #1:Fresh))), nil] ) || n(b, #1:Fresh) !inI, e(#4:Sessionkey, n(b, #1:Fresh)) !inI, e(#0:Key, n(b, #1:Fresh)) inI || -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), -(#4:Sessionkey), -(n(b, #1:Fresh)), +(e(#4:Sessionkey, n(b, #1:Fresh))), -(e(#4:Sessionkey, n(b, #1:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#4:Sessionkey), -(n(b, #1:Fresh)), +(e(#4:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, -(#2:Msg ; e(mkey(b, s), a ; b ; #3:Nonce ; #4:Sessionkey)), +(#2:Msg ; e(#4:Sessionkey, #3:Nonce) ; n(b, #1:Fresh)) | -(e(#4:Sessionkey, n(b, #1:Fresh))), nil] , n(b, #1:Fresh) !inI, e(#4:Sessionkey, n(b, #1:Fresh)) !inI, e(#0:Key, n(b, #1:Fresh)) inI, -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), -(#4:Sessionkey), -(n(b, #1:Fresh)), +(e(#4:Sessionkey, n(b, #1:Fresh))), -(e(#4:Sessionkey, n(b, #1:Fresh))), nil ), ghost( #4:Sessionkey, :: nil :: [ nil | -(#4:Sessionkey), -(n(b, #1:Fresh)), +(e(#4:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#2:Msg ; e(mkey(b, s), a ; b ; #3:Nonce ; #4:Sessionkey)), +(#2:Msg ; e(#4:Sessionkey, #3:Nonce) ; n(b, #1:Fresh)) | -(e(#4:Sessionkey, n(b, #1:Fresh))), nil] , e(#4:Sessionkey, n(b, #1:Fresh)) !inI, n(b, #1:Fresh) inI, -(#4:Sessionkey), -(n(b, #1:Fresh)), +(e(#4:Sessionkey, n(b, #1:Fresh))), -(e(#4:Sessionkey, n(b, #1:Fresh))), nil ) || nil) (< 1 . 1 . 4 > ( :: nil :: [ nil | -(#4:Sessionkey), -(n(b, #1:Fresh)), +(e(#4:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; n(b, #1:Fresh)), +(n(b, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, -(#2:Msg ; e(mkey(b, s), a ; b ; #3:Nonce ; #4:Sessionkey)), +(#2:Msg ; e(#4:Sessionkey, #3:Nonce) ; n(b, #1:Fresh)) | -(e(#4:Sessionkey, n(b, #1:Fresh))), nil] ) || n(b, #1:Fresh) !inI, e(#4:Sessionkey, n(b, #1:Fresh)) !inI, (#0:Msg ; n(b, #1:Fresh)) inI || -(#0:Msg ; n(b, #1:Fresh)), +(n(b, #1:Fresh)), -(#4:Sessionkey), -(n(b, #1:Fresh)), +(e(#4:Sessionkey, n(b, #1:Fresh))), -(e(#4:Sessionkey, n(b, #1:Fresh))) || ghost( #4:Sessionkey, :: nil :: [ nil | -(#4:Sessionkey), -(n(b, #1:Fresh)), +(e(#4:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#2:Msg ; e(mkey(b, s), a ; b ; #3:Nonce ; #4:Sessionkey)), +(#2:Msg ; e(#4:Sessionkey, #3:Nonce) ; n(b, #1:Fresh)) | -(e(#4:Sessionkey, n(b, #1:Fresh))), nil] , e(#4:Sessionkey, n(b, #1:Fresh)) !inI, n(b, #1:Fresh) inI, -(#4:Sessionkey), -(n(b, #1:Fresh)), +(e(#4:Sessionkey, n(b, #1:Fresh))), -(e(#4:Sessionkey, n(b, #1:Fresh))), nil ) || nil) (< 1 . 1 . 5 > ( :: nil :: [ nil | -(#4:Sessionkey), -(n(b, #0:Fresh)), +(e(#4:Sessionkey, n(b, #0:Fresh))), nil] & :: nil :: [ nil | -(n(b, #0:Fresh) ; #1:Msg), +(n(b, #0:Fresh)), nil] & :: #0:Fresh :: [ nil, -(#2:Msg ; e(mkey(b, s), a ; b ; #3:Nonce ; #4:Sessionkey)), +(#2:Msg ; e(#4:Sessionkey, #3:Nonce) ; n(b, #0:Fresh)) | -(e(#4:Sessionkey, n(b, #0:Fresh))), nil] ) || n(b, #0:Fresh) !inI, e(#4:Sessionkey, n(b, #0:Fresh)) !inI, (n(b, #0:Fresh) ; #1:Msg) inI || -(n(b, #0:Fresh) ; #1:Msg), +(n(b, #0:Fresh)), -(#4:Sessionkey), -(n(b, #0:Fresh)), +(e(#4:Sessionkey, n(b, #0:Fresh))), -(e(#4:Sessionkey, n(b, #0:Fresh))) || ghost( #4:Sessionkey, :: nil :: [ nil | -(#4:Sessionkey), -(n(b, #0:Fresh)), +(e(#4:Sessionkey, n(b, #0:Fresh))), nil] & :: #0:Fresh :: [ nil, -(#2:Msg ; e(mkey(b, s), a ; b ; #3:Nonce ; #4:Sessionkey)), +(#2:Msg ; e(#4:Sessionkey, #3:Nonce) ; n(b, #0:Fresh)) | -(e(#4:Sessionkey, n(b, #0:Fresh))), nil] , e(#4:Sessionkey, n(b, #0:Fresh)) !inI, n(b, #0:Fresh) inI, -(#4:Sessionkey), -(n(b, #0:Fresh)), +(e(#4:Sessionkey, n(b, #0:Fresh))), -(e(#4:Sessionkey, n(b, #0:Fresh))), nil ) || nil) (< 1 . 5 . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg)), +(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), nil] & :: nil :: [ nil | -(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #1:Sessionkey)), +(#4:Msg ; e(#1:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#1:Sessionkey, n(b, #2:Fresh))), nil] ) || e(#1:Sessionkey, n(b, #2:Fresh)) !inI, (e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg) !inI, e(#0:Key, e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg) inI || -(#0:Key), -(e(#0:Key, e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg)), +(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), -(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Sessionkey, n(b, #2:Fresh))), -(e(#1:Sessionkey, n(b, #2:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg)), +(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), nil] & :: nil :: [ nil | -(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #1:Sessionkey)), +(#4:Msg ; e(#1:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#1:Sessionkey, n(b, #2:Fresh))), nil] , e(#1:Sessionkey, n(b, #2:Fresh)) !inI, (e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg) !inI, e(#0:Key, e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg) inI, -(#0:Key), -(e(#0:Key, e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg)), +(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), -(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Sessionkey, n(b, #2:Fresh))), -(e(#1:Sessionkey, n(b, #2:Fresh))), nil ) || nil) (< 1 . 5 . 6 > ( :: nil :: [ nil | -(#0:Msg ; e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), nil] & :: nil :: [ nil | -(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #1:Sessionkey)), +(#4:Msg ; e(#1:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#1:Sessionkey, n(b, #2:Fresh))), nil] ) || e(#1:Sessionkey, n(b, #2:Fresh)) !inI, (e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg) !inI, (#0:Msg ; e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg) inI || -(#0:Msg ; e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), -(e(#1:Sessionkey, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Sessionkey, n(b, #2:Fresh))), -(e(#1:Sessionkey, n(b, #2:Fresh))) || nil || nil) (< 1 . 5 . 8 > ( :: nil :: [ nil | -(e(#0:Sessionkey, n(b, #1:Fresh)) ; #2:Msg), +(e(#0:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -((e(#0:Sessionkey, n(b, #1:Fresh)) ; #2:Msg) ; #3:Msg), +(e(#0:Sessionkey, n(b, #1:Fresh)) ; #2:Msg), nil] & :: #1:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #0:Sessionkey)), +(#4:Msg ; e(#0:Sessionkey, #5:Nonce) ; n(b, #1:Fresh)) | -(e(#0:Sessionkey, n(b, #1:Fresh))), nil] ) || e(#0:Sessionkey, n(b, #1:Fresh)) !inI, (e(#0:Sessionkey, n(b, #1:Fresh)) ; #2:Msg) !inI, ((e(#0:Sessionkey, n(b, #1:Fresh)) ; #2:Msg) ; #3:Msg) inI || -((e(#0:Sessionkey, n(b, #1:Fresh)) ; #2:Msg) ; #3:Msg), +(e(#0:Sessionkey, n(b, #1:Fresh)) ; #2:Msg), -(e(#0:Sessionkey, n(b, #1:Fresh)) ; #2:Msg), +(e(#0:Sessionkey, n(b, #1:Fresh))), -(e(#0:Sessionkey, n(b, #1:Fresh))) || nil || nil) < 1 . 6 . 2 > ( :: #4:Fresh :: [ nil | -(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #0:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#1:UName, #0:Fresh) ; #3:Sessionkey)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #0:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#1:UName, #0:Fresh)) ; n(b, #4:Fresh)), -(e(#3:Sessionkey, n(b, #4:Fresh))), nil] & :: #0:Fresh :: [ nil, +(#1:UName ; #2:UName ; n(#1:UName, #0:Fresh)) | -(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #0:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#1:UName, #0:Fresh)) ; n(b, #4:Fresh)), +(e(#3:Sessionkey, n(b, #4:Fresh))), nil] ) || e(#3:Sessionkey, n(b, #4:Fresh)) !inI, (e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #0:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#1:UName, #0:Fresh)) ; n(b, #4:Fresh)) !inI, (e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #0:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#1:UName, #0:Fresh) ; #3:Sessionkey)) inI, inst(#3:Sessionkey) || -(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #0:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#1:UName, #0:Fresh) ; #3:Sessionkey)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #0:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#1:UName, #0:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #0:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#1:UName, #0:Fresh)) ; n(b, #4:Fresh)), +(e(#3:Sessionkey, n(b, #4:Fresh))), -(e(#3:Sessionkey, n(b, #4:Fresh))) || nil || nil ========================================== reduce in MAUDE-NPA : run(3) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 1 . 2 . 4 > ( :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(e(#0:Key, n(b, #1:Fresh)) ; #2:Msg), +(e(#0:Key, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #1:Fresh)) | -(e(#5:Sessionkey, n(b, #1:Fresh))), nil] ) || n(b, #1:Fresh) !inI, e(#5:Sessionkey, n(b, #1:Fresh)) !inI, e(#0:Key, n(b, #1:Fresh)) !inI, (e(#0:Key, n(b, #1:Fresh)) ; #2:Msg) inI || -(e(#0:Key, n(b, #1:Fresh)) ; #2:Msg), +(e(#0:Key, n(b, #1:Fresh))), -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), -(e(#5:Sessionkey, n(b, #1:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #1:Fresh)) | -(e(#5:Sessionkey, n(b, #1:Fresh))), nil] , n(b, #1:Fresh) !inI, e(#5:Sessionkey, n(b, #1:Fresh)) !inI, e(#0:Key, n(b, #1:Fresh)) inI, -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), -(e(#5:Sessionkey, n(b, #1:Fresh))), nil ), ghost( #5:Sessionkey, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #1:Fresh)) | -(e(#5:Sessionkey, n(b, #1:Fresh))), nil] , e(#5:Sessionkey, n(b, #1:Fresh)) !inI, n(b, #1:Fresh) inI, -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), -(e(#5:Sessionkey, n(b, #1:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 3 > ( :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; n(b, #1:Fresh)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -((#0:Msg ; n(b, #1:Fresh)) ; #2:Msg), +(#0:Msg ; n(b, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #1:Fresh)) | -(e(#5:Sessionkey, n(b, #1:Fresh))), nil] ) || n(b, #1:Fresh) !inI, e(#5:Sessionkey, n(b, #1:Fresh)) !inI, (#0:Msg ; n(b, #1:Fresh)) !inI, ((#0:Msg ; n(b, #1:Fresh)) ; #2:Msg) inI || -((#0:Msg ; n(b, #1:Fresh)) ; #2:Msg), +(#0:Msg ; n(b, #1:Fresh)), -(#0:Msg ; n(b, #1:Fresh)), +(n(b, #1:Fresh)), -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), -(e(#5:Sessionkey, n(b, #1:Fresh))) || ghost( #5:Sessionkey, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #1:Fresh)) | -(e(#5:Sessionkey, n(b, #1:Fresh))), nil] , e(#5:Sessionkey, n(b, #1:Fresh)) !inI, n(b, #1:Fresh) inI, -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), -(e(#5:Sessionkey, n(b, #1:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 4 > ( :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; n(b, #2:Fresh))), +(#1:Msg ; n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #2:Fresh)) | -(e(#5:Sessionkey, n(b, #2:Fresh))), nil] ) || n(b, #2:Fresh) !inI, e(#5:Sessionkey, n(b, #2:Fresh)) !inI, (#1:Msg ; n(b, #2:Fresh)) !inI, e(#0:Key, #1:Msg ; n(b, #2:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; n(b, #2:Fresh))), +(#1:Msg ; n(b, #2:Fresh)), -(#1:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), -(e(#5:Sessionkey, n(b, #2:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; n(b, #2:Fresh))), +(#1:Msg ; n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #2:Fresh)) | -(e(#5:Sessionkey, n(b, #2:Fresh))), nil] , n(b, #2:Fresh) !inI, e(#5:Sessionkey, n(b, #2:Fresh)) !inI, (#1:Msg ; n(b, #2:Fresh)) !inI, e(#0:Key, #1:Msg ; n(b, #2:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; n(b, #2:Fresh))), +(#1:Msg ; n(b, #2:Fresh)), -(#1:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), -(e(#5:Sessionkey, n(b, #2:Fresh))), nil ), ghost( #5:Sessionkey, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #2:Fresh)) | -(e(#5:Sessionkey, n(b, #2:Fresh))), nil] , e(#5:Sessionkey, n(b, #2:Fresh)) !inI, n(b, #2:Fresh) inI, -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), -(e(#5:Sessionkey, n(b, #2:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 > ( :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; n(b, #2:Fresh)), +(#1:Msg ; n(b, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #2:Fresh)) | -(e(#5:Sessionkey, n(b, #2:Fresh))), nil] ) || n(b, #2:Fresh) !inI, e(#5:Sessionkey, n(b, #2:Fresh)) !inI, (#1:Msg ; n(b, #2:Fresh)) !inI, (#0:Msg ; #1:Msg ; n(b, #2:Fresh)) inI || -(#0:Msg ; #1:Msg ; n(b, #2:Fresh)), +(#1:Msg ; n(b, #2:Fresh)), -(#1:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), -(e(#5:Sessionkey, n(b, #2:Fresh))) || ghost( #5:Sessionkey, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #2:Fresh)) | -(e(#5:Sessionkey, n(b, #2:Fresh))), nil] , e(#5:Sessionkey, n(b, #2:Fresh)) !inI, n(b, #2:Fresh) inI, -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), -(e(#5:Sessionkey, n(b, #2:Fresh))), nil ) || nil) (< 1 . 1 . 5 . 5 > ( :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(b, #1:Fresh) ; #2:Msg)), +(n(b, #1:Fresh) ; #2:Msg), nil] & :: nil :: [ nil | -(n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #1:Fresh)) | -(e(#5:Sessionkey, n(b, #1:Fresh))), nil] ) || n(b, #1:Fresh) !inI, e(#5:Sessionkey, n(b, #1:Fresh)) !inI, (n(b, #1:Fresh) ; #2:Msg) !inI, e(#0:Key, n(b, #1:Fresh) ; #2:Msg) inI || -(#0:Key), -(e(#0:Key, n(b, #1:Fresh) ; #2:Msg)), +(n(b, #1:Fresh) ; #2:Msg), -(n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh)), -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), -(e(#5:Sessionkey, n(b, #1:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(b, #1:Fresh) ; #2:Msg)), +(n(b, #1:Fresh) ; #2:Msg), nil] & :: nil :: [ nil | -(n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #1:Fresh)) | -(e(#5:Sessionkey, n(b, #1:Fresh))), nil] , n(b, #1:Fresh) !inI, e(#5:Sessionkey, n(b, #1:Fresh)) !inI, (n(b, #1:Fresh) ; #2:Msg) !inI, e(#0:Key, n(b, #1:Fresh) ; #2:Msg) inI, -(#0:Key), -(e(#0:Key, n(b, #1:Fresh) ; #2:Msg)), +(n(b, #1:Fresh) ; #2:Msg), -(n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh)), -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), -(e(#5:Sessionkey, n(b, #1:Fresh))), nil ), ghost( #5:Sessionkey, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #1:Fresh)) | -(e(#5:Sessionkey, n(b, #1:Fresh))), nil] , e(#5:Sessionkey, n(b, #1:Fresh)) !inI, n(b, #1:Fresh) inI, -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), -(e(#5:Sessionkey, n(b, #1:Fresh))), nil ) || nil) (< 1 . 1 . 5 . 7 > ( :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh) ; #2:Msg), nil] & :: nil :: [ nil | -(n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #1:Fresh)) | -(e(#5:Sessionkey, n(b, #1:Fresh))), nil] ) || n(b, #1:Fresh) !inI, e(#5:Sessionkey, n(b, #1:Fresh)) !inI, (n(b, #1:Fresh) ; #2:Msg) !inI, (#0:Msg ; n(b, #1:Fresh) ; #2:Msg) inI || -(#0:Msg ; n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh) ; #2:Msg), -(n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh)), -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), -(e(#5:Sessionkey, n(b, #1:Fresh))) || ghost( #5:Sessionkey, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #1:Fresh)) | -(e(#5:Sessionkey, n(b, #1:Fresh))), nil] , e(#5:Sessionkey, n(b, #1:Fresh)) !inI, n(b, #1:Fresh) inI, -(#5:Sessionkey), -(n(b, #1:Fresh)), +(e(#5:Sessionkey, n(b, #1:Fresh))), -(e(#5:Sessionkey, n(b, #1:Fresh))), nil ) || nil) (< 1 . 1 . 5 . 8 > ( :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #0:Fresh)), +(e(#5:Sessionkey, n(b, #0:Fresh))), nil] & :: nil :: [ nil | -(n(b, #0:Fresh) ; #1:Msg), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -((n(b, #0:Fresh) ; #1:Msg) ; #2:Msg), +(n(b, #0:Fresh) ; #1:Msg), nil] & :: #0:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #0:Fresh)) | -(e(#5:Sessionkey, n(b, #0:Fresh))), nil] ) || n(b, #0:Fresh) !inI, e(#5:Sessionkey, n(b, #0:Fresh)) !inI, (n(b, #0:Fresh) ; #1:Msg) !inI, ((n(b, #0:Fresh) ; #1:Msg) ; #2:Msg) inI || -((n(b, #0:Fresh) ; #1:Msg) ; #2:Msg), +(n(b, #0:Fresh) ; #1:Msg), -(n(b, #0:Fresh) ; #1:Msg), +(n(b, #0:Fresh)), -(#5:Sessionkey), -(n(b, #0:Fresh)), +(e(#5:Sessionkey, n(b, #0:Fresh))), -(e(#5:Sessionkey, n(b, #0:Fresh))) || ghost( #5:Sessionkey, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #0:Fresh)), +(e(#5:Sessionkey, n(b, #0:Fresh))), nil] & :: #0:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #0:Fresh)) | -(e(#5:Sessionkey, n(b, #0:Fresh))), nil] , e(#5:Sessionkey, n(b, #0:Fresh)) !inI, n(b, #0:Fresh) inI, -(#5:Sessionkey), -(n(b, #0:Fresh)), +(e(#5:Sessionkey, n(b, #0:Fresh))), -(e(#5:Sessionkey, n(b, #0:Fresh))), nil ) || nil) (< 1 . 5 . 6 . 7 > ( :: nil :: [ nil | -(#5:Msg ; e(#3:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), nil] & :: nil :: [ nil | -(e(#3:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: #4:Fresh :: [ nil | -(#5:Msg ; e(mkey(#6:UName, s), #7:UName ; #6:UName ; n(b, #0:Fresh) ; #3:Sessionkey)), +(#5:Msg ; e(#3:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] ) || e(#3:Sessionkey, n(b, #0:Fresh)) !inI, (#5:Msg ; e(#3:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)) !inI, (e(#3:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)) !inI, (#5:Msg ; e(mkey(#6:UName, s), #7:UName ; #6:UName ; n(b, #0:Fresh) ; #3:Sessionkey)) inI || -(#5:Msg ; e(mkey(#6:UName, s), #7:UName ; #6:UName ; n(b, #0:Fresh) ; #3:Sessionkey)), +(#5:Msg ; e(#3:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), -(#5:Msg ; e(#3:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), -(e(#3:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))) || nil || nil) (< 1 . 6 . 2 . 4 > ( :: nil :: [ nil | -(e(mkey(b, s), a ; b ; n(#0:UName, #1:Fresh) ; #2:Sessionkey)), -(e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #1:Fresh) ; #2:Sessionkey)), nil] & :: #1:Fresh :: [ nil, +(#0:UName ; #3:UName ; n(#0:UName, #1:Fresh)) | -(e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) ; e(#2:Sessionkey, n(#0:UName, #1:Fresh)) ; n(b, #4:Fresh)), +(e(#2:Sessionkey, n(b, #4:Fresh))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #1:Fresh) ; #2:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) ; e(#2:Sessionkey, n(#0:UName, #1:Fresh)) ; n(b, #4:Fresh)), -(e(#2:Sessionkey, n(b, #4:Fresh))), nil] ) || e(#2:Sessionkey, n(b, #4:Fresh)) !inI, (e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #1:Fresh) ; #2:Sessionkey)) !inI, (e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) ; e(#2:Sessionkey, n(#0:UName, #1:Fresh)) ; n(b, #4:Fresh)) !inI, e(mkey(b, s), a ; b ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) inI, e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) inI, inst(#2:Sessionkey) || -(e(mkey(b, s), a ; b ; n(#0:UName, #1:Fresh) ; #2:Sessionkey)), -(e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #1:Fresh) ; #2:Sessionkey)), -(e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #1:Fresh) ; #2:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) ; e(#2:Sessionkey, n(#0:UName, #1:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(#0:UName, s), #0:UName ; #3:UName ; n(#0:UName, #1:Fresh) ; #2:Sessionkey) ; e(#2:Sessionkey, n(#0:UName, #1:Fresh)) ; n(b, #4:Fresh)), +(e(#2:Sessionkey, n(b, #4:Fresh))), -(e(#2:Sessionkey, n(b, #4:Fresh))) || nil || nil) < 1 . 6 . 2 . 7 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil, +(a ; b ; n(a, #0:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) inI || -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil ========================================== reduce in MAUDE-NPA : run(4) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 1 . 2 . 4 . 5 > ( :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(e(#0:Key, n(b, #1:Fresh)) ; #2:Msg), +(e(#0:Key, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -((e(#0:Key, n(b, #1:Fresh)) ; #2:Msg) ; #3:Msg), +(e(#0:Key, n(b, #1:Fresh)) ; #2:Msg), nil] & :: #1:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #1:Fresh)) | -(e(#6:Sessionkey, n(b, #1:Fresh))), nil] ) || n(b, #1:Fresh) !inI, e(#6:Sessionkey, n(b, #1:Fresh)) !inI, e(#0:Key, n(b, #1:Fresh)) !inI, (e(#0:Key, n(b, #1:Fresh)) ; #2:Msg) !inI, ((e(#0:Key, n(b, #1:Fresh)) ; #2:Msg) ; #3:Msg) inI || -((e(#0:Key, n(b, #1:Fresh)) ; #2:Msg) ; #3:Msg), +(e(#0:Key, n(b, #1:Fresh)) ; #2:Msg), -(e(#0:Key, n(b, #1:Fresh)) ; #2:Msg), +(e(#0:Key, n(b, #1:Fresh))), -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), -(e(#6:Sessionkey, n(b, #1:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #1:Fresh)) | -(e(#6:Sessionkey, n(b, #1:Fresh))), nil] , n(b, #1:Fresh) !inI, e(#6:Sessionkey, n(b, #1:Fresh)) !inI, e(#0:Key, n(b, #1:Fresh)) inI, -(#0:Key), -(e(#0:Key, n(b, #1:Fresh))), +(n(b, #1:Fresh)), -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), -(e(#6:Sessionkey, n(b, #1:Fresh))), nil ), ghost( #6:Sessionkey, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #1:Fresh)) | -(e(#6:Sessionkey, n(b, #1:Fresh))), nil] , e(#6:Sessionkey, n(b, #1:Fresh)) !inI, n(b, #1:Fresh) inI, -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), -(e(#6:Sessionkey, n(b, #1:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 6 > ( :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, n(b, #2:Fresh))), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, e(#1:Key, n(b, #2:Fresh)) ; #3:Msg)), +(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), nil] & :: nil :: [ nil | -(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] ) || n(b, #2:Fresh) !inI, e(#6:Sessionkey, n(b, #2:Fresh)) !inI, e(#1:Key, n(b, #2:Fresh)) !inI, (e(#1:Key, n(b, #2:Fresh)) ; #3:Msg) !inI, e(#0:Key, e(#1:Key, n(b, #2:Fresh)) ; #3:Msg) inI || -(#0:Key), -(e(#0:Key, e(#1:Key, n(b, #2:Fresh)) ; #3:Msg)), +(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), -(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(b, #2:Fresh))), -(#1:Key), -(e(#1:Key, n(b, #2:Fresh))), +(n(b, #2:Fresh)), -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, n(b, #2:Fresh))), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, e(#1:Key, n(b, #2:Fresh)) ; #3:Msg)), +(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), nil] & :: nil :: [ nil | -(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] , n(b, #2:Fresh) !inI, e(#6:Sessionkey, n(b, #2:Fresh)) !inI, e(#1:Key, n(b, #2:Fresh)) !inI, (e(#1:Key, n(b, #2:Fresh)) ; #3:Msg) !inI, e(#0:Key, e(#1:Key, n(b, #2:Fresh)) ; #3:Msg) inI, -(#0:Key), -(e(#0:Key, e(#1:Key, n(b, #2:Fresh)) ; #3:Msg)), +(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), -(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(b, #2:Fresh))), -(#1:Key), -(e(#1:Key, n(b, #2:Fresh))), +(n(b, #2:Fresh)), -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))), nil ), ghost( #1:Key, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, n(b, #2:Fresh))), +(n(b, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] , n(b, #2:Fresh) !inI, e(#6:Sessionkey, n(b, #2:Fresh)) !inI, e(#1:Key, n(b, #2:Fresh)) inI, -(#1:Key), -(e(#1:Key, n(b, #2:Fresh))), +(n(b, #2:Fresh)), -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))), nil ), ghost( #6:Sessionkey, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] , e(#6:Sessionkey, n(b, #2:Fresh)) !inI, n(b, #2:Fresh) inI, -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 > ( :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, n(b, #2:Fresh))), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), nil] & :: nil :: [ nil | -(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] ) || n(b, #2:Fresh) !inI, e(#6:Sessionkey, n(b, #2:Fresh)) !inI, e(#1:Key, n(b, #2:Fresh)) !inI, (e(#1:Key, n(b, #2:Fresh)) ; #3:Msg) !inI, (#0:Msg ; e(#1:Key, n(b, #2:Fresh)) ; #3:Msg) inI || -(#0:Msg ; e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), -(e(#1:Key, n(b, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(b, #2:Fresh))), -(#1:Key), -(e(#1:Key, n(b, #2:Fresh))), +(n(b, #2:Fresh)), -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, n(b, #2:Fresh))), +(n(b, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] , n(b, #2:Fresh) !inI, e(#6:Sessionkey, n(b, #2:Fresh)) !inI, e(#1:Key, n(b, #2:Fresh)) inI, -(#1:Key), -(e(#1:Key, n(b, #2:Fresh))), +(n(b, #2:Fresh)), -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))), nil ), ghost( #6:Sessionkey, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] , e(#6:Sessionkey, n(b, #2:Fresh)) !inI, n(b, #2:Fresh) inI, -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 > ( :: nil :: [ nil | -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)), +(e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)), +(n(b, #0:Fresh)), nil] & :: #0:Fresh :: [ nil | -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)), -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] ) || n(b, #0:Fresh) !inI, e(#3:Sessionkey, n(b, #0:Fresh)) !inI, (#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) !inI, (e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) !inI, (#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)) inI || -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)), -(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)), +(e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)), -(e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)), +(n(b, #0:Fresh)), -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))) || ghost( #3:Sessionkey, :: nil :: [ nil | -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] , e(#3:Sessionkey, n(b, #0:Fresh)) !inI, n(b, #0:Fresh) inI, -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))), nil ) || nil) (< 1 . 1 . 5 . 7 . 3 > ( :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh) ; #2:Msg), nil] & :: nil :: [ nil | -(n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -((#0:Msg ; n(b, #1:Fresh) ; #2:Msg) ; #3:Msg), +(#0:Msg ; n(b, #1:Fresh) ; #2:Msg), nil] & :: #1:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #1:Fresh)) | -(e(#6:Sessionkey, n(b, #1:Fresh))), nil] ) || n(b, #1:Fresh) !inI, e(#6:Sessionkey, n(b, #1:Fresh)) !inI, (#0:Msg ; n(b, #1:Fresh) ; #2:Msg) !inI, (n(b, #1:Fresh) ; #2:Msg) !inI, ((#0:Msg ; n(b, #1:Fresh) ; #2:Msg) ; #3:Msg) inI || -((#0:Msg ; n(b, #1:Fresh) ; #2:Msg) ; #3:Msg), +(#0:Msg ; n(b, #1:Fresh) ; #2:Msg), -(#0:Msg ; n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh) ; #2:Msg), -(n(b, #1:Fresh) ; #2:Msg), +(n(b, #1:Fresh)), -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), -(e(#6:Sessionkey, n(b, #1:Fresh))) || ghost( #6:Sessionkey, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #1:Fresh)) | -(e(#6:Sessionkey, n(b, #1:Fresh))), nil] , e(#6:Sessionkey, n(b, #1:Fresh)) !inI, n(b, #1:Fresh) inI, -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), -(e(#6:Sessionkey, n(b, #1:Fresh))), nil ) || nil) (< 1 . 1 . 5 . 7 . 4 > ( :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; n(b, #2:Fresh) ; #3:Msg)), +(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] ) || n(b, #2:Fresh) !inI, e(#6:Sessionkey, n(b, #2:Fresh)) !inI, (#1:Msg ; n(b, #2:Fresh) ; #3:Msg) !inI, (n(b, #2:Fresh) ; #3:Msg) !inI, e(#0:Key, #1:Msg ; n(b, #2:Fresh) ; #3:Msg) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; n(b, #2:Fresh) ; #3:Msg)), +(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), -(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh) ; #3:Msg), -(n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh)), -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; n(b, #2:Fresh) ; #3:Msg)), +(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] , n(b, #2:Fresh) !inI, e(#6:Sessionkey, n(b, #2:Fresh)) !inI, (#1:Msg ; n(b, #2:Fresh) ; #3:Msg) !inI, (n(b, #2:Fresh) ; #3:Msg) !inI, e(#0:Key, #1:Msg ; n(b, #2:Fresh) ; #3:Msg) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; n(b, #2:Fresh) ; #3:Msg)), +(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), -(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh) ; #3:Msg), -(n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh)), -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))), nil ), ghost( #6:Sessionkey, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] , e(#6:Sessionkey, n(b, #2:Fresh)) !inI, n(b, #2:Fresh) inI, -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))), nil ) || nil) (< 1 . 1 . 5 . 7 . 6 > ( :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; n(b, #2:Fresh) ; #3:Msg), +(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] ) || n(b, #2:Fresh) !inI, e(#6:Sessionkey, n(b, #2:Fresh)) !inI, (#1:Msg ; n(b, #2:Fresh) ; #3:Msg) !inI, (n(b, #2:Fresh) ; #3:Msg) !inI, (#0:Msg ; #1:Msg ; n(b, #2:Fresh) ; #3:Msg) inI || -(#0:Msg ; #1:Msg ; n(b, #2:Fresh) ; #3:Msg), +(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), -(#1:Msg ; n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh) ; #3:Msg), -(n(b, #2:Fresh) ; #3:Msg), +(n(b, #2:Fresh)), -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))) || ghost( #6:Sessionkey, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #2:Fresh)) | -(e(#6:Sessionkey, n(b, #2:Fresh))), nil] , e(#6:Sessionkey, n(b, #2:Fresh)) !inI, n(b, #2:Fresh) inI, -(#6:Sessionkey), -(n(b, #2:Fresh)), +(e(#6:Sessionkey, n(b, #2:Fresh))), -(e(#6:Sessionkey, n(b, #2:Fresh))), nil ) || nil) (< 1 . 5 . 6 . 7 . 4 > ( :: nil :: [ nil | -(e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), -(#4:Msg), +(#4:Msg ; e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), nil] & :: nil :: [ nil | -(#4:Msg ; e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #7:Fresh)), +(e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #7:Fresh)), nil] & :: nil :: [ nil | -(e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #7:Fresh)), +(e(#3:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #3:Sessionkey)), +(#5:Msg ; e(#3:Sessionkey, #6:Nonce) ; n(b, #2:Fresh)) | -(e(#3:Sessionkey, n(b, #2:Fresh))), nil] & :: #7:Fresh :: [ nil | -(#4:Msg ; e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), +(#4:Msg ; e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #7:Fresh)), nil] ) || #4:Msg !inI, e(#3:Sessionkey, n(b, #2:Fresh)) !inI, (#4:Msg ; e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)) !inI, (#4:Msg ; e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #7:Fresh)) !inI, (e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #7:Fresh)) !inI, e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey) inI || generatedByIntruder(#4:Msg), -(e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), -(#4:Msg), +(#4:Msg ; e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), -(#4:Msg ; e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), +(#4:Msg ; e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #7:Fresh)), -(#4:Msg ; e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #7:Fresh)), +(e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #7:Fresh)), -(e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #7:Fresh)), +(e(#3:Sessionkey, n(b, #2:Fresh))), -(e(#3:Sessionkey, n(b, #2:Fresh))) || nil || nil) (< 1 . 6 . 2 . 4 . 7 > ( :: nil :: [ nil | -(mkey(#0:UName, s)), -(#0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), nil] & :: nil :: [ nil | -(e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), nil] & :: #2:Fresh :: [ nil, +(#0:UName ; #1:UName ; n(#0:UName, #2:Fresh)) | -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#0:UName, #2:Fresh)) ; n(b, #4:Fresh)), +(e(#3:Sessionkey, n(b, #4:Fresh))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#0:UName, #2:Fresh)) ; n(b, #4:Fresh)), -(e(#3:Sessionkey, n(b, #4:Fresh))), nil] ) || e(#3:Sessionkey, n(b, #4:Fresh)) !inI, e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) !inI, (e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)) !inI, (e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#0:UName, #2:Fresh)) ; n(b, #4:Fresh)) !inI, mkey(#0:UName, s) inI, e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) inI, (#0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) inI, inst(#3:Sessionkey) || -(mkey(#0:UName, s)), -(#0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), -(e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#0:UName, #2:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#0:UName, #2:Fresh)) ; n(b, #4:Fresh)), +(e(#3:Sessionkey, n(b, #4:Fresh))), -(e(#3:Sessionkey, n(b, #4:Fresh))) || nil || nil) (< 1 . 6 . 2 . 4 . 9 > ( :: nil :: [ nil | -(e(mkey(b, s), a ; b ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), -(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) ; e(mkey(b, s), a ; b ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), nil] & :: nil :: [ nil | -(#0:Msg ; e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), nil] & :: #3:Fresh :: [ nil, +(#1:UName ; #2:UName ; n(#1:UName, #3:Fresh)) | -(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) ; e(#4:Sessionkey, n(#1:UName, #3:Fresh)) ; n(b, #5:Fresh)), +(e(#4:Sessionkey, n(b, #5:Fresh))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) ; e(mkey(b, s), a ; b ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) ; e(#4:Sessionkey, n(#1:UName, #3:Fresh)) ; n(b, #5:Fresh)), -(e(#4:Sessionkey, n(b, #5:Fresh))), nil] ) || e(#4:Sessionkey, n(b, #5:Fresh)) !inI, e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) !inI, (e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) ; e(mkey(b, s), a ; b ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)) !inI, (e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) ; e(#4:Sessionkey, n(#1:UName, #3:Fresh)) ; n(b, #5:Fresh)) !inI, e(mkey(b, s), a ; b ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) inI, (#0:Msg ; e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)) inI, inst(#4:Sessionkey) || -(#0:Msg ; e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), -(e(mkey(b, s), a ; b ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), -(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) ; e(mkey(b, s), a ; b ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), -(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) ; e(mkey(b, s), a ; b ; n(#1:UName, #3:Fresh) ; #4:Sessionkey)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) ; e(#4:Sessionkey, n(#1:UName, #3:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(#1:UName, #3:Fresh) ; #4:Sessionkey) ; e(#4:Sessionkey, n(#1:UName, #3:Fresh)) ; n(b, #5:Fresh)), +(e(#4:Sessionkey, n(b, #5:Fresh))), -(e(#4:Sessionkey, n(b, #5:Fresh))) || nil || nil) (< 1 . 6 . 2 . 4 . 11 > ( :: nil :: [ nil | -(e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), nil] & :: nil :: [ nil | -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; #4:Msg), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), nil] & :: #2:Fresh :: [ nil, +(#0:UName ; #1:UName ; n(#0:UName, #2:Fresh)) | -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#0:UName, #2:Fresh)) ; n(b, #5:Fresh)), +(e(#3:Sessionkey, n(b, #5:Fresh))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#0:UName, #2:Fresh)) ; n(b, #5:Fresh)), -(e(#3:Sessionkey, n(b, #5:Fresh))), nil] ) || e(#3:Sessionkey, n(b, #5:Fresh)) !inI, e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) !inI, (e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)) !inI, (e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#0:UName, #2:Fresh)) ; n(b, #5:Fresh)) !inI, e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) inI, (e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; #4:Msg) inI, inst(#3:Sessionkey) || -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; #4:Msg), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), -(e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(mkey(b, s), a ; b ; n(#0:UName, #2:Fresh) ; #3:Sessionkey)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#0:UName, #2:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(#0:UName, #2:Fresh) ; #3:Sessionkey) ; e(#3:Sessionkey, n(#0:UName, #2:Fresh)) ; n(b, #5:Fresh)), +(e(#3:Sessionkey, n(b, #5:Fresh))), -(e(#3:Sessionkey, n(b, #5:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) < 1 . 6 . 2 . 7 . 5 > ( :: nil :: [ nil | -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), nil] & :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil, +(a ; b ; n(a, #0:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI, (b ; n(a, #0:Fresh)) inI || -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil ========================================== reduce in MAUDE-NPA : run(5) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 1 . 2 . 4 . 8 . 3 > ( :: nil :: [ nil | -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: nil :: [ nil | -(#8:Sessionkey), -(e(#8:Sessionkey, n(b, #0:Fresh))), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(#5:Msg ; e(#8:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), +(e(#8:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), nil] & :: nil :: [ nil | -(e(#8:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), +(e(#8:Sessionkey, n(b, #0:Fresh))), nil] & :: #4:Fresh :: [ nil | -(#5:Msg ; e(mkey(#6:UName, s), #7:UName ; #6:UName ; n(b, #0:Fresh) ; #8:Sessionkey)), +(#5:Msg ; e(#8:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] ) || n(b, #0:Fresh) !inI, e(#3:Sessionkey, n(b, #0:Fresh)) !inI, e(#8:Sessionkey, n(b, #0:Fresh)) !inI, (#5:Msg ; e(#8:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)) !inI, (e(#8:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)) !inI, (#5:Msg ; e(mkey(#6:UName, s), #7:UName ; #6:UName ; n(b, #0:Fresh) ; #8:Sessionkey)) inI, inst(#8:Sessionkey) || -(#5:Msg ; e(mkey(#6:UName, s), #7:UName ; #6:UName ; n(b, #0:Fresh) ; #8:Sessionkey)), +(#5:Msg ; e(#8:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), -(#5:Msg ; e(#8:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), +(e(#8:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), -(e(#8:Sessionkey, n(b, #0:Fresh)) ; n(#6:UName, #4:Fresh)), +(e(#8:Sessionkey, n(b, #0:Fresh))), -(#8:Sessionkey), -(e(#8:Sessionkey, n(b, #0:Fresh))), +(n(b, #0:Fresh)), -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))) || ghost( #8:Sessionkey, :: nil :: [ nil | -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: nil :: [ nil | -(#8:Sessionkey), -(e(#8:Sessionkey, n(b, #0:Fresh))), +(n(b, #0:Fresh)), nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] , n(b, #0:Fresh) !inI, e(#3:Sessionkey, n(b, #0:Fresh)) !inI, e(#8:Sessionkey, n(b, #0:Fresh)) inI, -(#8:Sessionkey), -(e(#8:Sessionkey, n(b, #0:Fresh))), +(n(b, #0:Fresh)), -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))), nil ), ghost( #3:Sessionkey, :: nil :: [ nil | -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] , e(#3:Sessionkey, n(b, #0:Fresh)) !inI, n(b, #0:Fresh) inI, -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 1 > ( :: nil :: [ nil | -(#1:Sessionkey), -(n(b, #3:Fresh)), +(e(#1:Sessionkey, n(b, #3:Fresh))), nil] & :: nil :: [ nil | -(e(mkey(b, s), a ; b ; #0:Nonce ; #1:Sessionkey)), -(#2:Msg), +(#2:Msg ; e(mkey(b, s), a ; b ; #0:Nonce ; #1:Sessionkey)), nil] & :: nil :: [ nil | -(#2:Msg ; e(#1:Sessionkey, #0:Nonce) ; n(b, #3:Fresh)), +(e(#1:Sessionkey, #0:Nonce) ; n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(e(#1:Sessionkey, #0:Nonce) ; n(b, #3:Fresh)), +(n(b, #3:Fresh)), nil] & :: #3:Fresh :: [ nil | -(#2:Msg ; e(mkey(b, s), a ; b ; #0:Nonce ; #1:Sessionkey)), +(#2:Msg ; e(#1:Sessionkey, #0:Nonce) ; n(b, #3:Fresh)), -(e(#1:Sessionkey, n(b, #3:Fresh))), nil] ) || #2:Msg !inI, n(b, #3:Fresh) !inI, e(#1:Sessionkey, n(b, #3:Fresh)) !inI, (#2:Msg ; e(mkey(b, s), a ; b ; #0:Nonce ; #1:Sessionkey)) !inI, (#2:Msg ; e(#1:Sessionkey, #0:Nonce) ; n(b, #3:Fresh)) !inI, (e(#1:Sessionkey, #0:Nonce) ; n(b, #3:Fresh)) !inI, e(mkey(b, s), a ; b ; #0:Nonce ; #1:Sessionkey) inI || generatedByIntruder(#2:Msg), -(e(mkey(b, s), a ; b ; #0:Nonce ; #1:Sessionkey)), -(#2:Msg), +(#2:Msg ; e(mkey(b, s), a ; b ; #0:Nonce ; #1:Sessionkey)), -(#2:Msg ; e(mkey(b, s), a ; b ; #0:Nonce ; #1:Sessionkey)), +(#2:Msg ; e(#1:Sessionkey, #0:Nonce) ; n(b, #3:Fresh)), -(#2:Msg ; e(#1:Sessionkey, #0:Nonce) ; n(b, #3:Fresh)), +(e(#1:Sessionkey, #0:Nonce) ; n(b, #3:Fresh)), -(e(#1:Sessionkey, #0:Nonce) ; n(b, #3:Fresh)), +(n(b, #3:Fresh)), -(#1:Sessionkey), -(n(b, #3:Fresh)), +(e(#1:Sessionkey, n(b, #3:Fresh))), -(e(#1:Sessionkey, n(b, #3:Fresh))) || ghost( #1:Sessionkey, :: nil :: [ nil | -(#1:Sessionkey), -(n(b, #3:Fresh)), +(e(#1:Sessionkey, n(b, #3:Fresh))), nil] & :: #3:Fresh :: [ nil, -(#2:Msg ; e(mkey(b, s), a ; b ; #0:Nonce ; #1:Sessionkey)), +(#2:Msg ; e(#1:Sessionkey, #0:Nonce) ; n(b, #3:Fresh)) | -(e(#1:Sessionkey, n(b, #3:Fresh))), nil] , e(#1:Sessionkey, n(b, #3:Fresh)) !inI, n(b, #3:Fresh) inI, -(#1:Sessionkey), -(n(b, #3:Fresh)), +(e(#1:Sessionkey, n(b, #3:Fresh))), -(e(#1:Sessionkey, n(b, #3:Fresh))), nil ) || nil) (< 1 . 1 . 5 . 7 . 6 . 4 > ( :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #3:Fresh)), +(e(#7:Sessionkey, n(b, #3:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #3:Fresh)) | -(e(#7:Sessionkey, n(b, #3:Fresh))), nil] ) || n(b, #3:Fresh) !inI, e(#7:Sessionkey, n(b, #3:Fresh)) !inI, (#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg) !inI, (#2:Msg ; n(b, #3:Fresh) ; #4:Msg) !inI, (n(b, #3:Fresh) ; #4:Msg) !inI, e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), -(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), -(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh) ; #4:Msg), -(n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh)), -(#7:Sessionkey), -(n(b, #3:Fresh)), +(e(#7:Sessionkey, n(b, #3:Fresh))), -(e(#7:Sessionkey, n(b, #3:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #3:Fresh)), +(e(#7:Sessionkey, n(b, #3:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #3:Fresh)) | -(e(#7:Sessionkey, n(b, #3:Fresh))), nil] , n(b, #3:Fresh) !inI, e(#7:Sessionkey, n(b, #3:Fresh)) !inI, (#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg) !inI, (#2:Msg ; n(b, #3:Fresh) ; #4:Msg) !inI, (n(b, #3:Fresh) ; #4:Msg) !inI, e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), -(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), -(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh) ; #4:Msg), -(n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh)), -(#7:Sessionkey), -(n(b, #3:Fresh)), +(e(#7:Sessionkey, n(b, #3:Fresh))), -(e(#7:Sessionkey, n(b, #3:Fresh))), nil ), ghost( #7:Sessionkey, :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #3:Fresh)), +(e(#7:Sessionkey, n(b, #3:Fresh))), nil] & :: #3:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #3:Fresh)) | -(e(#7:Sessionkey, n(b, #3:Fresh))), nil] , e(#7:Sessionkey, n(b, #3:Fresh)) !inI, n(b, #3:Fresh) inI, -(#7:Sessionkey), -(n(b, #3:Fresh)), +(e(#7:Sessionkey, n(b, #3:Fresh))), -(e(#7:Sessionkey, n(b, #3:Fresh))), nil ) || nil) (< 1 . 5 . 6 . 7 . 4 . 6 > ( :: nil :: [ nil | -(e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), -(#7:Msg), +(#7:Msg ; e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), nil] & :: nil :: [ nil | -(#7:Msg ; e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #8:Fresh)), +(e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #8:Fresh)), nil] & :: nil :: [ nil | -(e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #8:Fresh)), +(e(#3:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey) ; #4:Msg), +(e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), nil] & :: #2:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #3:Sessionkey)), +(#5:Msg ; e(#3:Sessionkey, #6:Nonce) ; n(b, #2:Fresh)) | -(e(#3:Sessionkey, n(b, #2:Fresh))), nil] & :: #8:Fresh :: [ nil | -(#7:Msg ; e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), +(#7:Msg ; e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #8:Fresh)), nil] ) || #7:Msg !inI, e(#3:Sessionkey, n(b, #2:Fresh)) !inI, e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey) !inI, (#7:Msg ; e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)) !inI, (#7:Msg ; e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #8:Fresh)) !inI, (e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #8:Fresh)) !inI, (e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey) ; #4:Msg) inI || -(e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey) ; #4:Msg), +(e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), generatedByIntruder(#7:Msg), -(e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), -(#7:Msg), +(#7:Msg ; e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), -(#7:Msg ; e(mkey(#0:UName, s), #1:UName ; #0:UName ; n(b, #2:Fresh) ; #3:Sessionkey)), +(#7:Msg ; e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #8:Fresh)), -(#7:Msg ; e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #8:Fresh)), +(e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #8:Fresh)), -(e(#3:Sessionkey, n(b, #2:Fresh)) ; n(#0:UName, #8:Fresh)), +(e(#3:Sessionkey, n(b, #2:Fresh))), -(e(#3:Sessionkey, n(b, #2:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 2 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, b ; n(a, #1:Fresh))), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] & :: #2:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), nil] & :: #3:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] ) || e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)) !inI, e(#0:Key, b ; n(a, #1:Fresh)) inI || -(#0:Key), -(e(#0:Key, b ; n(a, #1:Fresh))), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, b ; n(a, #1:Fresh))), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] & :: #2:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), nil] & :: #3:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] , e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)) !inI, e(#0:Key, b ; n(a, #1:Fresh)) inI, -(#0:Key), -(e(#0:Key, b ; n(a, #1:Fresh))), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 > ( :: nil :: [ nil | -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), nil] & :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil, +(a ; b ; n(a, #0:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI, n(a, #0:Fresh) inI || -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 5 > ( :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; b ; n(a, #1:Fresh)), +(b ; n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] & :: #2:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), nil] & :: #3:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] ) || e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)) !inI, (#0:Msg ; b ; n(a, #1:Fresh)) inI || -(#0:Msg ; b ; n(a, #1:Fresh)), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 6 > ( :: nil :: [ nil | -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -((b ; n(a, #0:Fresh)) ; #1:Msg), +(b ; n(a, #0:Fresh)), nil] & :: #2:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), nil] & :: #3:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #0:Fresh)) ; n(b, #3:Fresh)), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] & :: #0:Fresh :: [ nil, +(a ; b ; n(a, #0:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #0:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] ) || e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #0:Fresh)) ; n(b, #3:Fresh)) !inI, ((b ; n(a, #0:Fresh)) ; #1:Msg) inI || -((b ; n(a, #0:Fresh)) ; #1:Msg), +(b ; n(a, #0:Fresh)), -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #0:Fresh)) ; n(b, #3:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #0:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))) || nil || nil) < 1 . 1 . 4 . 6 . 1 . 6 . 0 > ( :: nil :: [ nil | -(seskey(a, b, n(s, #0:Fresh))), -(n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #0:Fresh)), n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #0:Fresh))) ; e(mkey(b, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #0:Fresh)))), +(e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #0:Fresh))) ; e(seskey(a, b, n(s, #0:Fresh)), #1:Nonce) ; n(b, #2:Fresh)) | -(e(seskey(a, b, n(s, #0:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil, -(a ; b ; #1:Nonce), +(e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #0:Fresh))) ; e(mkey(b, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #0:Fresh)))) | nil] ) || e(seskey(a, b, n(s, #0:Fresh)), n(b, #2:Fresh)) !inI, n(b, #2:Fresh) inI, seskey(a, b, n(s, #0:Fresh)) inI || resuscitated(seskey(a, b, n(s, #0:Fresh))), -(seskey(a, b, n(s, #0:Fresh))), -(n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #0:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #0:Fresh)), n(b, #2:Fresh))) || nil || nil ========================================== reduce in MAUDE-NPA : run(6) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 1 . 5 . 7 . 6 . 4 . 3 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #3:Fresh)), +(e(#8:Sessionkey, n(b, #3:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg) ; #5:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg)), nil] & :: #3:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #3:Fresh)) | -(e(#8:Sessionkey, n(b, #3:Fresh))), nil] ) || n(b, #3:Fresh) !inI, e(#8:Sessionkey, n(b, #3:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg) !inI, (#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg) !inI, (#2:Msg ; n(b, #3:Fresh) ; #4:Msg) !inI, (n(b, #3:Fresh) ; #4:Msg) !inI, (e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg) ; #5:Msg) inI || -(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg) ; #5:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg)), -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), -(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), -(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh) ; #4:Msg), -(n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh)), -(#8:Sessionkey), -(n(b, #3:Fresh)), +(e(#8:Sessionkey, n(b, #3:Fresh))), -(e(#8:Sessionkey, n(b, #3:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #3:Fresh)), +(e(#8:Sessionkey, n(b, #3:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #3:Fresh)) | -(e(#8:Sessionkey, n(b, #3:Fresh))), nil] , n(b, #3:Fresh) !inI, e(#8:Sessionkey, n(b, #3:Fresh)) !inI, (#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg) !inI, (#2:Msg ; n(b, #3:Fresh) ; #4:Msg) !inI, (n(b, #3:Fresh) ; #4:Msg) !inI, e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), -(#1:Msg ; #2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), -(#2:Msg ; n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh) ; #4:Msg), -(n(b, #3:Fresh) ; #4:Msg), +(n(b, #3:Fresh)), -(#8:Sessionkey), -(n(b, #3:Fresh)), +(e(#8:Sessionkey, n(b, #3:Fresh))), -(e(#8:Sessionkey, n(b, #3:Fresh))), nil ), ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #3:Fresh)), +(e(#8:Sessionkey, n(b, #3:Fresh))), nil] & :: #3:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #3:Fresh)) | -(e(#8:Sessionkey, n(b, #3:Fresh))), nil] , e(#8:Sessionkey, n(b, #3:Fresh)) !inI, n(b, #3:Fresh) inI, -(#8:Sessionkey), -(n(b, #3:Fresh)), +(e(#8:Sessionkey, n(b, #3:Fresh))), -(e(#8:Sessionkey, n(b, #3:Fresh))), nil ) || nil) (< 1 . 1 . 5 . 7 . 6 . 4 . 6 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #4:Fresh)), +(e(#8:Sessionkey, n(b, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg)), +(#2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg), +(#3:Msg ; n(b, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(#3:Msg ; n(b, #4:Fresh) ; #5:Msg), +(n(b, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg)), +(e(#1:Key, #2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg)), nil] & :: nil :: [ nil | -(n(b, #4:Fresh) ; #5:Msg), +(n(b, #4:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #4:Fresh)) | -(e(#8:Sessionkey, n(b, #4:Fresh))), nil] ) || n(b, #4:Fresh) !inI, e(#8:Sessionkey, n(b, #4:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg) !inI, (#2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg) !inI, (#3:Msg ; n(b, #4:Fresh) ; #5:Msg) !inI, (n(b, #4:Fresh) ; #5:Msg) !inI, (#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg)) inI || -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg)), +(e(#1:Key, #2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg)), -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg)), +(#2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg), -(#2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg), +(#3:Msg ; n(b, #4:Fresh) ; #5:Msg), -(#3:Msg ; n(b, #4:Fresh) ; #5:Msg), +(n(b, #4:Fresh) ; #5:Msg), -(n(b, #4:Fresh) ; #5:Msg), +(n(b, #4:Fresh)), -(#8:Sessionkey), -(n(b, #4:Fresh)), +(e(#8:Sessionkey, n(b, #4:Fresh))), -(e(#8:Sessionkey, n(b, #4:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #4:Fresh)), +(e(#8:Sessionkey, n(b, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg)), +(#2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg), +(#3:Msg ; n(b, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(#3:Msg ; n(b, #4:Fresh) ; #5:Msg), +(n(b, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(n(b, #4:Fresh) ; #5:Msg), +(n(b, #4:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #4:Fresh)) | -(e(#8:Sessionkey, n(b, #4:Fresh))), nil] , n(b, #4:Fresh) !inI, e(#8:Sessionkey, n(b, #4:Fresh)) !inI, (#2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg) !inI, (#3:Msg ; n(b, #4:Fresh) ; #5:Msg) !inI, (n(b, #4:Fresh) ; #5:Msg) !inI, e(#1:Key, #2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg) inI, -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg)), +(#2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg), -(#2:Msg ; #3:Msg ; n(b, #4:Fresh) ; #5:Msg), +(#3:Msg ; n(b, #4:Fresh) ; #5:Msg), -(#3:Msg ; n(b, #4:Fresh) ; #5:Msg), +(n(b, #4:Fresh) ; #5:Msg), -(n(b, #4:Fresh) ; #5:Msg), +(n(b, #4:Fresh)), -(#8:Sessionkey), -(n(b, #4:Fresh)), +(e(#8:Sessionkey, n(b, #4:Fresh))), -(e(#8:Sessionkey, n(b, #4:Fresh))), nil ), ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #4:Fresh)), +(e(#8:Sessionkey, n(b, #4:Fresh))), nil] & :: #4:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #4:Fresh)) | -(e(#8:Sessionkey, n(b, #4:Fresh))), nil] , e(#8:Sessionkey, n(b, #4:Fresh)) !inI, n(b, #4:Fresh) inI, -(#8:Sessionkey), -(n(b, #4:Fresh)), +(e(#8:Sessionkey, n(b, #4:Fresh))), -(e(#8:Sessionkey, n(b, #4:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] & :: #2:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), nil] & :: #3:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] ) || n(a, #1:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)) !inI, e(#0:Key, n(a, #1:Fresh)) inI || -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] & :: #2:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), nil] & :: #3:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] , n(a, #1:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)) !inI, e(#0:Key, n(a, #1:Fresh)) inI, -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 4 > ( :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; n(a, #1:Fresh)), +(n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] & :: #2:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), nil] & :: #3:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] ) || n(a, #1:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)) !inI, (#0:Msg ; n(a, #1:Fresh)) inI || -(#0:Msg ; n(a, #1:Fresh)), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #1:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 > ( :: nil :: [ nil | -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(n(a, #0:Fresh) ; #1:Msg), +(n(a, #0:Fresh)), nil] & :: #2:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), nil] & :: #3:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #0:Fresh)) ; n(b, #3:Fresh)), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] & :: #0:Fresh :: [ nil, +(a ; b ; n(a, #0:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #0:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] ) || n(a, #0:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #0:Fresh)) ; n(b, #3:Fresh)) !inI, (n(a, #0:Fresh) ; #1:Msg) inI || -(n(a, #0:Fresh) ; #1:Msg), +(n(a, #0:Fresh)), -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #0:Fresh)) ; n(b, #3:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), n(a, #0:Fresh)) ; n(b, #3:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #3:Fresh))) || nil || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 > ( :: nil :: [ nil | -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #4:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #4:Fresh)), n(b, #0:Fresh))), +(n(b, #0:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(b, #0:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh)))) | nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] ) || n(b, #0:Fresh) !inI, e(#3:Sessionkey, n(b, #0:Fresh)) !inI, e(seskey(#5:UName, #6:UName, n(s, #4:Fresh)), n(b, #0:Fresh)) inI, seskey(#5:UName, #6:UName, n(s, #4:Fresh)) inI || resuscitated(seskey(#5:UName, #6:UName, n(s, #4:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #4:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #4:Fresh)), n(b, #0:Fresh))), +(n(b, #0:Fresh)), -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))) || ghost( #3:Sessionkey, :: nil :: [ nil | -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] , e(#3:Sessionkey, n(b, #0:Fresh)) !inI, n(b, #0:Fresh) inI, -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 > ( :: nil :: [ nil | -(#0:Msg ; n(b, #1:Fresh)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #1:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #2:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #2:Nonce ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; #2:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), #2:Nonce) ; n(b, #1:Fresh)) | -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #1:Fresh))), nil] & :: #3:Fresh :: [ nil, -(a ; b ; #2:Nonce), +(e(mkey(a, s), a ; b ; #2:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #2:Nonce ; seskey(a, b, n(s, #3:Fresh)))) | nil] ) || n(b, #1:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #1:Fresh)) !inI, (#0:Msg ; n(b, #1:Fresh)) inI, seskey(a, b, n(s, #3:Fresh)) inI || -(#0:Msg ; n(b, #1:Fresh)), +(n(b, #1:Fresh)), resuscitated(seskey(a, b, n(s, #3:Fresh))), -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #1:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #1:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #1:Fresh))) || nil || nil) < 1 . 1 . 4 . 6 . 1 . 6 . 0 . 8 > ( :: nil :: [ nil | -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #1:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))) | nil] & :: #2:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), #3:Nonce) ; n(b, #2:Fresh)) | -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, seskey(a, b, n(s, #1:Fresh)) !inI, n(b, #2:Fresh) inI, (#0:Msg ; seskey(a, b, n(s, #1:Fresh))) inI || -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), resuscitated(seskey(a, b, n(s, #1:Fresh))), -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil ========================================== reduce in MAUDE-NPA : run(7) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(e(#0:Key, n(a, #1:Fresh)) ; #2:Msg), +(e(#0:Key, n(a, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] ) || n(a, #1:Fresh) !inI, e(#0:Key, n(a, #1:Fresh)) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)) !inI, (e(#0:Key, n(a, #1:Fresh)) ; #2:Msg) inI || -(e(#0:Key, n(a, #1:Fresh)) ; #2:Msg), +(e(#0:Key, n(a, #1:Fresh))), -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] , n(a, #1:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)) !inI, e(#0:Key, n(a, #1:Fresh)) inI, -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 4 . 2 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; n(a, #2:Fresh))), +(#1:Msg ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; n(a, #2:Fresh)), +(n(a, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] ) || n(a, #2:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (#1:Msg ; n(a, #2:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; n(a, #2:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; n(a, #2:Fresh))), +(#1:Msg ; n(a, #2:Fresh)), -(#1:Msg ; n(a, #2:Fresh)), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; n(a, #2:Fresh))), +(#1:Msg ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; n(a, #2:Fresh)), +(n(a, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] , n(a, #2:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (#1:Msg ; n(a, #2:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; n(a, #2:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; n(a, #2:Fresh))), +(#1:Msg ; n(a, #2:Fresh)), -(#1:Msg ; n(a, #2:Fresh)), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 4 . 4 > ( :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; n(a, #1:Fresh)), +(n(a, #1:Fresh)), nil] & :: nil :: [ nil | -((#0:Msg ; n(a, #1:Fresh)) ; #2:Msg), +(#0:Msg ; n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] ) || n(a, #1:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (#0:Msg ; n(a, #1:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)) !inI, ((#0:Msg ; n(a, #1:Fresh)) ; #2:Msg) inI || -((#0:Msg ; n(a, #1:Fresh)) ; #2:Msg), +(#0:Msg ; n(a, #1:Fresh)), -(#0:Msg ; n(a, #1:Fresh)), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 4 . 5 > ( :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; n(a, #2:Fresh)), +(n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; n(a, #2:Fresh)), +(#1:Msg ; n(a, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] ) || n(a, #2:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (#1:Msg ; n(a, #2:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)) !inI, (#0:Msg ; #1:Msg ; n(a, #2:Fresh)) inI || -(#0:Msg ; #1:Msg ; n(a, #2:Fresh)), +(#1:Msg ; n(a, #2:Fresh)), -(#1:Msg ; n(a, #2:Fresh)), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 3 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(a, #1:Fresh) ; #2:Msg)), +(n(a, #1:Fresh) ; #2:Msg), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] ) || n(a, #1:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (n(a, #1:Fresh) ; #2:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)) !inI, e(#0:Key, n(a, #1:Fresh) ; #2:Msg) inI || -(#0:Key), -(e(#0:Key, n(a, #1:Fresh) ; #2:Msg)), +(n(a, #1:Fresh) ; #2:Msg), -(n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(a, #1:Fresh) ; #2:Msg)), +(n(a, #1:Fresh) ; #2:Msg), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] , n(a, #1:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (n(a, #1:Fresh) ; #2:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)) !inI, e(#0:Key, n(a, #1:Fresh) ; #2:Msg) inI, -(#0:Key), -(e(#0:Key, n(a, #1:Fresh) ; #2:Msg)), +(n(a, #1:Fresh) ; #2:Msg), -(n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 > ( :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh) ; #2:Msg), nil] & :: nil :: [ nil | -(n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] ) || n(a, #1:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (n(a, #1:Fresh) ; #2:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)) !inI, (#0:Msg ; n(a, #1:Fresh) ; #2:Msg) inI || -(#0:Msg ; n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh) ; #2:Msg), -(n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #1:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 6 > ( :: nil :: [ nil | -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(n(a, #0:Fresh) ; #1:Msg), +(n(a, #0:Fresh)), nil] & :: nil :: [ nil | -((n(a, #0:Fresh) ; #1:Msg) ; #2:Msg), +(n(a, #0:Fresh) ; #1:Msg), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #0:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #0:Fresh :: [ nil, +(a ; b ; n(a, #0:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #0:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] ) || n(a, #0:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (b ; n(a, #0:Fresh)) !inI, (n(a, #0:Fresh) ; #1:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #0:Fresh)) ; n(b, #4:Fresh)) !inI, ((n(a, #0:Fresh) ; #1:Msg) ; #2:Msg) inI || -((n(a, #0:Fresh) ; #1:Msg) ; #2:Msg), +(n(a, #0:Fresh) ; #1:Msg), -(n(a, #0:Fresh) ; #1:Msg), +(n(a, #0:Fresh)), -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #0:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #0:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))) || nil || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 > ( :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #3:Fresh)), +(e(#7:Sessionkey, n(b, #3:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(b, #3:Fresh)) ; #4:Msg), +(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(b, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(#0:UName, #1:UName, n(s, #2:Fresh))), -(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(b, #3:Fresh))), +(n(b, #3:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#0:UName ; #1:UName ; n(b, #3:Fresh)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(b, #3:Fresh) ; seskey(#0:UName, #1:UName, n(s, #2:Fresh))) ; e(mkey(#1:UName, s), #0:UName ; #1:UName ; n(b, #3:Fresh) ; seskey(#0:UName, #1:UName, n(s, #2:Fresh)))) | nil] & :: #3:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #3:Fresh)) | -(e(#7:Sessionkey, n(b, #3:Fresh))), nil] ) || n(b, #3:Fresh) !inI, e(#7:Sessionkey, n(b, #3:Fresh)) !inI, e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(b, #3:Fresh)) !inI, (e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(b, #3:Fresh)) ; #4:Msg) inI, seskey(#0:UName, #1:UName, n(s, #2:Fresh)) inI || -(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(b, #3:Fresh)) ; #4:Msg), +(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(b, #3:Fresh))), resuscitated(seskey(#0:UName, #1:UName, n(s, #2:Fresh))), -(seskey(#0:UName, #1:UName, n(s, #2:Fresh))), -(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(b, #3:Fresh))), +(n(b, #3:Fresh)), -(#7:Sessionkey), -(n(b, #3:Fresh)), +(e(#7:Sessionkey, n(b, #3:Fresh))), -(e(#7:Sessionkey, n(b, #3:Fresh))) || ghost( #7:Sessionkey, :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #3:Fresh)), +(e(#7:Sessionkey, n(b, #3:Fresh))), nil] & :: #3:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #3:Fresh)) | -(e(#7:Sessionkey, n(b, #3:Fresh))), nil] , e(#7:Sessionkey, n(b, #3:Fresh)) !inI, n(b, #3:Fresh) inI, -(#7:Sessionkey), -(n(b, #3:Fresh)), +(e(#7:Sessionkey, n(b, #3:Fresh))), -(e(#7:Sessionkey, n(b, #3:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 11 > ( :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), +(n(b, #4:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(b, #4:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(b, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(b, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #4:Fresh)) | -(e(#7:Sessionkey, n(b, #4:Fresh))), nil] ) || n(b, #4:Fresh) !inI, e(#7:Sessionkey, n(b, #4:Fresh)) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) inI || -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), +(n(b, #4:Fresh)), -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), -(e(#7:Sessionkey, n(b, #4:Fresh))) || ghost( #7:Sessionkey, :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), nil] & :: #4:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #4:Fresh)) | -(e(#7:Sessionkey, n(b, #4:Fresh))), nil] , e(#7:Sessionkey, n(b, #4:Fresh)) !inI, n(b, #4:Fresh) inI, -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), -(e(#7:Sessionkey, n(b, #4:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 > ( :: nil :: [ nil | -(#1:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; n(b, #2:Fresh)), +(#1:Msg ; n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #3:Nonce) ; n(b, #2:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #2:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] ) || n(b, #2:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #2:Fresh)) !inI, (#1:Msg ; n(b, #2:Fresh)) !inI, (#0:Msg ; #1:Msg ; n(b, #2:Fresh)) inI, seskey(a, b, n(s, #4:Fresh)) inI || -(#0:Msg ; #1:Msg ; n(b, #2:Fresh)), +(#1:Msg ; n(b, #2:Fresh)), -(#1:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 9 > ( :: nil :: [ nil | -(#4:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #1:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))) | nil] & :: #2:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), #3:Nonce) ; n(b, #2:Fresh)) | -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || n(b, #2:Fresh) !inI, e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, seskey(a, b, n(s, #1:Fresh)) !inI, (#4:Msg ; n(b, #2:Fresh)) inI, (#0:Msg ; seskey(a, b, n(s, #1:Fresh))) inI || -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), -(#4:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), resuscitated(seskey(a, b, n(s, #1:Fresh))), -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 8 . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] ) || e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, n(b, #4:Fresh) inI, e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh))) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] , e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, n(b, #4:Fresh) inI, e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh))) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 8 . 7 > ( :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] ) || e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, n(b, #4:Fresh) inI, (#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) inI || -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 8 . 11 > ( :: nil :: [ nil | -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; seskey(a, b, n(s, #1:Fresh))) ; #2:Msg), +(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))), nil] & :: #1:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh)) !inI, (#0:Msg ; seskey(a, b, n(s, #1:Fresh))) !inI, seskey(a, b, n(s, #1:Fresh)) !inI, n(b, #4:Fresh) inI, ((#0:Msg ; seskey(a, b, n(s, #1:Fresh))) ; #2:Msg) inI || -((#0:Msg ; seskey(a, b, n(s, #1:Fresh))) ; #2:Msg), +(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), resuscitated(seskey(a, b, n(s, #1:Fresh))), -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))) || nil || nil) (< 1 . 1 . 5 . 7 . 6 . 4 . 3 . 5 . 0 > ( :: nil :: [ nil | -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: nil :: [ nil | -(mkey(#5:UName, s)), -(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh)))), +(#5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(#6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(n(b, #0:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(b, #0:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh)))) | nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] ) || n(b, #0:Fresh) !inI, e(#3:Sessionkey, n(b, #0:Fresh)) !inI, (#5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))) !inI, (#6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))) !inI, (n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))) !inI, mkey(#5:UName, s) inI, e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))) inI || resuscitated(mkey(#5:UName, s)), -(mkey(#5:UName, s)), -(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh)))), +(#5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), -(#5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(#6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), -(#6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), -(n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(n(b, #0:Fresh)), -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))) || ghost( #3:Sessionkey, :: nil :: [ nil | -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] , e(#3:Sessionkey, n(b, #0:Fresh)) !inI, n(b, #0:Fresh) inI, -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))), nil ) || nil) < 1 . 1 . 5 . 7 . 6 . 4 . 6 . 2 . 0 > ( :: nil :: [ nil | -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: nil :: [ nil | -(mkey(#6:UName, s)), -(e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh)))), +(#5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(#6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(n(b, #0:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(b, #0:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh)))) | nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] ) || n(b, #0:Fresh) !inI, e(#3:Sessionkey, n(b, #0:Fresh)) !inI, (#5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))) !inI, (#6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))) !inI, (n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))) !inI, mkey(#6:UName, s) inI, e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))) inI || resuscitated(mkey(#6:UName, s)), -(mkey(#6:UName, s)), -(e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh)))), +(#5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), -(#5:UName ; #6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(#6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), -(#6:UName ; n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), -(n(b, #0:Fresh) ; seskey(#5:UName, #6:UName, n(s, #4:Fresh))), +(n(b, #0:Fresh)), -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))) || ghost( #3:Sessionkey, :: nil :: [ nil | -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), nil] & :: #0:Fresh :: [ nil, -(#1:Msg ; e(mkey(b, s), a ; b ; #2:Nonce ; #3:Sessionkey)), +(#1:Msg ; e(#3:Sessionkey, #2:Nonce) ; n(b, #0:Fresh)) | -(e(#3:Sessionkey, n(b, #0:Fresh))), nil] , e(#3:Sessionkey, n(b, #0:Fresh)) !inI, n(b, #0:Fresh) inI, -(#3:Sessionkey), -(n(b, #0:Fresh)), +(e(#3:Sessionkey, n(b, #0:Fresh))), -(e(#3:Sessionkey, n(b, #0:Fresh))), nil ) || nil ========================================== reduce in MAUDE-NPA : run(8) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 3 > ( :: nil :: [ nil | -(#1:Key), -(e(#1:Key, n(a, #2:Fresh))), +(n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, e(#1:Key, n(a, #2:Fresh)) ; #3:Msg)), +(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), nil] & :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(a, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] ) || n(a, #2:Fresh) !inI, e(#1:Key, n(a, #2:Fresh)) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (e(#1:Key, n(a, #2:Fresh)) ; #3:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)) !inI, e(#0:Key, e(#1:Key, n(a, #2:Fresh)) ; #3:Msg) inI || -(#0:Key), -(e(#0:Key, e(#1:Key, n(a, #2:Fresh)) ; #3:Msg)), +(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), -(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(a, #2:Fresh))), -(#1:Key), -(e(#1:Key, n(a, #2:Fresh))), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#1:Key), -(e(#1:Key, n(a, #2:Fresh))), +(n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, e(#1:Key, n(a, #2:Fresh)) ; #3:Msg)), +(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), nil] & :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(a, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] , n(a, #2:Fresh) !inI, e(#1:Key, n(a, #2:Fresh)) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (e(#1:Key, n(a, #2:Fresh)) ; #3:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)) !inI, e(#0:Key, e(#1:Key, n(a, #2:Fresh)) ; #3:Msg) inI, -(#0:Key), -(e(#0:Key, e(#1:Key, n(a, #2:Fresh)) ; #3:Msg)), +(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), -(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(a, #2:Fresh))), -(#1:Key), -(e(#1:Key, n(a, #2:Fresh))), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil ), ghost( #1:Key, :: nil :: [ nil | -(#1:Key), -(e(#1:Key, n(a, #2:Fresh))), +(n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] , n(a, #2:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)) !inI, e(#1:Key, n(a, #2:Fresh)) inI, -(#1:Key), -(e(#1:Key, n(a, #2:Fresh))), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 > ( :: nil :: [ nil | -(#1:Key), -(e(#1:Key, n(a, #2:Fresh))), +(n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), nil] & :: nil :: [ nil | -(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(a, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] ) || n(a, #2:Fresh) !inI, e(#1:Key, n(a, #2:Fresh)) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (e(#1:Key, n(a, #2:Fresh)) ; #3:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)) !inI, (#0:Msg ; e(#1:Key, n(a, #2:Fresh)) ; #3:Msg) inI || -(#0:Msg ; e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), -(e(#1:Key, n(a, #2:Fresh)) ; #3:Msg), +(e(#1:Key, n(a, #2:Fresh))), -(#1:Key), -(e(#1:Key, n(a, #2:Fresh))), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#1:Key), -(e(#1:Key, n(a, #2:Fresh))), +(n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] , n(a, #2:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)) !inI, e(#1:Key, n(a, #2:Fresh)) inI, -(#1:Key), -(e(#1:Key, n(a, #2:Fresh))), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 7 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(e(#0:Key, n(a, #1:Fresh)) ; #2:Msg), +(e(#0:Key, n(a, #1:Fresh))), nil] & :: nil :: [ nil | -((e(#0:Key, n(a, #1:Fresh)) ; #2:Msg) ; #3:Msg), +(e(#0:Key, n(a, #1:Fresh)) ; #2:Msg), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] ) || n(a, #1:Fresh) !inI, e(#0:Key, n(a, #1:Fresh)) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (e(#0:Key, n(a, #1:Fresh)) ; #2:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)) !inI, ((e(#0:Key, n(a, #1:Fresh)) ; #2:Msg) ; #3:Msg) inI || -((e(#0:Key, n(a, #1:Fresh)) ; #2:Msg) ; #3:Msg), +(e(#0:Key, n(a, #1:Fresh)) ; #2:Msg), -(e(#0:Key, n(a, #1:Fresh)) ; #2:Msg), +(e(#0:Key, n(a, #1:Fresh))), -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] , n(a, #1:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)) !inI, e(#0:Key, n(a, #1:Fresh)) inI, -(#0:Key), -(e(#0:Key, n(a, #1:Fresh))), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 2 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; n(a, #2:Fresh) ; #3:Msg)), +(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] ) || n(a, #2:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (#1:Msg ; n(a, #2:Fresh) ; #3:Msg) !inI, (n(a, #2:Fresh) ; #3:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; n(a, #2:Fresh) ; #3:Msg) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; n(a, #2:Fresh) ; #3:Msg)), +(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), -(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh) ; #3:Msg), -(n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; n(a, #2:Fresh) ; #3:Msg)), +(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] , n(a, #2:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (#1:Msg ; n(a, #2:Fresh) ; #3:Msg) !inI, (n(a, #2:Fresh) ; #3:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; n(a, #2:Fresh) ; #3:Msg) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; n(a, #2:Fresh) ; #3:Msg)), +(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), -(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh) ; #3:Msg), -(n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 4 > ( :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh) ; #2:Msg), nil] & :: nil :: [ nil | -(n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh)), nil] & :: nil :: [ nil | -((#0:Msg ; n(a, #1:Fresh) ; #2:Msg) ; #3:Msg), +(#0:Msg ; n(a, #1:Fresh) ; #2:Msg), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] ) || n(a, #1:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (#0:Msg ; n(a, #1:Fresh) ; #2:Msg) !inI, (n(a, #1:Fresh) ; #2:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)) !inI, ((#0:Msg ; n(a, #1:Fresh) ; #2:Msg) ; #3:Msg) inI || -((#0:Msg ; n(a, #1:Fresh) ; #2:Msg) ; #3:Msg), +(#0:Msg ; n(a, #1:Fresh) ; #2:Msg), -(#0:Msg ; n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh) ; #2:Msg), -(n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 5 > ( :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; n(a, #2:Fresh) ; #3:Msg), +(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), nil] & :: nil :: [ nil | -(n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] ) || n(a, #2:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (#1:Msg ; n(a, #2:Fresh) ; #3:Msg) !inI, (n(a, #2:Fresh) ; #3:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)) !inI, (#0:Msg ; #1:Msg ; n(a, #2:Fresh) ; #3:Msg) inI || -(#0:Msg ; #1:Msg ; n(a, #2:Fresh) ; #3:Msg), +(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), -(#1:Msg ; n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh) ; #3:Msg), -(n(a, #2:Fresh) ; #3:Msg), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #2:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))) || nil || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 8 > ( :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #8:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), +(n(b, #4:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(b, #4:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(b, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(b, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #4:Fresh)) | -(e(#7:Sessionkey, n(b, #4:Fresh))), nil] ) || n(b, #4:Fresh) !inI, e(#7:Sessionkey, n(b, #4:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) inI, (e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #8:Msg) inI || -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #8:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), +(n(b, #4:Fresh)), -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), -(e(#7:Sessionkey, n(b, #4:Fresh))) || ghost( #7:Sessionkey, :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), nil] & :: #4:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #4:Fresh)) | -(e(#7:Sessionkey, n(b, #4:Fresh))), nil] , e(#7:Sessionkey, n(b, #4:Fresh)) !inI, n(b, #4:Fresh) inI, -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), -(e(#7:Sessionkey, n(b, #4:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 13 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #4:Fresh)), +(e(#8:Sessionkey, n(b, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #5:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #5:Msg), nil] & :: nil :: [ nil | -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #5:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), +(n(b, #4:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(b, #4:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(b, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(b, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #4:Fresh)) | -(e(#8:Sessionkey, n(b, #4:Fresh))), nil] ) || n(b, #4:Fresh) !inI, e(#8:Sessionkey, n(b, #4:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #5:Msg) !inI, (#0:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #5:Msg) inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) inI || -(#0:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #5:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #5:Msg), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #5:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), +(n(b, #4:Fresh)), -(#8:Sessionkey), -(n(b, #4:Fresh)), +(e(#8:Sessionkey, n(b, #4:Fresh))), -(e(#8:Sessionkey, n(b, #4:Fresh))) || ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #4:Fresh)), +(e(#8:Sessionkey, n(b, #4:Fresh))), nil] & :: #4:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #4:Fresh)) | -(e(#8:Sessionkey, n(b, #4:Fresh))), nil] , e(#8:Sessionkey, n(b, #4:Fresh)) !inI, n(b, #4:Fresh) inI, -(#8:Sessionkey), -(n(b, #4:Fresh)), +(e(#8:Sessionkey, n(b, #4:Fresh))), -(e(#8:Sessionkey, n(b, #4:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 11 . 10 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ), ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , e(#8:Sessionkey, n(b, #5:Fresh)) !inI, n(b, #5:Fresh) inI, -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 11 . 12 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI || -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))) || ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , e(#8:Sessionkey, n(b, #5:Fresh)) !inI, n(b, #5:Fresh) inI, -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 11 . 13 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(b, #5:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(b, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(b, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) inI, ((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg) inI || -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))) || ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , e(#8:Sessionkey, n(b, #5:Fresh)) !inI, n(b, #5:Fresh) inI, -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 . 3 > ( :: nil :: [ nil | -(e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #1:Nonce) ; n(b, #0:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), #1:Nonce) ; n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(e(seskey(a, b, n(s, #2:Fresh)), #1:Nonce) ; n(b, #0:Fresh)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #0:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #0:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #1:Nonce), +(e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #0:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #1:Nonce) ; n(b, #0:Fresh)), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #0:Fresh))), nil] ) || n(b, #0:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #1:Nonce) ; n(b, #0:Fresh)) !inI, (e(seskey(a, b, n(s, #2:Fresh)), #1:Nonce) ; n(b, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh)))) inI, seskey(a, b, n(s, #2:Fresh)) inI || -(e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #1:Nonce) ; n(b, #0:Fresh)), -(e(mkey(a, s), a ; b ; #1:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #1:Nonce) ; n(b, #0:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), #1:Nonce) ; n(b, #0:Fresh)), -(e(seskey(a, b, n(s, #2:Fresh)), #1:Nonce) ; n(b, #0:Fresh)), +(n(b, #0:Fresh)), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #0:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #0:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #0:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 . 13 > ( :: nil :: [ nil | -(#4:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#5:Msg ; #4:Msg ; n(b, #2:Fresh)), +(#4:Msg ; n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #1:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))) | nil] & :: #2:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), #3:Nonce) ; n(b, #2:Fresh)) | -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || n(b, #2:Fresh) !inI, e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (#4:Msg ; n(b, #2:Fresh)) !inI, seskey(a, b, n(s, #1:Fresh)) !inI, (#5:Msg ; #4:Msg ; n(b, #2:Fresh)) inI, (#0:Msg ; seskey(a, b, n(s, #1:Fresh))) inI || -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), -(#5:Msg ; #4:Msg ; n(b, #2:Fresh)), +(#4:Msg ; n(b, #2:Fresh)), -(#4:Msg ; n(b, #2:Fresh)), +(n(b, #2:Fresh)), resuscitated(seskey(a, b, n(s, #1:Fresh))), -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 9 . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] ) || n(b, #4:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh))) inI, (#5:Msg ; n(b, #4:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] , n(b, #4:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh))) inI, (#5:Msg ; n(b, #4:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 9 . 9 > ( :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] ) || n(b, #4:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, (#5:Msg ; n(b, #4:Fresh)) inI, (#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) inI || -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 9 . 11 > ( :: nil :: [ nil | -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; seskey(a, b, n(s, #1:Fresh))) ; #2:Msg), +(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))), nil] & :: #1:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))), nil] ) || n(b, #4:Fresh) !inI, e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh)) !inI, (#0:Msg ; seskey(a, b, n(s, #1:Fresh))) !inI, seskey(a, b, n(s, #1:Fresh)) !inI, (#5:Msg ; n(b, #4:Fresh)) inI, ((#0:Msg ; seskey(a, b, n(s, #1:Fresh))) ; #2:Msg) inI || -((#0:Msg ; seskey(a, b, n(s, #1:Fresh))) ; #2:Msg), +(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), resuscitated(seskey(a, b, n(s, #1:Fresh))), -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 8 . 7 . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] & :: #3:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] ) || e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, seskey(a, b, n(s, #3:Fresh)) !inI, n(b, #5:Fresh) inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), resuscitated(seskey(a, b, n(s, #3:Fresh))), -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] & :: #3:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] , e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, seskey(a, b, n(s, #3:Fresh)) !inI, n(b, #5:Fresh) inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), resuscitated(seskey(a, b, n(s, #3:Fresh))), -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 8 . 7 . 7 > ( :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] & :: #3:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] ) || e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, seskey(a, b, n(s, #3:Fresh)) !inI, n(b, #5:Fresh) inI, (#0:Msg ; #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) inI || -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), resuscitated(seskey(a, b, n(s, #3:Fresh))), -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 8 . 7 . 8 > ( :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) ; #3:Msg), +(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))), nil] ) || e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, (#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, n(b, #5:Fresh) inI, ((#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) ; #3:Msg) inI || -((#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) ; #3:Msg), +(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))) || nil || nil) (< 1 . 1 . 5 . 7 . 6 . 4 . 3 . 5 . 0 . 3 > ( :: nil :: [ nil | +(mkey(i, s)), nil] & :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(mkey(i, s)), -(e(mkey(i, s), i ; #1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh)))), +(i ; #1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(i ; #1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(#1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(#1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(n(b, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #2:Fresh)) | -(e(#5:Sessionkey, n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil, -(i ; #1:UName ; n(b, #2:Fresh)), +(e(mkey(i, s), i ; #1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))) ; e(mkey(#1:UName, s), i ; #1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh)))) | nil] ) || n(b, #2:Fresh) !inI, mkey(i, s) !inI, e(#5:Sessionkey, n(b, #2:Fresh)) !inI, (i ; #1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))) !inI, (#1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))) !inI, (n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))) !inI, e(mkey(i, s), i ; #1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))) inI || +(mkey(i, s)), resuscitated(mkey(i, s)), -(mkey(i, s)), -(e(mkey(i, s), i ; #1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh)))), +(i ; #1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), -(i ; #1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(#1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), -(#1:UName ; n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), -(n(b, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(n(b, #2:Fresh)), -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), -(e(#5:Sessionkey, n(b, #2:Fresh))) || ghost( #5:Sessionkey, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #2:Fresh)) | -(e(#5:Sessionkey, n(b, #2:Fresh))), nil] , e(#5:Sessionkey, n(b, #2:Fresh)) !inI, n(b, #2:Fresh) inI, -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), -(e(#5:Sessionkey, n(b, #2:Fresh))), nil ) || nil) (< 1 . 1 . 5 . 7 . 6 . 4 . 3 . 5 . 0 . 5 > ( :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #2:Fresh)), +(e(#7:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(mkey(#0:UName, s)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh)))), +(#0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(#1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) ; #4:Msg), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh)))), nil] & :: #2:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #2:Fresh)) | -(e(#7:Sessionkey, n(b, #2:Fresh))), nil] & :: #3:Fresh :: [ nil, -(#0:UName ; #1:UName ; n(b, #2:Fresh)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) ; e(mkey(#1:UName, s), #0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh)))) | nil] ) || n(b, #2:Fresh) !inI, e(#7:Sessionkey, n(b, #2:Fresh)) !inI, e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) !inI, (#1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) !inI, (#0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) !inI, (n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) !inI, mkey(#0:UName, s) inI, (e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) ; #4:Msg) inI || -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) ; #4:Msg), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh)))), resuscitated(mkey(#0:UName, s)), -(mkey(#0:UName, s)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh)))), +(#0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), -(#0:UName ; #1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(#1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), -(#1:UName ; n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), -(n(b, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(n(b, #2:Fresh)), -(#7:Sessionkey), -(n(b, #2:Fresh)), +(e(#7:Sessionkey, n(b, #2:Fresh))), -(e(#7:Sessionkey, n(b, #2:Fresh))) || ghost( #7:Sessionkey, :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #2:Fresh)), +(e(#7:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #2:Fresh)) | -(e(#7:Sessionkey, n(b, #2:Fresh))), nil] , e(#7:Sessionkey, n(b, #2:Fresh)) !inI, n(b, #2:Fresh) inI, -(#7:Sessionkey), -(n(b, #2:Fresh)), +(e(#7:Sessionkey, n(b, #2:Fresh))), -(e(#7:Sessionkey, n(b, #2:Fresh))), nil ) || nil) < 1 . 1 . 5 . 7 . 6 . 4 . 6 . 2 . 0 . 3 > ( :: nil :: [ nil | +(mkey(i, s)), nil] & :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), nil] & :: nil :: [ nil | -(mkey(i, s)), -(e(mkey(i, s), #1:UName ; i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh)))), +(#1:UName ; i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(#1:UName ; i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(n(b, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #2:Fresh)) | -(e(#5:Sessionkey, n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil, -(#1:UName ; i ; n(b, #2:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))) ; e(mkey(i, s), #1:UName ; i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh)))) | nil] ) || n(b, #2:Fresh) !inI, mkey(i, s) !inI, e(#5:Sessionkey, n(b, #2:Fresh)) !inI, (i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))) !inI, (#1:UName ; i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))) !inI, (n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))) !inI, e(mkey(i, s), #1:UName ; i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))) inI || +(mkey(i, s)), resuscitated(mkey(i, s)), -(mkey(i, s)), -(e(mkey(i, s), #1:UName ; i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh)))), +(#1:UName ; i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), -(#1:UName ; i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), -(i ; n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), -(n(b, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(n(b, #2:Fresh)), -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), -(e(#5:Sessionkey, n(b, #2:Fresh))) || ghost( #5:Sessionkey, :: nil :: [ nil | -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), nil] & :: #2:Fresh :: [ nil, -(#3:Msg ; e(mkey(b, s), a ; b ; #4:Nonce ; #5:Sessionkey)), +(#3:Msg ; e(#5:Sessionkey, #4:Nonce) ; n(b, #2:Fresh)) | -(e(#5:Sessionkey, n(b, #2:Fresh))), nil] , e(#5:Sessionkey, n(b, #2:Fresh)) !inI, n(b, #2:Fresh) inI, -(#5:Sessionkey), -(n(b, #2:Fresh)), +(e(#5:Sessionkey, n(b, #2:Fresh))), -(e(#5:Sessionkey, n(b, #2:Fresh))), nil ) || nil ========================================== reduce in MAUDE-NPA : run(9) . rewrites: 18 in 0ms cpu (0ms real) (18000000 rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 > ( :: nil :: [ nil | -(#7:Sessionkey), -(e(#7:Sessionkey, n(a, #0:Fresh))), +(n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(#4:Msg ; e(#7:Sessionkey, n(a, #0:Fresh)) ; n(#5:UName, #3:Fresh)), +(e(#7:Sessionkey, n(a, #0:Fresh)) ; n(#5:UName, #3:Fresh)), nil] & :: nil :: [ nil | -(e(#7:Sessionkey, n(a, #0:Fresh)) ; n(#5:UName, #3:Fresh)), +(e(#7:Sessionkey, n(a, #0:Fresh))), nil] & :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #3:Fresh :: [ nil | -(#4:Msg ; e(mkey(#5:UName, s), #6:UName ; #5:UName ; n(a, #0:Fresh) ; #7:Sessionkey)), +(#4:Msg ; e(#7:Sessionkey, n(a, #0:Fresh)) ; n(#5:UName, #3:Fresh)), nil] & :: #0:Fresh :: [ nil, +(a ; b ; n(a, #0:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || n(a, #0:Fresh) !inI, e(#7:Sessionkey, n(a, #0:Fresh)) !inI, e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (b ; n(a, #0:Fresh)) !inI, (#4:Msg ; e(#7:Sessionkey, n(a, #0:Fresh)) ; n(#5:UName, #3:Fresh)) !inI, (e(#7:Sessionkey, n(a, #0:Fresh)) ; n(#5:UName, #3:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI, (#4:Msg ; e(mkey(#5:UName, s), #6:UName ; #5:UName ; n(a, #0:Fresh) ; #7:Sessionkey)) inI, inst(#7:Sessionkey) || -(#4:Msg ; e(mkey(#5:UName, s), #6:UName ; #5:UName ; n(a, #0:Fresh) ; #7:Sessionkey)), +(#4:Msg ; e(#7:Sessionkey, n(a, #0:Fresh)) ; n(#5:UName, #3:Fresh)), -(#4:Msg ; e(#7:Sessionkey, n(a, #0:Fresh)) ; n(#5:UName, #3:Fresh)), +(e(#7:Sessionkey, n(a, #0:Fresh)) ; n(#5:UName, #3:Fresh)), -(e(#7:Sessionkey, n(a, #0:Fresh)) ; n(#5:UName, #3:Fresh)), +(e(#7:Sessionkey, n(a, #0:Fresh))), -(#7:Sessionkey), -(e(#7:Sessionkey, n(a, #0:Fresh))), +(n(a, #0:Fresh)), -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || ghost( #7:Sessionkey, :: nil :: [ nil | -(#7:Sessionkey), -(e(#7:Sessionkey, n(a, #0:Fresh))), +(n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), nil] & :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil, +(a ; b ; n(a, #0:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] , n(a, #0:Fresh) !inI, e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI, e(#7:Sessionkey, n(a, #0:Fresh)) inI, -(#7:Sessionkey), -(e(#7:Sessionkey, n(a, #0:Fresh))), +(n(a, #0:Fresh)), -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 5 . 2 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(a, #3:Fresh)), -(b), +(b ; n(a, #3:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #3:Fresh)), -(a), +(a ; b ; n(a, #3:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh)), nil] & :: #3:Fresh :: [ nil, +(a ; b ; n(a, #3:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: #5:Fresh :: [ nil | -(a ; b ; n(a, #3:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), nil] & :: #6:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] ) || n(a, #3:Fresh) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, (a ; b ; n(a, #3:Fresh)) !inI, (b ; n(a, #3:Fresh)) !inI, (#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg) !inI, (#2:Msg ; n(a, #3:Fresh) ; #4:Msg) !inI, (n(a, #3:Fresh) ; #4:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), -(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), -(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh) ; #4:Msg), -(n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh)), -(n(a, #3:Fresh)), -(b), +(b ; n(a, #3:Fresh)), -(b ; n(a, #3:Fresh)), -(a), +(a ; b ; n(a, #3:Fresh)), -(a ; b ; n(a, #3:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(a, #3:Fresh)), -(b), +(b ; n(a, #3:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #3:Fresh)), -(a), +(a ; b ; n(a, #3:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh)), nil] & :: #3:Fresh :: [ nil, +(a ; b ; n(a, #3:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: #5:Fresh :: [ nil | -(a ; b ; n(a, #3:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), nil] & :: #6:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] , n(a, #3:Fresh) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, (a ; b ; n(a, #3:Fresh)) !inI, (b ; n(a, #3:Fresh)) !inI, (#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg) !inI, (#2:Msg ; n(a, #3:Fresh) ; #4:Msg) !inI, (n(a, #3:Fresh) ; #4:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), -(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), -(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh) ; #4:Msg), -(n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh)), -(n(a, #3:Fresh)), -(b), +(b ; n(a, #3:Fresh)), -(b ; n(a, #3:Fresh)), -(a), +(a ; b ; n(a, #3:Fresh)), -(a ; b ; n(a, #3:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 13 . 7 > ( :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#8:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #9:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #9:Msg), nil] & :: nil :: [ nil | -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #9:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), +(n(b, #4:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(b, #4:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(b, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(b, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #4:Fresh)) | -(e(#7:Sessionkey, n(b, #4:Fresh))), nil] ) || n(b, #4:Fresh) !inI, e(#7:Sessionkey, n(b, #4:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #9:Msg) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) inI, (#8:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #9:Msg) inI || -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(#8:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #9:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #9:Msg), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh)) ; #9:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #4:Fresh))), +(n(b, #4:Fresh)), -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), -(e(#7:Sessionkey, n(b, #4:Fresh))) || ghost( #7:Sessionkey, :: nil :: [ nil | -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), nil] & :: #4:Fresh :: [ nil, -(#5:Msg ; e(mkey(b, s), a ; b ; #6:Nonce ; #7:Sessionkey)), +(#5:Msg ; e(#7:Sessionkey, #6:Nonce) ; n(b, #4:Fresh)) | -(e(#7:Sessionkey, n(b, #4:Fresh))), nil] , e(#7:Sessionkey, n(b, #4:Fresh)) !inI, n(b, #4:Fresh) inI, -(#7:Sessionkey), -(n(b, #4:Fresh)), +(e(#7:Sessionkey, n(b, #4:Fresh))), -(e(#7:Sessionkey, n(b, #4:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . (8 {1}) . 11 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg) inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg || -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg) inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ), ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , e(#8:Sessionkey, n(b, #5:Fresh)) !inI, n(b, #5:Fresh) inI, -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . (8 {1}) . 13 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg) inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg || -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))) || ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , e(#8:Sessionkey, n(b, #5:Fresh)) !inI, n(b, #5:Fresh) inI, -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . (8 {1}) . 14 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #9:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(b, #5:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(b, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(b, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) !inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, (e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #9:Msg) inI, ((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg) inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) != e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #9:Msg || -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #9:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))) || ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , e(#8:Sessionkey, n(b, #5:Fresh)) !inI, n(b, #5:Fresh) inI, -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 11 . 12 . 10 > ( :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(b, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] ) || n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(b, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ), ghost( #9:Sessionkey, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , e(#9:Sessionkey, n(b, #6:Fresh)) !inI, n(b, #6:Fresh) inI, -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 11 . 12 . 12 > ( :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(b, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] ) || n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) inI, (#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI || -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))) || ghost( #9:Sessionkey, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , e(#9:Sessionkey, n(b, #6:Fresh)) !inI, n(b, #6:Fresh) inI, -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 11 . 12 . 13 > ( :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #6:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] ) || n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) inI, ((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg) inI || -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))) || ghost( #9:Sessionkey, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , e(#9:Sessionkey, n(b, #6:Fresh)) !inI, n(b, #6:Fresh) inI, -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 . 13 . 5 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(#6:Msg ; #5:Msg ; n(b, #4:Fresh)), +(#5:Msg ; n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] ) || n(b, #4:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, (#5:Msg ; n(b, #4:Fresh)) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh))) inI, (#6:Msg ; #5:Msg ; n(b, #4:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), -(#6:Msg ; #5:Msg ; n(b, #4:Fresh)), +(#5:Msg ; n(b, #4:Fresh)), -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(#6:Msg ; #5:Msg ; n(b, #4:Fresh)), +(#5:Msg ; n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] , n(b, #4:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, (#5:Msg ; n(b, #4:Fresh)) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh))) inI, (#6:Msg ; #5:Msg ; n(b, #4:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(a, b, n(s, #2:Fresh)))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), -(#6:Msg ; #5:Msg ; n(b, #4:Fresh)), +(#5:Msg ; n(b, #4:Fresh)), -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 . 13 . 11 > ( :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(#6:Msg ; #5:Msg ; n(b, #4:Fresh)), +(#5:Msg ; n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), nil] ) || n(b, #4:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, (#5:Msg ; n(b, #4:Fresh)) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, (#6:Msg ; #5:Msg ; n(b, #4:Fresh)) inI, (#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) inI || -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), -(#6:Msg ; #5:Msg ; n(b, #4:Fresh)), +(#5:Msg ; n(b, #4:Fresh)), -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #4:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 . 13 . 15 > ( :: nil :: [ nil | -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(#6:Msg ; #5:Msg ; n(b, #4:Fresh)), +(#5:Msg ; n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; seskey(a, b, n(s, #1:Fresh))) ; #2:Msg), +(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))), nil] & :: #1:Fresh :: [ nil, -(a ; b ; #3:Nonce), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))) | nil] & :: #4:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; #3:Nonce ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), #3:Nonce) ; n(b, #4:Fresh)) | -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))), nil] ) || n(b, #4:Fresh) !inI, e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh)) !inI, (#5:Msg ; n(b, #4:Fresh)) !inI, (#0:Msg ; seskey(a, b, n(s, #1:Fresh))) !inI, seskey(a, b, n(s, #1:Fresh)) !inI, (#6:Msg ; #5:Msg ; n(b, #4:Fresh)) inI, ((#0:Msg ; seskey(a, b, n(s, #1:Fresh))) ; #2:Msg) inI || -((#0:Msg ; seskey(a, b, n(s, #1:Fresh))) ; #2:Msg), +(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), -(#0:Msg ; seskey(a, b, n(s, #1:Fresh))), +(seskey(a, b, n(s, #1:Fresh))), -(#6:Msg ; #5:Msg ; n(b, #4:Fresh)), +(#5:Msg ; n(b, #4:Fresh)), -(#5:Msg ; n(b, #4:Fresh)), +(n(b, #4:Fresh)), resuscitated(seskey(a, b, n(s, #1:Fresh))), -(seskey(a, b, n(s, #1:Fresh))), -(n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #4:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 9 . 9 . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] & :: #3:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, seskey(a, b, n(s, #3:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) inI, (#6:Msg ; n(b, #5:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), resuscitated(seskey(a, b, n(s, #3:Fresh))), -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] & :: #3:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] , n(b, #5:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, seskey(a, b, n(s, #3:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) inI, (#6:Msg ; n(b, #5:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), resuscitated(seskey(a, b, n(s, #3:Fresh))), -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 9 . 9 . 9 > ( :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] & :: #3:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, seskey(a, b, n(s, #3:Fresh)) !inI, (#6:Msg ; n(b, #5:Fresh)) inI, (#0:Msg ; #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) inI || -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), resuscitated(seskey(a, b, n(s, #3:Fresh))), -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 9 . 9 . 10 > ( :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) ; #3:Msg), +(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, (#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, (#6:Msg ; n(b, #5:Fresh)) inI, ((#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) ; #3:Msg) inI || -((#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) ; #3:Msg), +(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 8 . 7 . 7 . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #5:Nonce), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #5:Nonce) ; n(b, #6:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] ) || e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, n(b, #6:Fresh) inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #5:Nonce), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #5:Nonce) ; n(b, #6:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] , e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, n(b, #6:Fresh) inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil ) || nil) < 1 . 1 . 5 . 7 . 6 . 4 . 3 . 5 . 0 . 3 . 4 > ( :: nil :: [ nil | +(mkey(i, s)), nil] & :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), nil] & :: nil :: [ nil | -(mkey(i, s)), -(e(mkey(i, s), i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh)))), +(i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(#0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(e(mkey(i, s), i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) ; #3:Msg), +(e(mkey(i, s), i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh)))), nil] & :: #1:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #1:Fresh)) | -(e(#6:Sessionkey, n(b, #1:Fresh))), nil] & :: #2:Fresh :: [ nil, -(i ; #0:UName ; n(b, #1:Fresh)), +(e(mkey(i, s), i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) ; e(mkey(#0:UName, s), i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh)))) | nil] ) || n(b, #1:Fresh) !inI, mkey(i, s) !inI, e(#6:Sessionkey, n(b, #1:Fresh)) !inI, e(mkey(i, s), i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) !inI, (i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) !inI, (#0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) !inI, (n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) !inI, (e(mkey(i, s), i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) ; #3:Msg) inI || -(e(mkey(i, s), i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) ; #3:Msg), +(e(mkey(i, s), i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh)))), +(mkey(i, s)), resuscitated(mkey(i, s)), -(mkey(i, s)), -(e(mkey(i, s), i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh)))), +(i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), -(i ; #0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(#0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), -(#0:UName ; n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), -(n(b, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(n(b, #1:Fresh)), -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), -(e(#6:Sessionkey, n(b, #1:Fresh))) || ghost( #6:Sessionkey, :: nil :: [ nil | -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), nil] & :: #1:Fresh :: [ nil, -(#4:Msg ; e(mkey(b, s), a ; b ; #5:Nonce ; #6:Sessionkey)), +(#4:Msg ; e(#6:Sessionkey, #5:Nonce) ; n(b, #1:Fresh)) | -(e(#6:Sessionkey, n(b, #1:Fresh))), nil] , e(#6:Sessionkey, n(b, #1:Fresh)) !inI, n(b, #1:Fresh) inI, -(#6:Sessionkey), -(n(b, #1:Fresh)), +(e(#6:Sessionkey, n(b, #1:Fresh))), -(e(#6:Sessionkey, n(b, #1:Fresh))), nil ) || nil ========================================== reduce in MAUDE-NPA : run(10) . rewrites: 18 in 0ms cpu (0ms real) (18000000 rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 5 . 2 . 4 > ( :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg)), +(#2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg), +(#3:Msg ; n(a, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(#3:Msg ; n(a, #4:Fresh) ; #5:Msg), +(n(a, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg)), +(e(#1:Key, #2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg)), nil] & :: nil :: [ nil | -(n(a, #4:Fresh) ; #5:Msg), +(n(a, #4:Fresh)), nil] & :: #4:Fresh :: [ nil, +(a ; b ; n(a, #4:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #4:Fresh) !inI, e(#1:Key, #2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (a ; b ; n(a, #4:Fresh)) !inI, (b ; n(a, #4:Fresh)) !inI, (#2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg) !inI, (#3:Msg ; n(a, #4:Fresh) ; #5:Msg) !inI, (n(a, #4:Fresh) ; #5:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)) !inI, (#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg)) inI || -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg)), +(e(#1:Key, #2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg)), -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg)), +(#2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg), -(#2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg), +(#3:Msg ; n(a, #4:Fresh) ; #5:Msg), -(#3:Msg ; n(a, #4:Fresh) ; #5:Msg), +(n(a, #4:Fresh) ; #5:Msg), -(n(a, #4:Fresh) ; #5:Msg), +(n(a, #4:Fresh)), -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg)), +(#2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg), +(#3:Msg ; n(a, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(#3:Msg ; n(a, #4:Fresh) ; #5:Msg), +(n(a, #4:Fresh) ; #5:Msg), nil] & :: nil :: [ nil | -(n(a, #4:Fresh) ; #5:Msg), +(n(a, #4:Fresh)), nil] & :: #4:Fresh :: [ nil, +(a ; b ; n(a, #4:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] , n(a, #4:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (a ; b ; n(a, #4:Fresh)) !inI, (b ; n(a, #4:Fresh)) !inI, (#2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg) !inI, (#3:Msg ; n(a, #4:Fresh) ; #5:Msg) !inI, (n(a, #4:Fresh) ; #5:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg) inI, -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg)), +(#2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg), -(#2:Msg ; #3:Msg ; n(a, #4:Fresh) ; #5:Msg), +(#3:Msg ; n(a, #4:Fresh) ; #5:Msg), -(#3:Msg ; n(a, #4:Fresh) ; #5:Msg), +(n(a, #4:Fresh) ; #5:Msg), -(n(a, #4:Fresh) ; #5:Msg), +(n(a, #4:Fresh)), -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 5 . 2 . 6 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(a, #3:Fresh)), -(b), +(b ; n(a, #3:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #3:Fresh)), -(a), +(a ; b ; n(a, #3:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh)), nil] & :: nil :: [ nil | -(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg) ; #5:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg)), nil] & :: #3:Fresh :: [ nil, +(a ; b ; n(a, #3:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #3:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #3:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #3:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #3:Fresh) !inI, e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (a ; b ; n(a, #3:Fresh)) !inI, (b ; n(a, #3:Fresh)) !inI, (#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg) !inI, (#2:Msg ; n(a, #3:Fresh) ; #4:Msg) !inI, (n(a, #3:Fresh) ; #4:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #3:Fresh)) ; n(b, #7:Fresh)) !inI, (e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg) ; #5:Msg) inI || -(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg) ; #5:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg)), -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), -(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), -(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh) ; #4:Msg), -(n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh)), -(n(a, #3:Fresh)), -(b), +(b ; n(a, #3:Fresh)), -(b ; n(a, #3:Fresh)), -(a), +(a ; b ; n(a, #3:Fresh)), -(a ; b ; n(a, #3:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #3:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #3:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(a, #3:Fresh)), -(b), +(b ; n(a, #3:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #3:Fresh)), -(a), +(a ; b ; n(a, #3:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh) ; #4:Msg), nil] & :: nil :: [ nil | -(n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh)), nil] & :: #3:Fresh :: [ nil, +(a ; b ; n(a, #3:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #3:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #3:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #3:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] , n(a, #3:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (a ; b ; n(a, #3:Fresh)) !inI, (b ; n(a, #3:Fresh)) !inI, (#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg) !inI, (#2:Msg ; n(a, #3:Fresh) ; #4:Msg) !inI, (n(a, #3:Fresh) ; #4:Msg) !inI, (e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #3:Fresh)) ; n(b, #7:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg)), +(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), -(#1:Msg ; #2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), -(#2:Msg ; n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh) ; #4:Msg), -(n(a, #3:Fresh) ; #4:Msg), +(n(a, #3:Fresh)), -(n(a, #3:Fresh)), -(b), +(b ; n(a, #3:Fresh)), -(b ; n(a, #3:Fresh)), -(a), +(a ; b ; n(a, #3:Fresh)), -(a ; b ; n(a, #3:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #3:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #3:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 13 . 7 . 7 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ), ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , e(#8:Sessionkey, n(b, #5:Fresh)) !inI, n(b, #5:Fresh) inI, -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 13 . 7 . 9 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg) inI || -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))) || ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , e(#8:Sessionkey, n(b, #5:Fresh)) !inI, n(b, #5:Fresh) inI, -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 13 . 7 . 10 > ( :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#9:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #10:Msg), nil] & :: nil :: [ nil | -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(b, #5:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(b, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(b, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(#8:Sessionkey, n(b, #5:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) !inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) !inI, (e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #10:Msg) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, (#9:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #10:Msg) inI, ((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg) inI || -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(#9:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #10:Msg), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh)) ; #10:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(b, #5:Fresh))), +(n(b, #5:Fresh)), -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))) || ghost( #8:Sessionkey, :: nil :: [ nil | -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), nil] & :: #5:Fresh :: [ nil, -(#6:Msg ; e(mkey(b, s), a ; b ; #7:Nonce ; #8:Sessionkey)), +(#6:Msg ; e(#8:Sessionkey, #7:Nonce) ; n(b, #5:Fresh)) | -(e(#8:Sessionkey, n(b, #5:Fresh))), nil] , e(#8:Sessionkey, n(b, #5:Fresh)) !inI, n(b, #5:Fresh) inI, -(#8:Sessionkey), -(n(b, #5:Fresh)), +(e(#8:Sessionkey, n(b, #5:Fresh))), -(e(#8:Sessionkey, n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . (8 {1}) . (13 {1}) . 11 > ( :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(b, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] ) || n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg) inI,( (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg), (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(b, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg) inI,( (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg), (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ), ghost( #9:Sessionkey, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , e(#9:Sessionkey, n(b, #6:Fresh)) !inI, n(b, #6:Fresh) inI, -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . (8 {1}) . (13 {1}) . 13 > ( :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(b, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] ) || n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, (#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg) inI,( (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg), (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg || -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))) || ghost( #9:Sessionkey, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , e(#9:Sessionkey, n(b, #6:Fresh)) !inI, n(b, #6:Fresh) inI, -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . (8 {1}) . (13 {1}) . 14 > ( :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #6:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] ) || n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #10:Msg) inI, ((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg) inI,( (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #10:Msg), (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #10:Msg || -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))) || ghost( #9:Sessionkey, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , e(#9:Sessionkey, n(b, #6:Fresh)) !inI, n(b, #6:Fresh) inI, -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 11 . 12 . 12 . 10 > ( :: nil :: [ nil | -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(#8:Msg ; e(mkey(b, s), a ; b ; #9:Nonce ; #10:Sessionkey)), +(#8:Msg ; e(#10:Sessionkey, #9:Nonce) ; n(b, #7:Fresh)) | -(e(#10:Sessionkey, n(b, #7:Fresh))), nil] ) || n(b, #7:Fresh) !inI, e(#10:Sessionkey, n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), -(e(#10:Sessionkey, n(b, #7:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(#8:Msg ; e(mkey(b, s), a ; b ; #9:Nonce ; #10:Sessionkey)), +(#8:Msg ; e(#10:Sessionkey, #9:Nonce) ; n(b, #7:Fresh)) | -(e(#10:Sessionkey, n(b, #7:Fresh))), nil] , n(b, #7:Fresh) !inI, e(#10:Sessionkey, n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), -(e(#10:Sessionkey, n(b, #7:Fresh))), nil ), ghost( #10:Sessionkey, :: nil :: [ nil | -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), nil] & :: #7:Fresh :: [ nil, -(#8:Msg ; e(mkey(b, s), a ; b ; #9:Nonce ; #10:Sessionkey)), +(#8:Msg ; e(#10:Sessionkey, #9:Nonce) ; n(b, #7:Fresh)) | -(e(#10:Sessionkey, n(b, #7:Fresh))), nil] , e(#10:Sessionkey, n(b, #7:Fresh)) !inI, n(b, #7:Fresh) inI, -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), -(e(#10:Sessionkey, n(b, #7:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 . 13 . 11 . 5 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(#7:Msg ; #6:Msg ; n(b, #5:Fresh)), +(#6:Msg ; n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] & :: #3:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#6:Msg ; n(b, #5:Fresh)) !inI, seskey(a, b, n(s, #3:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) inI, (#7:Msg ; #6:Msg ; n(b, #5:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), -(#7:Msg ; #6:Msg ; n(b, #5:Fresh)), +(#6:Msg ; n(b, #5:Fresh)), -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), resuscitated(seskey(a, b, n(s, #3:Fresh))), -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(#7:Msg ; #6:Msg ; n(b, #5:Fresh)), +(#6:Msg ; n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] & :: #3:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] , n(b, #5:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#6:Msg ; n(b, #5:Fresh)) !inI, seskey(a, b, n(s, #3:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) inI, (#7:Msg ; #6:Msg ; n(b, #5:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), -(#7:Msg ; #6:Msg ; n(b, #5:Fresh)), +(#6:Msg ; n(b, #5:Fresh)), -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), resuscitated(seskey(a, b, n(s, #3:Fresh))), -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 . 13 . 11 . 11 > ( :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(#7:Msg ; #6:Msg ; n(b, #5:Fresh)), +(#6:Msg ; n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] & :: #3:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#2:Msg ; seskey(a, b, n(s, #3:Fresh))) !inI, (#6:Msg ; n(b, #5:Fresh)) !inI, seskey(a, b, n(s, #3:Fresh)) !inI, (#7:Msg ; #6:Msg ; n(b, #5:Fresh)) inI, (#0:Msg ; #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))) inI || -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#1:Msg ; #2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), -(#2:Msg ; seskey(a, b, n(s, #3:Fresh))), +(seskey(a, b, n(s, #3:Fresh))), -(#7:Msg ; #6:Msg ; n(b, #5:Fresh)), +(#6:Msg ; n(b, #5:Fresh)), -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), resuscitated(seskey(a, b, n(s, #3:Fresh))), -(seskey(a, b, n(s, #3:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #5:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 . 13 . 11 . 12 > ( :: nil :: [ nil | -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(#7:Msg ; #6:Msg ; n(b, #5:Fresh)), +(#6:Msg ; n(b, #5:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) ; #3:Msg), +(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))), nil] & :: #2:Fresh :: [ nil, -(a ; b ; #4:Nonce), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh)))) | nil] & :: #5:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(mkey(b, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh)))), +(e(mkey(a, s), a ; b ; #4:Nonce ; seskey(a, b, n(s, #2:Fresh))) ; e(seskey(a, b, n(s, #2:Fresh)), #4:Nonce) ; n(b, #5:Fresh)) | -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))), nil] ) || n(b, #5:Fresh) !inI, e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh)) !inI, (#1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, (#6:Msg ; n(b, #5:Fresh)) !inI, (#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) !inI, seskey(a, b, n(s, #2:Fresh)) !inI, (#7:Msg ; #6:Msg ; n(b, #5:Fresh)) inI, ((#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) ; #3:Msg) inI || -((#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))) ; #3:Msg), +(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#0:Msg ; #1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), -(#1:Msg ; seskey(a, b, n(s, #2:Fresh))), +(seskey(a, b, n(s, #2:Fresh))), -(#7:Msg ; #6:Msg ; n(b, #5:Fresh)), +(#6:Msg ; n(b, #5:Fresh)), -(#6:Msg ; n(b, #5:Fresh)), +(n(b, #5:Fresh)), resuscitated(seskey(a, b, n(s, #2:Fresh))), -(seskey(a, b, n(s, #2:Fresh))), -(n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #2:Fresh)), n(b, #5:Fresh))) || nil || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 9 . 9 . 9 . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#7:Msg ; n(b, #6:Fresh)), +(n(b, #6:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #5:Nonce), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #5:Nonce) ; n(b, #6:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] ) || n(b, #6:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) inI, (#7:Msg ; n(b, #6:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), -(#7:Msg ; n(b, #6:Fresh)), +(n(b, #6:Fresh)), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#7:Msg ; n(b, #6:Fresh)), +(n(b, #6:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #5:Nonce), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #5:Nonce) ; n(b, #6:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] , n(b, #6:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) inI, (#7:Msg ; n(b, #6:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), -(#7:Msg ; n(b, #6:Fresh)), +(n(b, #6:Fresh)), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 8 . 7 . 7 . 4 . 5 > ( :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] & :: #5:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] ) || e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, seskey(a, b, n(s, #5:Fresh)) !inI, n(b, #7:Fresh) inI, (#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))) inI || -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), resuscitated(seskey(a, b, n(s, #5:Fresh))), -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] & :: #5:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] , e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, seskey(a, b, n(s, #5:Fresh)) !inI, n(b, #7:Fresh) inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) inI, -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), resuscitated(seskey(a, b, n(s, #5:Fresh))), -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 8 . 7 . 7 . 4 . 11 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) ; #5:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] ) || e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, n(b, #7:Fresh) inI, (e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) ; #5:Msg) inI || -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) ; #5:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] , e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, n(b, #7:Fresh) inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil ) || nil) < 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 > ( :: nil :: [ nil | -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #3:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #3:Fresh)), n(a, #0:Fresh))), +(n(a, #0:Fresh)), nil] & :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #3:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #0:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh)))) | nil] & :: #0:Fresh :: [ nil, +(a ; b ; n(a, #0:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || n(a, #0:Fresh) !inI, e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #3:Fresh)), n(a, #0:Fresh)) inI, seskey(#4:UName, #5:UName, n(s, #3:Fresh)) inI || resuscitated(seskey(#4:UName, #5:UName, n(s, #3:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #3:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #3:Fresh)), n(a, #0:Fresh))), +(n(a, #0:Fresh)), -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil ========================================== reduce in MAUDE-NPA : run(11) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 13 . 7 . (9 {2}) . 11 > ( :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(b, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] ) || n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (#10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg) inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != #10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(b, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (#10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg) inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != #10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ), ghost( #9:Sessionkey, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , e(#9:Sessionkey, n(b, #6:Fresh)) !inI, n(b, #6:Fresh) inI, -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 13 . 7 . (9 {2}) . 13 > ( :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(b, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(b, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] ) || n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, (#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (#10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg) inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != #10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg || -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#10:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))) || ghost( #9:Sessionkey, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , e(#9:Sessionkey, n(b, #6:Fresh)) !inI, n(b, #6:Fresh) inI, -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 13 . 7 . (9 {2}) . 14 > ( :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#10:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #11:Msg), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(b, #6:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(b, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(b, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] ) || n(b, #6:Fresh) !inI, e(#9:Sessionkey, n(b, #6:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #11:Msg) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, (#10:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #11:Msg) inI, ((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg) inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != #10:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #11:Msg || -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#10:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #11:Msg), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh)) ; #11:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(b, #6:Fresh))), +(n(b, #6:Fresh)), -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))) || ghost( #9:Sessionkey, :: nil :: [ nil | -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), nil] & :: #6:Fresh :: [ nil, -(#7:Msg ; e(mkey(b, s), a ; b ; #8:Nonce ; #9:Sessionkey)), +(#7:Msg ; e(#9:Sessionkey, #8:Nonce) ; n(b, #6:Fresh)) | -(e(#9:Sessionkey, n(b, #6:Fresh))), nil] , e(#9:Sessionkey, n(b, #6:Fresh)) !inI, n(b, #6:Fresh) inI, -(#9:Sessionkey), -(n(b, #6:Fresh)), +(e(#9:Sessionkey, n(b, #6:Fresh))), -(e(#9:Sessionkey, n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . (8 {1}) . (13 {1}) . (13 {1}) . 11 > ( :: nil :: [ nil | -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(#8:Msg ; e(mkey(b, s), a ; b ; #9:Nonce ; #10:Sessionkey)), +(#8:Msg ; e(#10:Sessionkey, #9:Nonce) ; n(b, #7:Fresh)) | -(e(#10:Sessionkey, n(b, #7:Fresh))), nil] ) || n(b, #7:Fresh) !inI, e(#10:Sessionkey, n(b, #7:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg),( (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg), (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), -(e(#10:Sessionkey, n(b, #7:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(#8:Msg ; e(mkey(b, s), a ; b ; #9:Nonce ; #10:Sessionkey)), +(#8:Msg ; e(#10:Sessionkey, #9:Nonce) ; n(b, #7:Fresh)) | -(e(#10:Sessionkey, n(b, #7:Fresh))), nil] , n(b, #7:Fresh) !inI, e(#10:Sessionkey, n(b, #7:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg),( (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg), (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), -(e(#10:Sessionkey, n(b, #7:Fresh))), nil ), ghost( #10:Sessionkey, :: nil :: [ nil | -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), nil] & :: #7:Fresh :: [ nil, -(#8:Msg ; e(mkey(b, s), a ; b ; #9:Nonce ; #10:Sessionkey)), +(#8:Msg ; e(#10:Sessionkey, #9:Nonce) ; n(b, #7:Fresh)) | -(e(#10:Sessionkey, n(b, #7:Fresh))), nil] , e(#10:Sessionkey, n(b, #7:Fresh)) !inI, n(b, #7:Fresh) inI, -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), -(e(#10:Sessionkey, n(b, #7:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 11 . 12 . 12 . 10 . 12 > ( :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(b, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] ) || n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) inI, (#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) inI || -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(b, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) inI, -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ), ghost( #11:Sessionkey, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , e(#11:Sessionkey, n(b, #8:Fresh)) !inI, n(b, #8:Fresh) inI, -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 11 . 12 . 12 . 10 . 13 > ( :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] ) || n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) inI, (e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg) inI || -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ), ghost( #11:Sessionkey, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , e(#11:Sessionkey, n(b, #8:Fresh)) !inI, n(b, #8:Fresh) inI, -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 . 13 . 11 . 11 . 5 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#7:Msg ; n(b, #6:Fresh)), +(n(b, #6:Fresh)), nil] & :: nil :: [ nil | -(#8:Msg ; #7:Msg ; n(b, #6:Fresh)), +(#7:Msg ; n(b, #6:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #5:Nonce), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #5:Nonce) ; n(b, #6:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] ) || n(b, #6:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#7:Msg ; n(b, #6:Fresh)) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) inI, (#8:Msg ; #7:Msg ; n(b, #6:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), -(#8:Msg ; #7:Msg ; n(b, #6:Fresh)), +(#7:Msg ; n(b, #6:Fresh)), -(#7:Msg ; n(b, #6:Fresh)), +(n(b, #6:Fresh)), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#7:Msg ; n(b, #6:Fresh)), +(n(b, #6:Fresh)), nil] & :: nil :: [ nil | -(#8:Msg ; #7:Msg ; n(b, #6:Fresh)), +(#7:Msg ; n(b, #6:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #5:Nonce), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #5:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #5:Nonce) ; n(b, #6:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil] , n(b, #6:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#7:Msg ; n(b, #6:Fresh)) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) inI, (#8:Msg ; #7:Msg ; n(b, #6:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), -(#8:Msg ; #7:Msg ; n(b, #6:Fresh)), +(#7:Msg ; n(b, #6:Fresh)), -(#7:Msg ; n(b, #6:Fresh)), +(n(b, #6:Fresh)), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #6:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 9 . 9 . 9 . 4 . 5 > ( :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), nil] & :: nil :: [ nil | -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] & :: #5:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] ) || n(b, #7:Fresh) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, seskey(a, b, n(s, #5:Fresh)) !inI, (#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))) inI, (#8:Msg ; n(b, #7:Fresh)) inI || -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), resuscitated(seskey(a, b, n(s, #5:Fresh))), -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] & :: #5:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] , n(b, #7:Fresh) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, seskey(a, b, n(s, #5:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) inI, (#8:Msg ; n(b, #7:Fresh)) inI, -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), resuscitated(seskey(a, b, n(s, #5:Fresh))), -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 9 . 9 . 9 . 4 . 12 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) ; #5:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] ) || n(b, #7:Fresh) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, (#8:Msg ; n(b, #7:Fresh)) inI, (e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) ; #5:Msg) inI || -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) ; #5:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] , n(b, #7:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) inI, (#8:Msg ; n(b, #7:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 > ( :: nil :: [ nil | -(n(a, #3:Fresh)), -(b), +(b ; n(a, #3:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #3:Fresh)), -(a), +(a ; b ; n(a, #3:Fresh)), nil] & :: nil :: [ nil | -(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(a, #3:Fresh)) ; #4:Msg), +(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(a, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(#0:UName, #1:UName, n(s, #2:Fresh))), -(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(a, #3:Fresh))), +(n(a, #3:Fresh)), nil] & :: #2:Fresh :: [ nil, -(#0:UName ; #1:UName ; n(a, #3:Fresh)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(a, #3:Fresh) ; seskey(#0:UName, #1:UName, n(s, #2:Fresh))) ; e(mkey(#1:UName, s), #0:UName ; #1:UName ; n(a, #3:Fresh) ; seskey(#0:UName, #1:UName, n(s, #2:Fresh)))) | nil] & :: #3:Fresh :: [ nil, +(a ; b ; n(a, #3:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: #5:Fresh :: [ nil | -(a ; b ; n(a, #3:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), nil] & :: #6:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] ) || n(a, #3:Fresh) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(a, #3:Fresh)) !inI, (a ; b ; n(a, #3:Fresh)) !inI, (b ; n(a, #3:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)) !inI, (e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(a, #3:Fresh)) ; #4:Msg) inI, seskey(#0:UName, #1:UName, n(s, #2:Fresh)) inI || -(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(a, #3:Fresh)) ; #4:Msg), +(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(a, #3:Fresh))), resuscitated(seskey(#0:UName, #1:UName, n(s, #2:Fresh))), -(seskey(#0:UName, #1:UName, n(s, #2:Fresh))), -(e(seskey(#0:UName, #1:UName, n(s, #2:Fresh)), n(a, #3:Fresh))), +(n(a, #3:Fresh)), -(n(a, #3:Fresh)), -(b), +(b ; n(a, #3:Fresh)), -(b ; n(a, #3:Fresh)), -(a), +(a ; b ; n(a, #3:Fresh)), -(a ; b ; n(a, #3:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #3:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #3:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 11 > ( :: nil :: [ nil | -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), +(n(a, #4:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(a, #4:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(a, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(a, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #4:Fresh :: [ nil, +(a ; b ; n(a, #4:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: #5:Fresh :: [ nil | -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), nil] & :: #6:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] ) || n(a, #4:Fresh) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, (a ; b ; n(a, #4:Fresh)) !inI, (b ; n(a, #4:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) inI || -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), +(n(a, #4:Fresh)), -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 5 . 2 . 4 . 7 . 0 > ( :: nil :: [ nil | -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(mkey(#5:UName, s)), -(e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh)))), +(#4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(#4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(#5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(n(a, #0:Fresh)), nil] & :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #3:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #0:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh)))) | nil] & :: #0:Fresh :: [ nil, +(a ; b ; n(a, #0:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || n(a, #0:Fresh) !inI, e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (b ; n(a, #0:Fresh)) !inI, (#4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))) !inI, (#5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))) !inI, (n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI, mkey(#5:UName, s) inI, e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))) inI || resuscitated(mkey(#5:UName, s)), -(mkey(#5:UName, s)), -(e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh)))), +(#4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), -(#4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(#5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), -(#5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), -(n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(n(a, #0:Fresh)), -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) < 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 5 . 2 . 6 . 8 . 0 > ( :: nil :: [ nil | -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(mkey(#4:UName, s)), -(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh)))), +(#4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(#4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(#5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(n(a, #0:Fresh)), nil] & :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #3:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #0:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh)))) | nil] & :: #0:Fresh :: [ nil, +(a ; b ; n(a, #0:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || n(a, #0:Fresh) !inI, e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (b ; n(a, #0:Fresh)) !inI, (#4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))) !inI, (#5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))) !inI, (n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI, mkey(#4:UName, s) inI, e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))) inI || resuscitated(mkey(#4:UName, s)), -(mkey(#4:UName, s)), -(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh)))), +(#4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), -(#4:UName ; #5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(#5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), -(#5:UName ; n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), -(n(a, #0:Fresh) ; seskey(#4:UName, #5:UName, n(s, #3:Fresh))), +(n(a, #0:Fresh)), -(n(a, #0:Fresh)), -(b), +(b ; n(a, #0:Fresh)), -(b ; n(a, #0:Fresh)), -(a), +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil ========================================== reduce in MAUDE-NPA : run(12) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 13 . 7 . (9 {2}) . (13 {2}) . 11 > ( :: nil :: [ nil | -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(#8:Msg ; e(mkey(b, s), a ; b ; #9:Nonce ; #10:Sessionkey)), +(#8:Msg ; e(#10:Sessionkey, #9:Nonce) ; n(b, #7:Fresh)) | -(e(#10:Sessionkey, n(b, #7:Fresh))), nil] ) || n(b, #7:Fresh) !inI, e(#10:Sessionkey, n(b, #7:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), -(e(#10:Sessionkey, n(b, #7:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(#8:Msg ; e(mkey(b, s), a ; b ; #9:Nonce ; #10:Sessionkey)), +(#8:Msg ; e(#10:Sessionkey, #9:Nonce) ; n(b, #7:Fresh)) | -(e(#10:Sessionkey, n(b, #7:Fresh))), nil] , n(b, #7:Fresh) !inI, e(#10:Sessionkey, n(b, #7:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #7:Fresh))), +(n(b, #7:Fresh)), -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), -(e(#10:Sessionkey, n(b, #7:Fresh))), nil ), ghost( #10:Sessionkey, :: nil :: [ nil | -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), nil] & :: #7:Fresh :: [ nil, -(#8:Msg ; e(mkey(b, s), a ; b ; #9:Nonce ; #10:Sessionkey)), +(#8:Msg ; e(#10:Sessionkey, #9:Nonce) ; n(b, #7:Fresh)) | -(e(#10:Sessionkey, n(b, #7:Fresh))), nil] , e(#10:Sessionkey, n(b, #7:Fresh)) !inI, n(b, #7:Fresh) inI, -(#10:Sessionkey), -(n(b, #7:Fresh)), +(e(#10:Sessionkey, n(b, #7:Fresh))), -(e(#10:Sessionkey, n(b, #7:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . (8 {1}) . (13 {1}) . (13 {1}) . 11 . 13 > ( :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), nil] & :: nil :: [ nil | -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(b, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] ) || n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, (#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) inI, (e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg) inI,( (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg),( (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg), (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg || -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(b, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) inI, (e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg) inI,( (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg),( (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg), (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg, -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ), ghost( #11:Sessionkey, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , e(#11:Sessionkey, n(b, #8:Fresh)) !inI, n(b, #8:Fresh) inI, -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . (8 {1}) . (13 {1}) . (13 {1}) . 11 . 14 > ( :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] ) || n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, (e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg) inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg),( (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg), (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg || -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg),( (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg), (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ), ghost( #11:Sessionkey, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , e(#11:Sessionkey, n(b, #8:Fresh)) !inI, n(b, #8:Fresh) inI, -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 . 13 . 11 . 11 . 5 . 6 > ( :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), nil] & :: nil :: [ nil | -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(#9:Msg ; #8:Msg ; n(b, #7:Fresh)), +(#8:Msg ; n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] & :: #5:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] ) || n(b, #7:Fresh) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#8:Msg ; n(b, #7:Fresh)) !inI, seskey(a, b, n(s, #5:Fresh)) !inI, (#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))) inI, (#9:Msg ; #8:Msg ; n(b, #7:Fresh)) inI || -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), -(#9:Msg ; #8:Msg ; n(b, #7:Fresh)), +(#8:Msg ; n(b, #7:Fresh)), -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), resuscitated(seskey(a, b, n(s, #5:Fresh))), -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(#9:Msg ; #8:Msg ; n(b, #7:Fresh)), +(#8:Msg ; n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] & :: #5:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil] , n(b, #7:Fresh) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#4:Msg ; seskey(a, b, n(s, #5:Fresh))) !inI, (#8:Msg ; n(b, #7:Fresh)) !inI, seskey(a, b, n(s, #5:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))) inI, (#9:Msg ; #8:Msg ; n(b, #7:Fresh)) inI, -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#3:Msg ; #4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), -(#4:Msg ; seskey(a, b, n(s, #5:Fresh))), +(seskey(a, b, n(s, #5:Fresh))), -(#9:Msg ; #8:Msg ; n(b, #7:Fresh)), +(#8:Msg ; n(b, #7:Fresh)), -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), resuscitated(seskey(a, b, n(s, #5:Fresh))), -(seskey(a, b, n(s, #5:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #7:Fresh))), nil ) || nil) (< 1 . 1 . 4 . 6 . 1 . 6 . 0 . 7 . 8 . 13 . 11 . 11 . 5 . 15 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(#9:Msg ; #8:Msg ; n(b, #7:Fresh)), +(#8:Msg ; n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) ; #5:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] ) || n(b, #7:Fresh) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#8:Msg ; n(b, #7:Fresh)) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, (#9:Msg ; #8:Msg ; n(b, #7:Fresh)) inI, (e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) ; #5:Msg) inI || -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) ; #5:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), -(#9:Msg ; #8:Msg ; n(b, #7:Fresh)), +(#8:Msg ; n(b, #7:Fresh)), -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(#9:Msg ; #8:Msg ; n(b, #7:Fresh)), +(#8:Msg ; n(b, #7:Fresh)), nil] & :: nil :: [ nil | -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] & :: #4:Fresh :: [ nil, -(a ; b ; #6:Nonce), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))) | nil] & :: #7:Fresh :: [ nil, -(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; #6:Nonce ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), #6:Nonce) ; n(b, #7:Fresh)) | -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil] , n(b, #7:Fresh) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#3:Msg ; seskey(a, b, n(s, #4:Fresh))) !inI, (#8:Msg ; n(b, #7:Fresh)) !inI, seskey(a, b, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))) inI, (#9:Msg ; #8:Msg ; n(b, #7:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#2:Msg ; #3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), -(#3:Msg ; seskey(a, b, n(s, #4:Fresh))), +(seskey(a, b, n(s, #4:Fresh))), -(#9:Msg ; #8:Msg ; n(b, #7:Fresh)), +(#8:Msg ; n(b, #7:Fresh)), -(#8:Msg ; n(b, #7:Fresh)), +(n(b, #7:Fresh)), resuscitated(seskey(a, b, n(s, #4:Fresh))), -(seskey(a, b, n(s, #4:Fresh))), -(n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #7:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 10 > ( :: nil :: [ nil | -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #5:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #5:Msg), nil] & :: nil :: [ nil | -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #5:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), +(n(a, #4:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(a, #4:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(a, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(a, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #4:Fresh :: [ nil, +(a ; b ; n(a, #4:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #4:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) !inI, (a ; b ; n(a, #4:Fresh)) !inI, (b ; n(a, #4:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)) !inI, (e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #5:Msg) !inI, (#0:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #5:Msg) inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) inI || -(#0:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #5:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #5:Msg), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #5:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), +(n(a, #4:Fresh)), -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #4:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 11 > ( :: nil :: [ nil | -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #7:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), +(n(a, #4:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(a, #4:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(a, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(a, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #4:Fresh :: [ nil, +(a ; b ; n(a, #4:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: #5:Fresh :: [ nil | -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), nil] & :: #6:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] ) || n(a, #4:Fresh) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) !inI, (a ; b ; n(a, #4:Fresh)) !inI, (b ; n(a, #4:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) inI, (e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #7:Msg) inI || -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #7:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), +(n(a, #4:Fresh)), -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 11 . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] , n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 11 . 12 > ( :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI || -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 11 . 13 > ( :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(a, #5:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(a, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(a, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) inI, ((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg) inI || -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 5 . 2 . 4 . 7 . 0 . 3 > ( :: nil :: [ nil | +(mkey(i, s)), nil] & :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(mkey(i, s)), -(e(mkey(i, s), #1:UName ; i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh)))), +(#1:UName ; i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(#1:UName ; i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(n(a, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #0:Fresh :: [ nil, -(#1:UName ; i ; n(a, #2:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))) ; e(mkey(i, s), #1:UName ; i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh)))) | nil] ) || n(a, #2:Fresh) !inI, mkey(i, s) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))) !inI, (#1:UName ; i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))) !inI, (n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)) !inI, e(mkey(i, s), #1:UName ; i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))) inI || +(mkey(i, s)), resuscitated(mkey(i, s)), -(mkey(i, s)), -(e(mkey(i, s), #1:UName ; i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh)))), +(#1:UName ; i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), -(#1:UName ; i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), -(i ; n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), -(n(a, #2:Fresh) ; seskey(#1:UName, i, n(s, #0:Fresh))), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 5 . 2 . 6 . 8 . 0 . 3 > ( :: nil :: [ nil | +(mkey(i, s)), nil] & :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(mkey(i, s)), -(e(mkey(i, s), i ; #1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh)))), +(i ; #1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(i ; #1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(#1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(#1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), nil] & :: nil :: [ nil | -(n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(n(a, #2:Fresh)), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #3:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), nil] & :: #4:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), nil] & :: #0:Fresh :: [ nil, -(i ; #1:UName ; n(a, #2:Fresh)), +(e(mkey(i, s), i ; #1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))) ; e(mkey(#1:UName, s), i ; #1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh)))) | nil] ) || n(a, #2:Fresh) !inI, mkey(i, s) !inI, e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (i ; #1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))) !inI, (#1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))) !inI, (n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)) !inI, e(mkey(i, s), i ; #1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))) inI || +(mkey(i, s)), resuscitated(mkey(i, s)), -(mkey(i, s)), -(e(mkey(i, s), i ; #1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh)))), +(i ; #1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), -(i ; #1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(#1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), -(#1:UName ; n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), -(n(a, #2:Fresh) ; seskey(i, #1:UName, n(s, #0:Fresh))), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #3:Fresh))) ; e(seskey(a, b, n(s, #3:Fresh)), n(a, #2:Fresh)) ; n(b, #4:Fresh)), +(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))), -(e(seskey(a, b, n(s, #3:Fresh)), n(b, #4:Fresh))) || nil || nil) < 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 5 . 2 . 6 . 8 . 0 . 9 > ( :: nil :: [ nil | -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(mkey(#0:UName, s)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh)))), +(#0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(#1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(#1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(n(a, #2:Fresh)), nil] & :: nil :: [ nil | -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) ; #4:Msg), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh)))), nil] & :: #2:Fresh :: [ nil, +(a ; b ; n(a, #2:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #2:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: #3:Fresh :: [ nil, -(#0:UName ; #1:UName ; n(a, #2:Fresh)), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) ; e(mkey(#1:UName, s), #0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil | -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), nil] & :: #6:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #2:Fresh)) ; n(b, #6:Fresh)), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] ) || n(a, #2:Fresh) !inI, e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, (a ; b ; n(a, #2:Fresh)) !inI, (b ; n(a, #2:Fresh)) !inI, (#1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) !inI, (#0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) !inI, (n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #2:Fresh)) ; n(b, #6:Fresh)) !inI, mkey(#0:UName, s) inI, (e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) ; #4:Msg) inI || -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))) ; #4:Msg), +(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh)))), resuscitated(mkey(#0:UName, s)), -(mkey(#0:UName, s)), -(e(mkey(#0:UName, s), #0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh)))), +(#0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), -(#0:UName ; #1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(#1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), -(#1:UName ; n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), -(n(a, #2:Fresh) ; seskey(#0:UName, #1:UName, n(s, #3:Fresh))), +(n(a, #2:Fresh)), -(n(a, #2:Fresh)), -(b), +(b ; n(a, #2:Fresh)), -(b ; n(a, #2:Fresh)), -(a), +(a ; b ; n(a, #2:Fresh)), -(a ; b ; n(a, #2:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #2:Fresh)) ; n(b, #6:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #2:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #2:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))) || nil || nil ========================================== reduce in MAUDE-NPA : run(13) . rewrites: 18 in 0ms cpu (0ms real) (18000000 rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 13 . 7 . (9 {2}) . (13 {2}) . 11 . 13 > ( :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), nil] & :: nil :: [ nil | -(#12:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), nil] & :: nil :: [ nil | -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(b, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] ) || n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, (#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) inI, (#12:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg) inI,( (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != #12:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != #12:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg || -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#12:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#12:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), nil] & :: nil :: [ nil | -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(b, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(b, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) inI, (#12:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg) inI,( (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != #12:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != #12:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg, -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#12:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ), ghost( #11:Sessionkey, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , e(#11:Sessionkey, n(b, #8:Fresh)) !inI, n(b, #8:Fresh) inI, -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ) || nil) (< 1 . 1 . 2 . 4 . 8 . 3 . 2 . 0 . 5 . 13 . 7 . (9 {2}) . (13 {2}) . 11 . 14 > ( :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#12:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), nil] & :: nil :: [ nil | -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] ) || n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, (#12:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg) inI, (e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #12:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #12:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg || -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#12:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#12:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(b, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(b, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , n(b, #8:Fresh) !inI, e(#11:Sessionkey, n(b, #8:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (#12:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #12:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #12:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#12:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh)) ; #13:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(b, #8:Fresh))), +(n(b, #8:Fresh)), -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ), ghost( #11:Sessionkey, :: nil :: [ nil | -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), nil] & :: #8:Fresh :: [ nil, -(#9:Msg ; e(mkey(b, s), a ; b ; #10:Nonce ; #11:Sessionkey)), +(#9:Msg ; e(#11:Sessionkey, #10:Nonce) ; n(b, #8:Fresh)) | -(e(#11:Sessionkey, n(b, #8:Fresh))), nil] , e(#11:Sessionkey, n(b, #8:Fresh)) !inI, n(b, #8:Fresh) inI, -(#11:Sessionkey), -(n(b, #8:Fresh)), +(e(#11:Sessionkey, n(b, #8:Fresh))), -(e(#11:Sessionkey, n(b, #8:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 10 . 9 > ( :: nil :: [ nil | -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), nil] & :: nil :: [ nil | -(#7:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #8:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #8:Msg), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #8:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), +(n(a, #4:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(a, #4:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(a, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(a, #4:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #4:Fresh :: [ nil, +(a ; b ; n(a, #4:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] & :: #5:Fresh :: [ nil | -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), nil] & :: #6:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), nil] ) || n(a, #4:Fresh) !inI, e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) !inI, (a ; b ; n(a, #4:Fresh)) !inI, (b ; n(a, #4:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)) !inI, (e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #8:Msg) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, (#7:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #8:Msg) inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) inI || -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(#7:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #8:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #8:Msg), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh)) ; #8:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #4:Fresh))), +(n(a, #4:Fresh)), -(n(a, #4:Fresh)), -(b), +(b ; n(a, #4:Fresh)), -(b ; n(a, #4:Fresh)), -(a), +(a ; b ; n(a, #4:Fresh)), -(a ; b ; n(a, #4:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #4:Fresh) ; seskey(a, b, n(s, #5:Fresh))) ; e(seskey(a, b, n(s, #5:Fresh)), n(a, #4:Fresh)) ; n(b, #6:Fresh)), +(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))), -(e(seskey(a, b, n(s, #5:Fresh)), n(b, #6:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . (11 {1}) . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg) inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg || -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] , n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg) inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . (11 {1}) . 12 > ( :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg) inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg || -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #8:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . (11 {1}) . 13 > ( :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #8:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(a, #5:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(a, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(a, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, (e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #8:Msg) inI, ((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg) inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) != e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #8:Msg || -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #8:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 11 . 12 . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(a, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] ) || n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(a, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] , n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 11 . 12 . 12 > ( :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(a, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] ) || n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) inI, (#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI || -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 11 . 12 . 13 > ( :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #6:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] ) || n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) inI, ((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg) inI || -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))) || nil || nil) < 1 . 6 . 2 . 7 . 5 . 4 . 5 . 5 . 5 . 2 . 6 . 8 . 0 . 3 . 6 > ( :: nil :: [ nil | +(mkey(i, s)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(mkey(i, s)), -(e(mkey(i, s), i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh)))), +(i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(#0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(#0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), nil] & :: nil :: [ nil | -(n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(e(mkey(i, s), i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) ; #3:Msg), +(e(mkey(i, s), i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh)))), nil] & :: #1:Fresh :: [ nil, +(a ; b ; n(a, #1:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] & :: #2:Fresh :: [ nil, -(i ; #0:UName ; n(a, #1:Fresh)), +(e(mkey(i, s), i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) ; e(mkey(#0:UName, s), i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh)))) | nil] & :: #4:Fresh :: [ nil | -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), nil] & :: #5:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), nil] ) || n(a, #1:Fresh) !inI, mkey(i, s) !inI, e(mkey(i, s), i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) !inI, e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh)) !inI, (a ; b ; n(a, #1:Fresh)) !inI, (b ; n(a, #1:Fresh)) !inI, (i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) !inI, (#0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) !inI, (n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)) !inI, (e(mkey(i, s), i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) ; #3:Msg) inI || -(e(mkey(i, s), i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))) ; #3:Msg), +(e(mkey(i, s), i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh)))), +(mkey(i, s)), resuscitated(mkey(i, s)), -(mkey(i, s)), -(e(mkey(i, s), i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh)))), +(i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), -(i ; #0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(#0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), -(#0:UName ; n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), -(n(a, #1:Fresh) ; seskey(i, #0:UName, n(s, #2:Fresh))), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), -(b), +(b ; n(a, #1:Fresh)), -(b ; n(a, #1:Fresh)), -(a), +(a ; b ; n(a, #1:Fresh)), -(a ; b ; n(a, #1:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #1:Fresh) ; seskey(a, b, n(s, #4:Fresh))) ; e(seskey(a, b, n(s, #4:Fresh)), n(a, #1:Fresh)) ; n(b, #5:Fresh)), +(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))), -(e(seskey(a, b, n(s, #4:Fresh)), n(b, #5:Fresh))) || nil || nil ========================================== reduce in MAUDE-NPA : run(14) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 10 . 9 . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#8:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (#8:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#8:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#8:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] , n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (#8:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#8:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 10 . 9 . 12 > ( :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#8:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #5:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #5:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) inI, (#8:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg) inI || -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#8:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 10 . 9 . 13 > ( :: nil :: [ nil | -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(#8:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #9:Msg), nil] & :: nil :: [ nil | -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), nil] & :: nil :: [ nil | -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), nil] & :: #3:Fresh :: [ nil, -(#1:UName ; #2:UName ; n(a, #5:Fresh)), +(e(mkey(#1:UName, s), #1:UName ; #2:UName ; n(a, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; e(mkey(#2:UName, s), #1:UName ; #2:UName ; n(a, #5:Fresh) ; seskey(#1:UName, #2:UName, n(s, #3:Fresh)))) | nil] & :: #5:Fresh :: [ nil, +(a ; b ; n(a, #5:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] & :: #6:Fresh :: [ nil | -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), nil] & :: #7:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), nil] ) || n(a, #5:Fresh) !inI, e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh)) !inI, e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) !inI, (a ; b ; n(a, #5:Fresh)) !inI, (b ; n(a, #5:Fresh)) !inI, (#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)) !inI, (e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #9:Msg) !inI, seskey(#1:UName, #2:UName, n(s, #3:Fresh)) !inI, (#8:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #9:Msg) inI, ((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg) inI || -((#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))) ; #4:Msg), +(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(#0:Msg ; seskey(#1:UName, #2:UName, n(s, #3:Fresh))), +(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(#8:Msg ; e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #9:Msg), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh)) ; #9:Msg), +(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh))), resuscitated(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(seskey(#1:UName, #2:UName, n(s, #3:Fresh))), -(e(seskey(#1:UName, #2:UName, n(s, #3:Fresh)), n(a, #5:Fresh))), +(n(a, #5:Fresh)), -(n(a, #5:Fresh)), -(b), +(b ; n(a, #5:Fresh)), -(b ; n(a, #5:Fresh)), -(a), +(a ; b ; n(a, #5:Fresh)), -(a ; b ; n(a, #5:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #5:Fresh) ; seskey(a, b, n(s, #6:Fresh))) ; e(seskey(a, b, n(s, #6:Fresh)), n(a, #5:Fresh)) ; n(b, #7:Fresh)), +(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))), -(e(seskey(a, b, n(s, #6:Fresh)), n(b, #7:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . (11 {1}) . (12 {1}) . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(a, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] ) || n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg) inI,( (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg), (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(a, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] , n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg) inI,( (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg), (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . (11 {1}) . (12 {1}) . 12 > ( :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(a, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] ) || n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, (#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg) inI,( (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg), (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg || -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #9:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . (11 {1}) . (12 {1}) . 13 > ( :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #6:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] ) || n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #9:Msg) inI, ((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg) inI,( (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #9:Msg), (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #9:Msg || -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #9:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))) || nil || nil) < 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 11 . 12 . 12 . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, +(a ; b ; n(a, #7:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] & :: #8:Fresh :: [ nil | -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), nil] & :: #9:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] ) || n(a, #7:Fresh) !inI, e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh)) !inI, (a ; b ; n(a, #7:Fresh)) !inI, (b ; n(a, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) inI || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, +(a ; b ; n(a, #7:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] & :: #8:Fresh :: [ nil | -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), nil] & :: #9:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] , n(a, #7:Fresh) !inI, e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh)) !inI, (a ; b ; n(a, #7:Fresh)) !inI, (b ; n(a, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil ) || nil ========================================== reduce in MAUDE-NPA : run(15) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 10 . 9 . (12 {2}) . 3 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(a, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] ) || n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (#9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg) inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != #9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(a, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] , n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (#9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg) inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != #9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 10 . 9 . (12 {2}) . 12 > ( :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), nil] & :: nil :: [ nil | -(#9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), nil] & :: nil :: [ nil | -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #5:Fresh :: [ nil, -(#3:UName ; #4:UName ; n(a, #6:Fresh)), +(e(mkey(#3:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) ; e(mkey(#4:UName, s), #3:UName ; #4:UName ; n(a, #6:Fresh) ; seskey(#3:UName, #4:UName, n(s, #5:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] ) || n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, (e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg) !inI, seskey(#3:UName, #4:UName, n(s, #5:Fresh)) !inI, (#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) inI, (#9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg) inI, (#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))) != #9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg || -(#0:Msg ; #1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#1:Msg ; #2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#2:Msg ; seskey(#3:UName, #4:UName, n(s, #5:Fresh))), +(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(#9:Msg ; e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), resuscitated(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(seskey(#3:UName, #4:UName, n(s, #5:Fresh))), -(e(seskey(#3:UName, #4:UName, n(s, #5:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 10 . 9 . (12 {2}) . 13 > ( :: nil :: [ nil | -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #10:Msg), nil] & :: nil :: [ nil | -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh))), nil] & :: nil :: [ nil | -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), nil] & :: nil :: [ nil | -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), nil] & :: #4:Fresh :: [ nil, -(#2:UName ; #3:UName ; n(a, #6:Fresh)), +(e(mkey(#2:UName, s), #2:UName ; #3:UName ; n(a, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; e(mkey(#3:UName, s), #2:UName ; #3:UName ; n(a, #6:Fresh) ; seskey(#2:UName, #3:UName, n(s, #4:Fresh)))) | nil] & :: #6:Fresh :: [ nil, +(a ; b ; n(a, #6:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] & :: #7:Fresh :: [ nil | -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), nil] & :: #8:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), nil] ) || n(a, #6:Fresh) !inI, e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh)) !inI, e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) !inI, (a ; b ; n(a, #6:Fresh)) !inI, (b ; n(a, #6:Fresh)) !inI, (#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)) !inI, (e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #10:Msg) !inI, seskey(#2:UName, #3:UName, n(s, #4:Fresh)) !inI, (#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #10:Msg) inI, ((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg) inI, (#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) != #9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #10:Msg || -((#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))) ; #5:Msg), +(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#0:Msg ; #1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#1:Msg ; seskey(#2:UName, #3:UName, n(s, #4:Fresh))), +(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(#9:Msg ; e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #10:Msg), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh)) ; #10:Msg), +(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh))), resuscitated(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(seskey(#2:UName, #3:UName, n(s, #4:Fresh))), -(e(seskey(#2:UName, #3:UName, n(s, #4:Fresh)), n(a, #6:Fresh))), +(n(a, #6:Fresh)), -(n(a, #6:Fresh)), -(b), +(b ; n(a, #6:Fresh)), -(b ; n(a, #6:Fresh)), -(a), +(a ; b ; n(a, #6:Fresh)), -(a ; b ; n(a, #6:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #6:Fresh) ; seskey(a, b, n(s, #7:Fresh))) ; e(seskey(a, b, n(s, #7:Fresh)), n(a, #6:Fresh)) ; n(b, #8:Fresh)), +(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))), -(e(seskey(a, b, n(s, #7:Fresh)), n(b, #8:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . (11 {1}) . (12 {1}) . (12 {1}) . 4 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, +(a ; b ; n(a, #7:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] & :: #8:Fresh :: [ nil | -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), nil] & :: #9:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] ) || n(a, #7:Fresh) !inI, e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) !inI, (a ; b ; n(a, #7:Fresh)) !inI, (b ; n(a, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg),( (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg), (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, +(a ; b ; n(a, #7:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] & :: #8:Fresh :: [ nil | -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), nil] & :: #9:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] , n(a, #7:Fresh) !inI, e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) !inI, (a ; b ; n(a, #7:Fresh)) !inI, (b ; n(a, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg),( (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg), (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #10:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 11 . 12 . 12 . 4 . 5 > ( :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(a, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] ) || n(a, #8:Fresh) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) inI, (#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) inI || -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(a, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] , n(a, #8:Fresh) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) inI, -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil ) || nil) < 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 11 . 12 . 12 . 4 . 12 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] ) || n(a, #8:Fresh) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) inI, (e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg) inI || -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] , n(a, #8:Fresh) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) inI, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil ) || nil ========================================== reduce in MAUDE-NPA : run(16) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 10 . 9 . (12 {2}) . (12 {2}) . 3 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#10:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, +(a ; b ; n(a, #7:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] & :: #8:Fresh :: [ nil | -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), nil] & :: #9:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] ) || n(a, #7:Fresh) !inI, e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) !inI, (a ; b ; n(a, #7:Fresh)) !inI, (b ; n(a, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)) !inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (#10:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #10:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #10:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg || -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#10:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#10:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #7:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #7:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #7:Fresh :: [ nil, +(a ; b ; n(a, #7:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] & :: #8:Fresh :: [ nil | -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), nil] & :: #9:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil] , n(a, #7:Fresh) !inI, e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) !inI, (a ; b ; n(a, #7:Fresh)) !inI, (b ; n(a, #7:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)) !inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (#10:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #10:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #10:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#10:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #7:Fresh))), +(n(a, #7:Fresh)), -(n(a, #7:Fresh)), -(b), +(b ; n(a, #7:Fresh)), -(b ; n(a, #7:Fresh)), -(a), +(a ; b ; n(a, #7:Fresh)), -(a ; b ; n(a, #7:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #7:Fresh) ; seskey(a, b, n(s, #8:Fresh))) ; e(seskey(a, b, n(s, #8:Fresh)), n(a, #7:Fresh)) ; n(b, #9:Fresh)), +(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), -(e(seskey(a, b, n(s, #8:Fresh)), n(b, #9:Fresh))), nil ) || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . (11 {1}) . (12 {1}) . (12 {1}) . 4 . 6 > ( :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), nil] & :: nil :: [ nil | -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(a, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] ) || n(a, #8:Fresh) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, (#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) inI, (e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg) inI,( (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg),( (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg), (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg || -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(a, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] , n(a, #8:Fresh) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) inI, (e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg) inI,( (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg),( (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg), (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg, -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #11:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil ) || nil) < 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . (11 {1}) . (12 {1}) . (12 {1}) . 4 . 8 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] ) || n(a, #8:Fresh) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, (e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg) inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg),( (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg), (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg || -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] , n(a, #8:Fresh) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg),( (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg), (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #11:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil ) || nil ========================================== reduce in MAUDE-NPA : run(17) . rewrites: 18 in 0ms cpu (0ms real) (18000000 rewrites/second) result IdSystemSet: (< 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil) (< 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 10 . 9 . (12 {2}) . (12 {2}) . 3 . 5 > ( :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), nil] & :: nil :: [ nil | -(#11:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), nil] & :: nil :: [ nil | -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(a, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] ) || n(a, #8:Fresh) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, (e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, (#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) inI, (#11:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg) inI,( (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != #11:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != #11:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg || -(#0:Msg ; e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#11:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))) || ghost( #1:Key, :: nil :: [ nil | -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), nil] & :: nil :: [ nil | -(#11:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), nil] & :: nil :: [ nil | -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #7:Fresh :: [ nil, -(#5:UName ; #6:UName ; n(a, #8:Fresh)), +(e(mkey(#5:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) ; e(mkey(#6:UName, s), #5:UName ; #6:UName ; n(a, #8:Fresh) ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] , n(a, #8:Fresh) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, (e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg) !inI, seskey(#5:UName, #6:UName, n(s, #7:Fresh)) !inI, e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) inI, (#11:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg) inI,( (#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != #11:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), (#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))) != #11:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg, -(#1:Key), -(e(#1:Key, #2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh)))), +(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#2:Msg ; #3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#3:Msg ; #4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#4:Msg ; seskey(#5:UName, #6:UName, n(s, #7:Fresh))), +(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(#11:Msg ; e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), resuscitated(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(seskey(#5:UName, #6:UName, n(s, #7:Fresh))), -(e(seskey(#5:UName, #6:UName, n(s, #7:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil ) || nil) < 1 . 6 . 2 . 7 . 5 . 4 . 2 . 7 . 5 . 2 . 7 . 0 . 7 . 10 . 9 . (12 {2}) . (12 {2}) . 3 . 7 > ( :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), nil] & :: nil :: [ nil | -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] ) || n(a, #8:Fresh) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, (#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg) inI, (e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg || -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; #7:Msg), +(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))) || ghost( #0:Key, :: nil :: [ nil | -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), nil] & :: nil :: [ nil | -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), nil] & :: nil :: [ nil | -(#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), nil] & :: nil :: [ nil | -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), nil] & :: nil :: [ nil | -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), nil] & :: #6:Fresh :: [ nil, -(#4:UName ; #5:UName ; n(a, #8:Fresh)), +(e(mkey(#4:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) ; e(mkey(#5:UName, s), #4:UName ; #5:UName ; n(a, #8:Fresh) ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))) | nil] & :: #8:Fresh :: [ nil, +(a ; b ; n(a, #8:Fresh)) | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] & :: #9:Fresh :: [ nil | -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), nil] & :: #10:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil] , n(a, #8:Fresh) !inI, e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh)) !inI, e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) !inI, (a ; b ; n(a, #8:Fresh)) !inI, (b ; n(a, #8:Fresh)) !inI, (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)) !inI, (e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg) !inI, seskey(#4:UName, #5:UName, n(s, #6:Fresh)) !inI, e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) inI, (#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg) inI,( (#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), (#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))) != #11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg, -(#0:Key), -(e(#0:Key, #1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh)))), +(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#1:Msg ; #2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#2:Msg ; #3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#3:Msg ; seskey(#4:UName, #5:UName, n(s, #6:Fresh))), +(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(#11:Msg ; e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh)) ; #12:Msg), +(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), resuscitated(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(seskey(#4:UName, #5:UName, n(s, #6:Fresh))), -(e(seskey(#4:UName, #5:UName, n(s, #6:Fresh)), n(a, #8:Fresh))), +(n(a, #8:Fresh)), -(n(a, #8:Fresh)), -(b), +(b ; n(a, #8:Fresh)), -(b ; n(a, #8:Fresh)), -(a), +(a ; b ; n(a, #8:Fresh)), -(a ; b ; n(a, #8:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #8:Fresh) ; seskey(a, b, n(s, #9:Fresh))) ; e(seskey(a, b, n(s, #9:Fresh)), n(a, #8:Fresh)) ; n(b, #10:Fresh)), +(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), -(e(seskey(a, b, n(s, #9:Fresh)), n(b, #10:Fresh))), nil ) || nil ========================================== reduce in MAUDE-NPA : run(18) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystem: < 1 . 6 . 2 . 7 . 1 > ( :: #1:Fresh :: [ nil | -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), nil] & :: #2:Fresh :: [ nil | -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] & :: #0:Fresh :: [ nil | +(a ; b ; n(a, #0:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), nil] ) || e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh)) !inI, (a ; b ; n(a, #0:Fresh)) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))) !inI, (e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)) !inI || +(a ; b ; n(a, #0:Fresh)), -(a ; b ; n(a, #0:Fresh)), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(mkey(b, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh)))), +(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), -(e(mkey(a, s), a ; b ; n(a, #0:Fresh) ; seskey(a, b, n(s, #1:Fresh))) ; e(seskey(a, b, n(s, #1:Fresh)), n(a, #0:Fresh)) ; n(b, #2:Fresh)), +(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))), -(e(seskey(a, b, n(s, #1:Fresh)), n(b, #2:Fresh))) || nil || nil Maude> Bye. Wed Dec 5 11:09:53 CET 2012 Santiagos-MacBook-Pro:prototype-20121204 sescobar$