Santiagos-MacBook-Pro:prototype-20121204 sescobar$ examples/Needham_Schroeder_Lowe_ECB-command Wed Dec 5 02:05:35 CET 2012 \||||||||||||||||||/ --- Welcome to Maude --- /||||||||||||||||||\ Maude alpha96b built: Nov 9 2012 18:20:01 Copyright 1997-2011 SRI International Wed Dec 5 02:05:35 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: 10828198 in 14397ms cpu (14454ms real) (752068 rewrites/second) result GrammarList: ( grl #0:Msg inL => pk(#0:Msg, #1:Name) 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 pk(#1:Name, #2:Name)), (#0:Msg notLeq pk(#3:Nonce, #4:Name)), (#0:Msg notLeq n(#5:Name, #6:Fresh)), (#0:Msg notLeq #7:Name ; n(#7:Name, #8:Fresh)), #0:Msg notLeq #9:Nonce ; n(#10:Name, #11:Fresh) ; #10:Name => pk(#0:Msg, #12:Name) inL . ; grl #0:Msg notInI, (#0:Msg notLeq pk(#1:Name, #2:Name)), (#0:Msg notLeq pk(#3:Nonce, #4:Name)), (#0:Msg notLeq n(#5:Name, #6:Fresh)), (#0:Msg notLeq #7:Name ; n(#7:Name, #8:Fresh)), #0:Msg notLeq #9:Nonce ; n(#10:Name, #11:Fresh) ; #10:Name => (#0:Msg ; #12:Msg) inL . ; grl #0:Msg notInI, (#0:Msg notLeq pk(#1:Name, #2:Name)), (#0:Msg notLeq pk(#3:Nonce, #4:Name)), (#0:Msg notLeq n(#5:Name, #6:Fresh)), (#0:Msg notLeq #7:Name ; n(#7:Name, #8:Fresh)), #0:Msg notLeq #9:Nonce ; n(#10:Name, #11:Fresh) ; #10:Name => (#12:Name ; #0:Msg) inL .) | ( grl #0:Msg inL => pk(#0:Msg, #1:Name) 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 pk(#1:Name, #2:Name)), (#0:Msg notLeq pk(n(#3:Name, #4:Fresh), #5:Name)), (#0:Msg notLeq n(#6:Name, #7:Fresh)), (#0:Msg notLeq pk(n(#8:Name, #9:Fresh), #10:Name) ; pk(#8:Name, #10:Name)), #0:Msg notLeq n(#11:Name, #12:Fresh) ; #11:Name => (#13:Msg ; #0:Msg) inL .) | (errorInconsistentExceptionsInGrammarRule grl (#1:Msg ; #2:Msg) notLeq #3:Msg ; #4:Msg => (#1:Msg ; #2:Msg) inL . inGrammar grl #3:Msg inL => pk(#3:Msg, i) inL . ; grl #5:Msg inL => (#4:Msg ; #5:Msg) inL . ; grl #5:Msg inL => (#5:Msg ; #4:Msg) inL . ; grl (#1:Msg ; #2:Msg) notLeq #3:Msg ; #4:Msg => (#1:Msg ; #2:Msg) inL .) | (errorInconsistentExceptionsInGrammarRule grl n(#0:Name, #1:Fresh) notLeq #1:Nonce => n(#0:Name, #1:Fresh) inL . inGrammar grl #0:Msg inL => (#1:Msg ; #0:Msg) inL . ; grl #0:Msg inL => (#0:Msg ; #1:Msg) inL . ; grl #5:Msg inL => pk(#5:Msg, #3:Name) inL . ; grl n(#0:Name, #1:Fresh) notLeq #1:Nonce => n(#0:Name, #1:Fresh) inL .) | ( grl #0:Msg inL => pk(#0:Msg, #1:Name) 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:Name ; n(#2:Name, #3:Fresh)), #0:Msg notLeq #4:Nonce ; n(#5:Name, #6:Fresh) ; #5:Name => pk(#0:Msg, #7:Key) inL . ; grl #0:Msg notInI, (#0:Msg notLeq #1:Nonce), (#0:Msg notLeq #2:Name ; n(#2:Name, #3:Fresh)), #0:Msg notLeq #4:Nonce ; n(#5:Name, #6:Fresh) ; #5:Name => (#7:Name ; #0:Msg) inL .) | (errorNoHeuristicApplied { grl #50:Key notInI => pk(#1:Msg, #50:Key) inL ., '#1:Msg <- '#51:Msg ; '#50:Key <- '#52:Key, grl #52:Key notInI => #51:Msg inL .,none, grl #52:Key notInI => #51:Msg inL .} usingGrammar grl #50:Key notInI => pk(#1:Msg, #50:Key) inL .) | errorInconsistentExceptionsInGrammarRule grl (pk(#1:Msg, #2:Key) notLeq pk(#3:Msg, #4:Key)), (pk(#1:Msg, #2:Key) notLeq pk(#3:Name, #4:Name) ; pk(n(#3:Name, #5:Fresh), #4:Name)), pk(#1:Msg, #2:Key) notLeq pk(#3:Nonce, #4:Name) ; pk(n(#5:Name, #6:Fresh), #4:Name) ; pk( #5:Name, #4:Name) => pk(#1:Msg, #2:Key) inL . inGrammar grl #3:Msg inL => pk(#3:Msg, i) inL . ; grl #5:Msg inL => (#4:Msg ; #5:Msg) inL . ; grl #5:Msg inL => (#5:Msg ; #4:Msg) inL . ; grl (pk(#1:Msg, #2:Key) notLeq pk(#3:Msg, #4:Key)), (pk(#1:Msg, #2:Key) notLeq pk(#3:Name, #4:Name) ; pk(n(#3:Name, #5:Fresh), #4:Name)), pk(#1:Msg, #2:Key) notLeq pk(#3:Nonce, #4:Name) ; pk(n(#5:Name, #6:Fresh), #4:Name) ; pk( #5:Name, #4:Name) => pk(#1:Msg, #2:Key) inL . ========================================== reduce in MAUDE-NPA : run(0) . rewrites: 2515 in 29ms cpu (30ms real) (84246 rewrites/second) result IdSystem: < 1 > :: r:Fresh :: [ nil, -(pk(a ; NA:Nonce, b)), +(pk(NA:Nonce ; n(b, r:Fresh) ; b, a)), -(pk(n(b, r:Fresh), b)) | nil] || n(b, r:Fresh) inI || nil || nil || nil ========================================== reduce in MAUDE-NPA : summary(1) . rewrites: 1354102 in 1781ms cpu (1797ms real) (759917 rewrites/second) result Summary: States>> 4 Solutions>> 0 ========================================== reduce in MAUDE-NPA : summary(2) . rewrites: 2844958 in 3723ms cpu (3751ms real) (764071 rewrites/second) result Summary: States>> 9 Solutions>> 0 ========================================== reduce in MAUDE-NPA : summary(3) . rewrites: 7933498 in 10486ms cpu (10544ms real) (756560 rewrites/second) result Summary: States>> 10 Solutions>> 0 ========================================== reduce in MAUDE-NPA : summary(4) . rewrites: 11001585 in 14346ms cpu (14429ms real) (766842 rewrites/second) result Summary: States>> 9 Solutions>> 0 ========================================== reduce in MAUDE-NPA : summary(5) . rewrites: 19369298 in 33512ms cpu (33651ms real) (577964 rewrites/second) result Summary: States>> 11 Solutions>> 0 ========================================== reduce in MAUDE-NPA : summary(6) . rewrites: 20412783 in 30591ms cpu (30717ms real) (667261 rewrites/second) result Summary: States>> 6 Solutions>> 0 ========================================== reduce in MAUDE-NPA : summary(7) . rewrites: 7316653 in 10817ms cpu (10860ms real) (676341 rewrites/second) result Summary: States>> 4 Solutions>> 1 ========================================== reduce in MAUDE-NPA : summary(8) . rewrites: 4515999 in 4903ms cpu (4919ms real) (920999 rewrites/second) result Summary: States>> 8 Solutions>> 2 ========================================== reduce in MAUDE-NPA : summary(9) . rewrites: 6436432 in 6782ms cpu (6805ms real) (948944 rewrites/second) result Summary: States>> 10 Solutions>> 3 ========================================== reduce in MAUDE-NPA : summary(10) . rewrites: 14683810 in 15359ms cpu (15396ms real) (955981 rewrites/second) result Summary: States>> 14 Solutions>> 3 ========================================== reduce in MAUDE-NPA : summary(11) . rewrites: 22482775 in 23065ms cpu (23140ms real) (974746 rewrites/second) result Summary: States>> 8 Solutions>> 3 ========================================== reduce in MAUDE-NPA : summary(12) . rewrites: 7224182 in 6942ms cpu (6968ms real) (1040625 rewrites/second) result Summary: States>> 4 Solutions>> 3 ========================================== reduce in MAUDE-NPA : summary(13) . rewrites: 1168868 in 1188ms cpu (1194ms real) (983696 rewrites/second) result Summary: States>> 3 Solutions>> 3 ========================================== reduce in MAUDE-NPA : run(1) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 > ( :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || n(b, #0:Fresh) !inI, pk(n(b, #0:Fresh), b) inI, pk(n(b, #0:Fresh), i) inI || -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 3 > ( :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || pk(n(b, #0:Fresh), b) !inI, n(b, #0:Fresh) inI || -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 5 > ( :: nil :: [ nil | -(#0:Msg ; n(b, #1:Fresh)), +(n(b, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || n(b, #1:Fresh) !inI, pk(n(b, #1:Fresh), b) inI, (#0:Msg ; n(b, #1:Fresh)) inI || -(#0:Msg ; n(b, #1:Fresh)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) < 1 . 7 > ( :: nil :: [ nil | -(n(b, #0:Fresh) ; #1:Msg), +(n(b, #0:Fresh)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || n(b, #0:Fresh) !inI, pk(n(b, #0:Fresh), b) inI, (n(b, #0:Fresh) ; #1:Msg) inI || -(n(b, #0:Fresh) ; #1:Msg), +(n(b, #0:Fresh)), -(pk(n(b, #0:Fresh), b)) || nil || nil ========================================== reduce in MAUDE-NPA : run(2) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 . 5 > ( :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(b, #1:Fresh), i)), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || pk(n(b, #1:Fresh), i) !inI, n(b, #1:Fresh) !inI, pk(n(b, #1:Fresh), b) inI, (#0:Msg ; pk(n(b, #1:Fresh), i)) inI || -(#0:Msg ; pk(n(b, #1:Fresh), i)), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 > ( :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #1:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || pk(n(b, #0:Fresh), i) !inI, n(b, #0:Fresh) !inI, pk(n(b, #0:Fresh), b) inI, (pk(n(b, #0:Fresh), i) ; #1:Msg) inI || -(pk(n(b, #0:Fresh), i) ; #1:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 2 . 11 > ( :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: #2:Fresh :: [ nil, +(pk(#3:Name ; n(#3:Name, #2:Fresh), i)) | -(pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; i, #3:Name)), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || pk(n(b, #0:Fresh), i) !inI, n(b, #0:Fresh) !inI, pk(n(b, #0:Fresh), b) inI, pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; i, #3:Name) inI || -(pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; i, #3:Name)), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 3 . 2 > ( :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || pk(n(b, #0:Fresh), b) !inI, n(b, #0:Fresh) !inI, pk(n(b, #0:Fresh), i) inI || -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 3 . 3 > ( :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(#0:Msg ; n(b, #1:Fresh)), +(n(b, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || pk(n(b, #1:Fresh), b) !inI, n(b, #1:Fresh) !inI, (#0:Msg ; n(b, #1:Fresh)) inI || -(#0:Msg ; n(b, #1:Fresh)), +(n(b, #1:Fresh)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 3 . 4 > ( :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh) ; #1:Msg), +(n(b, #0:Fresh)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || pk(n(b, #0:Fresh), b) !inI, n(b, #0:Fresh) !inI, (n(b, #0:Fresh) ; #1:Msg) inI || -(n(b, #0:Fresh) ; #1:Msg), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 5 . 8 > ( :: 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, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || n(b, #1:Fresh) !inI, (#0:Msg ; n(b, #1:Fresh)) !inI, pk(n(b, #1:Fresh), b) 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)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 7 . 7 > ( :: 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, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || n(b, #1:Fresh) !inI, (n(b, #1:Fresh) ; #2:Msg) !inI, pk(n(b, #1:Fresh), b) 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)), -(pk(n(b, #1:Fresh), b)) || nil || nil) < 1 . 7 . 9 > ( :: 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, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || n(b, #0:Fresh) !inI, (n(b, #0:Fresh) ; #1:Msg) !inI, pk(n(b, #0:Fresh), b) 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)), -(pk(n(b, #0:Fresh), b)) || nil || nil ========================================== reduce in MAUDE-NPA : run(3) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 . 9 . 4 > ( :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i) ; #2:Msg), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || pk(n(b, #1:Fresh), i) !inI, n(b, #1:Fresh) !inI, (pk(n(b, #1:Fresh), i) ; #2:Msg) !inI, pk(n(b, #1:Fresh), b) inI, (#0:Msg ; pk(n(b, #1:Fresh), i) ; #2:Msg) inI || -(#0:Msg ; pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i) ; #2:Msg), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 > ( :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #2:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), #3:Name)), +(pk(n(b, #0:Fresh) ; n(#3:Name, #2:Fresh) ; #3:Name, i)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || pk(n(b, #0:Fresh), i) !inI, pk(n(b, #0:Fresh) ; n(#3:Name, #2:Fresh) ; #3:Name, i) !inI, n(b, #0:Fresh) !inI, pk(n(b, #0:Fresh), b) inI, pk(i ; n(b, #0:Fresh), #3:Name) inI || -(pk(i ; n(b, #0:Fresh), #3:Name)), +(pk(n(b, #0:Fresh) ; n(#3:Name, #2:Fresh) ; #3:Name, i)), -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 2 . 11 . 6 > ( :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), nil] & :: #1:Fresh :: [ nil, +(pk(#0:Name ; n(#0:Name, #1:Fresh), i)) | -(pk(n(#0:Name, #1:Fresh) ; n(b, #2:Fresh) ; i, #0:Name)), +(pk(n(b, #2:Fresh), i)), nil] & :: #2:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #2:Fresh) ; b, a)) | -(pk(n(b, #2:Fresh), b)), nil] ) || pk(n(b, #2:Fresh), i) !inI, n(b, #2:Fresh) !inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)) !inI, pk(n(b, #2:Fresh), b) inI, pk(n(#0:Name, #1:Fresh), #0:Name) inI, (pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)) inI || -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), -(pk(n(#0:Name, #1:Fresh) ; n(b, #2:Fresh) ; i, #0:Name)), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 3 > ( :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(b, #1:Fresh), i)), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, n(b, #1:Fresh) !inI, (#0:Msg ; pk(n(b, #1:Fresh), i)) inI || -(#0:Msg ; pk(n(b, #1:Fresh), i)), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 5 > ( :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #1:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, n(b, #0:Fresh) !inI, (pk(n(b, #0:Fresh), i) ; #1:Msg) inI || -(pk(n(b, #0:Fresh), i) ; #1:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 6 > ( :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: #2:Fresh :: [ nil, +(pk(#3:Name ; n(#3:Name, #2:Fresh), i)) | -(pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; i, #3:Name)), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, n(b, #0:Fresh) !inI, pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; i, #3:Name) inI || -(pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; i, #3:Name)), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 3 . 3 . 4 > ( :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), 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, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || pk(n(b, #1:Fresh), b) !inI, 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)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 3 . 4 . 3 > ( :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), 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, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || pk(n(b, #1:Fresh), b) !inI, 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)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 3 . 4 . 5 > ( :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), 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, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || pk(n(b, #0:Fresh), b) !inI, 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)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) < 1 . 7 . 7 . 8 > ( :: 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, -(pk(a ; #4:Nonce, b)), +(pk(#4:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || n(b, #1:Fresh) !inI, (#0:Msg ; n(b, #1:Fresh) ; #2:Msg) !inI, (n(b, #1:Fresh) ; #2:Msg) !inI, pk(n(b, #1:Fresh), b) 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)), -(pk(n(b, #1:Fresh), b)) || nil || nil ========================================== reduce in MAUDE-NPA : run(4) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 . 9 . 11 . 2 > ( :: nil :: [ nil | -(pk(i, #0:Name)), -(pk(n(b, #1:Fresh), #0:Name)), +(pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #3:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #0:Name)), +(pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i)), nil] ) || pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)) !inI, pk(n(b, #1:Fresh), b) inI, pk(n(b, #1:Fresh), #0:Name) inI || -(pk(i, #0:Name)), -(pk(n(b, #1:Fresh), #0:Name)), +(pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)), -(pk(i ; n(b, #1:Fresh), #0:Name)), +(pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i)), -(pk(n(b, #1:Fresh), i) ; #3:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || ghost( pk(i, #0:Name), :: nil :: [ nil | -(pk(i, #0:Name)), -(pk(n(b, #1:Fresh), #0:Name)), +(pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #3:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #0:Name)), +(pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i)), nil] , pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)) !inI, pk(n(b, #1:Fresh), b) inI, pk(n(b, #1:Fresh), #0:Name) inI, -(pk(i, #0:Name)), -(pk(n(b, #1:Fresh), #0:Name)), +(pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)), -(pk(i ; n(b, #1:Fresh), #0:Name)), +(pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i)), -(pk(n(b, #1:Fresh), i) ; #3:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)), nil ) || nil) (< 1 . 2 . 11 . 6 . 8 > ( :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), nil] & :: nil :: [ nil | -(n(#0:Name, #1:Fresh)), +(pk(n(#0:Name, #1:Fresh), #0:Name)), nil] & :: #1:Fresh :: [ nil, +(pk(#0:Name ; n(#0:Name, #1:Fresh), i)) | -(pk(n(#0:Name, #1:Fresh) ; n(b, #2:Fresh) ; i, #0:Name)), +(pk(n(b, #2:Fresh), i)), nil] & :: #2:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #2:Fresh) ; b, a)) | -(pk(n(b, #2:Fresh), b)), nil] ) || pk(n(b, #2:Fresh), i) !inI, pk(n(#0:Name, #1:Fresh), #0:Name) !inI, n(b, #2:Fresh) !inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)) !inI, pk(n(b, #2:Fresh), b) inI, n(#0:Name, #1:Fresh) inI, (pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)) inI || -(n(#0:Name, #1:Fresh)), +(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), -(pk(n(#0:Name, #1:Fresh) ; n(b, #2:Fresh) ; i, #0:Name)), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)) || nil || nil) (< 1 . 2 . 11 . 6 . 9 > ( :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#6:Name, #0:Fresh), #6:Name)), -(pk(n(b, #2:Fresh), #6:Name) ; pk(i, #6:Name)), +(pk(n(#6:Name, #0:Fresh), #6:Name) ; pk(n(b, #2:Fresh), #6:Name) ; pk(i, #6:Name)), nil] & :: #2:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #2:Fresh) ; b, a)) | -(pk(n(b, #2:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(#1:Name ; n(#1:Name, #0:Fresh), i)) | -(pk(n(#1:Name, #0:Fresh) ; n(b, #2:Fresh) ; i, #1:Name)), +(pk(n(b, #2:Fresh), i)), nil] & :: #4:Fresh :: [ nil, +(pk(#5:Name ; n(#5:Name, #4:Fresh), #1:Name)) | -(pk(n(#5:Name, #4:Fresh) ; n(#1:Name, #0:Fresh) ; #1:Name, #5:Name)), +(pk(n(#1:Name, #0:Fresh), #1:Name)), nil] ) || pk(n(b, #2:Fresh), i) !inI, pk(n(#1:Name, #0:Fresh), #1:Name) !inI, n(b, #2:Fresh) !inI, (pk(n(#6:Name, #0:Fresh), #6:Name) ; pk(n(b, #2:Fresh), #6:Name) ; pk(i, #6:Name)) !inI, pk(n(b, #2:Fresh), b) inI, pk(n(#5:Name, #4:Fresh) ; n(#1:Name, #0:Fresh) ; #1:Name, #5:Name) inI, (pk(n(b, #2:Fresh), #1:Name) ; pk(i, #1:Name)) inI || -(pk(n(#5:Name, #4:Fresh) ; n(#1:Name, #0:Fresh) ; #1:Name, #5:Name)), +(pk(n(#1:Name, #0:Fresh), #1:Name)), -(pk(n(#6:Name, #0:Fresh), #6:Name)), -(pk(n(b, #2:Fresh), #6:Name) ; pk(i, #6:Name)), +(pk(n(#6:Name, #0:Fresh), #6:Name) ; pk(n(b, #2:Fresh), #6:Name) ; pk(i, #6:Name)), -(pk(n(#6:Name, #0:Fresh) ; n(b, #2:Fresh) ; i, #6:Name)), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)) || nil || nil) (< 1 . 2 . 11 . 6 . 16 > ( :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#1:Name, #2:Fresh), #1:Name)), -(pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name) ; pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(#1:Name, #2:Fresh), #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name)), nil] & :: #2:Fresh :: [ nil, +(pk(#1:Name ; n(#1:Name, #2:Fresh), i)) | -(pk(n(#1:Name, #2:Fresh) ; n(b, #3:Fresh) ; i, #1:Name)), +(pk(n(b, #3:Fresh), i)), nil] & :: #3:Fresh :: [ nil, -(pk(a ; #4:Nonce, b)), +(pk(#4:Nonce ; n(b, #3:Fresh) ; b, a)) | -(pk(n(b, #3:Fresh), b)), nil] ) || pk(n(b, #3:Fresh), i) !inI, pk(n(#1:Name, #2:Fresh), #1:Name) !inI, n(b, #3:Fresh) !inI, (pk(n(#1:Name, #2:Fresh), #1:Name) ; pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)) !inI, pk(n(b, #3:Fresh), b) inI, (#0:Msg ; pk(n(#1:Name, #2:Fresh), #1:Name)) inI, (pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)) inI || -(#0:Msg ; pk(n(#1:Name, #2:Fresh), #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name)), -(pk(n(#1:Name, #2:Fresh), #1:Name)), -(pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name) ; pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)), -(pk(n(#1:Name, #2:Fresh) ; n(b, #3:Fresh) ; i, #1:Name)), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || nil || nil) (< 1 . 2 . 11 . 6 . 17 > ( :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name) ; #2:Msg), +(pk(n(#0:Name, #1:Fresh), #0:Name)), nil] & :: #1:Fresh :: [ nil, +(pk(#0:Name ; n(#0:Name, #1:Fresh), i)) | -(pk(n(#0:Name, #1:Fresh) ; n(b, #3:Fresh) ; i, #0:Name)), +(pk(n(b, #3:Fresh), i)), nil] & :: #3:Fresh :: [ nil, -(pk(a ; #4:Nonce, b)), +(pk(#4:Nonce ; n(b, #3:Fresh) ; b, a)) | -(pk(n(b, #3:Fresh), b)), nil] ) || pk(n(b, #3:Fresh), i) !inI, pk(n(#0:Name, #1:Fresh), #0:Name) !inI, n(b, #3:Fresh) !inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)) !inI, pk(n(b, #3:Fresh), b) inI, (pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)) inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; #2:Msg) inI || -(pk(n(#0:Name, #1:Fresh), #0:Name) ; #2:Msg), +(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)), -(pk(n(#0:Name, #1:Fresh) ; n(b, #3:Fresh) ; i, #0:Name)), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 5 . 2 > ( :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i) ; #2:Msg), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, n(b, #1:Fresh) !inI, (pk(n(b, #1:Fresh), i) ; #2:Msg) !inI, (#0:Msg ; pk(n(b, #1:Fresh), i) ; #2:Msg) inI || -(#0:Msg ; pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i) ; #2:Msg), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 5 . 7 > ( :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #2:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), #3:Name)), +(pk(n(b, #0:Fresh) ; n(#3:Name, #2:Fresh) ; #3:Name, i)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] ) || pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(n(b, #0:Fresh) ; n(#3:Name, #2:Fresh) ; #3:Name, i) !inI, n(b, #0:Fresh) !inI, pk(i ; n(b, #0:Fresh), #3:Name) inI || -(pk(i ; n(b, #0:Fresh), #3:Name)), +(pk(n(b, #0:Fresh) ; n(#3:Name, #2:Fresh) ; #3:Name, i)), -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 6 . 4 > ( :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), nil] & :: nil :: [ nil | -(n(b, #2:Fresh)), +(pk(n(b, #2:Fresh), b)), nil] & :: #1:Fresh :: [ nil, +(pk(#0:Name ; n(#0:Name, #1:Fresh), i)) | -(pk(n(#0:Name, #1:Fresh) ; n(b, #2:Fresh) ; i, #0:Name)), +(pk(n(b, #2:Fresh), i)), nil] & :: #2:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #2:Fresh) ; b, a)) | -(pk(n(b, #2:Fresh), b)), nil] ) || pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, n(b, #2:Fresh) !inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)) !inI, pk(n(#0:Name, #1:Fresh), #0:Name) inI, (pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)) inI || -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), -(pk(n(#0:Name, #1:Fresh) ; n(b, #2:Fresh) ; i, #0:Name)), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(n(b, #2:Fresh)), +(pk(n(b, #2:Fresh), b)), -(pk(n(b, #2:Fresh), b)) || nil || nil) < 1 . 3 . 4 . 3 . 4 > ( :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), 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, -(pk(a ; #4:Nonce, b)), +(pk(#4:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] ) || pk(n(b, #1:Fresh), b) !inI, 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)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)) || nil || nil ========================================== reduce in MAUDE-NPA : run(5) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 . 9 . 11 . (2 {1}) . 2 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #3:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #4:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh) ; n(b, #4:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, (#0:Msg ; pk(n(b, #1:Fresh), b)) inI || generatedByIntruder(pk(i, b)), -(#0:Msg ; pk(n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #4:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #3:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 5 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #0:Fresh), b)), +(pk(i, b) ; pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), b) ; #1:Msg), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #3:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), b)), +(pk(n(b, #0:Fresh) ; n(b, #4:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(n(b, #0:Fresh) ; n(b, #4:Fresh) ; b, i) !inI, n(b, #0:Fresh) !inI, (pk(i, b) ; pk(n(b, #0:Fresh), b)) !inI, (pk(n(b, #0:Fresh), b) ; #1:Msg) inI || generatedByIntruder(pk(i, b)), -(pk(n(b, #0:Fresh), b) ; #1:Msg), +(pk(n(b, #0:Fresh), b)), -(pk(i, b)), -(pk(n(b, #0:Fresh), b)), +(pk(i, b) ; pk(n(b, #0:Fresh), b)), -(pk(i ; n(b, #0:Fresh), b)), +(pk(n(b, #0:Fresh) ; n(b, #4:Fresh) ; b, i)), -(pk(n(b, #0:Fresh), i) ; #3:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #0:Fresh), b)), +(pk(i, b) ; pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #2:Fresh :: [ nil, +(pk(#3:Name ; n(#3:Name, #2:Fresh), b)) | -(pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; b, #3:Name)), +(pk(n(b, #0:Fresh), b)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), b)), +(pk(n(b, #0:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(n(b, #0:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, n(b, #0:Fresh) !inI, (pk(i, b) ; pk(n(b, #0:Fresh), b)) !inI, pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; b, #3:Name) inI || generatedByIntruder(pk(i, b)), -(pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; b, #3:Name)), +(pk(n(b, #0:Fresh), b)), -(pk(i, b)), -(pk(n(b, #0:Fresh), b)), +(pk(i, b) ; pk(n(b, #0:Fresh), b)), -(pk(i ; n(b, #0:Fresh), b)), +(pk(n(b, #0:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {2}) . 4 > ( :: nil :: [ nil | -(pk(i, #1:Name)), -(pk(n(b, #0:Fresh), #1:Name)), +(pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), #1:Name) ; #2:Msg), +(pk(n(b, #0:Fresh), #1:Name)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), #1:Name)), +(pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i)), nil] ) || pk(n(b, #0:Fresh), i) !inI, pk(n(b, #0:Fresh), #1:Name) !inI, pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i) !inI, n(b, #0:Fresh) !inI, (pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)) !inI, pk(n(b, #0:Fresh), b) inI, (pk(n(b, #0:Fresh), #1:Name) ; #2:Msg) inI, pk(n(b, #0:Fresh), b) != pk(n(b, #0:Fresh), #1:Name) || -(pk(n(b, #0:Fresh), #1:Name) ; #2:Msg), +(pk(n(b, #0:Fresh), #1:Name)), -(pk(i, #1:Name)), -(pk(n(b, #0:Fresh), #1:Name)), +(pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)), -(pk(i ; n(b, #0:Fresh), #1:Name)), +(pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i)), -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(pk(n(b, #0:Fresh), b)) || ghost( pk(i, #1:Name), :: nil :: [ nil | -(pk(i, #1:Name)), -(pk(n(b, #0:Fresh), #1:Name)), +(pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), #1:Name)), +(pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i)), nil] , pk(n(b, #0:Fresh), i) !inI, pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i) !inI, n(b, #0:Fresh) !inI, (pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)) !inI, pk(n(b, #0:Fresh), b) inI, pk(n(b, #0:Fresh), #1:Name) inI, -(pk(i, #1:Name)), -(pk(n(b, #0:Fresh), #1:Name)), +(pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)), -(pk(i ; n(b, #0:Fresh), #1:Name)), +(pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i)), -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(pk(n(b, #0:Fresh), b)), nil ) || nil) (< 1 . 2 . 9 . 11 . (2 {2}) . 5 > ( :: nil :: [ nil | -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i)), nil] ) || pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh), #2:Name) !inI, pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)) !inI, pk(n(b, #1:Fresh), b) inI, (#0:Msg ; pk(n(b, #1:Fresh), #2:Name)) inI, pk(n(b, #1:Fresh), b) != pk(n(b, #1:Fresh), #2:Name) || -(#0:Msg ; pk(n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh), #2:Name)), -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i)), -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || ghost( pk(i, #2:Name), :: nil :: [ nil | -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i)), nil] , pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)) !inI, pk(n(b, #1:Fresh), b) inI, pk(n(b, #1:Fresh), #2:Name) inI, -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i)), -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)), nil ) || nil) (< 1 . 2 . 9 . 11 . (2 {2}) . 11 > ( :: nil :: [ nil | -(pk(i, #5:Name)), -(pk(n(b, #0:Fresh), #5:Name)), +(pk(i, #5:Name) ; pk(n(b, #0:Fresh), #5:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #6:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #2:Fresh :: [ nil, +(pk(#3:Name ; n(#3:Name, #2:Fresh), #4:Name)) | -(pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; #4:Name, #3:Name)), +(pk(n(b, #0:Fresh), #4:Name)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] & :: #7:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), #5:Name)), +(pk(n(b, #0:Fresh) ; n(#5:Name, #7:Fresh) ; #5:Name, i)), nil] ) || pk(i, #5:Name) !inI, pk(n(b, #0:Fresh), i) !inI, pk(n(b, #0:Fresh), #4:Name) !inI, pk(n(b, #0:Fresh) ; n(#5:Name, #7:Fresh) ; #5:Name, i) !inI, n(b, #0:Fresh) !inI, (pk(i, #5:Name) ; pk(n(b, #0:Fresh), #5:Name)) !inI, pk(n(b, #0:Fresh), b) inI, pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; #4:Name, #3:Name) inI, pk(n(b, #0:Fresh), b) != pk(n(b, #0:Fresh), #5:Name) || generatedByIntruder(pk(i, #5:Name)), -(pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; #4:Name, #3:Name)), +(pk(n(b, #0:Fresh), #4:Name)), -(pk(i, #5:Name)), -(pk(n(b, #0:Fresh), #5:Name)), +(pk(i, #5:Name) ; pk(n(b, #0:Fresh), #5:Name)), -(pk(i ; n(b, #0:Fresh), #5:Name)), +(pk(n(b, #0:Fresh) ; n(#5:Name, #7:Fresh) ; #5:Name, i)), -(pk(n(b, #0:Fresh), i) ; #6:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 5 . 7 . 2 > ( :: nil :: [ nil | -(pk(i, #0:Name)), -(pk(n(b, #1:Fresh), #0:Name)), +(pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #3:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #0:Name)), +(pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i)), nil] ) || pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)) !inI, pk(n(b, #1:Fresh), #0:Name) inI || -(pk(i, #0:Name)), -(pk(n(b, #1:Fresh), #0:Name)), +(pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)), -(pk(i ; n(b, #1:Fresh), #0:Name)), +(pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i)), -(pk(n(b, #1:Fresh), i) ; #3:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)) || ghost( pk(i, #0:Name), :: nil :: [ nil | -(pk(i, #0:Name)), -(pk(n(b, #1:Fresh), #0:Name)), +(pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #3:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #2:Nonce, b)), +(pk(#2:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #0:Name)), +(pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i)), nil] , pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)) !inI, pk(n(b, #1:Fresh), #0:Name) inI, -(pk(i, #0:Name)), -(pk(n(b, #1:Fresh), #0:Name)), +(pk(i, #0:Name) ; pk(n(b, #1:Fresh), #0:Name)), -(pk(i ; n(b, #1:Fresh), #0:Name)), +(pk(n(b, #1:Fresh) ; n(#0:Name, #4:Fresh) ; #0:Name, i)), -(pk(n(b, #1:Fresh), i) ; #3:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)), nil ) || nil) (< 1 . 3 . 2 . 6 . 4 . 5 > ( :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), nil] & :: nil :: [ nil | -(n(b, #2:Fresh)), +(pk(n(b, #2:Fresh), b)), nil] & :: nil :: [ nil | -(n(#0:Name, #1:Fresh)), +(pk(n(#0:Name, #1:Fresh), #0:Name)), nil] & :: #1:Fresh :: [ nil, +(pk(#0:Name ; n(#0:Name, #1:Fresh), i)) | -(pk(n(#0:Name, #1:Fresh) ; n(b, #2:Fresh) ; i, #0:Name)), +(pk(n(b, #2:Fresh), i)), nil] & :: #2:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #2:Fresh) ; b, a)) | -(pk(n(b, #2:Fresh), b)), nil] ) || pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, pk(n(#0:Name, #1:Fresh), #0:Name) !inI, n(b, #2:Fresh) !inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)) !inI, n(#0:Name, #1:Fresh) inI, (pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)) inI || -(n(#0:Name, #1:Fresh)), +(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #2:Fresh), #0:Name) ; pk(i, #0:Name)), -(pk(n(#0:Name, #1:Fresh) ; n(b, #2:Fresh) ; i, #0:Name)), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(n(b, #2:Fresh)), +(pk(n(b, #2:Fresh), b)), -(pk(n(b, #2:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 6 . 4 . 6 > ( :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#6:Name, #0:Fresh), #6:Name)), -(pk(n(b, #2:Fresh), #6:Name) ; pk(i, #6:Name)), +(pk(n(#6:Name, #0:Fresh), #6:Name) ; pk(n(b, #2:Fresh), #6:Name) ; pk(i, #6:Name)), nil] & :: nil :: [ nil | -(n(b, #2:Fresh)), +(pk(n(b, #2:Fresh), b)), nil] & :: #2:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #2:Fresh) ; b, a)) | -(pk(n(b, #2:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(#1:Name ; n(#1:Name, #0:Fresh), i)) | -(pk(n(#1:Name, #0:Fresh) ; n(b, #2:Fresh) ; i, #1:Name)), +(pk(n(b, #2:Fresh), i)), nil] & :: #4:Fresh :: [ nil, +(pk(#5:Name ; n(#5:Name, #4:Fresh), #1:Name)) | -(pk(n(#5:Name, #4:Fresh) ; n(#1:Name, #0:Fresh) ; #1:Name, #5:Name)), +(pk(n(#1:Name, #0:Fresh), #1:Name)), nil] ) || pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, pk(n(#1:Name, #0:Fresh), #1:Name) !inI, n(b, #2:Fresh) !inI, (pk(n(#6:Name, #0:Fresh), #6:Name) ; pk(n(b, #2:Fresh), #6:Name) ; pk(i, #6:Name)) !inI, pk(n(#5:Name, #4:Fresh) ; n(#1:Name, #0:Fresh) ; #1:Name, #5:Name) inI, (pk(n(b, #2:Fresh), #1:Name) ; pk(i, #1:Name)) inI || -(pk(n(#5:Name, #4:Fresh) ; n(#1:Name, #0:Fresh) ; #1:Name, #5:Name)), +(pk(n(#1:Name, #0:Fresh), #1:Name)), -(pk(n(#6:Name, #0:Fresh), #6:Name)), -(pk(n(b, #2:Fresh), #6:Name) ; pk(i, #6:Name)), +(pk(n(#6:Name, #0:Fresh), #6:Name) ; pk(n(b, #2:Fresh), #6:Name) ; pk(i, #6:Name)), -(pk(n(#6:Name, #0:Fresh) ; n(b, #2:Fresh) ; i, #6:Name)), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(n(b, #2:Fresh)), +(pk(n(b, #2:Fresh), b)), -(pk(n(b, #2:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 6 . 4 . 11 > ( :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#1:Name, #2:Fresh), #1:Name)), -(pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name) ; pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)), nil] & :: nil :: [ nil | -(n(b, #3:Fresh)), +(pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(#1:Name, #2:Fresh), #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name)), nil] & :: #2:Fresh :: [ nil, +(pk(#1:Name ; n(#1:Name, #2:Fresh), i)) | -(pk(n(#1:Name, #2:Fresh) ; n(b, #3:Fresh) ; i, #1:Name)), +(pk(n(b, #3:Fresh), i)), nil] & :: #3:Fresh :: [ nil, -(pk(a ; #4:Nonce, b)), +(pk(#4:Nonce ; n(b, #3:Fresh) ; b, a)) | -(pk(n(b, #3:Fresh), b)), nil] ) || pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(#1:Name, #2:Fresh), #1:Name) !inI, n(b, #3:Fresh) !inI, (pk(n(#1:Name, #2:Fresh), #1:Name) ; pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)) !inI, (#0:Msg ; pk(n(#1:Name, #2:Fresh), #1:Name)) inI, (pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)) inI || -(#0:Msg ; pk(n(#1:Name, #2:Fresh), #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name)), -(pk(n(#1:Name, #2:Fresh), #1:Name)), -(pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name) ; pk(n(b, #3:Fresh), #1:Name) ; pk(i, #1:Name)), -(pk(n(#1:Name, #2:Fresh) ; n(b, #3:Fresh) ; i, #1:Name)), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(n(b, #3:Fresh)), +(pk(n(b, #3:Fresh), b)), -(pk(n(b, #3:Fresh), b)) || nil || nil) < 1 . 3 . 2 . 6 . 4 . 12 > ( :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)), nil] & :: nil :: [ nil | -(n(b, #3:Fresh)), +(pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name) ; #2:Msg), +(pk(n(#0:Name, #1:Fresh), #0:Name)), nil] & :: #1:Fresh :: [ nil, +(pk(#0:Name ; n(#0:Name, #1:Fresh), i)) | -(pk(n(#0:Name, #1:Fresh) ; n(b, #3:Fresh) ; i, #0:Name)), +(pk(n(b, #3:Fresh), i)), nil] & :: #3:Fresh :: [ nil, -(pk(a ; #4:Nonce, b)), +(pk(#4:Nonce ; n(b, #3:Fresh) ; b, a)) | -(pk(n(b, #3:Fresh), b)), nil] ) || pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(#0:Name, #1:Fresh), #0:Name) !inI, n(b, #3:Fresh) !inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)) !inI, (pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)) inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; #2:Msg) inI || -(pk(n(#0:Name, #1:Fresh), #0:Name) ; #2:Msg), +(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(b, #3:Fresh), #0:Name) ; pk(i, #0:Name)), -(pk(n(#0:Name, #1:Fresh) ; n(b, #3:Fresh) ; i, #0:Name)), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(n(b, #3:Fresh)), +(pk(n(b, #3:Fresh), b)), -(pk(n(b, #3:Fresh), b)) || nil || nil ========================================== reduce in MAUDE-NPA : run(6) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 . 9 . 11 . (2 {1}) . 5 . 2 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(b, #1:Fresh), b) ; #2:Msg), +(pk(n(b, #1:Fresh), b) ; #2:Msg), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), b) ; #2:Msg), +(pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, (pk(n(b, #1:Fresh), b) ; #2:Msg) !inI, (#0:Msg ; pk(n(b, #1:Fresh), b) ; #2:Msg) inI || -(#0:Msg ; pk(n(b, #1:Fresh), b) ; #2:Msg), +(pk(n(b, #1:Fresh), b) ; #2:Msg), generatedByIntruder(pk(i, b)), -(pk(n(b, #1:Fresh), b) ; #2:Msg), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, pk(a ; n(a, #0:Fresh), b) inI || -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {2}) . 4 . 6 > ( :: nil :: [ nil | -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #5:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(b, #1:Fresh), #2:Name)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #4:Nonce, b)), +(pk(#4:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i)), nil] ) || pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh), #2:Name) !inI, pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)) !inI, (pk(n(b, #1:Fresh), #2:Name) ; #3:Msg) !inI, pk(n(b, #1:Fresh), b) inI, (#0:Msg ; pk(n(b, #1:Fresh), #2:Name) ; #3:Msg) inI, pk(n(b, #1:Fresh), b) != pk(n(b, #1:Fresh), #2:Name) || -(#0:Msg ; pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), -(pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(b, #1:Fresh), #2:Name)), -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i)), -(pk(n(b, #1:Fresh), i) ; #5:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || ghost( pk(i, #2:Name), :: nil :: [ nil | -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #5:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #4:Nonce, b)), +(pk(#4:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i)), nil] , pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)) !inI, pk(n(b, #1:Fresh), b) inI, pk(n(b, #1:Fresh), #2:Name) inI, -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i)), -(pk(n(b, #1:Fresh), i) ; #5:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)), nil ) || nil) (< 1 . 3 . 2 . 5 . 7 . 2 . 4 > ( :: nil :: [ nil | -(pk(i, #1:Name)), -(pk(n(b, #0:Fresh), #1:Name)), +(pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), #1:Name) ; #2:Msg), +(pk(n(b, #0:Fresh), #1:Name)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), #1:Name)), +(pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i)), nil] ) || pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(n(b, #0:Fresh), #1:Name) !inI, pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i) !inI, n(b, #0:Fresh) !inI, (pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)) !inI, (pk(n(b, #0:Fresh), #1:Name) ; #2:Msg) inI || -(pk(n(b, #0:Fresh), #1:Name) ; #2:Msg), +(pk(n(b, #0:Fresh), #1:Name)), -(pk(i, #1:Name)), -(pk(n(b, #0:Fresh), #1:Name)), +(pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)), -(pk(i ; n(b, #0:Fresh), #1:Name)), +(pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i)), -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || ghost( pk(i, #1:Name), :: nil :: [ nil | -(pk(i, #1:Name)), -(pk(n(b, #0:Fresh), #1:Name)), +(pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), #1:Name)), +(pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i)), nil] , pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i) !inI, n(b, #0:Fresh) !inI, (pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)) !inI, pk(n(b, #0:Fresh), #1:Name) inI, -(pk(i, #1:Name)), -(pk(n(b, #0:Fresh), #1:Name)), +(pk(i, #1:Name) ; pk(n(b, #0:Fresh), #1:Name)), -(pk(i ; n(b, #0:Fresh), #1:Name)), +(pk(n(b, #0:Fresh) ; n(#1:Name, #5:Fresh) ; #1:Name, i)), -(pk(n(b, #0:Fresh), i) ; #4:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)), nil ) || nil) (< 1 . 3 . 2 . 5 . 7 . 2 . 5 > ( :: nil :: [ nil | -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i)), nil] ) || pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh), #2:Name) !inI, pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)) !inI, (#0:Msg ; pk(n(b, #1:Fresh), #2:Name)) inI || -(#0:Msg ; pk(n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh), #2:Name)), -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i)), -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)) || ghost( pk(i, #2:Name), :: nil :: [ nil | -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #3:Nonce, b)), +(pk(#3:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i)), nil] , pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)) !inI, pk(n(b, #1:Fresh), #2:Name) inI, -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #5:Fresh) ; #2:Name, i)), -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)), nil ) || nil) < 1 . 3 . 2 . 5 . 7 . 2 . 6 > ( :: nil :: [ nil | -(pk(i, #5:Name)), -(pk(n(b, #0:Fresh), #5:Name)), +(pk(i, #5:Name) ; pk(n(b, #0:Fresh), #5:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #6:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #2:Fresh :: [ nil, +(pk(#3:Name ; n(#3:Name, #2:Fresh), #4:Name)) | -(pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; #4:Name, #3:Name)), +(pk(n(b, #0:Fresh), #4:Name)), nil] & :: #0:Fresh :: [ nil, -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)) | -(pk(n(b, #0:Fresh), b)), nil] & :: #7:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), #5:Name)), +(pk(n(b, #0:Fresh) ; n(#5:Name, #7:Fresh) ; #5:Name, i)), nil] ) || pk(i, #5:Name) !inI, pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(n(b, #0:Fresh), #4:Name) !inI, pk(n(b, #0:Fresh) ; n(#5:Name, #7:Fresh) ; #5:Name, i) !inI, n(b, #0:Fresh) !inI, (pk(i, #5:Name) ; pk(n(b, #0:Fresh), #5:Name)) !inI, pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; #4:Name, #3:Name) inI || generatedByIntruder(pk(i, #5:Name)), -(pk(n(#3:Name, #2:Fresh) ; n(b, #0:Fresh) ; #4:Name, #3:Name)), +(pk(n(b, #0:Fresh), #4:Name)), -(pk(i, #5:Name)), -(pk(n(b, #0:Fresh), #5:Name)), +(pk(i, #5:Name) ; pk(n(b, #0:Fresh), #5:Name)), -(pk(i ; n(b, #0:Fresh), #5:Name)), +(pk(n(b, #0:Fresh) ; n(#5:Name, #7:Fresh) ; #5:Name, i)), -(pk(n(b, #0:Fresh), i) ; #6:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil ========================================== reduce in MAUDE-NPA : run(7) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 1 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, pk(n(a, #0:Fresh), b) inI || generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 5 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(a ; n(a, #0:Fresh)), +(pk(a ; n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, (a ; n(a, #0:Fresh)) inI || -(a ; n(a, #0:Fresh)), +(pk(a ; n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) < 1 . 3 . 2 . 5 . 7 . 2 . 4 . 6 > ( :: nil :: [ nil | -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #5:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(b, #1:Fresh), #2:Name)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #4:Nonce, b)), +(pk(#4:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i)), nil] ) || pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh), #2:Name) !inI, pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)) !inI, (pk(n(b, #1:Fresh), #2:Name) ; #3:Msg) !inI, (#0:Msg ; pk(n(b, #1:Fresh), #2:Name) ; #3:Msg) inI || -(#0:Msg ; pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), -(pk(n(b, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(b, #1:Fresh), #2:Name)), -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i)), -(pk(n(b, #1:Fresh), i) ; #5:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)) || ghost( pk(i, #2:Name), :: nil :: [ nil | -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #5:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil, -(pk(a ; #4:Nonce, b)), +(pk(#4:Nonce ; n(b, #1:Fresh) ; b, a)) | -(pk(n(b, #1:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i)), nil] , pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i) !inI, n(b, #1:Fresh) !inI, (pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)) !inI, pk(n(b, #1:Fresh), #2:Name) inI, -(pk(i, #2:Name)), -(pk(n(b, #1:Fresh), #2:Name)), +(pk(i, #2:Name) ; pk(n(b, #1:Fresh), #2:Name)), -(pk(i ; n(b, #1:Fresh), #2:Name)), +(pk(n(b, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, i)), -(pk(n(b, #1:Fresh), i) ; #5:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(n(b, #1:Fresh)), +(pk(n(b, #1:Fresh), b)), -(pk(n(b, #1:Fresh), b)), nil ) || nil ========================================== reduce in MAUDE-NPA : run(8) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 1 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), nil] & :: #2:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), -(pk(n(b, #2:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a) !inI, pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i) !inI, n(b, #2:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #2:Fresh), b)) !inI, (#0:Msg ; pk(n(a, #1:Fresh), b)) inI || -(#0:Msg ; pk(n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 4 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(n(a, #0:Fresh)), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, n(a, #0:Fresh) inI || -(n(a, #0:Fresh)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 5 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #2:Fresh :: [ nil, +(pk(#3:Name ; n(#3:Name, #2:Fresh), b)) | -(pk(n(#3:Name, #2:Fresh) ; n(a, #0:Fresh) ; b, #3:Name)), +(pk(n(a, #0:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, pk(n(#3:Name, #2:Fresh) ; n(a, #0:Fresh) ; b, #3:Name) inI || -(pk(n(#3:Name, #2:Fresh) ; n(a, #0:Fresh) ; b, #3:Name)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 6 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(pk(n(a, #0:Fresh), b) ; #1:Msg), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), nil] & :: #2:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), -(pk(n(b, #2:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a) !inI, pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i) !inI, n(b, #2:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #2:Fresh), b)) !inI, (pk(n(a, #0:Fresh), b) ; #1:Msg) inI || -(pk(n(a, #0:Fresh), b) ; #1:Msg), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 5 . 3 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(a ; n(a, #0:Fresh), i)), +(a ; n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(a ; n(a, #0:Fresh)), +(pk(a ; n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (a ; n(a, #0:Fresh)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, pk(a ; n(a, #0:Fresh), i) inI || -(pk(a ; n(a, #0:Fresh), i)), +(a ; n(a, #0:Fresh)), -(a ; n(a, #0:Fresh)), +(pk(a ; n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 5 . 5 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(a ; n(a, #0:Fresh)), +(pk(a ; n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), nil] & :: nil :: [ nil | -((a ; n(a, #0:Fresh)) ; #1:Msg), +(a ; n(a, #0:Fresh)), nil] & :: #2:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), -(pk(n(b, #2:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a) !inI, pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i) !inI, n(b, #2:Fresh) !inI, (a ; n(a, #0:Fresh)) !inI, (pk(i, b) ; pk(n(b, #2:Fresh), b)) !inI, ((a ; n(a, #0:Fresh)) ; #1:Msg) inI || -((a ; n(a, #0:Fresh)) ; #1:Msg), +(a ; n(a, #0:Fresh)), -(a ; n(a, #0:Fresh)), +(pk(a ; n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)) || nil || nil) < 1 . 3 . 2 . 5 . 7 . 2 . 4 . 6 . 1 > ( :: nil :: [ nil | -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil | -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(n(b, #0:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), nil] ) || pk(i, a) !inI, pk(n(b, #0:Fresh), a) !inI, pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(a ; #1:Nonce, b) !inI, pk(#1:Nonce ; n(b, #0:Fresh) ; b, a) !inI, pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i) !inI, n(b, #0:Fresh) !inI, (pk(i, a) ; pk(n(b, #0:Fresh), a)) !inI, (pk(n(b, #0:Fresh), a) ; pk(b, a)) !inI || generatedByIntruder(pk(i, a)), generatedByIntruder(pk(a ; #1:Nonce, b)), -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil ========================================== reduce in MAUDE-NPA : run(9) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 1 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 5 . 7 . 2 . 4 . 6 . 1 > ( :: nil :: [ nil | -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil | -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(n(b, #0:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), nil] ) || pk(i, a) !inI, pk(n(b, #0:Fresh), a) !inI, pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(a ; #1:Nonce, b) !inI, pk(#1:Nonce ; n(b, #0:Fresh) ; b, a) !inI, pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i) !inI, n(b, #0:Fresh) !inI, (pk(i, a) ; pk(n(b, #0:Fresh), a)) !inI, (pk(n(b, #0:Fresh), a) ; pk(b, a)) !inI || generatedByIntruder(pk(i, a)), generatedByIntruder(pk(a ; #1:Nonce, b)), -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 2 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(a, b) ; pk(n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a, b) ; pk(n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 2 . 5 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; n(a, #1:Fresh)), +(pk(#0:Msg ; n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(#3:Msg ; pk(n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i) ; #4:Msg), +(pk(n(b, #2:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), nil] & :: #2:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), -(pk(n(b, #2:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, pk(#0:Msg ; n(a, #1:Fresh), b) !inI, pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a) !inI, pk(n(b, #2:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, n(b, #2:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #2:Fresh), b)) !inI, (#0:Msg ; n(a, #1:Fresh)) inI || -(#0:Msg ; n(a, #1:Fresh)), +(pk(#0:Msg ; n(a, #1:Fresh), b)), -(#3:Msg ; pk(n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #2:Fresh), i) ; #4:Msg), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 4 . 3 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(a, #0:Fresh), i)), +(n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(n(a, #0:Fresh)), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(a, #0:Fresh) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, pk(n(a, #0:Fresh), i) inI || -(pk(n(a, #0:Fresh), i)), +(n(a, #0:Fresh)), -(n(a, #0:Fresh)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 4 . 4 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(n(a, #0:Fresh)), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), nil] & :: nil :: [ nil | -(n(a, #0:Fresh) ; #1:Msg), +(n(a, #0:Fresh)), nil] & :: #2:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), -(pk(n(b, #2:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a) !inI, pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i) !inI, n(a, #0:Fresh) !inI, n(b, #2:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #2:Fresh), b)) !inI, (n(a, #0:Fresh) ; #1:Msg) inI || -(n(a, #0:Fresh) ; #1:Msg), +(n(a, #0:Fresh)), -(n(a, #0:Fresh)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 5 . 4 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #2:Fresh), b)), +(pk(a, b) ; pk(n(a, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(#0:Name ; n(#0:Name, #1:Fresh), b)) | -(pk(n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b, #0:Name)), +(pk(n(a, #2:Fresh), b)), nil] & :: #2:Fresh :: [ nil, +(pk(a ; n(a, #2:Fresh), b)) | -(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #2:Fresh), b)), +(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #2:Fresh), b) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #2:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)) !inI, pk(n(#0:Name, #1:Fresh), #0:Name) inI, (pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)) inI || -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)), -(pk(n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b, #0:Name)), +(pk(n(a, #2:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #2:Fresh), b)), +(pk(a, b) ; pk(n(a, #2:Fresh), b)), -(pk(a ; n(a, #2:Fresh), b)), +(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 5 . 5 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #2:Fresh), b)), +(pk(a, b) ; pk(n(a, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: nil :: [ nil | -(n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b), +(pk(n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b, #0:Name)), nil] & :: #1:Fresh :: [ nil, +(pk(#0:Name ; n(#0:Name, #1:Fresh), b)) | -(pk(n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b, #0:Name)), +(pk(n(a, #2:Fresh), b)), nil] & :: #2:Fresh :: [ nil, +(pk(a ; n(a, #2:Fresh), b)) | -(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #2:Fresh), b)), +(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #2:Fresh), b) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, pk(n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b, #0:Name) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #2:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, (n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b) inI || -(n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b), +(pk(n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b, #0:Name)), -(pk(n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b, #0:Name)), +(pk(n(a, #2:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #2:Fresh), b)), +(pk(a, b) ; pk(n(a, #2:Fresh), b)), -(pk(a ; n(a, #2:Fresh), b)), +(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 6 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(a, #1:Fresh), b) ; #2:Msg), +(pk(n(a, #1:Fresh), b) ; #2:Msg), nil] & :: nil :: [ nil | -(pk(n(a, #1:Fresh), b) ; #2:Msg), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, (pk(n(a, #1:Fresh), b) ; #2:Msg) !inI, (#0:Msg ; pk(n(a, #1:Fresh), b) ; #2:Msg) inI || -(#0:Msg ; pk(n(a, #1:Fresh), b) ; #2:Msg), +(pk(n(a, #1:Fresh), b) ; #2:Msg), -(pk(n(a, #1:Fresh), b) ; #2:Msg), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || nil || nil) < 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 6 . 3 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(a, #0:Fresh), b) ; #4:Msg), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #5:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #2:Fresh :: [ nil | -(pk(b ; n(a, #0:Fresh), #3:Name)), +(pk(n(a, #0:Fresh) ; n(#3:Name, #2:Fresh) ; #3:Name, b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #6:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(a, #0:Fresh) ; n(#3:Name, #2:Fresh) ; #3:Name, b) !inI, pk(n(b, #1:Fresh) ; n(b, #6:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, pk(b ; n(a, #0:Fresh), #3:Name) inI || -(pk(b ; n(a, #0:Fresh), #3:Name)), +(pk(n(a, #0:Fresh) ; n(#3:Name, #2:Fresh) ; #3:Name, b)), -(pk(n(a, #0:Fresh), b) ; #4:Msg), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #6:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #5:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil ========================================== reduce in MAUDE-NPA : run(10) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 1 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 5 . 7 . 2 . 4 . 6 . 1 > ( :: nil :: [ nil | -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil | -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(n(b, #0:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), nil] ) || pk(i, a) !inI, pk(n(b, #0:Fresh), a) !inI, pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(a ; #1:Nonce, b) !inI, pk(#1:Nonce ; n(b, #0:Fresh) ; b, a) !inI, pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i) !inI, n(b, #0:Fresh) !inI, (pk(i, a) ; pk(n(b, #0:Fresh), a)) !inI, (pk(n(b, #0:Fresh), a) ; pk(b, a)) !inI || generatedByIntruder(pk(i, a)), generatedByIntruder(pk(a ; #1:Nonce, b)), -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 2 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(a, b) ; pk(n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a, b) ; pk(n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 2 . 5 . 4 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; n(a, #1:Fresh)), +(pk(#0:Msg ; n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(#4:Msg ; pk(n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #5:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: nil :: [ nil | -((#0:Msg ; n(a, #1:Fresh)) ; #2:Msg), +(#0:Msg ; n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #6:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(#0:Msg ; n(a, #1:Fresh), b) !inI, pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(b, #3:Fresh) ; n(b, #6:Fresh) ; b, i) !inI, n(b, #3:Fresh) !inI, (#0:Msg ; n(a, #1:Fresh)) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !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)), +(pk(#0:Msg ; n(a, #1:Fresh), b)), -(#4:Msg ; pk(n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #6:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #5:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 4 . 3 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(a, #1:Fresh), i)), +(n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(a, #1:Fresh), i)), +(pk(n(a, #1:Fresh), i)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), nil] & :: #2:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), -(pk(n(b, #2:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(a, #1:Fresh), i) !inI, pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a) !inI, pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i) !inI, n(a, #1:Fresh) !inI, n(b, #2:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #2:Fresh), b)) !inI, (#0:Msg ; pk(n(a, #1:Fresh), i)) inI || -(#0:Msg ; pk(n(a, #1:Fresh), i)), +(pk(n(a, #1:Fresh), i)), -(pk(n(a, #1:Fresh), i)), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 4 . 3 . 5 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(a, #0:Fresh), i)), +(n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(n(a, #0:Fresh)), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #2:Fresh :: [ nil, +(pk(#3:Name ; n(#3:Name, #2:Fresh), i)) | -(pk(n(#3:Name, #2:Fresh) ; n(a, #0:Fresh) ; i, #3:Name)), +(pk(n(a, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh), i) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, n(a, #0:Fresh) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, pk(n(#3:Name, #2:Fresh) ; n(a, #0:Fresh) ; i, #3:Name) inI || -(pk(n(#3:Name, #2:Fresh) ; n(a, #0:Fresh) ; i, #3:Name)), +(pk(n(a, #0:Fresh), i)), -(pk(n(a, #0:Fresh), i)), +(n(a, #0:Fresh)), -(n(a, #0:Fresh)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #4:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 4 . 3 . 6 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(a, #0:Fresh), i)), +(n(a, #0:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(n(a, #0:Fresh)), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(a, #0:Fresh), i) ; #1:Msg), +(pk(n(a, #0:Fresh), i)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), nil] & :: #2:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), -(pk(n(b, #2:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh), i) !inI, pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a) !inI, pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i) !inI, n(a, #0:Fresh) !inI, n(b, #2:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #2:Fresh), b)) !inI, (pk(n(a, #0:Fresh), i) ; #1:Msg) inI || -(pk(n(a, #0:Fresh), i) ; #1:Msg), +(pk(n(a, #0:Fresh), i)), -(pk(n(a, #0:Fresh), i)), +(n(a, #0:Fresh)), -(n(a, #0:Fresh)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #4:Fresh) ; b, i)), -(pk(n(b, #2:Fresh), i) ; #3:Msg), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 4 . 4 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(#0:Msg ; n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh) ; #2:Msg), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, n(a, #1:Fresh) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, (n(a, #1:Fresh) ; #2:Msg) !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)), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 4 . 4 . 5 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(n(a, #0:Fresh)), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), 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] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, n(a, #0:Fresh) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, (n(a, #0:Fresh) ; #1:Msg) !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)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 5 . 4 . 5 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #2:Fresh), b)), +(pk(a, b) ; pk(n(a, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)), nil] & :: nil :: [ nil | -(n(#0:Name, #1:Fresh)), +(pk(n(#0:Name, #1:Fresh), #0:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(#0:Name ; n(#0:Name, #1:Fresh), b)) | -(pk(n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b, #0:Name)), +(pk(n(a, #2:Fresh), b)), nil] & :: #2:Fresh :: [ nil, +(pk(a ; n(a, #2:Fresh), b)) | -(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #2:Fresh), b)), +(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #2:Fresh), b) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(#0:Name, #1:Fresh), #0:Name) !inI, pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #2:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)) !inI, n(#0:Name, #1:Fresh) inI, (pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)) inI || -(n(#0:Name, #1:Fresh)), +(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(a, #2:Fresh), #0:Name) ; pk(b, #0:Name)), -(pk(n(#0:Name, #1:Fresh) ; n(a, #2:Fresh) ; b, #0:Name)), +(pk(n(a, #2:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #2:Fresh), b)), +(pk(a, b) ; pk(n(a, #2:Fresh), b)), -(pk(a ; n(a, #2:Fresh), b)), +(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 5 . 4 . 6 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #2:Fresh), b)), +(pk(a, b) ; pk(n(a, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#6:Name, #0:Fresh), #6:Name)), -(pk(n(a, #2:Fresh), #6:Name) ; pk(b, #6:Name)), +(pk(n(#6:Name, #0:Fresh), #6:Name) ; pk(n(a, #2:Fresh), #6:Name) ; pk(b, #6:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #7:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: #2:Fresh :: [ nil, +(pk(a ; n(a, #2:Fresh), b)) | -(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #0:Fresh :: [ nil, +(pk(#1:Name ; n(#1:Name, #0:Fresh), b)) | -(pk(n(#1:Name, #0:Fresh) ; n(a, #2:Fresh) ; b, #1:Name)), +(pk(n(a, #2:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #2:Fresh), b)), +(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #4:Fresh :: [ nil, +(pk(#5:Name ; n(#5:Name, #4:Fresh), #1:Name)) | -(pk(n(#5:Name, #4:Fresh) ; n(#1:Name, #0:Fresh) ; #1:Name, #5:Name)), +(pk(n(#1:Name, #0:Fresh), #1:Name)), nil] & :: #8:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #8:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #2:Fresh), b) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(#1:Name, #0:Fresh), #1:Name) !inI, pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(b, #3:Fresh) ; n(b, #8:Fresh) ; b, i) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #2:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, (pk(n(#6:Name, #0:Fresh), #6:Name) ; pk(n(a, #2:Fresh), #6:Name) ; pk(b, #6:Name)) !inI, pk(n(#5:Name, #4:Fresh) ; n(#1:Name, #0:Fresh) ; #1:Name, #5:Name) inI, (pk(n(a, #2:Fresh), #1:Name) ; pk(b, #1:Name)) inI || -(pk(n(#5:Name, #4:Fresh) ; n(#1:Name, #0:Fresh) ; #1:Name, #5:Name)), +(pk(n(#1:Name, #0:Fresh), #1:Name)), -(pk(n(#6:Name, #0:Fresh), #6:Name)), -(pk(n(a, #2:Fresh), #6:Name) ; pk(b, #6:Name)), +(pk(n(#6:Name, #0:Fresh), #6:Name) ; pk(n(a, #2:Fresh), #6:Name) ; pk(b, #6:Name)), -(pk(n(#6:Name, #0:Fresh) ; n(a, #2:Fresh) ; b, #6:Name)), +(pk(n(a, #2:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #2:Fresh), b)), +(pk(a, b) ; pk(n(a, #2:Fresh), b)), -(pk(a ; n(a, #2:Fresh), b)), +(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #2:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #8:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #7:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 5 . 4 . 11 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #3:Fresh), b)), +(pk(a, b) ; pk(n(a, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #4:Fresh), b)), +(pk(i, b) ; pk(n(b, #4:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #4:Fresh), i)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#1:Name, #2:Fresh), #1:Name)), -(pk(n(a, #3:Fresh), #1:Name) ; pk(b, #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name) ; pk(n(a, #3:Fresh), #1:Name) ; pk(b, #1:Name)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(#1:Name, #2:Fresh), #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #4:Fresh), i) ; #5:Msg), +(pk(n(b, #4:Fresh), i)), nil] & :: #2:Fresh :: [ nil, +(pk(#1:Name ; n(#1:Name, #2:Fresh), b)) | -(pk(n(#1:Name, #2:Fresh) ; n(a, #3:Fresh) ; b, #1:Name)), +(pk(n(a, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil, +(pk(a ; n(a, #3:Fresh), b)) | -(pk(n(a, #3:Fresh) ; n(b, #4:Fresh) ; b, a)), +(pk(n(b, #4:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(a ; n(a, #3:Fresh), b)), +(pk(n(a, #3:Fresh) ; n(b, #4:Fresh) ; b, a)), -(pk(n(b, #4:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(i ; n(b, #4:Fresh), b)), +(pk(n(b, #4:Fresh) ; n(b, #6:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #3:Fresh), b) !inI, pk(n(b, #4:Fresh), b) !inI, pk(n(b, #4:Fresh), i) !inI, pk(n(#1:Name, #2:Fresh), #1:Name) !inI, pk(n(a, #3:Fresh) ; n(b, #4:Fresh) ; b, a) !inI, pk(n(b, #4:Fresh) ; n(b, #6:Fresh) ; b, i) !inI, n(b, #4:Fresh) !inI, (pk(a, b) ; pk(n(a, #3:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #4:Fresh), b)) !inI, (pk(n(#1:Name, #2:Fresh), #1:Name) ; pk(n(a, #3:Fresh), #1:Name) ; pk(b, #1:Name)) !inI, (#0:Msg ; pk(n(#1:Name, #2:Fresh), #1:Name)) inI, (pk(n(a, #3:Fresh), #1:Name) ; pk(b, #1:Name)) inI || -(#0:Msg ; pk(n(#1:Name, #2:Fresh), #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name)), -(pk(n(#1:Name, #2:Fresh), #1:Name)), -(pk(n(a, #3:Fresh), #1:Name) ; pk(b, #1:Name)), +(pk(n(#1:Name, #2:Fresh), #1:Name) ; pk(n(a, #3:Fresh), #1:Name) ; pk(b, #1:Name)), -(pk(n(#1:Name, #2:Fresh) ; n(a, #3:Fresh) ; b, #1:Name)), +(pk(n(a, #3:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #3:Fresh), b)), +(pk(a, b) ; pk(n(a, #3:Fresh), b)), -(pk(a ; n(a, #3:Fresh), b)), +(pk(n(a, #3:Fresh) ; n(b, #4:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #3:Fresh) ; n(b, #4:Fresh) ; b, a)), +(pk(n(b, #4:Fresh), b)), -(pk(i, b)), -(pk(n(b, #4:Fresh), b)), +(pk(i, b) ; pk(n(b, #4:Fresh), b)), -(pk(i ; n(b, #4:Fresh), b)), +(pk(n(b, #4:Fresh) ; n(b, #6:Fresh) ; b, i)), -(pk(n(b, #4:Fresh), i) ; #5:Msg), +(pk(n(b, #4:Fresh), i)), -(pk(n(b, #4:Fresh), i)), +(n(b, #4:Fresh)), -(pk(n(b, #4:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 5 . 4 . 12 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #3:Fresh), b)), +(pk(a, b) ; pk(n(a, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #4:Fresh), b)), +(pk(i, b) ; pk(n(b, #4:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #4:Fresh), i)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(a, #3:Fresh), #0:Name) ; pk(b, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(a, #3:Fresh), #0:Name) ; pk(b, #0:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #4:Fresh), i) ; #5:Msg), +(pk(n(b, #4:Fresh), i)), nil] & :: nil :: [ nil | -(pk(n(#0:Name, #1:Fresh), #0:Name) ; #2:Msg), +(pk(n(#0:Name, #1:Fresh), #0:Name)), nil] & :: #1:Fresh :: [ nil, +(pk(#0:Name ; n(#0:Name, #1:Fresh), b)) | -(pk(n(#0:Name, #1:Fresh) ; n(a, #3:Fresh) ; b, #0:Name)), +(pk(n(a, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil, +(pk(a ; n(a, #3:Fresh), b)) | -(pk(n(a, #3:Fresh) ; n(b, #4:Fresh) ; b, a)), +(pk(n(b, #4:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(a ; n(a, #3:Fresh), b)), +(pk(n(a, #3:Fresh) ; n(b, #4:Fresh) ; b, a)), -(pk(n(b, #4:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(i ; n(b, #4:Fresh), b)), +(pk(n(b, #4:Fresh) ; n(b, #6:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #3:Fresh), b) !inI, pk(n(b, #4:Fresh), b) !inI, pk(n(b, #4:Fresh), i) !inI, pk(n(#0:Name, #1:Fresh), #0:Name) !inI, pk(n(a, #3:Fresh) ; n(b, #4:Fresh) ; b, a) !inI, pk(n(b, #4:Fresh) ; n(b, #6:Fresh) ; b, i) !inI, n(b, #4:Fresh) !inI, (pk(a, b) ; pk(n(a, #3:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #4:Fresh), b)) !inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(a, #3:Fresh), #0:Name) ; pk(b, #0:Name)) !inI, (pk(n(a, #3:Fresh), #0:Name) ; pk(b, #0:Name)) inI, (pk(n(#0:Name, #1:Fresh), #0:Name) ; #2:Msg) inI || -(pk(n(#0:Name, #1:Fresh), #0:Name) ; #2:Msg), +(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(#0:Name, #1:Fresh), #0:Name)), -(pk(n(a, #3:Fresh), #0:Name) ; pk(b, #0:Name)), +(pk(n(#0:Name, #1:Fresh), #0:Name) ; pk(n(a, #3:Fresh), #0:Name) ; pk(b, #0:Name)), -(pk(n(#0:Name, #1:Fresh) ; n(a, #3:Fresh) ; b, #0:Name)), +(pk(n(a, #3:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #3:Fresh), b)), +(pk(a, b) ; pk(n(a, #3:Fresh), b)), -(pk(a ; n(a, #3:Fresh), b)), +(pk(n(a, #3:Fresh) ; n(b, #4:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #3:Fresh) ; n(b, #4:Fresh) ; b, a)), +(pk(n(b, #4:Fresh), b)), -(pk(i, b)), -(pk(n(b, #4:Fresh), b)), +(pk(i, b) ; pk(n(b, #4:Fresh), b)), -(pk(i ; n(b, #4:Fresh), b)), +(pk(n(b, #4:Fresh) ; n(b, #6:Fresh) ; b, i)), -(pk(n(b, #4:Fresh), i) ; #5:Msg), +(pk(n(b, #4:Fresh), i)), -(pk(n(b, #4:Fresh), i)), +(n(b, #4:Fresh)), -(pk(n(b, #4:Fresh), b)) || nil || nil) < 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 6 . 3 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(b, #0:Name)), -(pk(n(a, #1:Fresh), #0:Name)), +(pk(b, #0:Name) ; pk(n(a, #1:Fresh), #0:Name)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(pk(n(a, #1:Fresh), b) ; #3:Msg), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i) ; #4:Msg), +(pk(n(b, #2:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), nil] & :: #2:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), -(pk(n(b, #2:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(b ; n(a, #1:Fresh), #0:Name)), +(pk(n(a, #1:Fresh) ; n(#0:Name, #5:Fresh) ; #0:Name, b)), nil] & :: #6:Fresh :: [ nil | -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #6:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a) !inI, pk(n(a, #1:Fresh) ; n(#0:Name, #5:Fresh) ; #0:Name, b) !inI, pk(n(b, #2:Fresh) ; n(b, #6:Fresh) ; b, i) !inI, n(b, #2:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(b, #0:Name) ; pk(n(a, #1:Fresh), #0:Name)) !inI, (pk(i, b) ; pk(n(b, #2:Fresh), b)) !inI, pk(n(a, #1:Fresh), #0:Name) inI || -(pk(b, #0:Name)), -(pk(n(a, #1:Fresh), #0:Name)), +(pk(b, #0:Name) ; pk(n(a, #1:Fresh), #0:Name)), -(pk(b ; n(a, #1:Fresh), #0:Name)), +(pk(n(a, #1:Fresh) ; n(#0:Name, #5:Fresh) ; #0:Name, b)), -(pk(n(a, #1:Fresh), b) ; #3:Msg), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #6:Fresh) ; b, i)), -(pk(n(b, #2:Fresh), i) ; #4:Msg), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)) || ghost( pk(b, #0:Name), :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(b, #0:Name)), -(pk(n(a, #1:Fresh), #0:Name)), +(pk(b, #0:Name) ; pk(n(a, #1:Fresh), #0:Name)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), nil] & :: nil :: [ nil | -(pk(n(a, #1:Fresh), b) ; #3:Msg), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #2:Fresh), i) ; #4:Msg), +(pk(n(b, #2:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), nil] & :: #2:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), -(pk(n(b, #2:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(b ; n(a, #1:Fresh), #0:Name)), +(pk(n(a, #1:Fresh) ; n(#0:Name, #5:Fresh) ; #0:Name, b)), nil] & :: #6:Fresh :: [ nil | -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #6:Fresh) ; b, i)), nil] , pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(b, #2:Fresh), b) !inI, pk(n(b, #2:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a) !inI, pk(n(a, #1:Fresh) ; n(#0:Name, #5:Fresh) ; #0:Name, b) !inI, pk(n(b, #2:Fresh) ; n(b, #6:Fresh) ; b, i) !inI, n(b, #2:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(b, #0:Name) ; pk(n(a, #1:Fresh), #0:Name)) !inI, (pk(i, b) ; pk(n(b, #2:Fresh), b)) !inI, pk(n(a, #1:Fresh), #0:Name) inI, -(pk(b, #0:Name)), -(pk(n(a, #1:Fresh), #0:Name)), +(pk(b, #0:Name) ; pk(n(a, #1:Fresh), #0:Name)), -(pk(b ; n(a, #1:Fresh), #0:Name)), +(pk(n(a, #1:Fresh) ; n(#0:Name, #5:Fresh) ; #0:Name, b)), -(pk(n(a, #1:Fresh), b) ; #3:Msg), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #2:Fresh) ; b, a)), +(pk(n(b, #2:Fresh), b)), -(pk(i, b)), -(pk(n(b, #2:Fresh), b)), +(pk(i, b) ; pk(n(b, #2:Fresh), b)), -(pk(i ; n(b, #2:Fresh), b)), +(pk(n(b, #2:Fresh) ; n(b, #6:Fresh) ; b, i)), -(pk(n(b, #2:Fresh), i) ; #4:Msg), +(pk(n(b, #2:Fresh), i)), -(pk(n(b, #2:Fresh), i)), +(n(b, #2:Fresh)), -(pk(n(b, #2:Fresh), b)), nil ) || nil ========================================== reduce in MAUDE-NPA : run(11) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 1 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 5 . 7 . 2 . 4 . 6 . 1 > ( :: nil :: [ nil | -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil | -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(n(b, #0:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), nil] ) || pk(i, a) !inI, pk(n(b, #0:Fresh), a) !inI, pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(a ; #1:Nonce, b) !inI, pk(#1:Nonce ; n(b, #0:Fresh) ; b, a) !inI, pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i) !inI, n(b, #0:Fresh) !inI, (pk(i, a) ; pk(n(b, #0:Fresh), a)) !inI, (pk(n(b, #0:Fresh), a) ; pk(b, a)) !inI || generatedByIntruder(pk(i, a)), generatedByIntruder(pk(a ; #1:Nonce, b)), -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 2 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(a, b) ; pk(n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a, b) ; pk(n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 4 . 3 . 6 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(a, #1:Fresh), i)), +(n(a, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(a, #1:Fresh), i) ; #2:Msg), +(pk(n(a, #1:Fresh), i) ; #2:Msg), nil] & :: nil :: [ nil | -(pk(n(a, #1:Fresh), i) ; #2:Msg), +(pk(n(a, #1:Fresh), i)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #5:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(a, #1:Fresh), i) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i) !inI, n(a, #1:Fresh) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, (pk(n(a, #1:Fresh), i) ; #2:Msg) !inI, (#0:Msg ; pk(n(a, #1:Fresh), i) ; #2:Msg) inI || -(#0:Msg ; pk(n(a, #1:Fresh), i) ; #2:Msg), +(pk(n(a, #1:Fresh), i) ; #2:Msg), -(pk(n(a, #1:Fresh), i) ; #2:Msg), +(pk(n(a, #1:Fresh), i)), -(pk(n(a, #1:Fresh), i)), +(n(a, #1:Fresh)), -(n(a, #1:Fresh)), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #5:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #4:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 4 . 4 . 2 . 4 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #4:Fresh), b)), +(pk(i, b) ; pk(n(b, #4:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #4:Fresh), i)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(n(a, #1:Fresh)), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(#0:Msg ; n(a, #1:Fresh) ; #2:Msg), +(n(a, #1:Fresh) ; #2:Msg), nil] & :: nil :: [ nil | -(pk(n(b, #4:Fresh), i) ; #5:Msg), +(pk(n(b, #4:Fresh), i)), 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, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), +(pk(n(b, #4:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), -(pk(n(b, #4:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(i ; n(b, #4:Fresh), b)), +(pk(n(b, #4:Fresh) ; n(b, #6:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(b, #4:Fresh), b) !inI, pk(n(b, #4:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a) !inI, pk(n(b, #4:Fresh) ; n(b, #6:Fresh) ; b, i) !inI, n(a, #1:Fresh) !inI, n(b, #4:Fresh) !inI, (#0:Msg ; n(a, #1:Fresh) ; #2:Msg) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #4:Fresh), b)) !inI, (n(a, #1:Fresh) ; #2:Msg) !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)), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), +(pk(n(b, #4:Fresh), b)), -(pk(i, b)), -(pk(n(b, #4:Fresh), b)), +(pk(i, b) ; pk(n(b, #4:Fresh), b)), -(pk(i ; n(b, #4:Fresh), b)), +(pk(n(b, #4:Fresh) ; n(b, #6:Fresh) ; b, i)), -(pk(n(b, #4:Fresh), i) ; #5:Msg), +(pk(n(b, #4:Fresh), i)), -(pk(n(b, #4:Fresh), i)), +(n(b, #4:Fresh)), -(pk(n(b, #4:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 6 . 3 . 2 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(b, #2:Name)), -(pk(n(a, #1:Fresh), #2:Name)), +(pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(a, #1:Fresh), #2:Name)), +(pk(n(a, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(a, #1:Fresh), b) ; #4:Msg), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #5:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(b ; n(a, #1:Fresh), #2:Name)), +(pk(n(a, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, b)), nil] & :: #7:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(a, #1:Fresh), #2:Name) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(a, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, b) !inI, pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, (#0:Msg ; pk(n(a, #1:Fresh), #2:Name)) inI || -(#0:Msg ; pk(n(a, #1:Fresh), #2:Name)), +(pk(n(a, #1:Fresh), #2:Name)), -(pk(b, #2:Name)), -(pk(n(a, #1:Fresh), #2:Name)), +(pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)), -(pk(b ; n(a, #1:Fresh), #2:Name)), +(pk(n(a, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, b)), -(pk(n(a, #1:Fresh), b) ; #4:Msg), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #5:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || ghost( pk(b, #2:Name), :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(b, #2:Name)), -(pk(n(a, #1:Fresh), #2:Name)), +(pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(pk(n(a, #1:Fresh), b) ; #4:Msg), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #5:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(b ; n(a, #1:Fresh), #2:Name)), +(pk(n(a, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, b)), nil] & :: #7:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i)), nil] , pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(a, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, b) !inI, pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, pk(n(a, #1:Fresh), #2:Name) inI, -(pk(b, #2:Name)), -(pk(n(a, #1:Fresh), #2:Name)), +(pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)), -(pk(b ; n(a, #1:Fresh), #2:Name)), +(pk(n(a, #1:Fresh) ; n(#2:Name, #6:Fresh) ; #2:Name, b)), -(pk(n(a, #1:Fresh), b) ; #4:Msg), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #5:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)), nil ) || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 6 . 3 . 2 . 5 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(b, #1:Name)), -(pk(n(a, #0:Fresh), #1:Name)), +(pk(b, #1:Name) ; pk(n(a, #0:Fresh), #1:Name)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(pk(n(a, #0:Fresh), b) ; #4:Msg), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(a, #0:Fresh), #1:Name) ; #2:Msg), +(pk(n(a, #0:Fresh), #1:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #5:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(b ; n(a, #0:Fresh), #1:Name)), +(pk(n(a, #0:Fresh) ; n(#1:Name, #6:Fresh) ; #1:Name, b)), nil] & :: #7:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh), #1:Name) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(a, #0:Fresh) ; n(#1:Name, #6:Fresh) ; #1:Name, b) !inI, pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(b, #1:Name) ; pk(n(a, #0:Fresh), #1:Name)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, (pk(n(a, #0:Fresh), #1:Name) ; #2:Msg) inI || -(pk(n(a, #0:Fresh), #1:Name) ; #2:Msg), +(pk(n(a, #0:Fresh), #1:Name)), -(pk(b, #1:Name)), -(pk(n(a, #0:Fresh), #1:Name)), +(pk(b, #1:Name) ; pk(n(a, #0:Fresh), #1:Name)), -(pk(b ; n(a, #0:Fresh), #1:Name)), +(pk(n(a, #0:Fresh) ; n(#1:Name, #6:Fresh) ; #1:Name, b)), -(pk(n(a, #0:Fresh), b) ; #4:Msg), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #5:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)) || ghost( pk(b, #1:Name), :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(b, #1:Name)), -(pk(n(a, #0:Fresh), #1:Name)), +(pk(b, #1:Name) ; pk(n(a, #0:Fresh), #1:Name)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), nil] & :: nil :: [ nil | -(pk(n(a, #0:Fresh), b) ; #4:Msg), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #3:Fresh), i) ; #5:Msg), +(pk(n(b, #3:Fresh), i)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), -(pk(n(b, #3:Fresh), b)), nil] & :: #6:Fresh :: [ nil | -(pk(b ; n(a, #0:Fresh), #1:Name)), +(pk(n(a, #0:Fresh) ; n(#1:Name, #6:Fresh) ; #1:Name, b)), nil] & :: #7:Fresh :: [ nil | -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i)), nil] , pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #3:Fresh), b) !inI, pk(n(b, #3:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a) !inI, pk(n(a, #0:Fresh) ; n(#1:Name, #6:Fresh) ; #1:Name, b) !inI, pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i) !inI, n(b, #3:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(b, #1:Name) ; pk(n(a, #0:Fresh), #1:Name)) !inI, (pk(i, b) ; pk(n(b, #3:Fresh), b)) !inI, pk(n(a, #0:Fresh), #1:Name) inI, -(pk(b, #1:Name)), -(pk(n(a, #0:Fresh), #1:Name)), +(pk(b, #1:Name) ; pk(n(a, #0:Fresh), #1:Name)), -(pk(b ; n(a, #0:Fresh), #1:Name)), +(pk(n(a, #0:Fresh) ; n(#1:Name, #6:Fresh) ; #1:Name, b)), -(pk(n(a, #0:Fresh), b) ; #4:Msg), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #3:Fresh) ; b, a)), +(pk(n(b, #3:Fresh), b)), -(pk(i, b)), -(pk(n(b, #3:Fresh), b)), +(pk(i, b) ; pk(n(b, #3:Fresh), b)), -(pk(i ; n(b, #3:Fresh), b)), +(pk(n(b, #3:Fresh) ; n(b, #7:Fresh) ; b, i)), -(pk(n(b, #3:Fresh), i) ; #5:Msg), +(pk(n(b, #3:Fresh), i)), -(pk(n(b, #3:Fresh), i)), +(n(b, #3:Fresh)), -(pk(n(b, #3:Fresh), b)), nil ) || nil) < 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 6 . 3 . 2 . 6 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(b, #5:Name)), -(pk(n(a, #0:Fresh), #5:Name)), +(pk(b, #5:Name) ; pk(n(a, #0:Fresh), #5:Name)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(a, #0:Fresh), b) ; #6:Msg), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #7:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #2:Fresh :: [ nil, +(pk(#3:Name ; n(#3:Name, #2:Fresh), #4:Name)) | -(pk(n(#3:Name, #2:Fresh) ; n(a, #0:Fresh) ; #4:Name, #3:Name)), +(pk(n(a, #0:Fresh), #4:Name)), nil] & :: #0:Fresh :: [ nil, +(pk(a ; n(a, #0:Fresh), b)) | -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #8:Fresh :: [ nil | -(pk(b ; n(a, #0:Fresh), #5:Name)), +(pk(n(a, #0:Fresh) ; n(#5:Name, #8:Fresh) ; #5:Name, b)), nil] & :: #9:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #9:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(b, #5:Name) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh), #4:Name) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(a, #0:Fresh) ; n(#5:Name, #8:Fresh) ; #5:Name, b) !inI, pk(n(b, #1:Fresh) ; n(b, #9:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(b, #5:Name) ; pk(n(a, #0:Fresh), #5:Name)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI, pk(n(#3:Name, #2:Fresh) ; n(a, #0:Fresh) ; #4:Name, #3:Name) inI || generatedByIntruder(pk(b, #5:Name)), -(pk(n(#3:Name, #2:Fresh) ; n(a, #0:Fresh) ; #4:Name, #3:Name)), +(pk(n(a, #0:Fresh), #4:Name)), -(pk(b, #5:Name)), -(pk(n(a, #0:Fresh), #5:Name)), +(pk(b, #5:Name) ; pk(n(a, #0:Fresh), #5:Name)), -(pk(b ; n(a, #0:Fresh), #5:Name)), +(pk(n(a, #0:Fresh) ; n(#5:Name, #8:Fresh) ; #5:Name, b)), -(pk(n(a, #0:Fresh), b) ; #6:Msg), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #9:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #7:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil ========================================== reduce in MAUDE-NPA : run(12) . rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second) result IdSystemSet: (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 1 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 5 . 7 . 2 . 4 . 6 . 1 > ( :: nil :: [ nil | -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil | -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(n(b, #0:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), nil] ) || pk(i, a) !inI, pk(n(b, #0:Fresh), a) !inI, pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(a ; #1:Nonce, b) !inI, pk(#1:Nonce ; n(b, #0:Fresh) ; b, a) !inI, pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i) !inI, n(b, #0:Fresh) !inI, (pk(i, a) ; pk(n(b, #0:Fresh), a)) !inI, (pk(n(b, #0:Fresh), a) ; pk(b, a)) !inI || generatedByIntruder(pk(i, a)), generatedByIntruder(pk(a ; #1:Nonce, b)), -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 2 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(a, b) ; pk(n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a, b) ; pk(n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) < 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 6 . 3 . 2 . 5 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(b, #2:Name)), -(pk(n(a, #1:Fresh), #2:Name)), +(pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #4:Fresh), b)), +(pk(i, b) ; pk(n(b, #4:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #4:Fresh), i)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(#0:Msg ; pk(n(a, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(a, #1:Fresh), #2:Name) ; #3:Msg), nil] & :: nil :: [ nil | -(pk(n(a, #1:Fresh), b) ; #5:Msg), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(a, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(a, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(n(b, #4:Fresh), i) ; #6:Msg), +(pk(n(b, #4:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), +(pk(n(b, #4:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), -(pk(n(b, #4:Fresh), b)), nil] & :: #7:Fresh :: [ nil | -(pk(b ; n(a, #1:Fresh), #2:Name)), +(pk(n(a, #1:Fresh) ; n(#2:Name, #7:Fresh) ; #2:Name, b)), nil] & :: #8:Fresh :: [ nil | -(pk(i ; n(b, #4:Fresh), b)), +(pk(n(b, #4:Fresh) ; n(b, #8:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(a, #1:Fresh), #2:Name) !inI, pk(n(b, #4:Fresh), b) !inI, pk(n(b, #4:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a) !inI, pk(n(a, #1:Fresh) ; n(#2:Name, #7:Fresh) ; #2:Name, b) !inI, pk(n(b, #4:Fresh) ; n(b, #8:Fresh) ; b, i) !inI, n(b, #4:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)) !inI, (pk(i, b) ; pk(n(b, #4:Fresh), b)) !inI, (pk(n(a, #1:Fresh), #2:Name) ; #3:Msg) !inI, (#0:Msg ; pk(n(a, #1:Fresh), #2:Name) ; #3:Msg) inI || -(#0:Msg ; pk(n(a, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(a, #1:Fresh), #2:Name) ; #3:Msg), -(pk(n(a, #1:Fresh), #2:Name) ; #3:Msg), +(pk(n(a, #1:Fresh), #2:Name)), -(pk(b, #2:Name)), -(pk(n(a, #1:Fresh), #2:Name)), +(pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)), -(pk(b ; n(a, #1:Fresh), #2:Name)), +(pk(n(a, #1:Fresh) ; n(#2:Name, #7:Fresh) ; #2:Name, b)), -(pk(n(a, #1:Fresh), b) ; #5:Msg), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), +(pk(n(b, #4:Fresh), b)), -(pk(i, b)), -(pk(n(b, #4:Fresh), b)), +(pk(i, b) ; pk(n(b, #4:Fresh), b)), -(pk(i ; n(b, #4:Fresh), b)), +(pk(n(b, #4:Fresh) ; n(b, #8:Fresh) ; b, i)), -(pk(n(b, #4:Fresh), i) ; #6:Msg), +(pk(n(b, #4:Fresh), i)), -(pk(n(b, #4:Fresh), i)), +(n(b, #4:Fresh)), -(pk(n(b, #4:Fresh), b)) || ghost( pk(b, #2:Name), :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(b, #2:Name)), -(pk(n(a, #1:Fresh), #2:Name)), +(pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #4:Fresh), b)), +(pk(i, b) ; pk(n(b, #4:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #4:Fresh), i)), +(n(b, #4:Fresh)), nil] & :: nil :: [ nil | -(pk(n(a, #1:Fresh), b) ; #5:Msg), +(pk(n(a, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #4:Fresh), i) ; #6:Msg), +(pk(n(b, #4:Fresh), i)), nil] & :: #1:Fresh :: [ nil, +(pk(a ; n(a, #1:Fresh), b)) | -(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), +(pk(n(b, #4:Fresh), b)), nil] & :: #4:Fresh :: [ nil | -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), -(pk(n(b, #4:Fresh), b)), nil] & :: #7:Fresh :: [ nil | -(pk(b ; n(a, #1:Fresh), #2:Name)), +(pk(n(a, #1:Fresh) ; n(#2:Name, #7:Fresh) ; #2:Name, b)), nil] & :: #8:Fresh :: [ nil | -(pk(i ; n(b, #4:Fresh), b)), +(pk(n(b, #4:Fresh) ; n(b, #8:Fresh) ; b, i)), nil] , pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #1:Fresh), b) !inI, pk(n(b, #4:Fresh), b) !inI, pk(n(b, #4:Fresh), i) !inI, pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a) !inI, pk(n(a, #1:Fresh) ; n(#2:Name, #7:Fresh) ; #2:Name, b) !inI, pk(n(b, #4:Fresh) ; n(b, #8:Fresh) ; b, i) !inI, n(b, #4:Fresh) !inI, (pk(a, b) ; pk(n(a, #1:Fresh), b)) !inI, (pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)) !inI, (pk(i, b) ; pk(n(b, #4:Fresh), b)) !inI, pk(n(a, #1:Fresh), #2:Name) inI, -(pk(b, #2:Name)), -(pk(n(a, #1:Fresh), #2:Name)), +(pk(b, #2:Name) ; pk(n(a, #1:Fresh), #2:Name)), -(pk(b ; n(a, #1:Fresh), #2:Name)), +(pk(n(a, #1:Fresh) ; n(#2:Name, #7:Fresh) ; #2:Name, b)), -(pk(n(a, #1:Fresh), b) ; #5:Msg), +(pk(n(a, #1:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #1:Fresh), b)), +(pk(a, b) ; pk(n(a, #1:Fresh), b)), -(pk(a ; n(a, #1:Fresh), b)), +(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #1:Fresh) ; n(b, #4:Fresh) ; b, a)), +(pk(n(b, #4:Fresh), b)), -(pk(i, b)), -(pk(n(b, #4:Fresh), b)), +(pk(i, b) ; pk(n(b, #4:Fresh), b)), -(pk(i ; n(b, #4:Fresh), b)), +(pk(n(b, #4:Fresh) ; n(b, #8:Fresh) ; b, i)), -(pk(n(b, #4:Fresh), i) ; #6:Msg), +(pk(n(b, #4:Fresh), i)), -(pk(n(b, #4:Fresh), i)), +(n(b, #4:Fresh)), -(pk(n(b, #4:Fresh), b)), nil ) || nil ========================================== reduce in MAUDE-NPA : run(13) . rewrites: 18 in 0ms cpu (0ms real) (18000000 rewrites/second) result IdSystemSet: (< 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 1 > ( :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(i, b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil) (< 1 . 3 . 2 . 5 . 7 . 2 . 4 . 6 . 1 > ( :: nil :: [ nil | -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), nil] & :: nil :: [ nil | -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), nil] & :: nil :: [ nil | -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), nil] & :: #0:Fresh :: [ nil | -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(n(b, #0:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), nil] ) || pk(i, a) !inI, pk(n(b, #0:Fresh), a) !inI, pk(n(b, #0:Fresh), b) !inI, pk(n(b, #0:Fresh), i) !inI, pk(a ; #1:Nonce, b) !inI, pk(#1:Nonce ; n(b, #0:Fresh) ; b, a) !inI, pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i) !inI, n(b, #0:Fresh) !inI, (pk(i, a) ; pk(n(b, #0:Fresh), a)) !inI, (pk(n(b, #0:Fresh), a) ; pk(b, a)) !inI || generatedByIntruder(pk(i, a)), generatedByIntruder(pk(a ; #1:Nonce, b)), -(pk(a ; #1:Nonce, b)), +(pk(#1:Nonce ; n(b, #0:Fresh) ; b, a)), -(pk(#1:Nonce, a) ; pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a) ; pk(b, a)), -(pk(n(b, #0:Fresh), a) ; pk(b, a)), +(pk(n(b, #0:Fresh), a)), -(pk(i, a)), -(pk(n(b, #0:Fresh), a)), +(pk(i, a) ; pk(n(b, #0:Fresh), a)), -(pk(i ; n(b, #0:Fresh), a)), +(pk(n(b, #0:Fresh) ; n(a, #3:Fresh) ; a, i)), -(pk(n(b, #0:Fresh), i) ; #2:Msg), +(pk(n(b, #0:Fresh), i)), -(pk(n(b, #0:Fresh), i)), +(n(b, #0:Fresh)), -(n(b, #0:Fresh)), +(pk(n(b, #0:Fresh), b)), -(pk(n(b, #0:Fresh), b)) || nil || nil) < 1 . 2 . 9 . 11 . (2 {1}) . 6 . 1 . 3 . 2 . 2 > ( :: nil :: [ nil | -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), nil] & :: nil :: [ nil | -(pk(a, b) ; pk(n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh), b)), nil] & :: nil :: [ nil | -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), nil] & :: #1:Fresh :: [ nil | -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), -(pk(n(b, #1:Fresh), b)), nil] & :: #0:Fresh :: [ nil | +(pk(a ; n(a, #0:Fresh), b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), nil] & :: #3:Fresh :: [ nil | -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), nil] ) || pk(a, b) !inI, pk(i, b) !inI, pk(n(a, #0:Fresh), b) !inI, pk(n(b, #1:Fresh), b) !inI, pk(n(b, #1:Fresh), i) !inI, pk(a ; n(a, #0:Fresh), b) !inI, pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a) !inI, pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i) !inI, n(b, #1:Fresh) !inI, (pk(a, b) ; pk(n(a, #0:Fresh), b)) !inI, (pk(i, b) ; pk(n(b, #1:Fresh), b)) !inI || +(pk(a ; n(a, #0:Fresh), b)), -(pk(a, b) ; pk(n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh), b)), generatedByIntruder(pk(a, b)), -(pk(a, b)), -(pk(n(a, #0:Fresh), b)), +(pk(a, b) ; pk(n(a, #0:Fresh), b)), -(pk(a ; n(a, #0:Fresh), b)), +(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), generatedByIntruder(pk(i, b)), -(pk(n(a, #0:Fresh) ; n(b, #1:Fresh) ; b, a)), +(pk(n(b, #1:Fresh), b)), -(pk(i, b)), -(pk(n(b, #1:Fresh), b)), +(pk(i, b) ; pk(n(b, #1:Fresh), b)), -(pk(i ; n(b, #1:Fresh), b)), +(pk(n(b, #1:Fresh) ; n(b, #3:Fresh) ; b, i)), -(pk(n(b, #1:Fresh), i) ; #2:Msg), +(pk(n(b, #1:Fresh), i)), -(pk(n(b, #1:Fresh), i)), +(n(b, #1:Fresh)), -(pk(n(b, #1:Fresh), b)) || nil || nil Maude> Bye. Wed Dec 5 02:08:35 CET 2012 Santiagos-MacBook-Pro:prototype-20121204 sescobar$